Lattice and lattice-ladder filter implementation

` `

[f,g] = latcfilt(k,x)

[f,g] = latcfilt(k,v,x)

[f,g] = latcfilt(k,1,x)

[f,g,zf] = latcfilt(...,'ic',zi)

[f,g,zf] = latcfilt(...,dim)

` `

When filtering data,
lattice coefficients can be used to represent

FIR filters

All-pole IIR filters

Allpass IIR filters

General IIR filters

`[f,g] = latcfilt(k,x)`

filters `x`

with
the FIR lattice coefficients in the vector `k`

.
The forward lattice filter result is `f`

and `g`

is
the backward filter result. If $$\left|k\right|\le 1$$, `f`

corresponds
to the minimum-phase output, and `g`

corresponds
to the maximum-phase output.

If `k`

and `x`

are vectors,
the result is a (signal) vector. Matrix arguments are permitted under
the following rules:

If

`x`

is a matrix and`k`

is a vector, each column of`x`

is processed through the lattice filter specified by`k`

.If

`x`

is a vector and`k`

is a matrix, each column of`k`

is used to filter`x`

, and a signal matrix is returned.If

`x`

and`k`

are both matrices with the same number of columns, then the*i*th column of`k`

is used to filter the*i*th column of`x`

. A signal matrix is returned.

`[f,g] = latcfilt(k,v,x)`

filters `x`

with
the IIR lattice coefficients `k`

and ladder coefficients `v`

.
Both `k`

and `v`

must be vectors,
while `x`

can be a signal matrix.

`[f,g] = latcfilt(k,1,x)`

filters `x`

with
the IIR lattice specified by `k`

, where `k`

and `x`

can
be vectors or matrices. `f`

is the all-pole lattice
filter result and `g`

is the allpass filter result.

`[f,g,zf] = latcfilt(...,'ic',zi)`

accepts
a length-`k`

vector `zi`

specifying
the initial condition of the lattice states. Output `zf`

is
a length-`k`

vector specifying the final condition
of the lattice states.

`[f,g,zf] = latcfilt(...,dim)`

filters `x`

along
the dimension `dim`

. To specify a `dim`

value,
the FIR lattice coefficients `k`

must be a vector
and you must specify all previous input parameters in order. Use the
empty vector [ ] for any parameters you do not want to specify. `zf`

returns
the final conditions in columns, regardless of the shape of `x`

.