Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - tha

Pages: 1 2 [3] 4 5 ... 16
17
ARM Processors / STM32F1 CMSIS DSP Matrix Functions
« on: July 20, 2021, 07:01:47 am »


Description

เซ็ตของฟังชั่นนี้จัดให้มี basic matrix math operations. The functions ทำงานบน matrix data structures. ตัวอย่างเช่น, the type definition สำหรับ the floating-point matrix structure ถูกแสดงข้างล่าง :

    typedef struct
    {
      uint16_t numRows;     // number of rows of the matrix.
      uint16_t numCols;     // number of columns of the matrix.
      float32_t *pData;     // points to the data of the matrix.
    } arm_matrix_instance_f32;

มี definitions ที่เหมือนกันสำหรับ Q15 and Q31 data type

The structure ระบุขนาดของ the matrix และจากนั้นชี้ไปยัง an array of data. The array มีขนาด numRows X numCols และ the values ถูกจัดเรียงใน row order. นั่นคือ, the matrix element (i, j) ถูกเก็บที่ :

  pData[i*numCols + j]

18
ARM Processors / STM32F1 CMSIS DSP Complex Math Functions
« on: July 18, 2021, 07:30:46 am »
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__groupCmplxMath.html



Description

เซ็ตของ functions นี้ทำงานบน complex data vectors. The data ใน the complex arrays ถูกเก็บใน an interleaved fashion (real, imag, real, imag, ...). ใน the API functions, the number ของ samples ใน a complex array อ้างอิงถึงจำนวนของ complex values; the array บรรจุเป็นสองเท่าจำนวนของ real values นี้.

ปล. ยังจำกันได้อยู่ไหม complex number 1+j2 ที่มีค่าจริงกับค่าจินตนาการ ลองไปทบทวนกันดูนะครับ

19
ARM Processors / STM32F1 CMSIS DSP Fast Math Functions
« on: July 16, 2021, 07:31:12 am »
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__SQRT.html



Description

คำนวณ the square root ของ a number. มีฟังัช่นที่แยกกันสำหรับ Q15, Q31, and floating-point data types. The square root function ถูกคำนวณโดยใช้ the Newton-Raphson algorithm. นี้คือ an iterative algorithm ของ the form:

 x1 = x0 - f(x0)/f'(x0)

โดยที่ x1 คือค่าประมาณปัจจุบัน x0 คือค่าประมาณก่อนหน้า และ f'(x0) คืออนุพันธ์ของ f() ที่ประเมินที่ x0 สำหรับฟังก์ชันสแควร์รูท อัลกอริธึมจะลดลงเป็น:

 x0 = in/2                         [การเดาเบื้องต้น]
 x1 = 1/2 * ( x0 + in / x0)        [การวนซ้ำแต่ละครั้ง]

20
ARM Processors / STM32F1 CMSIS DSP Basic Math Functions
« on: July 13, 2021, 01:28:14 pm »
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__BasicAbs.html



Description

หา the absolute value ของ a vector บน an element-by-element basis.

    pDst[n] = abs(pSrc[n]),   0 <= n < blockSize.

The functions รองรับการคำนวณแบบแทนที่ยอมให้ the source and destination pointers อ้างอิงไปยัง the same memory buffer. มีฟั่งชั่นที่แยกกันสำหรับ floating-point, Q7, Q15, and Q31 data types.

21
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__Max.html



Description

หาค่าสูงสุดของ an array of data. The function คืนกลับทั้ง the maximum value และตำแหน่งของมันภายใน the array. มีฟังชั่นที่แยกกันสำหรับ floating-point, Q31, Q15, and Q7 data types.

22
ARM Processors / STM32F1 CMSIS DSP
« on: July 04, 2021, 07:28:44 am »
https://www.st.com/en/embedded-software/stm32cubef1.html

โหลดโปรแกรมมาแล้วดู CMSIS DSP ตามไฟล์นี้ครับ

file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/index.html

CMSIS DSP Software Library

Introduction

user manual นี้อธิบาย the CMSIS DSP software library, ซึ่งเป็นชุดของ common signal processing functions สำหรับใช้กับ Cortex-M processor based devices.

The library ถูกแบ่งออกเป็นจำนวนหนึ่งของ functions ซึ่งแต่ละครอบคลุมหมวดหมู่เฉพาะ :

•   Basic math functions
•   Fast math functions
•   Complex math functions
•   Filters
•   Matrix functions
•   Transforms
•   Motor control functions
•   Statistical functions
•   Support functions
•   Interpolation functions

The library มีฟั่งชั่นที่แยกกันสำหรับการทำงานบน 8-bit integers, 16-bit integers, 32-bit integer and 32-bit floating-point values.

Using the Library

The library installer บรรจุ prebuilt versions ของ the libraries ใน the Lib folder.

