![]() |
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. | |
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.