32 #include "NE10_types.h" 119 ne10_float32_t * pSrc,
120 ne10_float32_t * pDst,
121 ne10_uint32_t blockSize)
123 ne10_float32_t fcurr, fnext = 0, gcurr, gnext;
125 ne10_uint32_t blkCnt, tapCnt;
126 ne10_float32_t *px1, *px2, *pk, *pv;
128 ne10_float32_t *pState;
129 ne10_float32_t *pStateCurnt;
161 fnext = fcurr - ( (*pk) * gcurr);
163 gnext = (fnext * (*pk++)) + gcurr;
167 acc += (gnext * (*pv--));
173 tapCnt = (numStages - 1u) >> 2;
182 fnext = fcurr - ( (*pk) * gcurr);
184 gnext = (fnext * (*pk++)) + gcurr;
187 acc += (gnext * (*pv--));
197 fcurr = fnext - ( (*pk) * gcurr);
199 gnext = (fcurr * (*pk++)) + gcurr;
202 acc += (gnext * (*pv--));
212 fnext = fcurr - ( (*pk) * gcurr);
214 gnext = (fnext * (*pk++)) + gcurr;
217 acc += (gnext * (*pv--));
227 fcurr = fnext - ( (*pk) * gcurr);
229 gnext = (fcurr * (*pk++)) + gcurr;
232 acc += (gnext * (*pv--));
243 tapCnt = (numStages - 1u) % 0x4u;
249 fnext = fcurr - ( (*pk) * gcurr);
250 gnext = (fnext * (*pk++)) + gcurr;
252 acc += (gnext * (*pv--));
262 acc += (fnext * (*pv));
270 pState = pState + 1u;
279 pStateCurnt = &S->
pState[0];
280 pState = &S->
pState[blockSize];
282 tapCnt = numStages >> 2u;
287 *pStateCurnt++ = *pState++;
288 *pStateCurnt++ = *pState++;
289 *pStateCurnt++ = *pState++;
290 *pStateCurnt++ = *pState++;
298 tapCnt = (numStages) % 0x4u;
303 *pStateCurnt++ = *pState++;
ne10_uint16_t numStages
numStages of the of lattice filter.
ne10_float32_t * pkCoeffs
Points to the reflection coefficient array.
void ne10_iir_lattice_float_c(const ne10_iir_lattice_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Processing function for the floating-point IIR lattice filter.
Instance structure for the floating point IIR Lattice filter.
ne10_float32_t * pvCoeffs
Points to the ladder coefficient array.
ne10_float32_t * pState
Points to the state variable array.