Lines Matching full:of
17 * - Redistributions of source code must retain the above copyright
18 * notice, this list of conditions and the following disclaimer.
20 * notice, this list of conditions and the following disclaimer in
23 * - Neither the name of ARM LIMITED nor the names of its contributors
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
33 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
34 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
35 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38 * POSSIBILITY OF SUCH DAMAGE.
47 * a suite of common signal processing functions for use on Cortex-M processor based devices.
49 * The library is divided into a number of functions each covering a specific category:
66 …* The library installer contains prebuilt versions of the libraries in the <code>Lib</code> folder.
84 * The library ships with a number of examples which demonstrate how to use the library functions.
120 * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices
147 * This set of functions provides a fast approximation to sine, cosine, and square root.
148 * As compared to most of the other functions in the CMSIS math library, the fast math functions
156 * This set of functions operates on complex data vectors.
159 * In the API functions, the number of samples in a complex array refers
160 * to the number of complex values; the array contains twice this number of
171 * This set of functions provides basic matrix math operations.
179 * uint16_t numRows; // number of rows of the matrix.
180 * uint16_t numCols; // number of columns of the matrix.
181 * float32_t *pData; // points to the data of the matrix.
186 * The structure specifies the size of the matrix and then points to
187 * an array of data. The array is of size <code>numRows X numCols</code>
195 * There is an associated initialization function for each type of matrix
197 * The initialization function sets the values of the internal structure fields.
202 * Use of the initialization function is optional. However, if initialization function is used
211 * where <code>nRows</code> specifies the number of rows, <code>nColumns</code>
212 * specifies the number of columns, and <code>pData</code> points to the
216 * By default all of the matrix functions perform size checking on the input and
218 * two input matrices and the output matrix all have the same number of rows and
256 * These functions perform 1- and 2-dimensional interpolation of data.
315 /* 1.31(q31) Fixed value of 2/360 */
340 ARM_MATH_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */
341 …ARM_MATH_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation. */
513 * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type.
538 /* calculation of index for initial approximated Val */ in arm_recip_q31()
545 /* calculation of reciprocal value */ in arm_recip_q31()
559 /* return num of signbits of out = 1/in value */ in arm_recip_q31()
565 * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type.
589 /* calculation of index for initial approximated Val */ in arm_recip_q15()
596 /* calculation of reciprocal value */ in arm_recip_q15()
609 /* return num of signbits of out = 1/in value */ in arm_recip_q15()
656 #endif /* end of ARM_MATH_CM0_FAMILY */
1047 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1048 …q7_t *pState; /**< points to the state variable array. The array is of length numTaps+b…
1049 q7_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
1057 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1058 …q15_t *pState; /**< points to the state variable array. The array is of length numTaps+…
1059 … q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
1067 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1068 …q31_t *pState; /**< points to the state variable array. The array is of length numTaps+…
1069 … q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
1077 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1078 …float32_t *pState; /**< points to the state variable array. The array is of length numTaps+bloc…
1079 float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
1085 * @param[in] *S points to an instance of the Q7 FIR filter structure.
1086 * @param[in] *pSrc points to the block of input data.
1087 * @param[out] *pDst points to the block of output data.
1088 * @param[in] blockSize number of samples to process.
1100 * @param[in,out] *S points to an instance of the Q7 FIR structure.
1101 * @param[in] numTaps Number of filter coefficients in the filter.
1104 * @param[in] blockSize number of samples that are processed.
1117 * @param[in] *S points to an instance of the Q15 FIR structure.
1118 * @param[in] *pSrc points to the block of input data.
1119 * @param[out] *pDst points to the block of output data.
1120 * @param[in] blockSize number of samples to process.
1131 * @param[in] *S points to an instance of the Q15 FIR filter structure.
1132 * @param[in] *pSrc points to the block of input data.
1133 * @param[out] *pDst points to the block of output data.
1134 * @param[in] blockSize number of samples to process.
1145 * @param[in,out] *S points to an instance of the Q15 FIR filter structure.
1146 …* @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than o…
1149 * @param[in] blockSize number of samples that are processed at a time.
1163 * @param[in] *S points to an instance of the Q31 FIR filter structure.
1164 * @param[in] *pSrc points to the block of input data.
1165 * @param[out] *pDst points to the block of output data.
1166 * @param[in] blockSize number of samples to process.
1177 * @param[in] *S points to an instance of the Q31 FIR structure.
1178 * @param[in] *pSrc points to the block of input data.
1179 * @param[out] *pDst points to the block of output data.
1180 * @param[in] blockSize number of samples to process.
1191 * @param[in,out] *S points to an instance of the Q31 FIR structure.
1192 * @param[in] numTaps Number of filter coefficients in the filter.
1195 * @param[in] blockSize number of samples that are processed at a time.
1207 * @param[in] *S points to an instance of the floating-point FIR structure.
1208 * @param[in] *pSrc points to the block of input data.
1209 * @param[out] *pDst points to the block of output data.
1210 * @param[in] blockSize number of samples to process.
1221 * @param[in,out] *S points to an instance of the floating-point FIR filter structure.
1222 * @param[in] numTaps Number of filter coefficients in the filter.
1225 * @param[in] blockSize number of samples that are processed at a time.
1241 …int8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numSt…
1242 …q15_t *pState; /**< Points to the array of state coefficients. The array is of length …
1243 …q15_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numS…
1254 …uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numSta…
1255 …q31_t *pState; /**< Points to the array of state coefficients. The array is of length 4…
1256 …q31_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numSt…
1266 …uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*num…
1267 …float32_t *pState; /**< Points to the array of state coefficients. The array is of lengt…
1268 …float32_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*nu…
1277 * @param[in] *S points to an instance of the Q15 Biquad cascade structure.
1278 * @param[in] *pSrc points to the block of input data.
1279 * @param[out] *pDst points to the block of output data.
1280 * @param[in] blockSize number of samples to process.
1292 * @param[in,out] *S points to an instance of the Q15 Biquad cascade structure.
1293 * @param[in] numStages number of 2nd order stages in the filter.
1310 * @param[in] *S points to an instance of the Q15 Biquad cascade structure.
1311 * @param[in] *pSrc points to the block of input data.
1312 * @param[out] *pDst points to the block of output data.
1313 * @param[in] blockSize number of samples to process.
1326 * @param[in] *S points to an instance of the Q31 Biquad cascade structure.
1327 * @param[in] *pSrc points to the block of input data.
1328 * @param[out] *pDst points to the block of output data.
1329 * @param[in] blockSize number of samples to process.
1341 * @param[in] *S points to an instance of the Q31 Biquad cascade structure.
1342 * @param[in] *pSrc points to the block of input data.
1343 * @param[out] *pDst points to the block of output data.
1344 * @param[in] blockSize number of samples to process.
1356 * @param[in,out] *S points to an instance of the Q31 Biquad cascade structure.
1357 * @param[in] numStages number of 2nd order stages in the filter.
1373 * @param[in] *S points to an instance of the floating-point Biquad cascade structure.
1374 * @param[in] *pSrc points to the block of input data.
1375 * @param[out] *pDst points to the block of output data.
1376 * @param[in] blockSize number of samples to process.
1388 …* @param[in,out] *S points to an instance of the floating-point Biquad cascade structure.
1389 * @param[in] numStages number of 2nd order stages in the filter.
1408 uint16_t numRows; /**< number of rows of the matrix. */
1409 uint16_t numCols; /**< number of columns of the matrix. */
1410 float32_t *pData; /**< points to the data of the matrix. */
1419 uint16_t numRows; /**< number of rows of the matrix. */
1420 uint16_t numCols; /**< number of columns of the matrix. */
1421 q15_t *pData; /**< points to the data of the matrix. */
1431 uint16_t numRows; /**< number of rows of the matrix. */
1432 uint16_t numCols; /**< number of columns of the matrix. */
1433 q31_t *pData; /**< points to the data of the matrix. */
1445 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1459 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1473 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1487 * or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
1500 * or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
1512 * or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
1526 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1541 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1557 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1572 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1586 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1601 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1615 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1629 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1643 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1654 * @param[in] scaleFract fractional portion of the scale factor
1655 * @param[in] shift number of bits to shift the result by
1658 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1670 * @param[in] scaleFract fractional portion of the scale factor
1671 * @param[in] shift number of bits to shift the result by
1674 …* <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of siz…
1686 * @param[in,out] *S points to an instance of the floating-point matrix structure.
1687 * @param[in] nRows number of rows in the matrix.
1688 * @param[in] nColumns number of columns in the matrix.
1701 * @param[in,out] *S points to an instance of the floating-point matrix structure.
1702 * @param[in] nRows number of rows in the matrix.
1703 * @param[in] nColumns number of columns in the matrix.
1716 * @param[in,out] *S points to an instance of the floating-point matrix structure.
1717 * @param[in] nRows number of rows in the matrix.
1718 * @param[in] nColumns number of columns in the matrix.
1743 q15_t state[3]; /**< The state array of length 3. */
1757 q31_t state[3]; /**< The state array of length 3. */
1772 float32_t state[3]; /**< The state array of length 3. */
1782 * @param[in,out] *S points to an instance of the PID structure.
1792 * @param[in,out] *S is an instance of the floating-point PID Control structure
1801 * @param[in,out] *S points to an instance of the Q15 PID structure.
1812 * @param[in,out] *S points to an instance of the Q31 PID Control structure
1821 * @param[in,out] *S points to an instance of the Q15 PID structure.
1831 * @param[in,out] *S points to an instance of the q15 PID Control structure
1846 float32_t *pYData; /**< pointer to the table of Y values */
1855 uint16_t numRows; /**< number of rows in the data table. */
1856 uint16_t numCols; /**< number of columns in the data table. */
1866 uint16_t numRows; /**< number of rows in the data table. */
1867 uint16_t numCols; /**< number of columns in the data table. */
1877 uint16_t numRows; /**< number of rows in the data table. */
1878 uint16_t numCols; /**< number of columns in the data table. */
1888 uint16_t numRows; /**< number of rows in the data table. */
1889 uint16_t numCols; /**< number of columns in the data table. */
1899 * @param[in] blockSize number of samples in each vector
1914 * @param[in] blockSize number of samples in each vector
1929 * @param[in] blockSize number of samples in each vector
1944 * @param[in] blockSize number of samples in each vector
1965 uint16_t fftLen; /**< length of the FFT. */
1967 …/**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
1992 uint16_t fftLen; /**< length of the FFT. */
1994 …/**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
2017 uint16_t fftLen; /**< length of the FFT. */
2019 …/**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
2042 uint16_t fftLen; /**< length of the FFT. */
2044 …/**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
2068 uint16_t fftLen; /**< length of the FFT. */
2070 …/**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
2075 float32_t onebyfftLen; /**< value of 1/fftLen. */
2096 uint16_t fftLen; /**< length of the FFT. */
2098 …/**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
2103 float32_t onebyfftLen; /**< value of 1/fftLen. */
2124 uint16_t fftLen; /**< length of the FFT. */
2142 uint32_t fftLenReal; /**< length of the real FFT. */
2143 uint32_t fftLenBy2; /**< length of the complex FFT. */
2145 …*< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */
2170 uint32_t fftLenReal; /**< length of the real FFT. */
2171 uint32_t fftLenBy2; /**< length of the complex FFT. */
2173 …*< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */
2198 uint32_t fftLenReal; /**< length of the real FFT. */
2199 uint16_t fftLenBy2; /**< length of the complex FFT. */
2201 …*< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */
2227 uint16_t fftLenRFFT; /**< length of the real sequence */
2246 uint16_t N; /**< length of the DCT4. */
2247 uint16_t Nby2; /**< half of the length of the DCT4. */
2257 * @param[in,out] *S points to an instance of floating-point DCT4/IDCT4 structure.
2258 * @param[in] *S_RFFT points to an instance of floating-point RFFT/RIFFT structure.
2259 * @param[in] *S_CFFT points to an instance of floating-point CFFT/CIFFT structure.
2260 * @param[in] N length of the DCT4.
2261 * @param[in] Nby2 half of the length of the DCT4.
2276 …* @param[in] *S points to an instance of the floating-point DCT4/IDCT4 structure.
2293 uint16_t N; /**< length of the DCT4. */
2294 uint16_t Nby2; /**< half of the length of the DCT4. */
2304 * @param[in,out] *S points to an instance of Q31 DCT4/IDCT4 structure.
2305 * @param[in] *S_RFFT points to an instance of Q31 RFFT/RIFFT structure
2306 * @param[in] *S_CFFT points to an instance of Q31 CFFT/CIFFT structure
2307 * @param[in] N length of the DCT4.
2308 * @param[in] Nby2 half of the length of the DCT4.
2323 * @param[in] *S points to an instance of the Q31 DCT4 structure.
2340 uint16_t N; /**< length of the DCT4. */
2341 uint16_t Nby2; /**< half of the length of the DCT4. */
2351 * @param[in,out] *S points to an instance of Q15 DCT4/IDCT4 structure.
2352 * @param[in] *S_RFFT points to an instance of Q15 RFFT/RIFFT structure.
2353 * @param[in] *S_CFFT points to an instance of Q15 CFFT/CIFFT structure.
2354 * @param[in] N length of the DCT4.
2355 * @param[in] Nby2 half of the length of the DCT4.
2370 * @param[in] *S points to an instance of the Q15 DCT4 structure.
2386 * @param[in] blockSize number of samples in each vector
2401 * @param[in] blockSize number of samples in each vector
2416 * @param[in] blockSize number of samples in each vector
2431 * @param[in] blockSize number of samples in each vector
2446 * @param[in] blockSize number of samples in each vector
2461 * @param[in] blockSize number of samples in each vector
2476 * @param[in] blockSize number of samples in each vector
2491 * @param[in] blockSize number of samples in each vector
2506 * @param[in] blockSize number of samples in the vector
2519 * @param[in] scaleFract fractional portion of the scale value
2520 * @param[in] shift number of bits to shift the result by
2522 * @param[in] blockSize number of samples in the vector
2536 * @param[in] scaleFract fractional portion of the scale value
2537 * @param[in] shift number of bits to shift the result by
2539 * @param[in] blockSize number of samples in the vector
2553 * @param[in] scaleFract fractional portion of the scale value
2554 * @param[in] shift number of bits to shift the result by
2556 * @param[in] blockSize number of samples in the vector
2571 * @param[in] blockSize number of samples in each vector
2584 * @param[in] blockSize number of samples in each vector
2597 * @param[in] blockSize number of samples in each vector
2610 * @param[in] blockSize number of samples in each vector
2620 * @brief Dot product of floating-point vectors.
2623 * @param[in] blockSize number of samples in each vector
2635 * @brief Dot product of Q7 vectors.
2638 * @param[in] blockSize number of samples in each vector
2650 * @brief Dot product of Q15 vectors.
2653 * @param[in] blockSize number of samples in each vector
2665 * @brief Dot product of Q31 vectors.
2668 * @param[in] blockSize number of samples in each vector
2680 * @brief Shifts the elements of a Q7 vector a specified number of bits.
2682 …* @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value s…
2684 * @param[in] blockSize number of samples in the vector
2695 * @brief Shifts the elements of a Q15 vector a specified number of bits.
2697 …* @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value s…
2699 * @param[in] blockSize number of samples in the vector
2710 * @brief Shifts the elements of a Q31 vector a specified number of bits.
2712 …* @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value s…
2714 * @param[in] blockSize number of samples in the vector
2729 * @param[in] blockSize number of samples in the vector
2744 * @param[in] blockSize number of samples in the vector
2759 * @param[in] blockSize number of samples in the vector
2774 * @param[in] blockSize number of samples in the vector
2785 * @brief Negates the elements of a floating-point vector.
2788 * @param[in] blockSize number of samples in the vector
2798 * @brief Negates the elements of a Q7 vector.
2801 * @param[in] blockSize number of samples in the vector
2811 * @brief Negates the elements of a Q15 vector.
2814 * @param[in] blockSize number of samples in the vector
2824 * @brief Negates the elements of a Q31 vector.
2827 * @param[in] blockSize number of samples in the vector
2836 * @brief Copies the elements of a floating-point vector.
2839 * @param[in] blockSize number of samples to process
2848 * @brief Copies the elements of a Q7 vector.
2851 * @param[in] blockSize number of samples to process
2860 * @brief Copies the elements of a Q15 vector.
2863 * @param[in] blockSize number of samples to process
2872 * @brief Copies the elements of a Q31 vector.
2875 * @param[in] blockSize number of samples to process
2886 * @param[in] blockSize number of samples to process
2898 * @param[in] blockSize number of samples to process
2910 * @param[in] blockSize number of samples to process
2922 * @param[in] blockSize number of samples to process
2931 * @brief Convolution of floating-point sequences.
2933 * @param[in] srcALen length of the first input sequence.
2935 * @param[in] srcBLen length of the second input sequence.
2949 * @brief Convolution of Q15 sequences.
2951 * @param[in] srcALen length of the first input sequence.
2953 * @param[in] srcBLen length of the second input sequence.
2954 * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1.
2955 …* @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, s…
2956 * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
2972 * @brief Convolution of Q15 sequences.
2974 * @param[in] srcALen length of the first input sequence.
2976 * @param[in] srcBLen length of the second input sequence.
2989 * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
2991 * @param[in] srcALen length of the first input sequence.
2993 * @param[in] srcBLen length of the second input sequence.
2994 * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1.
3006 * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
3008 * @param[in] srcALen length of the first input sequence.
3010 * @param[in] srcBLen length of the second input sequence.
3011 * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1.
3012 …* @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, s…
3013 * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
3029 * @brief Convolution of Q31 sequences.
3031 * @param[in] srcALen length of the first input sequence.
3033 * @param[in] srcBLen length of the second input sequence.
3034 * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1.
3046 * @brief Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
3048 * @param[in] srcALen length of the first input sequence.
3050 * @param[in] srcBLen length of the second input sequence.
3051 * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1.
3064 * @brief Convolution of Q7 sequences.
3066 * @param[in] srcALen length of the first input sequence.
3068 * @param[in] srcBLen length of the second input sequence.
3069 * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1.
3070 …* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2…
3071 * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
3087 * @brief Convolution of Q7 sequences.
3089 * @param[in] srcALen length of the first input sequence.
3091 * @param[in] srcBLen length of the second input sequence.
3092 * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1.
3105 * @brief Partial convolution of floating-point sequences.
3107 * @param[in] srcALen length of the first input sequence.
3109 * @param[in] srcBLen length of the second input sequence.
3110 * @param[out] *pDst points to the block of output data
3112 * @param[in] numPoints is the number of output points to be computed.
3126 * @brief Partial convolution of Q15 sequences.
3128 * @param[in] srcALen length of the first input sequence.
3130 * @param[in] srcBLen length of the second input sequence.
3131 * @param[out] *pDst points to the block of output data
3133 * @param[in] numPoints is the number of output points to be computed.
3134 …* @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcA…
3135 * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
3152 * @brief Partial convolution of Q15 sequences.
3154 * @param[in] srcALen length of the first input sequence.
3156 * @param[in] srcBLen length of the second input sequence.
3157 * @param[out] *pDst points to the block of output data
3159 * @param[in] numPoints is the number of output points to be computed.
3173 * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
3175 * @param[in] srcALen length of the first input sequence.
3177 * @param[in] srcBLen length of the second input sequence.
3178 * @param[out] *pDst points to the block of output data
3180 * @param[in] numPoints is the number of output points to be computed.
3195 * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
3197 * @param[in] srcALen length of the first input sequence.
3199 * @param[in] srcBLen length of the second input sequence.
3200 * @param[out] *pDst points to the block of output data
3202 * @param[in] numPoints is the number of output points to be computed.
3203 …* @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcA…
3204 * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
3221 * @brief Partial convolution of Q31 sequences.
3223 * @param[in] srcALen length of the first input sequence.
3225 * @param[in] srcBLen length of the second input sequence.
3226 * @param[out] *pDst points to the block of output data
3228 * @param[in] numPoints is the number of output points to be computed.
3243 * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
3245 * @param[in] srcALen length of the first input sequence.
3247 * @param[in] srcBLen length of the second input sequence.
3248 * @param[out] *pDst points to the block of output data
3250 * @param[in] numPoints is the number of output points to be computed.
3265 * @brief Partial convolution of Q7 sequences
3267 * @param[in] srcALen length of the first input sequence.
3269 * @param[in] srcBLen length of the second input sequence.
3270 * @param[out] *pDst points to the block of output data
3272 * @param[in] numPoints is the number of output points to be computed.
3273 …* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2…
3274 * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
3291 * @brief Partial convolution of Q7 sequences.
3293 * @param[in] srcALen length of the first input sequence.
3295 * @param[in] srcBLen length of the second input sequence.
3296 * @param[out] *pDst points to the block of output data
3298 * @param[in] numPoints is the number of output points to be computed.
3320 uint16_t numTaps; /**< number of coefficients in the filter. */
3321 …q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numT…
3322 …q15_t *pState; /**< points to the state variable array. The array is of length n…
3332 uint16_t numTaps; /**< number of coefficients in the filter. */
3333 …q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.…
3334 …q31_t *pState; /**< points to the state variable array. The array is of length numTa…
3345 uint16_t numTaps; /**< number of coefficients in the filter. */
3346 …float32_t *pCoeffs; /**< points to the coefficient array. The array is of length …
3347 …float32_t *pState; /**< points to the state variable array. The array is of leng…
3355 * @param[in] *S points to an instance of the floating-point FIR decimator structure.
3356 * @param[in] *pSrc points to the block of input data.
3357 * @param[out] *pDst points to the block of output data
3358 * @param[in] blockSize number of input samples to process per call.
3371 * @param[in,out] *S points to an instance of the floating-point FIR decimator structure.
3372 * @param[in] numTaps number of coefficients in the filter.
3376 * @param[in] blockSize number of input samples to process per call.
3378 * <code>blockSize</code> is not a multiple of <code>M</code>.
3391 * @param[in] *S points to an instance of the Q15 FIR decimator structure.
3392 * @param[in] *pSrc points to the block of input data.
3393 * @param[out] *pDst points to the block of output data
3394 * @param[in] blockSize number of input samples to process per call.
3406 * @param[in] *S points to an instance of the Q15 FIR decimator structure.
3407 * @param[in] *pSrc points to the block of input data.
3408 * @param[out] *pDst points to the block of output data
3409 * @param[in] blockSize number of input samples to process per call.
3423 * @param[in,out] *S points to an instance of the Q15 FIR decimator structure.
3424 * @param[in] numTaps number of coefficients in the filter.
3428 * @param[in] blockSize number of input samples to process per call.
3430 * <code>blockSize</code> is not a multiple of <code>M</code>.
3443 * @param[in] *S points to an instance of the Q31 FIR decimator structure.
3444 * @param[in] *pSrc points to the block of input data.
3445 * @param[out] *pDst points to the block of output data
3446 * @param[in] blockSize number of input samples to process per call.
3458 * @param[in] *S points to an instance of the Q31 FIR decimator structure.
3459 * @param[in] *pSrc points to the block of input data.
3460 * @param[out] *pDst points to the block of output data
3461 * @param[in] blockSize number of input samples to process per call.
3474 * @param[in,out] *S points to an instance of the Q31 FIR decimator structure.
3475 * @param[in] numTaps number of coefficients in the filter.
3479 * @param[in] blockSize number of input samples to process per call.
3481 * <code>blockSize</code> is not a multiple of <code>M</code>.
3501 uint16_t phaseLength; /**< length of each polyphase filter component. */
3502 …q15_t *pCoeffs; /**< points to the coefficient array. The array is of length L*pha…
3503 …q15_t *pState; /**< points to the state variable array. The array is of length bl…
3513 uint16_t phaseLength; /**< length of each polyphase filter component. */
3514 …q31_t *pCoeffs; /**< points to the coefficient array. The array is of length L*ph…
3515 …q31_t *pState; /**< points to the state variable array. The array is of length b…
3525 uint16_t phaseLength; /**< length of each polyphase filter component. */
3526 …float32_t *pCoeffs; /**< points to the coefficient array. The array is of length L*pha…
3527 …float32_t *pState; /**< points to the state variable array. The array is of length ph…
3533 * @param[in] *S points to an instance of the Q15 FIR interpolator structure.
3534 * @param[in] *pSrc points to the block of input data.
3535 * @param[out] *pDst points to the block of output data.
3536 * @param[in] blockSize number of input samples to process per call.
3549 * @param[in,out] *S points to an instance of the Q15 FIR interpolator structure.
3551 * @param[in] numTaps number of filter coefficients in the filter.
3554 * @param[in] blockSize number of input samples to process per call.
3556 …* the filter length <code>numTaps</code> is not a multiple of the interpolation factor <code>L</co…
3569 * @param[in] *S points to an instance of the Q15 FIR interpolator structure.
3570 * @param[in] *pSrc points to the block of input data.
3571 * @param[out] *pDst points to the block of output data.
3572 * @param[in] blockSize number of input samples to process per call.
3584 * @param[in,out] *S points to an instance of the Q31 FIR interpolator structure.
3586 * @param[in] numTaps number of filter coefficients in the filter.
3589 * @param[in] blockSize number of input samples to process per call.
3591 …* the filter length <code>numTaps</code> is not a multiple of the interpolation factor <code>L</co…
3605 * @param[in] *S points to an instance of the floating-point FIR interpolator structure.
3606 * @param[in] *pSrc points to the block of input data.
3607 * @param[out] *pDst points to the block of output data.
3608 * @param[in] blockSize number of input samples to process per call.
3620 … * @param[in,out] *S points to an instance of the floating-point FIR interpolator structure.
3622 * @param[in] numTaps number of filter coefficients in the filter.
3625 * @param[in] blockSize number of input samples to process per call.
3627 …* the filter length <code>numTaps</code> is not a multiple of the interpolation factor <code>L</co…
3644 …uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numSta…
3645 …q63_t *pState; /**< points to the array of state coefficients. The array is of length 4…
3646 …q31_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numSt…
3653 …* @param[in] *S points to an instance of the high precision Q31 Biquad cascade filter stru…
3654 * @param[in] *pSrc points to the block of input data.
3655 * @param[out] *pDst points to the block of output data
3656 * @param[in] blockSize number of samples to process.
3668 …* @param[in,out] *S points to an instance of the high precision Q31 Biquad cascade filte…
3669 * @param[in] numStages number of 2nd order stages in the filter.
3691 …uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numS…
3692 …float32_t *pState; /**< points to the array of state coefficients. The array is of length…
3693 …float32_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*num…
3699 * @param[in] *S points to an instance of the filter data structure.
3700 * @param[in] *pSrc points to the block of input data.
3701 * @param[out] *pDst points to the block of output data
3702 * @param[in] blockSize number of samples to process.
3715 * @param[in,out] *S points to an instance of the filter data structure.
3716 * @param[in] numStages number of 2nd order stages in the filter.
3736 uint16_t numStages; /**< number of filter stages. */
3737 … /**< points to the state variable array. The array is of length numStages. */
3738 … /**< points to the coefficient array. The array is of length numStages. */
3747 uint16_t numStages; /**< number of filter stages. */
3748 … /**< points to the state variable array. The array is of length numStages. */
3749 … /**< points to the coefficient array. The array is of length numStages. */
3758 uint16_t numStages; /**< number of filter stages. */
3759 …float32_t *pState; /**< points to the state variable array. The array is of leng…
3760 …float32_t *pCoeffs; /**< points to the coefficient array. The array is of length …
3765 * @param[in] *S points to an instance of the Q15 FIR lattice structure.
3766 * @param[in] numStages number of filter stages.
3767 * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages.
3768 * @param[in] *pState points to the state buffer. The array is of length numStages.
3781 * @param[in] *S points to an instance of the Q15 FIR lattice structure.
3782 * @param[in] *pSrc points to the block of input data.
3783 * @param[out] *pDst points to the block of output data.
3784 * @param[in] blockSize number of samples to process.
3795 * @param[in] *S points to an instance of the Q31 FIR lattice structure.
3796 * @param[in] numStages number of filter stages.
3797 * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages.
3798 * @param[in] *pState points to the state buffer. The array is of length numStages.
3811 * @param[in] *S points to an instance of the Q31 FIR lattice structure.
3812 * @param[in] *pSrc points to the block of input data.
3813 * @param[out] *pDst points to the block of output data
3814 * @param[in] blockSize number of samples to process.
3826 * @param[in] *S points to an instance of the floating-point FIR lattice structure.
3827 * @param[in] numStages number of filter stages.
3828 * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages.
3829 * @param[in] *pState points to the state buffer. The array is of length numStages.
3841 * @param[in] *S points to an instance of the floating-point FIR lattice structure.
3842 * @param[in] *pSrc points to the block of input data.
3843 * @param[out] *pDst points to the block of output data
3844 * @param[in] blockSize number of samples to process.
3859 uint16_t numStages; /**< number of stages in the filter. */
3860 … /**< points to the state variable array. The array is of length numStages+blo…
3861 … /**< points to the reflection coefficient array. The array is of length numStages. */
3862 … /**< points to the ladder coefficient array. The array is of length numStages+1. …
3870 uint16_t numStages; /**< number of stages in the filter. */
3871 … /**< points to the state variable array. The array is of length numStages+blo…
3872 … /**< points to the reflection coefficient array. The array is of length numStages. */
3873 … /**< points to the ladder coefficient array. The array is of length numStages+1. …
3881 uint16_t numStages; /**< number of stages in the filter. */
3882 … /**< points to the state variable array. The array is of length numStages+blo…
3883 … /**< points to the reflection coefficient array. The array is of length numStages. */
3884 … /**< points to the ladder coefficient array. The array is of length numStages+1. …
3889 * @param[in] *S points to an instance of the floating-point IIR lattice structure.
3890 * @param[in] *pSrc points to the block of input data.
3891 * @param[out] *pDst points to the block of output data.
3892 * @param[in] blockSize number of samples to process.
3904 * @param[in] *S points to an instance of the floating-point IIR lattice structure.
3905 * @param[in] numStages number of stages in the filter.
3906 …* @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numSta…
3907 …* @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+…
3908 * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize-1.
3909 * @param[in] blockSize number of samples to process.
3924 * @param[in] *S points to an instance of the Q31 IIR lattice structure.
3925 * @param[in] *pSrc points to the block of input data.
3926 * @param[out] *pDst points to the block of output data.
3927 * @param[in] blockSize number of samples to process.
3940 * @param[in] *S points to an instance of the Q31 IIR lattice structure.
3941 * @param[in] numStages number of stages in the filter.
3942 …* @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numSta…
3943 …* @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+…
3944 * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize.
3945 * @param[in] blockSize number of samples to process.
3960 * @param[in] *S points to an instance of the Q15 IIR lattice structure.
3961 * @param[in] *pSrc points to the block of input data.
3962 * @param[out] *pDst points to the block of output data.
3963 * @param[in] blockSize number of samples to process.
3976 * @param[in] *S points to an instance of the fixed-point Q15 IIR lattice structure.
3977 * @param[in] numStages number of stages in the filter.
3978 * @param[in] *pkCoeffs points to reflection coefficient buffer. The array is of length numStages.
3979 * @param[in] *pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1.
3980 * @param[in] *pState points to state buffer. The array is of length numStages+blockSize.
3981 * @param[in] blockSize number of samples to process per call.
3999 uint16_t numTaps; /**< number of coefficients in the filter. */
4000 …float32_t *pState; /**< points to the state variable array. The array is of length numTaps+block…
4001 float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
4007 * @param[in] *S points to an instance of the floating-point LMS filter structure.
4008 * @param[in] *pSrc points to the block of input data.
4009 * @param[in] *pRef points to the block of reference data.
4010 * @param[out] *pOut points to the block of output data.
4011 * @param[out] *pErr points to the block of error data.
4012 * @param[in] blockSize number of samples to process.
4026 * @param[in] *S points to an instance of the floating-point LMS filter structure.
4027 * @param[in] numTaps number of filter coefficients.
4031 * @param[in] blockSize number of samples to process.
4049 uint16_t numTaps; /**< number of coefficients in the filter. */
4050 …q15_t *pState; /**< points to the state variable array. The array is of length numTaps+block…
4051 q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
4059 * @param[in] *S points to an instance of the Q15 LMS filter structure.
4060 * @param[in] numTaps number of filter coefficients.
4064 * @param[in] blockSize number of samples to process.
4080 * @param[in] *S points to an instance of the Q15 LMS filter structure.
4081 * @param[in] *pSrc points to the block of input data.
4082 * @param[in] *pRef points to the block of reference data.
4083 * @param[out] *pOut points to the block of output data.
4084 * @param[out] *pErr points to the block of error data.
4085 * @param[in] blockSize number of samples to process.
4104 uint16_t numTaps; /**< number of coefficients in the filter. */
4105 …q31_t *pState; /**< points to the state variable array. The array is of length numTaps+block…
4106 q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
4114 * @param[in] *S points to an instance of the Q15 LMS filter structure.
4115 * @param[in] *pSrc points to the block of input data.
4116 * @param[in] *pRef points to the block of reference data.
4117 * @param[out] *pOut points to the block of output data.
4118 * @param[out] *pErr points to the block of error data.
4119 * @param[in] blockSize number of samples to process.
4133 * @param[in] *S points to an instance of the Q31 LMS filter structure.
4134 * @param[in] numTaps number of filter coefficients.
4138 * @param[in] blockSize number of samples to process.
4158 uint16_t numTaps; /**< number of coefficients in the filter. */
4159 …float32_t *pState; /**< points to the state variable array. The array is of length numTaps+bloc…
4160 float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
4168 * @param[in] *S points to an instance of the floating-point normalized LMS filter structure.
4169 * @param[in] *pSrc points to the block of input data.
4170 * @param[in] *pRef points to the block of reference data.
4171 * @param[out] *pOut points to the block of output data.
4172 * @param[out] *pErr points to the block of error data.
4173 * @param[in] blockSize number of samples to process.
4187 * @param[in] *S points to an instance of the floating-point LMS filter structure.
4188 * @param[in] numTaps number of filter coefficients.
4192 * @param[in] blockSize number of samples to process.
4210 uint16_t numTaps; /**< number of coefficients in the filter. */
4211 …q31_t *pState; /**< points to the state variable array. The array is of length numTaps+bloc…
4212 q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
4222 * @param[in] *S points to an instance of the Q31 normalized LMS filter structure.
4223 * @param[in] *pSrc points to the block of input data.
4224 * @param[in] *pRef points to the block of reference data.
4225 * @param[out] *pOut points to the block of output data.
4226 * @param[out] *pErr points to the block of error data.
4227 * @param[in] blockSize number of samples to process.
4241 * @param[in] *S points to an instance of the Q31 normalized LMS filter structure.
4242 * @param[in] numTaps number of filter coefficients.
4246 * @param[in] blockSize number of samples to process.
4266 uint16_t numTaps; /**< Number of coefficients in the filter. */
4267 …q15_t *pState; /**< points to the state variable array. The array is of length numTaps+bloc…
4268 q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
4278 * @param[in] *S points to an instance of the Q15 normalized LMS filter structure.
4279 * @param[in] *pSrc points to the block of input data.
4280 * @param[in] *pRef points to the block of reference data.
4281 * @param[out] *pOut points to the block of output data.
4282 * @param[out] *pErr points to the block of error data.
4283 * @param[in] blockSize number of samples to process.
4298 * @param[in] *S points to an instance of the Q15 normalized LMS filter structure.
4299 * @param[in] numTaps number of filter coefficients.
4303 * @param[in] blockSize number of samples to process.
4318 * @brief Correlation of floating-point sequences.
4320 * @param[in] srcALen length of the first input sequence.
4322 * @param[in] srcBLen length of the second input sequence.
4323 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4336 * @brief Correlation of Q15 sequences
4338 * @param[in] srcALen length of the first input sequence.
4340 * @param[in] srcBLen length of the second input sequence.
4341 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4342 …* @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, sr…
4355 * @brief Correlation of Q15 sequences.
4357 * @param[in] srcALen length of the first input sequence.
4359 * @param[in] srcBLen length of the second input sequence.
4360 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4372 * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
4374 * @param[in] srcALen length of the first input sequence.
4376 * @param[in] srcBLen length of the second input sequence.
4377 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4391 * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
4393 * @param[in] srcALen length of the first input sequence.
4395 * @param[in] srcBLen length of the second input sequence.
4396 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4397 …* @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, sr…
4410 * @brief Correlation of Q31 sequences.
4412 * @param[in] srcALen length of the first input sequence.
4414 * @param[in] srcBLen length of the second input sequence.
4415 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4427 * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
4429 * @param[in] srcALen length of the first input sequence.
4431 * @param[in] srcBLen length of the second input sequence.
4432 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4446 * @brief Correlation of Q7 sequences.
4448 * @param[in] srcALen length of the first input sequence.
4450 * @param[in] srcBLen length of the second input sequence.
4451 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4452 …* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2…
4453 * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
4468 * @brief Correlation of Q7 sequences.
4470 * @param[in] srcALen length of the first input sequence.
4472 * @param[in] srcBLen length of the second input sequence.
4473 * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
4490 uint16_t numTaps; /**< number of coefficients in the filter. */
4492 …float32_t *pState; /**< points to the state buffer array. The array is of length maxDel…
4493 …float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps…
4495 …int32_t *pTapDelay; /**< points to the array of delay values. The array is of length nu…
4504 uint16_t numTaps; /**< number of coefficients in the filter. */
4506 …q31_t *pState; /**< points to the state buffer array. The array is of length maxDel…
4507 …q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps…
4509 …int32_t *pTapDelay; /**< points to the array of delay values. The array is of length nu…
4518 uint16_t numTaps; /**< number of coefficients in the filter. */
4520 …q15_t *pState; /**< points to the state buffer array. The array is of length maxDel…
4521 …q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps…
4523 …int32_t *pTapDelay; /**< points to the array of delay values. The array is of length nu…
4532 uint16_t numTaps; /**< number of coefficients in the filter. */
4534 …q7_t *pState; /**< points to the state buffer array. The array is of length maxDel…
4535 …q7_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps…
4537 …int32_t *pTapDelay; /**< points to the array of delay values. The array is of length nu…
4542 * @param[in] *S points to an instance of the floating-point sparse FIR structure.
4543 * @param[in] *pSrc points to the block of input data.
4544 * @param[out] *pDst points to the block of output data
4545 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4546 * @param[in] blockSize number of input samples to process per call.
4559 * @param[in,out] *S points to an instance of the floating-point sparse FIR structure.
4560 * @param[in] numTaps number of nonzero coefficients in the filter.
4561 * @param[in] *pCoeffs points to the array of filter coefficients.
4563 * @param[in] *pTapDelay points to the array of offset times.
4565 * @param[in] blockSize number of samples that will be processed per block.
4580 * @param[in] *S points to an instance of the Q31 sparse FIR structure.
4581 * @param[in] *pSrc points to the block of input data.
4582 * @param[out] *pDst points to the block of output data
4583 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4584 * @param[in] blockSize number of input samples to process per call.
4597 * @param[in,out] *S points to an instance of the Q31 sparse FIR structure.
4598 * @param[in] numTaps number of nonzero coefficients in the filter.
4599 * @param[in] *pCoeffs points to the array of filter coefficients.
4601 * @param[in] *pTapDelay points to the array of offset times.
4603 * @param[in] blockSize number of samples that will be processed per block.
4618 * @param[in] *S points to an instance of the Q15 sparse FIR structure.
4619 * @param[in] *pSrc points to the block of input data.
4620 * @param[out] *pDst points to the block of output data
4621 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4622 * @param[in] *pScratchOut points to a temporary buffer of size blockSize.
4623 * @param[in] blockSize number of input samples to process per call.
4638 * @param[in,out] *S points to an instance of the Q15 sparse FIR structure.
4639 * @param[in] numTaps number of nonzero coefficients in the filter.
4640 * @param[in] *pCoeffs points to the array of filter coefficients.
4642 * @param[in] *pTapDelay points to the array of offset times.
4644 * @param[in] blockSize number of samples that will be processed per block.
4659 * @param[in] *S points to an instance of the Q7 sparse FIR structure.
4660 * @param[in] *pSrc points to the block of input data.
4661 * @param[out] *pDst points to the block of output data
4662 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4663 * @param[in] *pScratchOut points to a temporary buffer of size blockSize.
4664 * @param[in] blockSize number of input samples to process per call.
4678 * @param[in,out] *S points to an instance of the Q7 sparse FIR structure.
4679 * @param[in] numTaps number of nonzero coefficients in the filter.
4680 * @param[in] *pCoeffs points to the array of filter coefficients.
4682 * @param[in] *pTapDelay points to the array of offset times.
4684 * @param[in] blockSize number of samples that will be processed per block.
4729 * @param[in] numSamples number of complex samples in each vector
4742 * @param[in] numSamples number of complex samples in each vector
4755 * @param[in] numSamples number of complex samples in each vector
4770 * @param[in] numSamples number of complex samples in the input vector
4783 * @param[in] numSamples number of complex samples in the input vector
4796 * @param[in] numSamples number of complex samples in the input vector
4815 * A PID controller is the most commonly used type of feedback controller.
4817 * This set of functions implements (PID) controllers
4819 * of data and each call to the function returns a single processed value.
4820 * <code>S</code> points to an instance of the PID control data structure. <code>in</code>
4841 * the integral value determines the reaction based on the sum of recent errors,
4847 * There are separate instance structure declarations for each of the 3 supported data types.
4862 * Care must be taken when using the fixed-point versions of the PID Controller functions.
4863 …* In particular, the overflow and saturation behavior of the accumulator used in each function mus…
4874 * @param[in,out] *S is an instance of the floating-point PID Control structure
4902 * @param[in,out] *S points to an instance of the Q31 PID Control structure
4909 …* The accumulator has a 2.62 format and maintains full precision of the intermediate multiplicatio…
4949 * @param[in,out] *S points to an instance of the Q15 PID Control structure
4958 …* There is no risk of internal overflow with this approach and the full precision of intermediate …
4973 /* Implementation of PID controller */ in arm_pid_q15()
5009 * @} end of PID group
5015 * @param[in] *src points to the instance of the input floating-point matrix structure.
5016 * @param[out] *dst points to the instance of the output floating-point matrix structure.
5042 …* The function operates on a single sample of data and each call to the function returns the proce…
5047 * <code>pIalpha</code> and <code>pIbeta</code> are the two coordinates of time invariant vector.
5049 * Care must be taken when using the Q31 version of the Clarke transform.
5050 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5095 …* The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplica…
5096 * There is saturation on the addition, hence there is no risk of overflow.
5121 * @} end of clarke group
5125 * @brief Converts the elements of the Q7 vector to Q31 vector.
5128 * @param[in] blockSize number of samples to process
5147 …* The function operates on a single sample of data and each call to the function returns the proce…
5152 * <code>Ialpha</code> and <code>Ibeta</code> are the two coordinates of time invariant vector.
5154 * Care must be taken when using the Q31 version of the Clarke transform.
5155 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5199 …* The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplica…
5200 * There is saturation on the subtraction, hence there is no risk of overflow.
5226 * @} end of inv_clarke group
5230 * @brief Converts the elements of the Q7 vector to Q15 vector.
5233 * @param[in] blockSize number of samples to process
5251 …* The Park transform can be used to realize the transformation of the <code>Ialpha</code> and the …
5258 …* The function operates on a single sample of data and each call to the function returns the proce…
5264 * cosine and sine values of theta (rotor flux position).
5266 * Care must be taken when using the Q31 version of the Park transform.
5267 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5282 * @param[in] sinVal sine value of rotation angle theta
5283 * @param[in] cosVal cosine value of rotation angle theta
5312 * @param[in] sinVal sine value of rotation angle theta
5313 * @param[in] cosVal cosine value of rotation angle theta
5319 …* The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplica…
5320 * There is saturation on the addition and subtraction, hence there is no risk of overflow.
5356 * @} end of park group
5360 * @brief Converts the elements of the Q7 vector to floating-point vector.
5363 * @param[in] blockSize is the number of samples to process
5380 …* The function operates on a single sample of data and each call to the function returns the proce…
5386 * cosine and sine values of theta (rotor flux position).
5388 * Care must be taken when using the Q31 version of the Park transform.
5389 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5400 * @param[in] Id input coordinate of rotor reference frame d
5401 * @param[in] Iq input coordinate of rotor reference frame q
5404 * @param[in] sinVal sine value of rotation angle theta
5405 * @param[in] cosVal cosine value of rotation angle theta
5428 * @param[in] Id input coordinate of rotor reference frame d
5429 * @param[in] Iq input coordinate of rotor reference frame q
5432 * @param[in] sinVal sine value of rotation angle theta
5433 * @param[in] cosVal cosine value of rotation angle theta
5439 …* The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplica…
5440 * There is saturation on the addition, hence there is no risk of overflow.
5477 * @} end of Inverse park group
5482 * @brief Converts the elements of the Q31 vector to floating-point vector.
5485 * @param[in] blockSize is the number of samples to process
5500 * Linear interpolation is a method of curve fitting using linear polynomials.
5508 …* using linear interpolation of the input values x0, x1( nearest input values) and the output valu…
5513 * where x0, x1 are nearest values of input x
5518 * This set of functions implements Linear interpolation process
5520 * sample of data and each call to the function returns a single processed value.
5521 * <code>S</code> points to an instance of the Linear Interpolate function data structure.
5525 * if x is outside of the table boundary, Linear interpolation returns first value of the table
5526 * if x is below input range and returns last value of table if x is above range.
5536 * @param[in,out] *S is an instance of the floating-point Linear Interpolation structure
5554 /* Calculation of index */ in arm_linear_interp_f32()
5559 /* Iniatilize output for below specified range as least output value of table */ in arm_linear_interp_f32()
5564 /* Iniatilize output for above specified range as last output value of table */ in arm_linear_interp_f32()
5569 /* Calculation of nearest input values */ in arm_linear_interp_f32()
5573 /* Read of nearest output values */ in arm_linear_interp_f32()
5577 /* Calculation of output */ in arm_linear_interp_f32()
5591 * @param[in] nValues number of table values
5596 * This function can support maximum of table size 2^12.
5635 /* Calculation of y0 * (1-fract) and y is in 2.30 format */ in arm_linear_interp_q31()
5638 /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */ in arm_linear_interp_q31()
5653 * @param[in] nValues number of table values
5658 * This function can support maximum of table size 2^12.
5696 /* Calculation of y0 * (1-fract) and y is in 13.35 format */ in arm_linear_interp_q15()
5699 /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */ in arm_linear_interp_q15()
5714 * @param[in] nValues number of table values
5719 * This function can support maximum of table size 2^12.
5758 /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */ in arm_linear_interp_q7()
5761 /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */ in arm_linear_interp_q7()
5771 * @} end of LinearInterpolate group
5837 * Computes the square root of a number.
5840 * This is an iterative algorithm of the form:
5846 * <code>f'(x0)</code> is the derivative of <code>f()</code> evaluated at <code>x0</code>.
5863 * @param[out] *pOut square root of input value.
5895 …* @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFF…
5896 * @param[out] *pOut square root of input value.
5906 * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF.
5907 * @param[out] *pOut square root of input value.
5916 * @} end of SQRT group
5940 /* Copy the value of Index pointer that points in arm_circularWrite_f32()
5987 /* Copy the value of Index pointer that points in arm_circularRead_f32()
6040 /* Copy the value of Index pointer that points in arm_circularWrite_q15()
6087 /* Copy the value of Index pointer that points in arm_circularRead_q15()
6142 /* Copy the value of Index pointer that points in arm_circularWrite_q7()
6189 /* Copy the value of Index pointer that points in arm_circularRead_q7()
6229 * @brief Sum of the squares of the elements of a Q31 vector.
6231 * @param[in] blockSize is the number of samples to process
6242 * @brief Sum of the squares of the elements of a floating-point vector.
6244 * @param[in] blockSize is the number of samples to process
6255 * @brief Sum of the squares of the elements of a Q15 vector.
6257 * @param[in] blockSize is the number of samples to process
6268 * @brief Sum of the squares of the elements of a Q7 vector.
6270 * @param[in] blockSize is the number of samples to process
6281 * @brief Mean value of a Q7 vector.
6283 * @param[in] blockSize is the number of samples to process
6294 * @brief Mean value of a Q15 vector.
6296 * @param[in] blockSize is the number of samples to process
6306 * @brief Mean value of a Q31 vector.
6308 * @param[in] blockSize is the number of samples to process
6318 * @brief Mean value of a floating-point vector.
6320 * @param[in] blockSize is the number of samples to process
6330 * @brief Variance of the elements of a floating-point vector.
6332 * @param[in] blockSize is the number of samples to process
6343 * @brief Variance of the elements of a Q31 vector.
6345 * @param[in] blockSize is the number of samples to process
6356 * @brief Variance of the elements of a Q15 vector.
6358 * @param[in] blockSize is the number of samples to process
6369 * @brief Root Mean Square of the elements of a floating-point vector.
6371 * @param[in] blockSize is the number of samples to process
6382 * @brief Root Mean Square of the elements of a Q31 vector.
6384 * @param[in] blockSize is the number of samples to process
6395 * @brief Root Mean Square of the elements of a Q15 vector.
6397 * @param[in] blockSize is the number of samples to process
6408 * @brief Standard deviation of the elements of a floating-point vector.
6410 * @param[in] blockSize is the number of samples to process
6421 * @brief Standard deviation of the elements of a Q31 vector.
6423 * @param[in] blockSize is the number of samples to process
6434 * @brief Standard deviation of the elements of a Q15 vector.
6436 * @param[in] blockSize is the number of samples to process
6450 * @param[in] numSamples number of complex samples in the input vector
6463 * @param[in] numSamples number of complex samples in the input vector
6476 * @param[in] numSamples number of complex samples in the input vector
6489 * @param[in] numSamples number of complex samples in each vector
6490 * @param[out] *realResult real part of the result returned here
6491 * @param[out] *imagResult imaginary part of the result returned here
6506 * @param[in] numSamples number of complex samples in each vector
6507 * @param[out] *realResult real part of the result returned here
6508 * @param[out] *imagResult imaginary part of the result returned here
6523 * @param[in] numSamples number of complex samples in each vector
6524 * @param[out] *realResult real part of the result returned here
6525 * @param[out] *imagResult imaginary part of the result returned here
6541 * @param[in] numSamples number of samples in each vector
6556 * @param[in] numSamples number of samples in each vector
6571 * @param[in] numSamples number of samples in each vector
6582 * @brief Minimum value of a Q7 vector.
6584 * @param[in] blockSize is the number of samples to process
6586 * @param[in] index is the array index of the minimum value in the input buffer.
6597 * @brief Minimum value of a Q15 vector.
6599 * @param[in] blockSize is the number of samples to process
6601 * @param[in] *pIndex is the array index of the minimum value in the input buffer.
6612 * @brief Minimum value of a Q31 vector.
6614 * @param[in] blockSize is the number of samples to process
6616 * @param[out] *pIndex is the array index of the minimum value in the input buffer.
6626 * @brief Minimum value of a floating-point vector.
6628 * @param[in] blockSize is the number of samples to process
6630 * @param[out] *pIndex is the array index of the minimum value in the input buffer.
6641 * @brief Maximum value of a Q7 vector.
6643 * @param[in] blockSize length of the input vector
6645 * @param[out] *pIndex index of maximum value returned here
6656 * @brief Maximum value of a Q15 vector.
6658 * @param[in] blockSize length of the input vector
6660 * @param[out] *pIndex index of maximum value returned here
6671 * @brief Maximum value of a Q31 vector.
6673 * @param[in] blockSize length of the input vector
6675 * @param[out] *pIndex index of maximum value returned here
6686 * @brief Maximum value of a floating-point vector.
6688 * @param[in] blockSize length of the input vector
6690 * @param[out] *pIndex index of maximum value returned here
6705 * @param[in] numSamples number of complex samples in each vector
6720 * @param[in] numSamples number of complex samples in each vector
6735 * @param[in] numSamples number of complex samples in each vector
6746 * @brief Converts the elements of the floating-point vector to Q31 vector.
6749 * @param[in] blockSize length of the input vector
6758 * @brief Converts the elements of the floating-point vector to Q15 vector.
6761 * @param[in] blockSize length of the input vector
6770 * @brief Converts the elements of the floating-point vector to Q7 vector.
6773 * @param[in] blockSize length of the input vector
6783 * @brief Converts the elements of the Q31 vector to Q15 vector.
6786 * @param[in] blockSize is the number of samples to process
6795 * @brief Converts the elements of the Q31 vector to Q7 vector.
6798 * @param[in] blockSize is the number of samples to process
6807 * @brief Converts the elements of the Q15 vector to floating-point vector.
6810 * @param[in] blockSize is the number of samples to process
6820 * @brief Converts the elements of the Q15 vector to Q31 vector.
6823 * @param[in] blockSize is the number of samples to process
6833 * @brief Converts the elements of the Q15 vector to Q7 vector.
6836 * @param[in] blockSize is the number of samples to process
6852 …* Bilinear interpolation is an extension of linear interpolation applied to a two dimensional grid.
6873 * where <code>numRows</code> specifies the number of rows in the table;
6874 * <code>numCols</code> specifies the number of columns in the table;
6875 * and <code>pData</code> points to an array of size <code>numRows*numCols</code> values.
6894 * The integer components specify which portion of the table to use while the
6898 * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output.
6909 * @param[in,out] *S points to an instance of the interpolation structure.
6939 /* Calculation of index for two nearest points in X-direction */ in arm_bilinear_interp_f32()
6947 /* Calculation of index for two nearest points in Y-direction */ in arm_bilinear_interp_f32()
6955 /* Calculation of intermediate values */ in arm_bilinear_interp_f32()
6961 /* Calculation of fractional part in X */ in arm_bilinear_interp_f32()
6964 /* Calculation of fractional part in Y */ in arm_bilinear_interp_f32()
6967 /* Calculation of bi-linear interpolated output */ in arm_bilinear_interp_f32()
6978 * @param[in,out] *S points to an instance of the interpolation structure.
6995 uint32_t nCols = S->numCols; /* num of rows */ in arm_bilinear_interp_q31()
7031 /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 3.29(q29) format */ in arm_bilinear_interp_q31()
7054 * @param[in,out] *S points to an instance of the interpolation structure.
7071 uint32_t nCols = S->numCols; /* num of rows */ in arm_bilinear_interp_q15()
7107 /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 13.51 format */ in arm_bilinear_interp_q15()
7134 * @param[in,out] *S points to an instance of the interpolation structure.
7151 uint32_t nCols = S->numCols; /* num of rows */ in arm_bilinear_interp_q7()
7187 /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 16.47 format */ in arm_bilinear_interp_q7()
7209 * @} end of BilinearInterpolate group
7231 //Exit low optimization region - place directly after end of function definition
7238 //Exit low optimization region - place directly after end of function definition
7258 //Exit low optimization region - place directly after end of function definition
7265 //Exit low optimization region - place directly after end of function definition
7305 * End of file.