254 #define __CMSIS_GENERIC 256 #if defined (ARM_MATH_CM4) 258 #elif defined (ARM_MATH_CM3) 260 #elif defined (ARM_MATH_CM0) 264 #warning "Define either ARM_MATH_CM4 OR ARM_MATH_CM3...By Default building on ARM_MATH_CM4....." 267 #undef __CMSIS_GENERIC 280 #define DELTA_Q31 (0x100) 281 #define DELTA_Q15 0x5 282 #define INDEX_MASK 0x0000003F 283 #define PI 3.14159265358979f 289 #define TABLE_SIZE 256 290 #define TABLE_SPACING_Q31 0x800000 291 #define TABLE_SPACING_Q15 0x80 298 #define INPUT_SPACING 0xB60B61 307 ARM_MATH_SUCCESS = 0,
308 ARM_MATH_ARGUMENT_ERROR = -1,
309 ARM_MATH_LENGTH_ERROR = -2,
310 ARM_MATH_SIZE_MISMATCH = -3,
311 ARM_MATH_NANINF = -4,
312 ARM_MATH_SINGULAR = -5,
313 ARM_MATH_TEST_FAILURE = -6
324 typedef int16_t q15_t;
329 typedef int32_t q31_t;
334 typedef int64_t q63_t;
339 typedef float float32_t;
344 typedef double float64_t;
349 #define __SIMD32(addr) (*(int32_t **) & (addr)) 351 #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0) 355 #define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \ 356 (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) ) 364 #ifndef ARM_MATH_BIG_ENDIAN 366 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \ 367 (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \ 368 (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \ 369 (((int32_t)(v3) << 24) & (int32_t)0xFF000000) ) 372 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \ 373 (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \ 374 (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \ 375 (((int32_t)(v0) << 24) & (int32_t)0xFF000000) ) 383 static __INLINE q31_t clip_q63_to_q31(
386 return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
387 ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x;
393 static __INLINE q15_t clip_q63_to_q15(
396 return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
397 ((0x7FFF ^ ((q15_t) (x >> 63)))) : (q15_t) (x >> 15);
403 static __INLINE q7_t clip_q31_to_q7(
406 return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ?
407 ((0x7F ^ ((q7_t) (x >> 31)))) : (q7_t) x;
413 static __INLINE q15_t clip_q31_to_q15(
416 return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ?
417 ((0x7FFF ^ ((q15_t) (x >> 31)))) : (q15_t) x;
424 static __INLINE q63_t mult32x64(
428 return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) +
429 (((q63_t) (x >> 32) * y)));
433 #if defined (ARM_MATH_CM0) && defined ( __CC_ARM ) 437 #if defined (ARM_MATH_CM0) && ((defined (__ICCARM__)) ||(defined (__GNUC__)) || defined (__TASKING__) ) 439 static __INLINE uint32_t __CLZ(q31_t data);
442 static __INLINE uint32_t __CLZ(q31_t data)
445 uint32_t mask = 0x80000000;
447 while((data & mask) == 0)
463 static __INLINE uint32_t arm_recip_q31(
469 uint32_t out, tempVal;
475 signBits = __CLZ(in) - 1;
479 signBits = __CLZ(-in) - 1;
486 index = (uint32_t) (in >> 24u);
487 index = (index & INDEX_MASK);
490 out = pRecipTable[index];
494 for (i = 0u; i < 2u; i++)
496 tempVal = (q31_t) (((q63_t) in * out) >> 31u);
497 tempVal = 0x7FFFFFFF - tempVal;
500 out = (q31_t) clip_q63_to_q31(((q63_t) out * tempVal) >> 30u);
507 return (signBits + 1u);
514 static __INLINE uint32_t arm_recip_q15(
520 uint32_t out = 0, tempVal = 0;
521 uint32_t index = 0, i = 0;
522 uint32_t signBits = 0;
526 signBits = __CLZ(in) - 17;
530 signBits = __CLZ(-in) - 17;
538 index = (index & INDEX_MASK);
541 out = pRecipTable[index];
545 for (i = 0; i < 2; i++)
547 tempVal = (q15_t) (((q31_t) in * out) >> 15);
548 tempVal = 0x7FFF - tempVal;
550 out = (q15_t) (((q31_t) out * tempVal) >> 14);
557 return (signBits + 1);
565 #if defined(ARM_MATH_CM0) 567 static __INLINE q31_t __SSAT(
571 int32_t posMax, negMin;
575 for (i = 0; i < (y - 1); i++)
582 posMax = (posMax - 1);
610 #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0) 615 static __INLINE q31_t __QADD8(
626 r = __SSAT((q31_t) (r + s), 8);
627 s = __SSAT(((q31_t) (((x << 16) >> 24) + ((y << 16) >> 24))), 8);
628 t = __SSAT(((q31_t) (((x << 8) >> 24) + ((y << 8) >> 24))), 8);
629 u = __SSAT(((q31_t) ((x >> 24) + (y >> 24))), 8);
631 sum = (((q31_t) u << 24) & 0xFF000000) | (((q31_t) t << 16) & 0x00FF0000) |
632 (((q31_t) s << 8) & 0x0000FF00) | (r & 0x000000FF);
641 static __INLINE q31_t __QSUB8(
652 r = __SSAT((r - s), 8);
653 s = __SSAT(((q31_t) (((x << 16) >> 24) - ((y << 16) >> 24))), 8) << 8;
654 t = __SSAT(((q31_t) (((x << 8) >> 24) - ((y << 8) >> 24))), 8) << 16;
655 u = __SSAT(((q31_t) ((x >> 24) - (y >> 24))), 8) << 24;
658 (u & 0xFF000000) | (t & 0x00FF0000) | (s & 0x0000FF00) | (r & 0x000000FF);
670 static __INLINE q31_t __QADD16(
681 r = __SSAT(r + s, 16);
682 s = __SSAT(((q31_t) ((x >> 16) + (y >> 16))), 16) << 16;
684 sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
693 static __INLINE q31_t __SHADD16(
704 r = ((r >> 1) + (s >> 1));
705 s = ((q31_t) ((x >> 17) + (y >> 17))) << 16;
707 sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
716 static __INLINE q31_t __QSUB16(
727 r = __SSAT(r - s, 16);
728 s = __SSAT(((q31_t) ((x >> 16) - (y >> 16))), 16) << 16;
730 sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
738 static __INLINE q31_t __SHSUB16(
749 r = ((r >> 1) - (s >> 1));
750 s = (((x >> 17) - (y >> 17)) << 16);
752 diff = (s & 0xFFFF0000) | (r & 0x0000FFFF);
760 static __INLINE q31_t __QASX(
767 sum = ((sum + clip_q31_to_q15((q31_t) ((
short) (x >> 16) + (
short) y))) << 16) +
768 clip_q31_to_q15((q31_t) ((
short) x - (
short) (y >> 16)));
776 static __INLINE q31_t __SHASX(
787 r = ((r >> 1) - (y >> 17));
788 s = (((x >> 17) + (s >> 1)) << 16);
790 sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
799 static __INLINE q31_t __QSAX(
806 sum = ((sum + clip_q31_to_q15((q31_t) ((
short) (x >> 16) - (
short) y))) << 16) +
807 clip_q31_to_q15((q31_t) ((
short) x + (
short) (y >> 16)));
815 static __INLINE q31_t __SHSAX(
826 r = ((r >> 1) + (y >> 17));
827 s = (((x >> 17) - (s >> 1)) << 16);
829 sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
837 static __INLINE q31_t __SMUSDX(
842 return ((q31_t)(((
short) x * (
short) (y >> 16)) -
843 ((
short) (x >> 16) * (
short) y)));
849 static __INLINE q31_t __SMUADX(
854 return ((q31_t)(((
short) x * (
short) (y >> 16)) +
855 ((
short) (x >> 16) * (
short) y)));
861 static __INLINE q31_t __QADD(
865 return clip_q63_to_q31((q63_t) x + y);
871 static __INLINE q31_t __QSUB(
875 return clip_q63_to_q31((q63_t) x - y);
881 static __INLINE q31_t __SMLAD(
887 return (sum + ((
short) (x >> 16) * (
short) (y >> 16)) +
888 ((
short) x * (
short) y));
894 static __INLINE q31_t __SMLADX(
900 return (sum + ((
short) (x >> 16) * (
short) (y)) +
901 ((
short) x * (
short) (y >> 16)));
907 static __INLINE q31_t __SMLSDX(
913 return (sum - ((
short) (x >> 16) * (
short) (y)) +
914 ((
short) x * (
short) (y >> 16)));
920 static __INLINE q63_t __SMLALD(
926 return (sum + ((
short) (x >> 16) * (
short) (y >> 16)) +
927 ((
short) x * (
short) y));
933 static __INLINE q63_t __SMLALDX(
939 return (sum + ((
short) (x >> 16) * (
short) y)) +
940 ((short) x * (
short) (y >> 16));
946 static __INLINE q31_t __SMUAD(
951 return (((x >> 16) * (y >> 16)) +
952 (((x << 16) >> 16) * ((y << 16) >> 16)));
958 static __INLINE q31_t __SMUSD(
963 return (-((x >> 16) * (y >> 16)) +
964 (((x << 16) >> 16) * ((y << 16) >> 16)));
1026 uint32_t blockSize);
1043 uint32_t blockSize);
1058 uint32_t blockSize);
1072 uint32_t blockSize);
1090 uint32_t blockSize);
1104 uint32_t blockSize);
1118 uint32_t blockSize);
1134 uint32_t blockSize);
1148 uint32_t blockSize);
1162 float32_t * pCoeffs,
1164 uint32_t blockSize);
1219 uint32_t blockSize);
1252 uint32_t blockSize);
1268 uint32_t blockSize);
1283 uint32_t blockSize);
1315 uint32_t blockSize);
1329 float32_t * pCoeffs,
1330 float32_t * pState);
1718 int32_t resetStateFlag);
1737 int32_t resetStateFlag);
1757 int32_t resetStateFlag);
1837 uint32_t blockSize);
1852 uint32_t blockSize);
1867 uint32_t blockSize);
1882 uint32_t blockSize);
1955 uint8_t bitReverseFlag);
1981 uint8_t bitReverseFlag);
2007 uint8_t bitReverseFlag);
2024 void arm_radix4_butterfly_f32(
2028 uint16_t twidCoefModifier);
2040 void arm_radix4_butterfly_inverse_f32(
2044 uint16_t twidCoefModifier,
2045 float32_t onebyfftLen);
2056 void arm_bitreversal_f32(
2059 uint16_t bitRevFactor,
2060 uint16_t *pBitRevTab);
2071 void arm_radix4_butterfly_q31(
2075 uint32_t twidCoefModifier);
2086 void arm_radix4_butterfly_inverse_q31(
2090 uint32_t twidCoefModifier);
2101 void arm_bitreversal_q31(
2104 uint16_t bitRevFactor,
2105 uint16_t *pBitRevTab);
2116 void arm_radix4_butterfly_q15(
2120 uint32_t twidCoefModifier);
2131 void arm_radix4_butterfly_inverse_q15(
2135 uint32_t twidCoefModifier);
2146 void arm_bitreversal_q15(
2149 uint16_t bitRevFactor,
2150 uint16_t *pBitRevTab);
2226 uint32_t fftLenReal,
2228 uint32_t bitReverseFlag);
2256 uint32_t fftLenReal,
2258 uint32_t bitReverseFlag);
2273 uint32_t fftLenReal,
2275 uint32_t bitReverseFlag);
2322 float32_t normalize);
2335 float32_t * pInlineBuffer);
2382 q31_t * pInlineBuffer);
2429 q15_t * pInlineBuffer);
2444 uint32_t blockSize);
2459 uint32_t blockSize);
2474 uint32_t blockSize);
2489 uint32_t blockSize);
2504 uint32_t blockSize);
2519 uint32_t blockSize);
2534 uint32_t blockSize);
2549 uint32_t blockSize);
2564 uint32_t blockSize);
2581 uint32_t blockSize);
2598 uint32_t blockSize);
2615 uint32_t blockSize);
2628 uint32_t blockSize);
2641 uint32_t blockSize);
2654 uint32_t blockSize);
2667 uint32_t blockSize);
2682 float32_t * result);
2742 uint32_t blockSize);
2757 uint32_t blockSize);
2772 uint32_t blockSize);
2787 uint32_t blockSize);
2802 uint32_t blockSize);
2817 uint32_t blockSize);
2832 uint32_t blockSize);
2845 uint32_t blockSize);
2858 uint32_t blockSize);
2871 uint32_t blockSize);
2884 uint32_t blockSize);
2895 uint32_t blockSize);
2907 uint32_t blockSize);
2919 uint32_t blockSize);
2931 uint32_t blockSize);
2942 uint32_t blockSize);
2954 uint32_t blockSize);
2966 uint32_t blockSize);
2978 uint32_t blockSize);
3100 uint32_t firstIndex,
3101 uint32_t numPoints);
3121 uint32_t firstIndex,
3122 uint32_t numPoints);
3142 uint32_t firstIndex,
3143 uint32_t numPoints);
3163 uint32_t firstIndex,
3164 uint32_t numPoints);
3185 uint32_t firstIndex,
3186 uint32_t numPoints);
3206 uint32_t firstIndex,
3207 uint32_t numPoints);
3263 uint32_t blockSize);
3282 float32_t * pCoeffs,
3284 uint32_t blockSize);
3299 uint32_t blockSize);
3314 uint32_t blockSize);
3336 uint32_t blockSize);
3351 uint32_t blockSize);
3366 uint32_t blockSize);
3387 uint32_t blockSize);
3441 uint32_t blockSize);
3462 uint32_t blockSize);
3477 uint32_t blockSize);
3497 uint32_t blockSize);
3513 uint32_t blockSize);
3531 float32_t * pCoeffs,
3533 uint32_t blockSize);
3561 uint32_t blockSize);
3607 uint32_t blockSize);
3622 float32_t * pCoeffs,
3623 float32_t * pState);
3688 uint32_t blockSize);
3719 uint32_t blockSize);
3733 float32_t * pCoeffs,
3734 float32_t * pState);
3749 uint32_t blockSize);
3797 uint32_t blockSize);
3813 float32_t *pkCoeffs,
3814 float32_t *pvCoeffs,
3816 uint32_t blockSize);
3832 uint32_t blockSize);
3852 uint32_t blockSize);
3868 uint32_t blockSize);
3888 uint32_t blockSize);
3919 uint32_t blockSize);
3935 float32_t * pCoeffs,
3938 uint32_t blockSize);
3973 uint32_t postShift);
3992 uint32_t blockSize);
4026 uint32_t blockSize);
4047 uint32_t postShift);
4080 uint32_t blockSize);
4096 float32_t * pCoeffs,
4099 uint32_t blockSize);
4134 uint32_t blockSize);
4190 uint32_t blockSize);
4385 float32_t * pScratchIn,
4386 uint32_t blockSize);
4403 float32_t * pCoeffs,
4405 int32_t * pTapDelay,
4407 uint32_t blockSize);
4424 uint32_t blockSize);
4443 int32_t * pTapDelay,
4445 uint32_t blockSize);
4463 q31_t * pScratchOut,
4464 uint32_t blockSize);
4484 int32_t * pTapDelay,
4486 uint32_t blockSize);
4504 q31_t * pScratchOut,
4505 uint32_t blockSize);
4526 uint32_t blockSize);
4540 float32_t *pCcosVal);
4567 uint32_t numSamples);
4580 uint32_t numSamples);
4593 uint32_t numSamples);
4608 uint32_t numSamples);
4621 uint32_t numSamples);
4634 uint32_t numSamples);
4711 static __INLINE float32_t arm_pid_f32(
4718 out = (S->
A0 * in) +
4746 static __INLINE q31_t arm_pid_q31(
4754 acc = (q63_t) S->
A0 * in;
4757 acc += (q63_t) S->
A1 * S->
state[0];
4760 acc += (q63_t) S->
A2 * S->
state[1];
4763 out = (q31_t) (acc >> 31u);
4794 static __INLINE q15_t arm_pid_q15(
4806 acc = ((q31_t) S->
A0 )* in ;
4811 acc = (q31_t) __SMUAD(S->
A0, in);
4818 acc += (q31_t) S->
A1 * S->
state[0] ;
4819 acc += (q31_t) S->A2 * S->
state[1] ;
4824 acc = __SMLALD(S->
A1, (q31_t)__SIMD32(S->
state), acc);
4829 acc += (q31_t) S->
state[2] << 15;
4832 out = (q15_t) (__SSAT((acc >> 15), 16));
4905 static __INLINE
void arm_clarke_f32(
4908 float32_t * pIalpha,
4915 *pIbeta = ((float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib);
4934 static __INLINE
void arm_clarke_q31(
4940 q31_t product1, product2;
4946 product1 = (q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30);
4949 product2 = (q31_t) (((q63_t) Ib * 0x49E69D16) >> 30);
4952 *pIbeta = __QADD(product1, product2);
4969 uint32_t blockSize);
5009 static __INLINE
void arm_inv_clarke_f32(
5019 *pIb = -0.5 * Ialpha + (float32_t) 0.8660254039 *Ibeta;
5038 static __INLINE
void arm_inv_clarke_q31(
5044 q31_t product1, product2;
5050 product1 = (q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31);
5053 product2 = (q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31);
5056 *pIb = __QSUB(product2, product1);
5074 uint32_t blockSize);
5125 static __INLINE
void arm_park_f32(
5134 *pId = Ialpha * cosVal + Ibeta * sinVal;
5137 *pIq = -Ialpha * sinVal + Ibeta * cosVal;
5159 static __INLINE
void arm_park_q31(
5167 q31_t product1, product2;
5168 q31_t product3, product4;
5171 product1 = (q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31);
5174 product2 = (q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31);
5178 product3 = (q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31);
5181 product4 = (q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31);
5184 *pId = __QADD(product1, product2);
5187 *pIq = __QSUB(product4, product3);
5204 uint32_t blockSize);
5244 static __INLINE
void arm_inv_park_f32(
5247 float32_t * pIalpha,
5253 *pIalpha = Id * cosVal - Iq * sinVal;
5256 *pIbeta = Id * sinVal + Iq * cosVal;
5279 static __INLINE
void arm_inv_park_q31(
5287 q31_t product1, product2;
5288 q31_t product3, product4;
5291 product1 = (q31_t) (((q63_t) (Id) * (cosVal)) >> 31);
5294 product2 = (q31_t) (((q63_t) (Iq) * (sinVal)) >> 31);
5298 product3 = (q31_t) (((q63_t) (Id) * (sinVal)) >> 31);
5301 product4 = (q31_t) (((q63_t) (Iq) * (cosVal)) >> 31);
5304 *pIalpha = __QSUB(product1, product2);
5307 *pIbeta = __QADD(product4, product3);
5326 uint32_t blockSize);
5377 static __INLINE float32_t arm_linear_interp_f32(
5385 float32_t xSpacing = S->xSpacing;
5387 float32_t *pYData = S->
pYData;
5390 i = (x - S->x1) / xSpacing;
5397 else if(i >= S->nValues)
5400 y = pYData[S->nValues-1];
5405 x0 = S->x1 + i * xSpacing;
5406 x1 = S->x1 + (i +1) * xSpacing;
5413 y = y0 + (x - x0) * ((y1 - y0)/(x1-x0));
5436 static __INLINE q31_t arm_linear_interp_q31(q31_t *pYData,
5437 q31_t x, uint32_t nValues)
5447 index = ((x & 0xFFF00000) >> 20);
5449 if(index >= (nValues - 1))
5451 return(pYData[nValues - 1]);
5462 fract = (x & 0x000FFFFF) << 11;
5466 y1 = pYData[index + 1u];
5469 y = ((q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32));
5472 y += ((q31_t) (((q63_t) y1 * fract) >> 32));
5496 static __INLINE q15_t arm_linear_interp_q15(q15_t *pYData, q31_t x, uint32_t nValues)
5506 index = ((x & 0xFFF00000) >> 20u);
5508 if(index >= (nValues - 1))
5510 return(pYData[nValues - 1]);
5520 fract = (x & 0x000FFFFF);
5524 y1 = pYData[index + 1u];
5527 y = ((q63_t) y0 * (0xFFFFF - fract));
5530 y += ((q63_t) y1 * (fract));
5553 static __INLINE q7_t arm_linear_interp_q7(q7_t *pYData, q31_t x, uint32_t nValues)
5563 index = ((x & 0xFFF00000) >> 20u);
5566 if(index >= (nValues - 1))
5568 return(pYData[nValues - 1]);
5579 fract = (x & 0x000FFFFF);
5583 y1 = pYData[index + 1u];
5586 y = ((y0 * (0xFFFFF - fract)));
5695 static __INLINE arm_status arm_sqrt_f32(
5696 float32_t in, float32_t *pOut)
5702 #if (__FPU_USED == 1) && defined ( __CC_ARM ) 5703 *pOut = __sqrtf(in);
5708 return (ARM_MATH_SUCCESS);
5713 return (ARM_MATH_ARGUMENT_ERROR);
5727 q31_t in, q31_t *pOut);
5737 q15_t in, q15_t *pOut);
5752 static __INLINE
void arm_circularWrite_f32(
5753 int32_t * circBuffer,
5755 uint16_t * writeOffset,
5757 const int32_t * src,
5766 wOffset = *writeOffset;
5774 circBuffer[wOffset] = *src;
5780 wOffset += bufferInc;
5789 *writeOffset = wOffset;
5797 static __INLINE
void arm_circularRead_f32(
5798 int32_t * circBuffer,
5800 int32_t * readOffset,
5809 int32_t rOffset, dst_end;
5813 rOffset = *readOffset;
5814 dst_end = (int32_t) (dst_base + dst_length);
5822 *dst = circBuffer[rOffset];
5827 if(dst == (int32_t *) dst_end)
5833 rOffset += bufferInc;
5845 *readOffset = rOffset;
5852 static __INLINE
void arm_circularWrite_q15(
5855 uint16_t * writeOffset,
5866 wOffset = *writeOffset;
5874 circBuffer[wOffset] = *src;
5880 wOffset += bufferInc;
5889 *writeOffset = wOffset;
5897 static __INLINE
void arm_circularRead_q15(
5900 int32_t * readOffset,
5909 int32_t rOffset, dst_end;
5913 rOffset = *readOffset;
5915 dst_end = (int32_t) (dst_base + dst_length);
5923 *dst = circBuffer[rOffset];
5928 if(dst == (q15_t *) dst_end)
5934 rOffset += bufferInc;
5946 *readOffset = rOffset;
5954 static __INLINE
void arm_circularWrite_q7(
5957 uint16_t * writeOffset,
5968 wOffset = *writeOffset;
5976 circBuffer[wOffset] = *src;
5982 wOffset += bufferInc;
5991 *writeOffset = wOffset;
5999 static __INLINE
void arm_circularRead_q7(
6002 int32_t * readOffset,
6011 int32_t rOffset, dst_end;
6015 rOffset = *readOffset;
6017 dst_end = (int32_t) (dst_base + dst_length);
6025 *dst = circBuffer[rOffset];
6030 if(dst == (q7_t *) dst_end)
6036 rOffset += bufferInc;
6048 *readOffset = rOffset;
6076 float32_t * pResult);
6151 float32_t * pResult);
6164 float32_t * pResult);
6203 float32_t * pResult);
6242 float32_t * pResult);
6281 uint32_t numSamples);
6294 uint32_t numSamples);
6307 uint32_t numSamples);
6322 uint32_t numSamples,
6324 q31_t * imagResult);
6339 uint32_t numSamples,
6341 q63_t * imagResult);
6356 uint32_t numSamples,
6357 float32_t * realResult,
6358 float32_t * imagResult);
6373 uint32_t numSamples);
6388 uint32_t numSamples);
6400 float32_t * pSrcCmplx,
6401 float32_t * pSrcReal,
6402 float32_t * pCmplxDst,
6403 uint32_t numSamples);
6461 float32_t * pResult,
6521 float32_t * pResult,
6537 uint32_t numSamples);
6552 uint32_t numSamples);
6567 uint32_t numSamples);
6579 uint32_t blockSize);
6591 uint32_t blockSize);
6603 uint32_t blockSize);
6616 uint32_t blockSize);
6628 uint32_t blockSize);
6640 uint32_t blockSize);
6653 uint32_t blockSize);
6666 uint32_t blockSize);
6740 static __INLINE float32_t arm_bilinear_interp_f32(
6746 float32_t f00, f01, f10, f11;
6747 float32_t *pData = S->
pData;
6748 int32_t xIndex, yIndex, index;
6749 float32_t xdiff, ydiff;
6750 float32_t b1, b2, b3, b4;
6752 xIndex = (int32_t) X;
6753 yIndex = (int32_t) Y;
6757 if(xIndex < 0 || xIndex > (S->
numRows-1) || yIndex < 0 || yIndex > ( S->
numCols-1))
6763 index = (xIndex - 1) + (yIndex-1) * S->
numCols ;
6768 f01 = pData[index + 1];
6771 index = (xIndex-1) + (yIndex) * S->
numCols;
6776 f11 = pData[index + 1];
6782 b4 = f00 - f01 - f10 + f11;
6791 out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff;
6807 static __INLINE q31_t arm_bilinear_interp_q31(
6814 q31_t xfract, yfract;
6815 q31_t x1, x2, y1, y2;
6817 q31_t *pYData = S->
pData;
6824 rI = ((X & 0xFFF00000) >> 20u);
6829 cI = ((Y & 0xFFF00000) >> 20u);
6833 if(rI < 0 || rI > (S->
numRows-1) || cI < 0 || cI > ( S->
numCols-1))
6840 xfract = (X & 0x000FFFFF) << 11u;
6843 x1 = pYData[(rI) + nCols * (cI)];
6844 x2 = pYData[(rI) + nCols * (cI) + 1u];
6848 yfract = (Y & 0x000FFFFF) << 11u;
6851 y1 = pYData[(rI) + nCols * (cI + 1)];
6852 y2 = pYData[(rI) + nCols * (cI + 1) + 1u];
6855 out = ((q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32));
6856 acc = ((q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32));
6859 out = ((q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32));
6860 acc += ((q31_t) ((q63_t) out * (xfract) >> 32));
6863 out = ((q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32));
6864 acc += ((q31_t) ((q63_t) out * (yfract) >> 32));
6867 out = ((q31_t) ((q63_t) y2 * (xfract) >> 32));
6868 acc += ((q31_t) ((q63_t) out * (yfract) >> 32));
6883 static __INLINE q15_t arm_bilinear_interp_q15(
6890 q15_t x1, x2, y1, y2;
6891 q31_t xfract, yfract;
6893 q15_t *pYData = S->
pData;
6899 rI = ((X & 0xFFF00000) >> 20);
6904 cI = ((Y & 0xFFF00000) >> 20);
6908 if(rI < 0 || rI > (S->
numRows-1) || cI < 0 || cI > ( S->
numCols-1))
6915 xfract = (X & 0x000FFFFF);
6918 x1 = pYData[(rI) + nCols * (cI)];
6919 x2 = pYData[(rI) + nCols * (cI) + 1u];
6924 yfract = (Y & 0x000FFFFF);
6927 y1 = pYData[(rI) + nCols * (cI + 1)];
6928 y2 = pYData[(rI) + nCols * (cI + 1) + 1u];
6934 out = (q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4u);
6935 acc = ((q63_t) out * (0xFFFFF - yfract));
6938 out = (q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4u);
6939 acc += ((q63_t) out * (xfract));
6942 out = (q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4u);
6943 acc += ((q63_t) out * (yfract));
6946 out = (q31_t) (((q63_t) y2 * (xfract)) >> 4u);
6947 acc += ((q63_t) out * (yfract));
6963 static __INLINE q7_t arm_bilinear_interp_q7(
6970 q31_t xfract, yfract;
6971 q7_t x1, x2, y1, y2;
6973 q7_t *pYData = S->
pData;
6979 rI = ((X & 0xFFF00000) >> 20);
6984 cI = ((Y & 0xFFF00000) >> 20);
6988 if(rI < 0 || rI > (S->
numRows-1) || cI < 0 || cI > ( S->
numCols-1))
6995 xfract = (X & 0x000FFFFF);
6998 x1 = pYData[(rI) + nCols * (cI)];
6999 x2 = pYData[(rI) + nCols * (cI) + 1u];
7004 yfract = (Y & 0x000FFFFF);
7007 y1 = pYData[(rI) + nCols * (cI + 1)];
7008 y2 = pYData[(rI) + nCols * (cI + 1) + 1u];
7011 out = ((x1 * (0xFFFFF - xfract)));
7012 acc = (((q63_t) out * (0xFFFFF - yfract)));
7015 out = ((x2 * (0xFFFFF - yfract)));
7016 acc += (((q63_t) out * (xfract)));
7019 out = ((y1 * (0xFFFFF - xfract)));
7020 acc += (((q63_t) out * (yfract)));
7023 out = ((y2 * (yfract)));
7024 acc += (((q63_t) out * (xfract)));
q31_t normalize
Definition: arm_math.h:2345
arm_status arm_mat_sub_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix subtraction.
Definition: arm_mat_sub_q31.c:62
void arm_biquad_cascade_df2T_f32(const arm_biquad_cascade_df2T_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point transposed direct form II Biquad cascade filter...
Definition: arm_biquad_cascade_df2T_f32.c:143
uint8_t bitReverseFlag
Definition: arm_math.h:1923
float32_t * pState
Definition: arm_math.h:1198
uint8_t bitReverseFlagR
Definition: arm_math.h:2161
float32_t * pCoeffs
Definition: arm_math.h:4324
void arm_fir_interpolate_f32(const arm_fir_interpolate_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR interpolator.
Definition: arm_fir_interpolate_f32.c:135
float32_t * pCoeffs
Definition: arm_math.h:3590
q31_t energy
Definition: arm_math.h:4113
void arm_offset_q15(q15_t *pSrc, q15_t offset, q15_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q15 vector.
Definition: arm_offset_q15.c:58
arm_status arm_mat_trans_q31(const arm_matrix_instance_q31 *pSrc, arm_matrix_instance_q31 *pDst)
Q31 matrix transpose.
Definition: arm_mat_trans_q31.c:55
void arm_cmplx_mag_squared_q31(q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex magnitude squared.
Definition: arm_cmplx_mag_squared_q31.c:55
void arm_copy_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Copies the elements of a Q7 vector.
Definition: arm_copy_q7.c:53
uint8_t postShift
Definition: arm_math.h:4111
void arm_dot_prod_q7(q7_t *pSrcA, q7_t *pSrcB, uint32_t blockSize, q31_t *result)
Dot product of Q7 vectors.
Definition: arm_dot_prod_q7.c:61
void arm_fir_q15(const arm_fir_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR filter.
Definition: arm_fir_q15.c:68
arm_status arm_sqrt_q15(q15_t in, q15_t *pOut)
Q15 square root function.
Definition: arm_sqrt_q15.c:51
uint16_t twidCoefModifier
Definition: arm_math.h:1911
q15_t * pState
Definition: arm_math.h:1173
uint16_t numStages
Definition: arm_math.h:3778
float32_t * pState
Definition: arm_math.h:3779
Instance structure for the Q31 sparse FIR filter.
Definition: arm_math.h:4333
void arm_std_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Standard deviation of the elements of a Q31 vector.
Definition: arm_std_q31.c:66
float32_t * pState
Definition: arm_math.h:4056
void arm_cmplx_conj_q15(q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex conjugate.
Definition: arm_cmplx_conj_q15.c:54
void arm_cmplx_mult_real_f32(float32_t *pSrcCmplx, float32_t *pSrcReal, float32_t *pCmplxDst, uint32_t numSamples)
Floating-point complex-by-real multiplication.
Definition: arm_cmplx_mult_real_f32.c:74
Instance structure for the Q15 bilinear interpolation function.
Definition: arm_math.h:1805
uint16_t numStages
Definition: arm_math.h:3644
void arm_fir_fast_q31(const arm_fir_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the fast Q31 FIR filter for Cortex-M3 and Cortex-M4.
Definition: arm_fir_fast_q31.c:66
arm_status arm_rfft_init_f32(arm_rfft_instance_f32 *S, arm_cfft_radix4_instance_f32 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
Initialization function for the floating-point RFFT/RIFFT.
Definition: arm_rfft_init_f32.c:1638
q15_t A0
Definition: arm_math.h:1666
q15_t * pData
Definition: arm_math.h:1809
float32_t * pState
Definition: arm_math.h:3589
q31_t * recipTable
Definition: arm_math.h:4112
void arm_conv_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Convolution of Q15 sequences.
Definition: arm_conv_q15.c:68
Instance structure for the floating-point FIR filter.
Definition: arm_math.h:1006
void arm_cmplx_mag_q31(q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex magnitude.
Definition: arm_cmplx_mag_q31.c:54
q31_t * pState
Definition: arm_math.h:999
void arm_rms_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Root Mean Square of the elements of a Q31 vector.
Definition: arm_rms_q31.c:62
float32_t A0
Definition: arm_math.h:1699
void arm_q7_to_q31(q7_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to Q31 vector.
Definition: arm_q7_to_q31.c:59
q15_t * pState
Definition: arm_math.h:3947
float32_t Kp
Definition: arm_math.h:1703
q15_t Ki
Definition: arm_math.h:1675
void arm_fir_sparse_q15(arm_fir_sparse_instance_q15 *S, q15_t *pSrc, q15_t *pDst, q15_t *pScratchIn, q31_t *pScratchOut, uint32_t blockSize)
Processing function for the Q15 sparse FIR filter.
Definition: arm_fir_sparse_q15.c:60
uint16_t fftLen
Definition: arm_math.h:1906
uint8_t ifftFlagR
Definition: arm_math.h:2176
void arm_fir_lattice_q15(const arm_fir_lattice_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR lattice filter.
Definition: arm_fir_lattice_q15.c:54
uint8_t L
Definition: arm_math.h:3397
q15_t * pCoeffs
Definition: arm_math.h:4352
Instance structure for the floating-point Biquad cascade filter.
Definition: arm_math.h:1195
float32_t * pvCoeffs
Definition: arm_math.h:3781
void arm_sin_cos_q31(q31_t theta, q31_t *pSinVal, q31_t *pCosVal)
Q31 sin_cos function.
Definition: arm_sin_cos_q31.c:264
uint16_t numTaps
Definition: arm_math.h:4107
void arm_cmplx_dot_prod_q31(q31_t *pSrcA, q31_t *pSrcB, uint32_t numSamples, q63_t *realResult, q63_t *imagResult)
Q31 complex dot product.
Definition: arm_cmplx_dot_prod_q31.c:60
void arm_fir_f32(const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR filter.
Definition: arm_fir_f32.c:128
uint16_t numTaps
Definition: arm_math.h:4055
void arm_offset_q31(q31_t *pSrc, q31_t offset, q31_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q31 vector.
Definition: arm_offset_q31.c:58
q31_t * pCoeffs
Definition: arm_math.h:1000
q15_t mu
Definition: arm_math.h:4166
arm_status arm_conv_partial_fast_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
Definition: arm_conv_partial_fast_q15.c:56
void arm_correlate_fast_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
Definition: arm_correlate_fast_q31.c:70
Instance structure for the high precision Q31 Biquad cascade filter.
Definition: arm_math.h:3539
void arm_scale_q31(q31_t *pSrc, q31_t scaleFract, int8_t shift, q31_t *pDst, uint32_t blockSize)
Multiplies a Q31 vector by a scalar.
Definition: arm_scale_q31.c:59
void arm_cmplx_mult_real_q31(q31_t *pSrcCmplx, q31_t *pSrcReal, q31_t *pCmplxDst, uint32_t numSamples)
Q31 complex-by-real multiplication.
Definition: arm_cmplx_mult_real_q31.c:56
void arm_biquad_cascade_df1_init_q31(arm_biquad_casd_df1_inst_q31 *S, uint8_t numStages, q31_t *pCoeffs, q31_t *pState, int8_t postShift)
Initialization function for the Q31 Biquad cascade filter.
Definition: arm_biquad_cascade_df1_init_q31.c:81
arm_status arm_fir_decimate_init_f32(arm_fir_decimate_instance_f32 *S, uint16_t numTaps, uint8_t M, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR decimator.
Definition: arm_fir_decimate_init_f32.c:67
void arm_var_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Variance of the elements of a floating-point vector.
Definition: arm_var_f32.c:69
void arm_lms_norm_q31(arm_lms_norm_instance_q31 *S, q31_t *pSrc, q31_t *pRef, q31_t *pOut, q31_t *pErr, uint32_t blockSize)
Processing function for Q31 normalized LMS filter.
Definition: arm_lms_norm_q31.c:72
void arm_fir_decimate_q15(const arm_fir_decimate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator.
Definition: arm_fir_decimate_q15.c:65
void arm_q7_to_q15(q7_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to Q15 vector.
Definition: arm_q7_to_q15.c:62
void arm_dct4_q31(const arm_dct4_instance_q31 *S, q31_t *pState, q31_t *pInlineBuffer)
Processing function for the Q31 DCT4/IDCT4.
Definition: arm_dct4_q31.c:53
uint8_t L
Definition: arm_math.h:3409
uint8_t ifftFlagR
Definition: arm_math.h:2192
q63_t * pState
Definition: arm_math.h:3542
uint16_t maxDelay
Definition: arm_math.h:4339
arm_cfft_radix4_instance_q31 * pCfft
Definition: arm_math.h:2349
q31_t * pData
Definition: arm_math.h:1364
void arm_fir_init_q31(arm_fir_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR filter.
Definition: arm_fir_init_q31.c:68
uint16_t Nby2
Definition: arm_math.h:2344
void arm_abs_q15(q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Q15 vector absolute value.
Definition: arm_abs_q15.c:57
void arm_correlate_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Correlation of Q31 sequences.
Definition: arm_correlate_q31.c:71
void arm_fill_q31(q31_t value, q31_t *pDst, uint32_t blockSize)
Fills a constant value into a Q31 vector.
Definition: arm_fill_q31.c:53
void arm_copy_q15(q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Copies the elements of a Q15 vector.
Definition: arm_copy_q15.c:52
Instance structure for the Q15 RFFT/RIFFT function.
Definition: arm_math.h:2156
void arm_add_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector addition.
Definition: arm_add_q31.c:59
q31_t * pTwiddleBReal
Definition: arm_math.h:2180
Instance structure for the Q7 FIR filter.
Definition: arm_math.h:976
void arm_biquad_cascade_df1_fast_q31(const arm_biquad_casd_df1_inst_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-...
Definition: arm_biquad_cascade_df1_fast_q31.c:70
float32_t Ki
Definition: arm_math.h:1704
void arm_cmplx_mult_real_q15(q15_t *pSrcCmplx, q15_t *pSrcReal, q15_t *pCmplxDst, uint32_t numSamples)
Q15 complex-by-real multiplication.
Definition: arm_cmplx_mult_real_q15.c:56
q31_t * pState
Definition: arm_math.h:3645
float32_t * pCoeffs
Definition: arm_math.h:3423
q15_t * recipTable
Definition: arm_math.h:4168
Instance structure for the Q15 LMS filter.
Definition: arm_math.h:3944
void arm_add_q7(q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector addition.
Definition: arm_add_q7.c:58
Instance structure for the floating-point CFFT/CIFFT function.
Definition: arm_math.h:1919
float32_t * pCoeffs
Definition: arm_math.h:3898
void arm_cmplx_mult_cmplx_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t numSamples)
Floating-point complex-by-complex multiplication.
Definition: arm_cmplx_mult_cmplx_f32.c:73
arm_status arm_mat_add_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix addition.
Definition: arm_mat_add_q31.c:61
arm_status arm_mat_add_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
Q15 matrix addition.
Definition: arm_mat_add_q15.c:61
void arm_float_to_q15(float32_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q15 vector.
Definition: arm_float_to_q15.c:65
arm_status arm_conv_partial_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q31 sequences.
Definition: arm_conv_partial_q31.c:59
Instance structure for the Q15 FIR lattice filter.
Definition: arm_math.h:3631
uint16_t numTaps
Definition: arm_math.h:3229
float32_t x0
Definition: arm_math.h:4060
void arm_pid_init_q15(arm_pid_instance_q15 *S, int32_t resetStateFlag)
Initialization function for the Q15 PID Control.
Definition: arm_pid_init_q15.c:50
void arm_cmplx_mult_cmplx_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t numSamples)
Q31 complex-by-complex multiplication.
Definition: arm_cmplx_mult_cmplx_q31.c:56
q7_t * pCoeffs
Definition: arm_math.h:980
uint16_t stateIndex
Definition: arm_math.h:4322
void arm_conv_fast_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
Definition: arm_conv_fast_q15.c:66
void arm_q7_to_float(q7_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to floating-point vector.
Definition: arm_q7_to_float.c:63
q31_t * pCoeffs
Definition: arm_math.h:4338
void arm_rfft_q31(const arm_rfft_instance_q31 *S, q31_t *pSrc, q31_t *pDst)
Processing function for the Q31 RFFT/RIFFT.
Definition: arm_rfft_q31.c:80
void arm_rms_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Root Mean Square of the elements of a floating-point vector.
Definition: arm_rms_f32.c:65
arm_status arm_mat_mult_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
Q15 matrix multiplication.
Definition: arm_mat_mult_q15.c:74
uint16_t numTaps
Definition: arm_math.h:3217
Instance structure for the Q31 FIR interpolator.
Definition: arm_math.h:3407
float32_t * pCoeffs
Definition: arm_math.h:1010
arm_status arm_mat_add_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix addition.
Definition: arm_mat_add_f32.c:68
q31_t * pState
Definition: arm_math.h:3768
void arm_abs_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Q7 vector absolute value.
Definition: arm_abs_q7.c:57
uint16_t fftLen
Definition: arm_math.h:1921
float32_t * pData
Definition: arm_math.h:1787
void arm_correlate_fast_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
Definition: arm_correlate_fast_q15.c:66
uint8_t M
Definition: arm_math.h:3241
uint16_t numTaps
Definition: arm_math.h:4363
q31_t state[3]
Definition: arm_math.h:1687
Instance structure for the floating-point DCT4/IDCT4 function.
Definition: arm_math.h:2294
uint8_t numStages
Definition: arm_math.h:3588
void arm_lms_norm_init_q15(arm_lms_norm_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, q15_t mu, uint32_t blockSize, uint8_t postShift)
Initialization function for Q15 normalized LMS filter.
Definition: arm_lms_norm_init_q15.c:64
q15_t Kp
Definition: arm_math.h:1674
void arm_correlate_f32(float32_t *pSrcA, uint32_t srcALen, float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst)
Correlation of floating-point sequences.
Definition: arm_correlate_f32.c:95
Instance structure for the Q15 normalized LMS filter.
Definition: arm_math.h:4161
arm_status arm_fir_interpolate_init_f32(arm_fir_interpolate_instance_f32 *S, uint8_t L, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR interpolator.
Definition: arm_fir_interpolate_init_f32.c:68
q15_t * pCoeffs
Definition: arm_math.h:3399
q31_t * pState
Definition: arm_math.h:4002
uint16_t Nby2
Definition: arm_math.h:2391
arm_status arm_cfft_radix4_init_f32(arm_cfft_radix4_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
Initialization function for the floating-point CFFT/CIFFT.
Definition: arm_cfft_radix4_init_f32.c:1463
float32_t * pkCoeffs
Definition: arm_math.h:3780
float32_t * pCoeffs
Definition: arm_math.h:3657
void arm_cmplx_dot_prod_f32(float32_t *pSrcA, float32_t *pSrcB, uint32_t numSamples, float32_t *realResult, float32_t *imagResult)
Floating-point complex dot product.
Definition: arm_cmplx_dot_prod_f32.c:77
int8_t postShift
Definition: arm_math.h:1175
uint16_t stateIndex
Definition: arm_math.h:4350
void arm_lms_init_q15(arm_lms_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, q15_t mu, uint32_t blockSize, uint32_t postShift)
Initialization function for the Q15 LMS filter.
Definition: arm_lms_init_q15.c:66
void arm_fir_q31(const arm_fir_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR filter.
Definition: arm_fir_q31.c:67
void arm_biquad_cascade_df1_f32(const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point Biquad cascade filter.
Definition: arm_biquad_cascade_df1_f32.c:171
q31_t arm_sin_q31(q31_t x)
Fast approximation to the trigonometric sine function for Q31 data.
Definition: arm_sin_q31.c:136
void arm_biquad_cascade_df1_fast_q15(const arm_biquad_casd_df1_inst_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-...
Definition: arm_biquad_cascade_df1_fast_q15.c:69
q15_t state[3]
Definition: arm_math.h:1673
Instance structure for the Q15 sparse FIR filter.
Definition: arm_math.h:4347
arm_status arm_fir_decimate_init_q31(arm_fir_decimate_instance_q31 *S, uint16_t numTaps, uint8_t M, q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR decimator.
Definition: arm_fir_decimate_init_q31.c:67
void arm_pid_init_q31(arm_pid_instance_q31 *S, int32_t resetStateFlag)
Initialization function for the Q31 PID Control.
Definition: arm_pid_init_q31.c:50
arm_status arm_fir_init_q15(arm_fir_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR filter.
Definition: arm_fir_init_q15.c:85
void arm_lms_q31(const arm_lms_instance_q31 *S, q31_t *pSrc, q31_t *pRef, q31_t *pOut, q31_t *pErr, uint32_t blockSize)
Processing function for Q31 LMS filter.
Definition: arm_lms_q31.c:69
void arm_negate_q15(q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Negates the elements of a Q15 vector.
Definition: arm_negate_q15.c:57
uint32_t fftLenBy2
Definition: arm_math.h:2159
void arm_max_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult, uint32_t *pIndex)
Maximum value of a Q15 vector.
Definition: arm_max_q15.c:51
q31_t * pState
Definition: arm_math.h:3412
void arm_mult_q7(q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector multiplication.
Definition: arm_mult_q7.c:64
uint16_t bitRevFactor
Definition: arm_math.h:1912
Instance structure for the floating-point PID Control.
Definition: arm_math.h:1697
uint16_t bitRevFactor
Definition: arm_math.h:1897
Instance structure for the Q31 FIR decimator.
Definition: arm_math.h:3226
void arm_power_q7(q7_t *pSrc, uint32_t blockSize, q31_t *pResult)
Sum of the squares of the elements of a Q7 vector.
Definition: arm_power_q7.c:62
void arm_power_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Sum of the squares of the elements of a floating-point vector.
Definition: arm_power_f32.c:68
arm_status arm_cfft_radix4_init_q31(arm_cfft_radix4_instance_q31 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
Initialization function for the Q31 CFFT/CIFFT.
Definition: arm_cfft_radix4_init_q31.c:1124
void arm_mult_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector multiplication.
Definition: arm_mult_q15.c:62
uint8_t L
Definition: arm_math.h:3421
void arm_sub_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector subtraction.
Definition: arm_sub_f32.c:66
uint16_t numStages
Definition: arm_math.h:3655
uint16_t fftLenBy2
Definition: arm_math.h:2191
uint32_t twidCoefRModifier
Definition: arm_math.h:2178
arm_rfft_instance_q31 * pRfft
Definition: arm_math.h:2348
float32_t * pState
Definition: arm_math.h:1009
void arm_pid_reset_q31(arm_pid_instance_q31 *S)
Reset function for the Q31 PID Control.
Definition: arm_pid_reset_q31.c:44
Instance structure for the Q15 matrix structure.
Definition: arm_math.h:1348
void arm_dot_prod_q15(q15_t *pSrcA, q15_t *pSrcB, uint32_t blockSize, q63_t *result)
Dot product of Q15 vectors.
Definition: arm_dot_prod_q15.c:61
void arm_min_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult, uint32_t *pIndex)
Minimum value of a Q31 vector.
Definition: arm_min_q31.c:53
Instance structure for the floating-point transposed direct form II Biquad cascade filter...
Definition: arm_math.h:3586
q31_t * pCoeffs
Definition: arm_math.h:3543
void arm_mat_init_q31(arm_matrix_instance_q31 *S, uint16_t nRows, uint16_t nColumns, q31_t *pData)
Q31 matrix initialization.
Definition: arm_mat_init_q31.c:61
CMSIS Cortex-M3 Core Peripheral Access Layer Header File.
uint16_t numTaps
Definition: arm_math.h:988
void arm_rms_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Root Mean Square of the elements of a Q15 vector.
Definition: arm_rms_q15.c:59
float32_t * pState
Definition: arm_math.h:3897
arm_status arm_rfft_init_q15(arm_rfft_instance_q15 *S, arm_cfft_radix4_instance_q15 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
Initialization function for the Q15 RFFT/RIFFT.
Definition: arm_rfft_init_q15.c:620
Instance structure for the Q15 bilinear interpolation function.
Definition: arm_math.h:1816
void arm_fir_decimate_q31(const arm_fir_decimate_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR decimator.
Definition: arm_fir_decimate_q31.c:64
q15_t * pTwiddle
Definition: arm_math.h:2393
void arm_shift_q15(q15_t *pSrc, int8_t shiftBits, q15_t *pDst, uint32_t blockSize)
Shifts the elements of a Q15 vector a specified number of bits.
Definition: arm_shift_q15.c:58
arm_status arm_conv_partial_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q15 sequences.
Definition: arm_conv_partial_q15.c:60
void arm_fir_sparse_init_q7(arm_fir_sparse_instance_q7 *S, uint16_t numTaps, q7_t *pCoeffs, q7_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q7 sparse FIR filter.
Definition: arm_fir_sparse_init_q7.c:65
void arm_iir_lattice_f32(const arm_iir_lattice_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point IIR lattice filter.
Definition: arm_iir_lattice_f32.c:120
void arm_mult_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector multiplication.
Definition: arm_mult_f32.c:68
Instance structure for the floating-point RFFT/RIFFT function.
Definition: arm_math.h:2188
q31_t * pCoeffs
Definition: arm_math.h:3230
q15_t mu
Definition: arm_math.h:3949
uint8_t ifftFlagR
Definition: arm_math.h:2160
void arm_fir_lattice_init_f32(arm_fir_lattice_instance_f32 *S, uint16_t numStages, float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point FIR lattice filter.
Definition: arm_fir_lattice_init_f32.c:53
q31_t * pState
Definition: arm_math.h:3231
Instance structure for the floating-point LMS filter.
Definition: arm_math.h:3894
q15_t Kd
Definition: arm_math.h:1676
void arm_sub_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector subtraction.
Definition: arm_sub_q31.c:58
q31_t * pData
Definition: arm_math.h:1798
float32_t mu
Definition: arm_math.h:3899
uint16_t numTaps
Definition: arm_math.h:1008
void arm_fir_init_f32(arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR filter.
Definition: arm_fir_init_f32.c:68
void arm_std_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Standard deviation of the elements of a floating-point vector.
Definition: arm_std_f32.c:69
arm_status arm_dct4_init_q31(arm_dct4_instance_q31 *S, arm_rfft_instance_q31 *S_RFFT, arm_cfft_radix4_instance_q31 *S_CFFT, uint16_t N, uint16_t Nby2, q31_t normalize)
Initialization function for the Q31 DCT4/IDCT4.
Definition: arm_dct4_init_q31.c:2133
void arm_pid_reset_q15(arm_pid_instance_q15 *S)
Reset function for the Q15 PID Control.
Definition: arm_pid_reset_q15.c:44
q15_t normalize
Definition: arm_math.h:2392
q15_t * pTwiddle
Definition: arm_math.h:1894
Instance structure for the floating-point FIR lattice filter.
Definition: arm_math.h:3653
q15_t * pCoeffs
Definition: arm_math.h:4165
Instance structure for the floating-point bilinear interpolation function.
Definition: arm_math.h:1783
void arm_fill_f32(float32_t value, float32_t *pDst, uint32_t blockSize)
Fills a constant value into a floating-point vector.
Definition: arm_fill_f32.c:66
q31_t * pvCoeffs
Definition: arm_math.h:3770
arm_status arm_fir_interpolate_init_q31(arm_fir_interpolate_instance_q31 *S, uint8_t L, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR interpolator.
Definition: arm_fir_interpolate_init_q31.c:69
void arm_q15_to_q7(q15_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to Q7 vector.
Definition: arm_q15_to_q7.c:60
void arm_cmplx_mag_squared_q15(q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex magnitude squared.
Definition: arm_cmplx_mag_squared_q15.c:53
int32_t * pTapDelay
Definition: arm_math.h:4340
q15_t * pkCoeffs
Definition: arm_math.h:3758
Instance structure for the Q15 FIR interpolator.
Definition: arm_math.h:3395
void arm_mean_q7(q7_t *pSrc, uint32_t blockSize, q7_t *pResult)
Mean value of a Q7 vector.
Definition: arm_mean_q7.c:61
q15_t * pState
Definition: arm_math.h:989
q31_t * pCoeffs
Definition: arm_math.h:1187
float32_t A1
Definition: arm_math.h:1700
void arm_cmplx_mag_q15(q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex magnitude.
Definition: arm_cmplx_mag_q15.c:54
void arm_lms_norm_q15(arm_lms_norm_instance_q15 *S, q15_t *pSrc, q15_t *pRef, q15_t *pOut, q15_t *pErr, uint32_t blockSize)
Processing function for Q15 normalized LMS filter.
Definition: arm_lms_norm_q15.c:71
int8_t numStages
Definition: arm_math.h:1172
float32_t arm_sin_f32(float32_t x)
Fast approximation to the trigonometric sine function for floating-point data.
Definition: arm_sin_f32.c:195
arm_status arm_conv_partial_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q7 sequences.
Definition: arm_conv_partial_q7.c:58
q15_t * pState
Definition: arm_math.h:3757
void arm_power_q15(q15_t *pSrc, uint32_t blockSize, q63_t *pResult)
Sum of the squares of the elements of a Q15 vector.
Definition: arm_power_q15.c:62
void arm_lms_q15(const arm_lms_instance_q15 *S, q15_t *pSrc, q15_t *pRef, q15_t *pOut, q15_t *pErr, uint32_t blockSize)
Processing function for Q15 LMS filter.
Definition: arm_lms_q15.c:66
arm_cfft_radix4_instance_q31 * pCfft
Definition: arm_math.h:2181
void arm_offset_f32(float32_t *pSrc, float32_t offset, float32_t *pDst, uint32_t blockSize)
Adds a constant offset to a floating-point vector.
Definition: arm_offset_f32.c:66
void arm_float_to_q7(float32_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q7 vector.
Definition: arm_float_to_q7.c:64
void arm_q15_to_float(q15_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to floating-point vector.
Definition: arm_q15_to_float.c:66
q7_t * pData
Definition: arm_math.h:1820
arm_status arm_mat_inverse_f32(const arm_matrix_instance_f32 *src, arm_matrix_instance_f32 *dst)
Floating-point matrix inverse.
Definition: arm_mat_inverse_f32.c:74
void arm_biquad_cascade_df1_init_f32(arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point Biquad cascade filter.
Definition: arm_biquad_cascade_df1_init_f32.c:83
arm_status arm_conv_partial_f32(float32_t *pSrcA, uint32_t srcALen, float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of floating-point sequences.
Definition: arm_conv_partial_f32.c:74
q15_t arm_cos_q15(q15_t x)
Fast approximation to the trigonometric cosine function for Q15 data.
Definition: arm_cos_q15.c:105
q15_t * pCoeffs
Definition: arm_math.h:1174
void arm_fir_lattice_f32(const arm_fir_lattice_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR lattice filter.
Definition: arm_fir_lattice_f32.c:121
void arm_cfft_radix4_q15(const arm_cfft_radix4_instance_q15 *S, q15_t *pSrc)
Processing function for the Q15 CFFT/CIFFT.
Definition: arm_cfft_radix4_q15.c:66
arm_status arm_mat_mult_fast_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4.
Definition: arm_mat_mult_fast_q31.c:72
q31_t A2
Definition: arm_math.h:1686
q15_t * pCoeffs
Definition: arm_math.h:990
uint16_t twidCoefModifier
Definition: arm_math.h:1926
void arm_correlate_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Correlation of Q15 sequences.
Definition: arm_correlate_q15.c:68
uint32_t postShift
Definition: arm_math.h:4005
uint16_t fftLen
Definition: arm_math.h:1891
void arm_biquad_cas_df1_32x64_q31(const arm_biquad_cas_df1_32x64_ins_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Definition: arm_biquad_cascade_df1_32x64_q31.c:176
void arm_max_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult, uint32_t *pIndex)
Maximum value of a Q31 vector.
Definition: arm_max_q31.c:51
uint16_t maxDelay
Definition: arm_math.h:4353
void arm_conv_fast_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
Definition: arm_conv_fast_q31.c:68
q15_t energy
Definition: arm_math.h:4169
float32_t onebyfftLen
Definition: arm_math.h:1928
uint16_t numTaps
Definition: arm_math.h:4163
void arm_min_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Minimum value of a floating-point vector.
Definition: arm_min_f32.c:60
int32_t * pTapDelay
Definition: arm_math.h:4326
uint16_t * pBitRevTable
Definition: arm_math.h:1910
q31_t x0
Definition: arm_math.h:4114
Instance structure for the Q31 matrix structure.
Definition: arm_math.h:1360
float32_t normalize
Definition: arm_math.h:2298
float32_t * pTwiddle
Definition: arm_math.h:1924
Instance structure for the Q31 FIR filter.
Definition: arm_math.h:996
q31_t * pState
Definition: arm_math.h:4108
CMSIS Cortex-M4 Core Peripheral Access Layer Header File.
uint16_t numRows
Definition: arm_math.h:1350
float32_t * pData
Definition: arm_math.h:1341
uint16_t numTaps
Definition: arm_math.h:998
void arm_lms_f32(const arm_lms_instance_f32 *S, float32_t *pSrc, float32_t *pRef, float32_t *pOut, float32_t *pErr, uint32_t blockSize)
Processing function for floating-point LMS filter.
Definition: arm_lms_f32.c:170
void arm_fir_sparse_q7(arm_fir_sparse_instance_q7 *S, q7_t *pSrc, q7_t *pDst, q7_t *pScratchIn, q31_t *pScratchOut, uint32_t blockSize)
Processing function for the Q7 sparse FIR filter.
Definition: arm_fir_sparse_q7.c:65
q31_t * pkCoeffs
Definition: arm_math.h:3769
void arm_power_q31(q31_t *pSrc, uint32_t blockSize, q63_t *pResult)
Sum of the squares of the elements of a Q31 vector.
Definition: arm_power_q31.c:63
uint16_t N
Definition: arm_math.h:2343
arm_cfft_radix4_instance_q15 * pCfft
Definition: arm_math.h:2165
q7_t * pCoeffs
Definition: arm_math.h:4366
void arm_pid_reset_f32(arm_pid_instance_f32 *S)
Reset function for the floating-point PID Control.
Definition: arm_pid_reset_f32.c:44
float32_t mu
Definition: arm_math.h:4058
void arm_mean_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Mean value of a Q31 vector.
Definition: arm_mean_q31.c:61
float32_t * pState
Definition: arm_math.h:3656
void arm_cfft_radix4_f32(const arm_cfft_radix4_instance_f32 *S, float32_t *pSrc)
Processing function for the floating-point CFFT/CIFFT.
Definition: arm_cfft_radix4_f32.c:177
Instance structure for the floating-point matrix structure.
Definition: arm_math.h:1337
q15_t * pState
Definition: arm_math.h:3219
Instance structure for the Q31 Biquad cascade filter.
Definition: arm_math.h:1183
CMSIS Cortex-M0 Core Peripheral Access Layer Header File.
arm_status arm_dct4_init_f32(arm_dct4_instance_f32 *S, arm_rfft_instance_f32 *S_RFFT, arm_cfft_radix4_instance_f32 *S_CFFT, uint16_t N, uint16_t Nby2, float32_t normalize)
Initialization function for the floating-point DCT4/IDCT4.
Definition: arm_dct4_init_f32.c:4142
void arm_float_to_q31(float32_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q31 vector.
Definition: arm_float_to_q31.c:69
int32_t * pTapDelay
Definition: arm_math.h:4354
q31_t * pState
Definition: arm_math.h:4337
void arm_fill_q7(q7_t value, q7_t *pDst, uint32_t blockSize)
Fills a constant value into a Q7 vector.
Definition: arm_fill_q7.c:53
float32_t Kd
Definition: arm_math.h:1705
uint16_t numRows
Definition: arm_math.h:1362
void arm_fir_decimate_f32(const arm_fir_decimate_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR decimator.
Definition: arm_fir_decimate_f32.c:132
uint16_t numTaps
Definition: arm_math.h:978
void arm_negate_q31(q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Negates the elements of a Q31 vector.
Definition: arm_negate_q31.c:57
void arm_q15_to_q31(q15_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to Q31 vector.
Definition: arm_q15_to_q31.c:59
q15_t * pState
Definition: arm_math.h:3400
q31_t A0
Definition: arm_math.h:1684
float32_t A2
Definition: arm_math.h:1701
void arm_iir_lattice_q15(const arm_iir_lattice_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 IIR lattice filter.
Definition: arm_iir_lattice_q15.c:63
void arm_scale_f32(float32_t *pSrc, float32_t scale, float32_t *pDst, uint32_t blockSize)
Multiplies a floating-point vector by a scalar.
Definition: arm_scale_f32.c:78
uint8_t postShift
Definition: arm_math.h:4167
q15_t * pData
Definition: arm_math.h:1352
arm_rfft_instance_q15 * pRfft
Definition: arm_math.h:2395
uint16_t numTaps
Definition: arm_math.h:3896
q31_t Kd
Definition: arm_math.h:1690
void arm_cmplx_conj_q31(q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex conjugate.
Definition: arm_cmplx_conj_q31.c:54
void arm_shift_q31(q31_t *pSrc, int8_t shiftBits, q31_t *pDst, uint32_t blockSize)
Shifts the elements of a Q31 vector a specified number of bits.
Definition: arm_shift_q31.c:73
uint32_t numStages
Definition: arm_math.h:1185
void arm_fir_interpolate_q31(const arm_fir_interpolate_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR interpolator.
Definition: arm_fir_interpolate_q31.c:63
uint16_t * pBitRevTable
Definition: arm_math.h:1925
void arm_mat_init_q15(arm_matrix_instance_q15 *S, uint16_t nRows, uint16_t nColumns, q15_t *pData)
Q15 matrix initialization.
Definition: arm_mat_init_q15.c:57
uint16_t numCols
Definition: arm_math.h:1786
int32_t * pTapDelay
Definition: arm_math.h:4368
void arm_lms_norm_init_f32(arm_lms_norm_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, float32_t mu, uint32_t blockSize)
Initialization function for floating-point normalized LMS filter.
Definition: arm_lms_norm_init_f32.c:64
void arm_correlate_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst)
Correlation of Q7 sequences.
Definition: arm_correlate_q7.c:65
float32_t * pTwiddle
Definition: arm_math.h:2299
q15_t * pCoeffs
Definition: arm_math.h:3635
arm_status arm_mat_sub_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix subtraction.
Definition: arm_mat_sub_f32.c:67
uint16_t N
Definition: arm_math.h:2390
void arm_conv_f32(float32_t *pSrcA, uint32_t srcALen, float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst)
Convolution of floating-point sequences.
Definition: arm_conv_f32.c:103
void arm_dct4_f32(const arm_dct4_instance_f32 *S, float32_t *pState, float32_t *pInlineBuffer)
Processing function for the floating-point DCT4/IDCT4.
Definition: arm_dct4_f32.c:126
uint16_t numTaps
Definition: arm_math.h:3946
Instance structure for the floating-point normalized LMS filter.
Definition: arm_math.h:4053
q15_t * pCoeffs
Definition: arm_math.h:3218
Instance structure for the Q31 CFFT/CIFFT function.
Definition: arm_math.h:1904
uint8_t ifftFlag
Definition: arm_math.h:1907
q31_t Kp
Definition: arm_math.h:1688
void arm_scale_q15(q15_t *pSrc, q15_t scaleFract, int8_t shift, q15_t *pDst, uint32_t blockSize)
Multiplies a Q15 vector by a scalar.
Definition: arm_scale_q15.c:60
void arm_fir_decimate_fast_q31(arm_fir_decimate_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
Definition: arm_fir_decimate_fast_q31.c:65
void arm_offset_q7(q7_t *pSrc, q7_t offset, q7_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q7 vector.
Definition: arm_offset_q7.c:58
void arm_mean_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Mean value of a Q15 vector.
Definition: arm_mean_q15.c:61
void arm_dot_prod_q31(q31_t *pSrcA, q31_t *pSrcB, uint32_t blockSize, q63_t *result)
Dot product of Q31 vectors.
Definition: arm_dot_prod_q31.c:62
arm_status arm_mat_scale_q15(const arm_matrix_instance_q15 *pSrc, q15_t scaleFract, int32_t shift, arm_matrix_instance_q15 *pDst)
Q15 matrix scaling.
Definition: arm_mat_scale_q15.c:63
uint8_t bitReverseFlagR
Definition: arm_math.h:2177
void arm_conv_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst)
Convolution of Q7 sequences.
Definition: arm_conv_q7.c:65
Instance structure for the floating-point sparse FIR filter.
Definition: arm_math.h:4319
void arm_max_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Maximum value of a floating-point vector.
Definition: arm_max_f32.c:59
uint16_t stateIndex
Definition: arm_math.h:4336
void arm_cmplx_mult_cmplx_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t numSamples)
Q15 complex-by-complex multiplication.
Definition: arm_cmplx_mult_cmplx_q15.c:54
void arm_rfft_f32(const arm_rfft_instance_f32 *S, float32_t *pSrc, float32_t *pDst)
Processing function for the floating-point RFFT/RIFFT.
Definition: arm_rfft_f32.c:150
void arm_rfft_q15(const arm_rfft_instance_q15 *S, q15_t *pSrc, q15_t *pDst)
Processing function for the Q15 RFFT/RIFFT.
Definition: arm_rfft_q15.c:80
arm_status arm_sqrt_q31(q31_t in, q31_t *pOut)
Q31 square root function.
Definition: arm_sqrt_q31.c:47
uint16_t numTaps
Definition: arm_math.h:4349
void arm_mean_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Mean value of a floating-point vector.
Definition: arm_mean_f32.c:64
Instance structure for the Q15 FIR decimator.
Definition: arm_math.h:3214
arm_status arm_cfft_radix4_init_q15(arm_cfft_radix4_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
Initialization function for the Q15 CFFT/CIFFT.
Definition: arm_cfft_radix4_init_q15.c:1122
void arm_abs_q31(q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Q31 vector absolute value.
Definition: arm_abs_q31.c:58
void arm_q31_to_q15(q31_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to Q15 vector.
Definition: arm_q31_to_q15.c:59
arm_status arm_mat_mult_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix multiplication.
Definition: arm_mat_mult_f32.c:73
uint16_t numTaps
Definition: arm_math.h:3242
q31_t * pState
Definition: arm_math.h:1186
uint16_t numRows
Definition: arm_math.h:1796
q15_t * pTwiddleAReal
Definition: arm_math.h:2163
arm_cfft_radix4_instance_q15 * pCfft
Definition: arm_math.h:2396
void arm_lms_norm_init_q31(arm_lms_norm_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, q31_t mu, uint32_t blockSize, uint8_t postShift)
Initialization function for Q31 normalized LMS filter.
Definition: arm_lms_norm_init_q31.c:63
void arm_fir_sparse_init_q15(arm_fir_sparse_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q15 sparse FIR filter.
Definition: arm_fir_sparse_init_q15.c:65
Instance structure for the Q31 DCT4/IDCT4 function.
Definition: arm_math.h:2341
uint8_t postShift
Definition: arm_math.h:1188
void arm_q31_to_float(q31_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to floating-point vector.
Definition: arm_q31_to_float.c:63
float32_t * pState
Definition: arm_math.h:4323
void arm_fir_lattice_q31(const arm_fir_lattice_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR lattice filter.
Definition: arm_fir_lattice_q31.c:58
uint32_t fftLenReal
Definition: arm_math.h:2190
q31_t arm_cos_q31(q31_t x)
Fast approximation to the trigonometric cosine function for Q31 data.
Definition: arm_cos_q31.c:136
Instance structure for the Q31 bilinear interpolation function.
Definition: arm_math.h:1794
void arm_copy_f32(float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Copies the elements of a floating-point vector.
Definition: arm_copy_f32.c:66
uint16_t maxDelay
Definition: arm_math.h:4367
arm_status arm_mat_mult_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix multiplication.
Definition: arm_mat_mult_q31.c:73
uint16_t numStages
Definition: arm_math.h:3756
uint16_t numTaps
Definition: arm_math.h:4335
q15_t * pState
Definition: arm_math.h:4164
Instance structure for the Q7 sparse FIR filter.
Definition: arm_math.h:4361
void arm_lms_init_q31(arm_lms_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, q31_t mu, uint32_t blockSize, uint32_t postShift)
Initialization function for Q31 LMS filter.
Definition: arm_lms_init_q31.c:66
void arm_negate_f32(float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Negates the elements of a floating-point vector.
Definition: arm_negate_f32.c:62
void arm_fir_decimate_fast_q15(const arm_fir_decimate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
Definition: arm_fir_decimate_fast_q15.c:63
Instance structure for the Q31 PID Control.
Definition: arm_math.h:1682
float32_t * pState
Definition: arm_math.h:3424
q15_t * pvCoeffs
Definition: arm_math.h:3759
Instance structure for the Q15 FIR filter.
Definition: arm_math.h:986
void arm_fir_q7(const arm_fir_instance_q7 *S, q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Processing function for the Q7 FIR filter.
Definition: arm_fir_q7.c:64
uint16_t N
Definition: arm_math.h:2296
void arm_fir_sparse_q31(arm_fir_sparse_instance_q31 *S, q31_t *pSrc, q31_t *pDst, q31_t *pScratchIn, uint32_t blockSize)
Processing function for the Q31 sparse FIR filter.
Definition: arm_fir_sparse_q31.c:58
uint32_t fftLenBy2
Definition: arm_math.h:2175
q31_t Ki
Definition: arm_math.h:1689
void arm_biquad_cascade_df1_q15(const arm_biquad_casd_df1_inst_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 Biquad cascade filter.
Definition: arm_biquad_cascade_df1_q15.c:70
void arm_std_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Standard deviation of the elements of a Q15 vector.
Definition: arm_std_q15.c:62
void arm_biquad_cascade_df1_q31(const arm_biquad_casd_df1_inst_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 Biquad cascade filter.
Definition: arm_biquad_cascade_df1_q31.c:69
void arm_copy_q31(q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Copies the elements of a Q31 vector.
Definition: arm_copy_q31.c:53
Instance structure for the floating-point Linear Interpolate function.
Definition: arm_math.h:1771
void arm_add_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector addition.
Definition: arm_add_f32.c:65
uint16_t numTaps
Definition: arm_math.h:4321
Instance structure for the Q15 Biquad cascade filter.
Definition: arm_math.h:1170
uint16_t numCols
Definition: arm_math.h:1351
q15_t arm_sin_q15(q15_t x)
Fast approximation to the trigonometric sine function for Q15 data.
Definition: arm_sin_q15.c:106
float32_t * pTwiddleBReal
Definition: arm_math.h:2196
void arm_fir_sparse_init_q31(arm_fir_sparse_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q31 sparse FIR filter.
Definition: arm_fir_sparse_init_q31.c:64
arm_status arm_dct4_init_q15(arm_dct4_instance_q15 *S, arm_rfft_instance_q15 *S_RFFT, arm_cfft_radix4_instance_q15 *S_CFFT, uint16_t N, uint16_t Nby2, q15_t normalize)
Initialization function for the Q15 DCT4/IDCT4.
Definition: arm_dct4_init_q15.c:1125
q15_t * pState
Definition: arm_math.h:3634
q31_t A1
Definition: arm_math.h:1685
uint16_t phaseLength
Definition: arm_math.h:3398
arm_status arm_fir_interpolate_init_q15(arm_fir_interpolate_instance_q15 *S, uint8_t L, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR interpolator.
Definition: arm_fir_interpolate_init_q15.c:68
void arm_biquad_cascade_df2T_init_f32(arm_biquad_cascade_df2T_instance_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point transposed direct form II Biquad cascade filter...
Definition: arm_biquad_cascade_df2T_init_f32.c:73
void arm_cfft_radix4_q31(const arm_cfft_radix4_instance_q31 *S, q31_t *pSrc)
Processing function for the Q31 CFFT/CIFFT.
Definition: arm_cfft_radix4_q31.c:66
Instance structure for the Q15 IIR lattice filter.
Definition: arm_math.h:3754
void arm_q31_to_q7(q31_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to Q7 vector.
Definition: arm_q31_to_q7.c:59
q31_t * pTwiddleAReal
Definition: arm_math.h:2179
uint32_t twidCoefRModifier
Definition: arm_math.h:2162
q15_t x0
Definition: arm_math.h:4170
void arm_fir_lattice_init_q31(arm_fir_lattice_instance_q31 *S, uint16_t numStages, q31_t *pCoeffs, q31_t *pState)
Initialization function for the Q31 FIR lattice filter.
Definition: arm_fir_lattice_init_q31.c:53
void arm_scale_q7(q7_t *pSrc, q7_t scaleFract, int8_t shift, q7_t *pDst, uint32_t blockSize)
Multiplies a Q7 vector by a scalar.
Definition: arm_scale_q7.c:59
uint32_t fftLenReal
Definition: arm_math.h:2174
uint16_t stateIndex
Definition: arm_math.h:4364
uint16_t Nby2
Definition: arm_math.h:2297
q31_t mu
Definition: arm_math.h:4110
uint8_t ifftFlag
Definition: arm_math.h:1892
Instance structure for the floating-point FIR interpolator.
Definition: arm_math.h:3419
q7_t * pState
Definition: arm_math.h:4365
q31_t mu
Definition: arm_math.h:4004
void arm_negate_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Negates the elements of a Q7 vector.
Definition: arm_negate_q7.c:57
q31_t * pCosFactor
Definition: arm_math.h:2347
uint16_t numRows
Definition: arm_math.h:1785
Instance structure for the Q31 RFFT/RIFFT function.
Definition: arm_math.h:2172
float32_t * pCoeffs
Definition: arm_math.h:3243
uint16_t phaseLength
Definition: arm_math.h:3422
uint16_t bitRevFactor
Definition: arm_math.h:1927
uint16_t maxDelay
Definition: arm_math.h:4325
uint16_t numRows
Definition: arm_math.h:1818
void arm_cmplx_mag_squared_f32(float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex magnitude squared.
Definition: arm_cmplx_mag_squared_f32.c:74
void arm_fir_lattice_init_q15(arm_fir_lattice_instance_q15 *S, uint16_t numStages, q15_t *pCoeffs, q15_t *pState)
Initialization function for the Q15 FIR lattice filter.
Definition: arm_fir_lattice_init_q15.c:53
uint16_t * pBitRevTable
Definition: arm_math.h:1895
void arm_cmplx_conj_f32(float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex conjugate.
Definition: arm_cmplx_conj_f32.c:72
q31_t * pCoeffs
Definition: arm_math.h:4003
arm_status arm_mat_scale_q31(const arm_matrix_instance_q31 *pSrc, q31_t scaleFract, int32_t shift, arm_matrix_instance_q31 *pDst)
Q31 matrix scaling.
Definition: arm_mat_scale_q31.c:63
uint8_t ifftFlag
Definition: arm_math.h:1922
q31_t * pCoeffs
Definition: arm_math.h:3411
Instance structure for the Q31 LMS filter.
Definition: arm_math.h:3999
uint16_t numCols
Definition: arm_math.h:1819
float32_t energy
Definition: arm_math.h:4059
void arm_fir_sparse_f32(arm_fir_sparse_instance_f32 *S, float32_t *pSrc, float32_t *pDst, float32_t *pScratchIn, uint32_t blockSize)
Processing function for the floating-point sparse FIR filter.
Definition: arm_fir_sparse_f32.c:113
float32_t * pCoeffs
Definition: arm_math.h:4057
void arm_biquad_cascade_df1_init_q15(arm_biquad_casd_df1_inst_q15 *S, uint8_t numStages, q15_t *pCoeffs, q15_t *pState, int8_t postShift)
Initialization function for the Q15 Biquad cascade filter.
Definition: arm_biquad_cascade_df1_init_q15.c:81
arm_cfft_radix4_instance_f32 * pCfft
Definition: arm_math.h:2197
void arm_lms_norm_f32(arm_lms_norm_instance_f32 *S, float32_t *pSrc, float32_t *pRef, float32_t *pOut, float32_t *pErr, uint32_t blockSize)
Processing function for floating-point normalized LMS filter.
Definition: arm_lms_norm_f32.c:160
uint8_t M
Definition: arm_math.h:3228
uint32_t numStages
Definition: arm_math.h:1197
void arm_fill_q15(q15_t value, q15_t *pDst, uint32_t blockSize)
Fills a constant value into a Q15 vector.
Definition: arm_fill_q15.c:53
void arm_shift_q7(q7_t *pSrc, int8_t shiftBits, q7_t *pDst, uint32_t blockSize)
Shifts the elements of a Q7 vector a specified number of bits.
Definition: arm_shift_q7.c:59
arm_status arm_mat_scale_f32(const arm_matrix_instance_f32 *pSrc, float32_t scale, arm_matrix_instance_f32 *pDst)
Floating-point matrix scaling.
Definition: arm_mat_scale_f32.c:75
Instance structure for the Q31 FIR lattice filter.
Definition: arm_math.h:3642
CMSIS Cortex-M4 Core Peripheral Access Layer Header File for CM4 Device Series.
void arm_fir_sparse_init_f32(arm_fir_sparse_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the floating-point sparse FIR filter.
Definition: arm_fir_sparse_init_f32.c:65
void arm_dot_prod_f32(float32_t *pSrcA, float32_t *pSrcB, uint32_t blockSize, float32_t *result)
Dot product of floating-point vectors.
Definition: arm_dot_prod_f32.c:62
arm_status arm_rfft_init_q31(arm_rfft_instance_q31 *S, arm_cfft_radix4_instance_q31 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
Initialization function for the Q31 RFFT/RIFFT.
Definition: arm_rfft_init_q31.c:617
q15_t * pTwiddleBReal
Definition: arm_math.h:2164
void arm_iir_lattice_init_f32(arm_iir_lattice_instance_f32 *S, uint16_t numStages, float32_t *pkCoeffs, float32_t *pvCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point IIR lattice filter.
Definition: arm_iir_lattice_init_f32.c:55
uint16_t numRows
Definition: arm_math.h:1807
uint32_t twidCoefRModifier
Definition: arm_math.h:2194
uint8_t bitReverseFlag
Definition: arm_math.h:1908
arm_status arm_conv_partial_fast_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
Definition: arm_conv_partial_fast_q31.c:56
uint32_t fftLenReal
Definition: arm_math.h:2158
q31_t A1
Definition: arm_math.h:1671
Instance structure for the floating-point FIR decimator.
Definition: arm_math.h:3239
arm_cfft_radix4_instance_f32 * pCfft
Definition: arm_math.h:2302
arm_rfft_instance_f32 * pRfft
Definition: arm_math.h:2301
uint16_t numCols
Definition: arm_math.h:1363
void arm_add_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector addition.
Definition: arm_add_q15.c:58
arm_status arm_mat_mult_fast_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4.
Definition: arm_mat_mult_fast_q15.c:74
q31_t * pCoeffs
Definition: arm_math.h:4109
void arm_var_q31(q31_t *pSrc, uint32_t blockSize, q63_t *pResult)
Variance of the elements of a Q31 vector.
Definition: arm_var_q31.c:66
Instance structure for the Q31 normalized LMS filter.
Definition: arm_math.h:4105
Instance structure for the Q15 DCT4/IDCT4 function.
Definition: arm_math.h:2388
void arm_cmplx_dot_prod_q15(q15_t *pSrcA, q15_t *pSrcB, uint32_t numSamples, q31_t *realResult, q31_t *imagResult)
Q15 complex dot product.
Definition: arm_cmplx_dot_prod_q15.c:59
void arm_conv_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Convolution of Q31 sequences.
Definition: arm_conv_q31.c:71
void arm_fir_init_q7(arm_fir_instance_q7 *S, uint16_t numTaps, q7_t *pCoeffs, q7_t *pState, uint32_t blockSize)
Initialization function for the Q7 FIR filter.
Definition: arm_fir_init_q7.c:65
float32_t arm_cos_f32(float32_t x)
Fast approximation to the trigonometric cosine function for floating-point data.
Definition: arm_cos_f32.c:192
q15_t * pCosFactor
Definition: arm_math.h:2394
void arm_sub_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector subtraction.
Definition: arm_sub_q15.c:58
q7_t * pState
Definition: arm_math.h:979
uint8_t numStages
Definition: arm_math.h:3541
uint16_t numStages
Definition: arm_math.h:3767
void arm_sin_cos_f32(float32_t theta, float32_t *pSinVal, float32_t *pCcosVal)
Floating-point sin_cos function.
Definition: arm_sin_cos_f32.c:367
float32_t * pTwiddleAReal
Definition: arm_math.h:2195
void arm_iir_lattice_q31(const arm_iir_lattice_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 IIR lattice filter.
Definition: arm_iir_lattice_q31.c:62
void arm_cmplx_mag_f32(float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex magnitude.
Definition: arm_cmplx_mag_f32.c:73
void arm_mult_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector multiplication.
Definition: arm_mult_q31.c:61
uint8_t bitReverseFlag
Definition: arm_math.h:1893
float32_t * pState
Definition: arm_math.h:3244
uint16_t phaseLength
Definition: arm_math.h:3410
float32_t * pCosFactor
Definition: arm_math.h:2300
uint8_t postShift
Definition: arm_math.h:3544
void arm_pid_init_f32(arm_pid_instance_f32 *S, int32_t resetStateFlag)
Initialization function for the floating-point PID Control.
Definition: arm_pid_init_f32.c:51
void arm_biquad_cas_df1_32x64_init_q31(arm_biquad_cas_df1_32x64_ins_q31 *S, uint8_t numStages, q31_t *pCoeffs, q63_t *pState, uint8_t postShift)
Definition: arm_biquad_cascade_df1_32x64_init_q31.c:77
void arm_abs_f32(float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Floating-point vector absolute value.
Definition: arm_abs_f32.c:66
arm_status arm_mat_trans_f32(const arm_matrix_instance_f32 *pSrc, arm_matrix_instance_f32 *pDst)
Floating-point matrix transpose.
Definition: arm_mat_trans_f32.c:64
Instance structure for the Q15 PID Control.
Definition: arm_math.h:1664
uint16_t numRows
Definition: arm_math.h:1339
void arm_iir_lattice_init_q15(arm_iir_lattice_instance_q15 *S, uint16_t numStages, q15_t *pkCoeffs, q15_t *pvCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 IIR lattice filter.
Definition: arm_iir_lattice_init_q15.c:55
uint16_t numStages
Definition: arm_math.h:3633
void arm_fir_interpolate_q15(const arm_fir_interpolate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR interpolator.
Definition: arm_fir_interpolate_q15.c:62
q15_t * pCoeffs
Definition: arm_math.h:3948
uint8_t bitReverseFlagR
Definition: arm_math.h:2193
void arm_min_q7(q7_t *pSrc, uint32_t blockSize, q7_t *result, uint32_t *index)
Minimum value of a Q7 vector.
Definition: arm_min_q7.c:52
q31_t * pTwiddle
Definition: arm_math.h:1909
arm_status arm_mat_trans_q15(const arm_matrix_instance_q15 *pSrc, arm_matrix_instance_q15 *pDst)
Q15 matrix transpose.
Definition: arm_mat_trans_q15.c:55
void arm_iir_lattice_init_q31(arm_iir_lattice_instance_q31 *S, uint16_t numStages, q31_t *pkCoeffs, q31_t *pvCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 IIR lattice filter.
Definition: arm_iir_lattice_init_q31.c:55
uint16_t numCols
Definition: arm_math.h:1797
uint16_t numCols
Definition: arm_math.h:1340
uint16_t numCols
Definition: arm_math.h:1808
void arm_max_q7(q7_t *pSrc, uint32_t blockSize, q7_t *pResult, uint32_t *pIndex)
Maximum value of a Q7 vector.
Definition: arm_max_q7.c:51
uint32_t postShift
Definition: arm_math.h:3950
float32_t state[3]
Definition: arm_math.h:1702
uint16_t twidCoefModifier
Definition: arm_math.h:1896
Instance structure for the Q31 IIR lattice filter.
Definition: arm_math.h:3765
void arm_dct4_q15(const arm_dct4_instance_q15 *S, q15_t *pState, q15_t *pInlineBuffer)
Processing function for the Q15 DCT4/IDCT4.
Definition: arm_dct4_q15.c:52
Instance structure for the Q15 CFFT/CIFFT function.
Definition: arm_math.h:1889
void arm_lms_init_f32(arm_lms_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, float32_t mu, uint32_t blockSize)
Initialization function for floating-point LMS filter.
Definition: arm_lms_init_f32.c:61
void arm_min_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult, uint32_t *pIndex)
Minimum value of a Q15 vector.
Definition: arm_min_q15.c:53
arm_status arm_fir_decimate_init_q15(arm_fir_decimate_instance_q15 *S, uint16_t numTaps, uint8_t M, q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR decimator.
Definition: arm_fir_decimate_init_q15.c:68
q31_t * pTwiddle
Definition: arm_math.h:2346
void arm_sub_q7(q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector subtraction.
Definition: arm_sub_q7.c:58
uint16_t numTaps
Definition: arm_math.h:4001
void arm_fir_fast_q15(const arm_fir_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the fast Q15 FIR filter for Cortex-M3 and Cortex-M4.
Definition: arm_fir_fast_q15.c:65
float32_t * pYData
Definition: arm_math.h:1776
float32_t * pCoeffs
Definition: arm_math.h:1199
q31_t * pCoeffs
Definition: arm_math.h:3646
Instance structure for the floating-point IIR lattice filter.
Definition: arm_math.h:3776
arm_status arm_mat_sub_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
Q15 matrix subtraction.
Definition: arm_mat_sub_q15.c:61
void arm_mat_init_f32(arm_matrix_instance_f32 *S, uint16_t nRows, uint16_t nColumns, float32_t *pData)
Floating-point matrix initialization.
Definition: arm_mat_init_f32.c:65
void arm_var_q15(q15_t *pSrc, uint32_t blockSize, q31_t *pResult)
Variance of the elements of a Q15 vector.
Definition: arm_var_q15.c:64
q15_t * pState
Definition: arm_math.h:4351
uint8_t M
Definition: arm_math.h:3216