Electoday 4.0

ไมโครคอนโทรลเลอร์ => ARM Processors => Topic started by: tha on July 13, 2021, 01:28:14 pm

Title: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 13, 2021, 01:28:14 pm
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__BasicAbs.html

(https://i.imgur.com/NA6pR1C.png)

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.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 13, 2021, 01:30:02 pm
(https://i.imgur.com/zMFGZqP.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 13, 2021, 01:34:27 pm
(https://i.imgur.com/VopokSG.png)

Scaling and Overflow Behavior:

The function ใช้ saturating arithmetic. The Q15 ค่า -1 (0x8000) จะถูกทำให้อิ่มตัวไปยัง the maximum allowable positive value 0x7FFF.

References __PKHBT, __QSUB16(), __SIMD32_CONST, and blockSize.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 13, 2021, 01:38:55 pm
(https://i.imgur.com/qTp0uv6.png)

Scaling and Overflow Behavior:

The function ใช้ saturating arithmetic. The Q31 ค่า -1 (0x80000000) จะถูกทำให้อิ่มตัวไปยัง the maximum allowable positive value 0x7FFFFFFF.

References __QSUB(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 13, 2021, 01:44:27 pm
(https://i.imgur.com/6TBypPP.png)

Conditions for optimum performance

Input and output buffers ควรถูกวางแนวโดย 32-bit

Scaling and Overflow Behavior:

The function ใช้ saturating arithmetic. The Q7 ค่า -1 (0x80) จะถูกทำให้อิ่มตัวไปยัง the maximum allowable positive value 0x7F

References __QSUB8(), and blockSize..
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 07:35:45 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__BasicAdd.html

(https://i.imgur.com/sNJ0BHC.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 07:39:16 am
(https://i.imgur.com/WdpyF6d.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 07:44:06 am
(https://i.imgur.com/6UBLhlW.png)

Scaling and Overflow Behavior:

The function ใช้ saturating arithmetic. ผลลัพธ์ที่อยู่นอกย่าน Q15 ที่ยอมได้ [0x8000 0x7FFF] จะถูกทำให้อิ่มตัว.

References __QADD16(), __SIMD32, and blockSize.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 07:46:23 am
(https://i.imgur.com/kziRkNh.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 07:48:29 am
(https://i.imgur.com/PSVufMy.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 09:36:57 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__dot__prod.html

(https://i.imgur.com/eCygRO1.png)

Description

คำนวณ the dot product ของ two vectors. The vectors ถูกคูณ element-by-element และจากนั้นถูกรวม.

    sum = pSrcA[0]*pSrcB[0] + pSrcA[1]*pSrcB[1] + ... + pSrcA[blockSize-1]*pSrcB[blockSize-1]

มีฟังชั่นที่แยกกันสำหรับ floating-point, Q7, Q15, and Q31 data types.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 09:39:17 am
(https://i.imgur.com/W0HVpS3.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 09:44:56 am
(https://i.imgur.com/RkHiNnn.png)

Scaling and Overflow Behavior:

The intermediate multiplications อยู่ใน 1.15 x 1.15 = 2.30 format และผลลัพธ์เหล่านี้ถูกบวกไปยัง a 64-bit accumulator ใน 34.30 format. Nonsaturating additions ถูกใช้และถูกให้ว่ามี 33 guard bits ใน the accumulator ไม่มีความเสี่ยงของ overflow. The return result อยู่ใน 34.30 format.

References __SIMD32, __SMLALD(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 09:52:44 am
(https://i.imgur.com/30Vlp8X.png)

Scaling and Overflow Behavior:

The intermediate multiplications อยู่ใน 1.31 x 1.31 = 2.62 format และเหล่านี้ถูกตัดเป็น 2.48 format โดยการทิ้ง the lower 14 bits. The 2.48 result จากนั้นถูกบวกโดยไม่มีการอิ่มตัวไปยัง a 64-bit accumulator ใน 16.48 format. มี 15 guard bits ใน the accumulator และไม่มีความเสี่ยงขอ overflow ตราบเท่าที่ความยาวของ the vectors น้อยกว่า 2^16 elements. The return result อยู่ใน 16.48 format.

References blockSize.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 09:59:53 am
(https://i.imgur.com/Srd3IgH.png)

Scaling and Overflow Behavior:

The intermediate multiplications อยู่ใน 1.7 x 1.7 = 2.14 format และผลลัพธ์เหล่านี้ถูกบวกไปยัง an accumulator ใน 18.14 format. Nonsaturating additions ถูกใช้และไม่มีอันตรายของการพันรอบตราบเท่าที่ the vectors ยาวน้อยกว่า 2^18 elements. The return result อยู่ใน 18.14 format.

References __SIMD32, __SMLAD(), __SXTB16(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 10:57:02 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__BasicMult.html

(https://i.imgur.com/vKgT6sf.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 10:59:29 am
(https://i.imgur.com/ZMyB4pP.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:01:06 am
(https://i.imgur.com/wqxznh6.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:03:06 am
(https://i.imgur.com/QLKb9ax.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:04:41 am
(https://i.imgur.com/LDt6yDU.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:29:10 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__negate.html

(https://i.imgur.com/YRrZcjQ.png)

Description

ทำให้เป็นลบ the elements of a vector.

    pDst[n] = -pSrc[n],   0 <= n < blockSize.

The functions รองรับการคำนวณแบบแทนที่ยอมให้ the source and destination pointers อ้างอิงไปยัง the same memory buffer. มีฟั่งชั่นที่แยกกันสำหรับ floating-point, Q7, Q15, and Q31 data types.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:30:46 am
(https://i.imgur.com/zXEMWOU.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:32:20 am
(https://i.imgur.com/umVwgFm.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:33:57 am
(https://i.imgur.com/y8b7JiF.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 11:35:27 am
(https://i.imgur.com/zKTlkNR.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 01:45:34 pm
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__offset.html

(https://i.imgur.com/jNL5CTL.png)

Description

บวก a constant offset ไปยังแต่ละ element of a vector.

    pDst[n] = pSrc[n] + offset,   0 <= n < blockSize.

The functions รองรับการคำนวณแบบแทนที่ยอมให้ the source and destination pointers อ้างอิงไปยัง the same memory buffer. มีฟั่งชั่นที่แยกกันสำหรับ floating-point, Q7, Q15, and Q31 data types.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 01:47:24 pm
(https://i.imgur.com/LUPjA37.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 01:49:12 pm
(https://i.imgur.com/x5LJtvS.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 01:51:01 pm
(https://i.imgur.com/rCJMWCK.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 14, 2021, 01:52:32 pm
(https://i.imgur.com/tYMkm2R.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 07:34:41 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__scale.html

(https://i.imgur.com/Kl0jEQh.png)

Description

คูณ a vector ด้วย a scalar value. สำหรับ floating-point data, the algorithm ถูกใช้ :

    pDst[n] = pSrc[n] * scale,   0 <= n < blockSize.

ใน the fixed-point Q7, Q15, and Q31 functions, scale ถูกแสดงโดย a fractional multiplication scaleFract และ an arithmetic shift shift. The shift ยอมให้ได้รับ the scaling operation ที่เกิน 1.0. The algorithm ที่ใช้กับ fixed-point data คือ:

  pDst[n] = (pSrc[n] * scaleFract) << shift,   0 <= n < blockSize.

The overall scale factor ถูกใช้กับ the fixed-point data คือ

 scale = scaleFract * 2^shift.

The functions รองรับการคำนวณแบบแทนที่ยอมให้ the source and destination pointers อ้างอิงไปยัง the same memory buffer.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 07:40:31 am
(https://i.imgur.com/g0Qi6WG.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 07:46:48 am
(https://i.imgur.com/oBeXWL4.png)

Scaling and Overflow Behavior:

The input data *pSrc และ scaleFract อยู่ใน 1.15 format. เหล่านี้ถูกคูณกันเพื่อให้ได้ a 2.30 intermediate result และสิ่งนี้ถูกเลื่อนพร้อมด้วย saturation ไปยัง 1.15 format.

References __PKHBT, __SIMD32, and blockSize.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 07:50:24 am
(https://i.imgur.com/f2tF6gu.png)

Scaling and Overflow Behavior:

The input data *pSrc และ scaleFract อยู่ใน 1.31 format. เหล่านี้ถูกคูณกันเพื่อให้ได้ a 2.62 intermediate result และนี้ถูกเลื่อนพร้อมด้วย saturation ไปยัง 1.31 format.

References blockSize.

Referenced by main().
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 07:53:28 am
(https://i.imgur.com/hbhjBnI.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 09:25:11 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__shift.html

(https://i.imgur.com/5SZP27I.png)

Description

เลื่อน the elements ของ a fixed-point vector โดยจำนวนที่ระบุของ bits. มีฟังชั่นที่แยกกันสำหรับ Q7, Q15, and Q31 data types. The underlying algorithm ถูกใช้ :

    pDst[n] = pSrc[n] << shift,   0 <= n < blockSize.

ถ้า shift เป็นบวกดังนั้น the elements of the vector จะถูกเลื่อนไปทางซ้าย. ถ้า shift เป็นลบดังัน้น the elements of the vector จะถูกเลื่อนไปทางขวา.

The functions รองรับการคำนวณแบบแทนที่ยอมให้ the source and destination pointers อ้างอิงไปยัง the same memory buffer.
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 09:29:08 am
(https://i.imgur.com/Duqxz75.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 09:31:02 am
(https://i.imgur.com/KAGxqd7.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 09:32:34 am
(https://i.imgur.com/2Ch0Ls9.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 10:47:00 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__BasicSub.html

(https://i.imgur.com/cL4QB6U.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 10:48:53 am
(https://i.imgur.com/LJcnPzU.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 10:50:30 am
(https://i.imgur.com/vLVtiqL.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 10:52:06 am
(https://i.imgur.com/i0Twz0a.png)
Title: Re: STM32F1 CMSIS DSP Basic Math Functions
Post by: tha on July 15, 2021, 10:53:43 am
(https://i.imgur.com/mdKgrdR.png)