![]() |
Project Ne10
An Open Optimized Software Library Project for the ARM Architecture
|
Functions | |
| 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. More... | |
blockSize samples through the filter. pSrc and pDst point to input and output arrays containing blockSize values.
fN(n) = x(n)
fm-1(n) = fm(n) - km * gm-1(n-1) for m = N, N-1, ...1
gm(n) = km * fm-1(n) + gm-1(n-1) for m = N, N-1, ...1
y(n) = vN * gN(n) + vN-1 * gN-1(n) + ...+ v0 * g0(n)
pkCoeffs points to array of reflection coefficients of size numStages. Reflection coefficients are stored in time-reversed order.
{kN, kN-1, ....k1}
pvCoeffs points to the array of ladder coefficients of size (numStages+1). Ladder coefficients are stored in time-reversed order.
v0, v1, ...vN
pState points to a state array of size numStages + blockSize. The state variables shown in the figure above (the g values) are stored in the pState array. The state variables are updated after each block of data is processed; the coefficients are untouched.
*arm_iir_lattice_instance_f32 S = {numStages, pState, pkCoeffs, pvCoeffs};
numStages is the number of stages in the filter; pState points to the state buffer array; pkCoeffs points to array of the reflection coefficients; pvCoeffs points to the array of ladder coefficients. | 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.
| [in] | *S | points to an instance of the floating-point IIR lattice structure. |
| [in] | *pSrc | points to the block of input data. |
| [out] | *pDst | points to the block of output data. |
| [in] | blockSize | number of samples to process. |
Definition at line 118 of file NE10_iir.c.