76 #ifndef ARM_MATH_CM0_FAMILY 87 q31_t acc0, acc1, acc2, acc3;
89 uint32_t i, tapCnt, blkCnt;
93 pStateCurnt = &(S->
pState[(numTaps - 1u)]);
103 blkCnt = blockSize >> 2;
110 *pStateCurnt++ = *pSrc++;
111 *pStateCurnt++ = *pSrc++;
112 *pStateCurnt++ = *pSrc++;
113 *pStateCurnt++ = *pSrc++;
134 tapCnt = numTaps >> 2;
146 acc0 += ((
q15_t) x0 * c0);
149 acc1 += ((
q15_t) x1 * c0);
152 acc2 += ((
q15_t) x2 * c0);
155 acc3 += ((
q15_t) x3 * c0);
164 acc0 += ((
q15_t) x1 * c0);
165 acc1 += ((
q15_t) x2 * c0);
166 acc2 += ((
q15_t) x3 * c0);
167 acc3 += ((
q15_t) x0 * c0);
176 acc0 += ((
q15_t) x2 * c0);
177 acc1 += ((
q15_t) x3 * c0);
178 acc2 += ((
q15_t) x0 * c0);
179 acc3 += ((
q15_t) x1 * c0);
188 acc0 += ((
q15_t) x3 * c0);
189 acc1 += ((
q15_t) x0 * c0);
190 acc2 += ((
q15_t) x1 * c0);
191 acc3 += ((
q15_t) x2 * c0);
203 i = numTaps - (tapCnt * 4u);
213 acc0 += ((
q15_t) x0 * c0);
214 acc1 += ((
q15_t) x1 * c0);
215 acc2 += ((
q15_t) x2 * c0);
216 acc3 += ((
q15_t) x3 * c0);
232 acc0 = __SSAT((acc0 >> 7u), 8);
234 acc1 = __SSAT((acc1 >> 7u), 8);
236 acc2 = __SSAT((acc2 >> 7u), 8);
238 acc3 = __SSAT((acc3 >> 7u), 8);
248 blkCnt = blockSize % 4u;
253 *pStateCurnt++ = *pSrc++;
269 acc0 += (
q15_t) * (px++) * (*(pb++));
275 *pDst++ = __SSAT((acc0 >> 7u), 8);
291 tapCnt = (numTaps - 1u) >> 2u;
296 *pStateCurnt++ = *pState++;
297 *pStateCurnt++ = *pState++;
298 *pStateCurnt++ = *pState++;
299 *pStateCurnt++ = *pState++;
306 tapCnt = (numTaps - 1u) % 0x4u;
311 *pStateCurnt++ = *pState++;
332 pStateCurnt = S->
pState + (numTaps - 1u);
341 *pStateCurnt++ = *pSrc++;
358 acc += (
q15_t) * px++ * *pb++;
363 *pDst++ = (
q7_t) __SSAT((acc >> 7), 8);
387 *pStateCurnt++ = *pState++;
int8_t q7_t
8-bit fractional data type in 1.7 format.
Instance structure for the Q7 FIR filter.
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.
int16_t q15_t
16-bit fractional data type in 1.15 format.
int32_t q31_t
32-bit fractional data type in 1.31 format.