![]() |
Project Ne10
An open, optimized software library for the ARM architecture.
|
Functions | |
| ne10_result_t | ne10_iir_lattice_init_float (ne10_iir_lattice_instance_f32_t *S, ne10_uint16_t numStages, ne10_float32_t *pkCoeffs, ne10_float32_t *pvCoeffs, ne10_float32_t *pState, ne10_uint32_t blockSize) |
| Initialization function for the floating-point IIR lattice filter. More... | |
| 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) |
| Specific implementation of ne10_iir_lattice_float using plain C. More... | |
| void | ne10_iir_lattice_float_neon (const ne10_iir_lattice_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize) asm("ne10_iir_lattice_float_neon") |
| Specific implementation of ne10_iir_lattice_float using NEON SIMD capabilities. More... | |
Variables | |
| void(* | ne10_iir_lattice_float )(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 | ||
| ) |
Specific implementation of ne10_iir_lattice_float using plain C.
Definition at line 112 of file NE10_iir.c.
| void ne10_iir_lattice_float_neon | ( | const ne10_iir_lattice_instance_f32_t * | S, |
| ne10_float32_t * | pSrc, | ||
| ne10_float32_t * | pDst, | ||
| ne10_uint32_t | blockSize | ||
| ) |
Specific implementation of ne10_iir_lattice_float using NEON SIMD capabilities.
| ne10_result_t ne10_iir_lattice_init_float | ( | ne10_iir_lattice_instance_f32_t * | S, |
| ne10_uint16_t | numStages, | ||
| ne10_float32_t * | pkCoeffs, | ||
| ne10_float32_t * | pvCoeffs, | ||
| ne10_float32_t * | pState, | ||
| ne10_uint32_t | blockSize | ||
| ) |
Initialization function for the floating-point IIR lattice filter.
| [in] | *S | points to an instance of the floating-point IIR lattice structure. |
| [in] | numStages | number of stages in the filter. |
| [in] | *pkCoeffs | points to the reflection coefficient buffer. The array is of length numStages. |
| [in] | *pvCoeffs | points to the ladder coefficient buffer. The array is of length numStages+1. |
| [in] | *pState | points to the state buffer. The array is of length numStages+blockSize. |
| [in] | blockSize | number of samples to process. |
Definition at line 44 of file NE10_iir_init.c.
| void(* ne10_iir_lattice_float) (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. |
Points to ne10_iir_lattice_float_c or ne10_iir_lattice_float_neon.
Definition at line 193 of file NE10_init_dsp.c.
1.8.11