Documentation

This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

latcfilt

Lattice and lattice-ladder filter implementation

Syntax

``` [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) ```

Description

` ` 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 $|k|\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 ith column of `k` is used to filter the ith 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`.

Examples

collapse all

Generate a signal with 512 samples of white Gaussian noise.

`x = randn(512,1);`

Filter the data with an FIR lattice filter. Specify the reflection coefficients so that the lattice filter is equivalent to a 3rd-order moving average filter.

`[f,g] = latcfilt([1/2 1],x);`

Plot the maximum- and minimum-phase outputs of the lattice filter in separate plots

```subplot(2,1,1) plot(f) title('Maximum-Phase Output') subplot(2,1,2) plot(g) title('Minimum-Phase Output')```