Electoday 4.0

ไมโครคอนโทรลเลอร์ => ARM Processors => Topic started by: tha on July 09, 2021, 07:13:38 am

Title: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 09, 2021, 07:13:38 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__Max.html (http://file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__Max.html)

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

Description

หาค่าสูงสุดของ an array of data. The function คืนกลับทั้ง the maximum value และตำแหน่งของมันภายใน the array. มีฟังชั่นที่แยกกันสำหรับ floating-point, Q31, Q15, and Q7 data types.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 09, 2021, 07:32:15 am
(https://i.imgur.com/gPHJ5Uj.png)

Parameters
[in]   *pSrc      ชี้ไปยัง the input vector
[in]   blockSize      ความยาวของ the input vector
[out]   *pResult      maximum value ส่งคืนที่นี่
[out]   *pIndex      index of maximum value ส่งคืนที่นี่

Returns
none.

อ้างอิงโดย main()
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 09, 2021, 07:36:11 am
(https://i.imgur.com/O2Y11UM.png)

Parameters
[in]   *pSrc      ชี้ไปยัง the input vector
[in]   blockSize      ความยาวของ the input vector
[out]   *pResult      maximum value ส่งคืนที่นี่
[out]   *pIndex      index of maximum value ส่งคืนที่นี่

Returns
none.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 09, 2021, 07:40:16 am
(https://i.imgur.com/otLvuhR.png)

Parameters
[in]   *pSrc      ชี้ไปยัง the input vector
[in]   blockSize      ความยาวของ the input vector
[out]   *pResult      maximum value ส่งคืนกลับที่นี่
[out]   *pIndex      index of maximum value ส่งคืนกลับที่นี่

Returns
none.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 09, 2021, 07:43:10 am
(https://i.imgur.com/MTbeTRj.png)

Parameters
[in]   *pSrc      ชี้ไปยัง the input vector
[in]   blockSize      ความยาวของ the input vector
[out]   *pResult      maximum value ส่งคืนกลับที่นี่
[out]   *pIndex      index of maximum value ส่งคืนกลับที่นี่

Returns
none.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 10, 2021, 07:29:37 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__mean.html

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

Description

คำนวณค่าเฉลี่ยของ the input vector. Mean ถูกกำหนดเป็นค่าเฉลี่ยขององค์ประกอบใน the vector. The underlying algorithm ถูกใช้ :

 Result = (pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]) / blockSize;

มีฟังชั่นที่แยกกันสำหรับ floating-point, Q31, Q15, and Q7 data types.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 10, 2021, 07:31:52 am
(https://i.imgur.com/imoMOcc.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 10, 2021, 08:30:04 am
(https://i.imgur.com/AoGUtVs.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 32-bit internal accumulator. The input ถูกแสดงใน 1.15 format และถูกสะสมใน a 32-bit accumulator ใน 17.15 format. ไม่มีความเสี่ยงของ internal overflow ด้วยการเข้าใกล้นี้, และ the full precision ของ intermediate result ถูกรักษา. สุดท้าย, the accumulator ถูกทำให้อิ่มตัวและตัดออกเพื่อให้ได้ผลลัพธ์ของ 1.15 format.

References __SIMD32, and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 10, 2021, 08:34:33 am
(https://i.imgur.com/YV3X6zn.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.31 format และถูกสะสมใน a 64-bit accumulator ใน 33.31 format. ไม่มีความเสี่ยงของ internal overflow ด้วยการเข้าใกล้นี้, และ the full precision ของ intermediate result ถูกรักษา. สุดท้าย, the accumulator ถูกทำให้อิ่มตัวและตัดออกเพื่อให้ได้ผลลัพธ์ของ 1.31 format.

References blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 10, 2021, 08:38:12 am
(https://i.imgur.com/dYuNcU0.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 32-bit internal accumulator. The input ถูกแสดงใน 1.7 format และถูกสะสมใน a 32-bit accumulator ใน 25.7 format. ไม่มีความเสี่ยงของ internal overflow ด้วยการเข้าใกล้นี้, และ the full precision ของ intermediate result ถูกรักษา. สุดท้าย, the accumulator ถูกทำให้อิ่มตัวและตัดออกเพื่อให้ได้ผลลัพธ์ของ 1.7 format.

References __SIMD32, and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 07:21:46 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__Min.html

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

Description

คำนวณค่าต่ำสุดของ an array of data. The function คืนกลับทั้ง the minimum value และตำแหน่งของมันภายใน the array. มีฟังชั่นที่แยกกันสำหรับ floating-point, Q31, Q15, and Q7 data types.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 07:31:04 am
(https://i.imgur.com/My2y6is.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 07:32:26 am
(https://i.imgur.com/lWytEHW.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 07:33:01 am
(https://i.imgur.com/LIEGHrr.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 07:33:30 am
(https://i.imgur.com/KTsyFvq.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 09:20:10 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__power.html

(https://i.imgur.com/8Egvnu6.png)

Description

คำนวณผลรวมของกำลังสองขององค์ประกอบใน the input vector. The underlying algorithm ถูกใช้:

Result = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + pSrc[2] * pSrc[2] + ... + pSrc[blockSize-1] * pSrc[blockSize-1];

มีฟังชั่นที่แยกกันสำหรับ floating-point, Q31, Q15, and Q7 data types.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 09:32:14 am
(https://i.imgur.com/ThSxQmo.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 09:44:31 am
(https://i.imgur.com/KtJ9U8V.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.15 format  การคูณกลางทางให้ a 2.30 format, และผลลัพธ์ถูกบวกโดยไม่มีการอิ่มตัวไปยัง a 64-bit accumulator  ใน 34.30 format. ด้วย 33 guard bits ใน the accumulator, ไม่มีความเสี่ยงของ overflow, และ the full precision ของ the intermediate multiplication ถูกรักษา. สุดท้ายy, the return result อยู่ในn 34.30 format.

References __SIMD32, __SMLALD(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 09:56:26 am
(https://i.imgur.com/6pdRIiF.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.31 format  การคูณกลางทางให้ a 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 full precision ของ the intermediate multiplication ถูกรักษา. สุดท้ายy, the return result อยู่ใน 16.48 format.

References blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 10:08:04 am
(https://i.imgur.com/PJuPdjK.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 32-bit internal accumulator. The input ถูกแสดงใน 1.7 format  การคูณกลางทางให้ a 2.14 format, และผลลัพธ์ถูกบวกโดยไม่มีการอิ่มตัวไปยัง an accumulator  ใน 18.14 format. ด้วย 17 guard bits ใน the accumulator, ไม่มีความเสี่ยงของ overflow, และ the full precision ของ the intermediate multiplication ถูกรักษา. สุดท้ายy, the return result อยู่ในn 18.14 format.

References __SIMD32, __SMLAD(), __SXTB16(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 02:06:18 pm
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__RMS.html

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

Description

คำนวณ the Root Mean Sqaure ขององค์ประกอบใน the input vector. The underlying algorithm ถูกใช้ :

Result = sqrt(((pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]) / blockSize));

มีฟังชั่นที่แยกกันสำหรับ floating-point, Q31 and Q15 data types.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 02:08:26 pm
(https://i.imgur.com/j3R9xX6.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 02:17:26 pm
(https://i.imgur.com/8blcwu7.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.15 format  การคูณกลางทางให้ a 2.30 format, และผลลัพธ์นี้ถูกบวกโดยไม่มีการอิ่มตัวไปยัง a 64-bit accumulator  ใน 34.30 format. ด้วย 33 guard bits ใน the accumulator, ไม่มีความเสี่ยงของ overflow, และ the full precision ของ the intermediate multiplication ถูกรักษา. สุดท้าย, the 34.30 result ถูกตัดเป็น 34.15 format โดยการทิ้ง the lower 15 bits, และจากนั้นถูกอิ่มตัวเพื่อให้ได้ผลลัพธ์ในn 1.15 format.

References __SIMD32, __SMLALD(), arm_sqrt_q15(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 12, 2021, 02:32:18 pm
(https://i.imgur.com/qB3dl8p.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.31 format  การคูณกลางทางให้ a 2.62 format, The accumulator รักษา full precision ของ the intermediate multiplication results, แต่จัดให้มีเพียง a single guard bit. ไม่มีการอิ่มตัวบนการบวกกลางทาง. ถ้า the accumulator overflows, มันจะพันรอบและบิดเบือน the result. เพื่อหลีกเลี่ยง overflows อย่างสมบูรณ์, the input signal ต้องถูกปรับขนาดลงโดย log2(blockSize) bits, เนื่องจากการบวก blockSize ทั้งหมดถูกดำเนินการภายใน. สุดท้าย, the 2.62 accumulator ถูกเลื่อนไปทางขวา 31 บิตเพื่อให้ได้ a 1.31 format value.

References arm_sqrt_q31(), blockSize, and clip_q63_to_q31().
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 07:27:55 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__STD.html

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

Description

คำนวณ the standard deviation ขององค์ประกอบใน the input vector. The underlying algorithm ถูกใช้ :

 Result = sqrt((sumOfSquares - sum^2 / blockSize) / (blockSize - 1))
 โดยที่, sumOfSquares = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]
                    sum = pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]
มีฟังชั่นที่แยกกันสำหรับ floating-point, Q31 and Q15 data types.

ปล. สถิติ เรื่อง standard deviation กับ variance ดูเอาที่นี่ก็ได้ครับ
      https://www.coraline.co.th/single-post/basic-statistic-1 (https://www.coraline.co.th/single-post/basic-statistic-1)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 07:34:50 am
(https://i.imgur.com/sRewpfg.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 07:47:41 am
(https://i.imgur.com/VqndWl1.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.15 format  การคูณกลางทางให้ a 2.30 format, และผลลัพธ์ถูกบวกโดยไม่มีการอิ่มตัวไปยัง a 64-bit accumulator  ใน 34.30 format. ด้วย 33 guard bits ใน the accumulator, ไม่มีความเสี่ยงของ overflow, และ the full precision ของ the intermediate multiplication ถูกรักษา. สุดท้าย, the 34.30 result ถูกตัดเป็น 34.15 format โดยการทิ้ง the lower 15 bits, และจากนั้นทำให้อิ่มตัวเพื่อให้ได้ผลลัพธ์ใน in 1.15 format.

References __SIMD32, __SMLALD(), arm_sqrt_q15(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 08:03:30 am
(https://i.imgur.com/YoxaoAe.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.31 format , ซึ่งจากนั้นถูกเลื่อนลงไป 8 bits ซึ่งให้ผล 1.23, และ intermediate multiplication ให้ผล a 2.46 format. The accumulator รักษา full precision ของ the intermediate multiplication results, แต่จัดให้มีเพียง a 16 guard bits เท่านั้น. ไม่มีการอิ่มตัวบน intermediate additions. ถ้า the accumulator overflows, มันจะพันรอบและบิดเบือน the result. เพื่อหลีกเลี่ยง overflows อย่างสมบูรณ์, the input signal ต้องถูกปรับขนาดลงโดย log2(blockSize)-8 bits, เนื่องจาก a total of blockSize additions ถูกดำเนินการภายใน. หลังจากการหาร, internal variables ควรเป็น Q18.46 สุดท้าย, the 18.46 accumulator ถูกเลื่อนไปทางขวา 15 bits เพื่อให้ได้ a 1.31 format value.

References arm_sqrt_q31(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 09:13:25 am
file:///D:/System%20Workbench/STM32CubeF1-master/Drivers/CMSIS/docs/DSP/html/group__variance.html

(https://i.imgur.com/7t322YG.png)

Description

คำนวณ the variance ของ the elements ใน the input vector. The underlying algorithm ถูกใช้เป็น the direct method บางครั้งอ้างอิงถึงอย่าง the two-pass method:

  Result = sum(element - meanOfElements)^2) / numElement - 1
  โดยที่, meanOfElements = ( pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] ) / blockSize

มีฟังชั่นที่แยกกันสำหรับ floating point, Q31, and Q15 data types.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 09:15:39 am
(https://i.imgur.com/P9GmqmB.png)
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 09:23:13 am
(https://i.imgur.com/ETmFD1P.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.15 format  การคูณกลางทางให้ a 2.30 format, และผลลัพธ์นี้ถูกบวกโดยไม่มีการอิ่มตัวไปยัง a 64-bit accumulator  ใน 34.30 format. ด้วย 33 guard bits ใน the accumulator, ไม่มีความเสี่ยงของ overflow, และ the full precision ของ the intermediate multiplication ถูกรักษา. สุดท้าย, the 34.30 result ถูกตัดเป็น 34.15 format โดยการทิ้ง the lower 15 bits, และจากนั้นถูกอิ่มตัวเพื่อให้ได้ผลลัพธ์ใน 1.15 format.

References __SIMD32, __SMLALD(), and blockSize.
Title: Re: STM32F1 CMSIS DSP Statistics Functions(สถิติ)
Post by: tha on July 13, 2021, 09:28:47 am
(https://i.imgur.com/rzGDSb4.png)

Scaling and Overflow Behavior:

The function ถูกจัดให้มีใช้โดยใช้ a 64-bit internal accumulator. The input ถูกแสดงใน 1.31 format , ซึ่งจากนั้นถูกเลื่อนลงไป 8 bits ซึ่งให้ผล 1.23, และ intermediate multiplication ให้ผล a 2.46 format. The accumulator รักษา full precision ของ the intermediate multiplication results, แต่จัดให้มีเพียง a 16 guard bits เท่านั้น. ไม่มีการอิ่มตัวบน intermediate additions. ถ้า the accumulator overflows, มันจะพันรอบและบิดเบือน the result. เพื่อหลีกเลี่ยง overflows อย่างสมบูรณ์, the input signal ต้องถูกปรับขนาดลงโดย log2(blockSize)-8 bits, เนื่องจาก a total of blockSize additions ถูกดำเนินการภายใน. หลังจากการหาร, internal variables ควรเป็น Q18.46 สุดท้าย, the 18.46 accumulator ถูกเลื่อนไปทางขวา 15 bits เพื่อให้ได้ a 1.31 format value.

References blockSize.