Functions
Collaboration diagram for DSPF_sp_iirlat:

Functions

void DSPF_sp_iirlat (const float *x, int nx, const float *restrict k, int nk, float *restrict b, float *restrict y)
 

Detailed Description

Function Documentation

◆ DSPF_sp_iirlat()

void DSPF_sp_iirlat ( const float *  x,
int  nx,
const float *restrict  k,
int  nk,
float *restrict  b,
float *restrict  y 
)

This routine implements a real all-pole IIR filter in lattice structure (AR lattice). The filter consists of nk lattice stages. Each stage requires one reflection coefficient k and one delay element b. The routine takes an input vector x[] and returns the filter output in y[]. Prior to the first call of the routine the delay elements in b[] should be set to zero. The input data may have to be pre-scaled to avoid overflow or achieve better SNR. The reflections coefficients lie in the range -1.0 < k < 1.0. The order of the coefficients is such that k[nk-1] corresponds to the first lattice stage after the input and k[0] corresponds to the last stage.

Parameters
x[nx]Input vector.
nxLength of input vector.
k[nk]Reflection coefficients.
nkNumber of reflection coefficients/lattice stages.
b[nk+1]Delay line elements from previous call. Should be initialized to all zeros prior to the first call.
y[nx]Output vector.
Algorithm:
DSPF_sp_iirlat_cn.c is the natural C equivalent of the optimized linear assembly code without restrictions. Note that the linear assembly code is optimized and restrictions may apply.
Assumptions:
nx > 0, nk is a multiple of 2 and >= 6.
Extraneous loads are allowed (80 bytes) before the start of array.
The arrays k and b are double-word aligned.
Implementation Notes:
Interruptibility: The code is interruptible.
Endian Support: The code supports both big and little endian modes.

Copyright 2022, Texas Instruments Incorporated