•    arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit)
•    arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit)
•    arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit)
•    arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on)
•    arm_cortexM7l_math.lib (Cortex-M7, Little endian)
•    arm_cortexM7b_math.lib (Cortex-M7, Big endian)
•    arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit)
•    arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit)
•    arm_cortexM4l_math.lib (Cortex-M4, Little endian)
•    arm_cortexM4b_math.lib (Cortex-M4, Big endian)
•    arm_cortexM3l_math.lib (Cortex-M3, Little endian)
•    arm_cortexM3b_math.lib (Cortex-M3, Big endian)
•    arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian)
•    arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian)
•    arm_ARMv8MBLl_math.lib (Armv8-M Baseline, Little endian)
•    arm_ARMv8MMLl_math.lib (Armv8-M Mainline, Little endian)
•    arm_ARMv8MMLlfsp_math.lib (Armv8-M Mainline, Little endian, Single Precision Floating Point Unit)
•    arm_ARMv8MMLld_math.lib (Armv8-M Mainline, Little endian, DSP instructions)
•    arm_ARMv8MMLldfsp_math.lib (Armv8-M Mainline, Little endian, DSP instructions, Single Precision Floating
     Point Unit)

The library functions ถูกประกาศใน the public file arm_math.h ซึ่งถูกวางใน the Include folder.  ง่ายต่อการรวมไฟล์นี้และเชื่อมโยง the appropriate library ใน the application และเริ่มการเรียก the library functions. The Library รองรับ single public header file arm_math.h สำหรับ Cortex-M core ด้วย little endian และ big endian. header file เดียวกันนี้จะถูกใช้สำหรับ floating point unit(FPU) variants. Define(กำหนด) the appropriate pre processor MACRO ARM_MATH_CM7 or ARM_MATH_CM4 or ARM_MATH_CM3 or ARM_MATH_CM0 or ARM_MATH_CM0PLUS ขึ้นอยู่กับ the target processor ใน the application. สำหรับ Armv8-M cores define(กำหนด) preprocessor macro ARM_MATH_ARMV8MBL or ARM_MATH_ARMV8MML. เซ็ต preprocessor macro __DSP_PRESENT ถ้า Armv8-M Mainline core รองรับ DSP instructions.

23
ARM Processors / STM32F1 CMSIS
« on: July 01, 2021, 08:32:39 am »
http://www.disca.upv.es/aperles/arm_cortex_m3/curset/CMSIS/Documentation/DSP/html/index.html

CMSIS DSP Software Library

Introduction

user manual นี้อธิบาย the CMSIS DSP software library, ซึ่งเป็นชุดของ common signal processing functions สำหรับใช้กับ Cortex-M processor based devices.

The library ถูกแบ่งออกเป็นจำนวนหนึ่งของ functions ซึ่งแต่ละครอบคลุมหมวดหมู่เฉพาะ :

   •   Basic math functions
   •   Fast math functions
   •   Complex math functions
   •   Filters
   •   Matrix functions
   •   Transforms
   •   Motor control functions
   •   Statistical functions
   •   Support functions
   •   Interpolation functions

The library มีฟั่งชั่นที่แยกกันสำหรับการทำงานบน 8-bit integers, 16-bit integers, 32-bit integer and 32-bit floating-point values.

24
ARM Processors / STM32F1 DSP
« on: June 28, 2021, 09:39:56 am »
AN4841
Application note
Digital signal processing for STM32 microcontrollers using CMSIS

Introduction

application note นี้อธิบาย the development of digital filters สำหรับ analog signals, และการแปลงระหว่าง time และ frequency domains. ตัวอย่างที่กล่าวถึงในเอกสารนี้ ได้แก่ a low-pass และ a high-pass FIR filter, ตลอดจน Fourier fast transforms ด้วย floating และ fixed point ที่ความถี่ที่ต่างกัน.

เฟิร์มแวร์ที่เกี่ยวข้อง (X-CUBE-DSPDEMO) ซึ่งใช้ได้กับ STM32F429xx and STM32F746xx MCUs, สามารถปรับให้เข้ากับ STM32 microcontroller รุ่นใดๆก็ได้.

ปล.  ลองโหลดเฟิร์มแวร์ X-CUBE-DSPDEMO มาดูกันก่อน
       เรื่อง FFT ลองดูที่นี่ก็ได้ https://slideplayer.in.th/slide/1963070/
       ยังไงนะ ถ้าเป็น DFT จะการคูณเป็น O(N^2) แต่ถ้าเป็น FFT ก็จะลดรูปเหลือ O(Nlog2N) ซึ่งจะลดลงมามาก
       ลองกูเกิ้ลศึกษากันดูเอานะครับ

Pages: 1 2 [3] 4 5 ... 16