DSP Blockset    
LMS Adaptive Filter

Compute filter estimates for an input using the LMS adaptive filter algorithm.

Library

Filtering / Adaptive Filters

Description

The LMS Adaptive Filter block implements an adaptive FIR filter using the stochastic gradient algorithm known as the normalized Least Mean-Square (LMS) algorithm.

The variables are as follows.

Variable
Description
n
The current algorithm iteration
u(n)
The buffered input samples at step n

The vector of filter-tap estimates at step n
y(n)
The filtered output at step n
e(n)
The estimation error at step n
d(n)
The desired response at step n
µ
The adaptation step size

To overcome potential numerical instability in the tap-weight update, a small positive constant (a = 1e-10) has been added in the denominator.

To turn off normalization, deselect the Use normalization check box in the parameter dialog box. The block then computes the filter-tap estimate as

The block icon has port labels corresponding to the inputs and outputs of the LMS algorithm. Note that inputs to the In and Err ports must be sample-based scalars. The signal at the Out port is a scalar, while the signal at the Taps port is a sample-based vector.

Block Ports
Corresponding Variables
In

u, the scalar input, which is internally buffered into the vector u(n)

Out

y(n), the filtered scalar output

Err

e(n), the scalar estimation error

Taps

, the vector of filter-tap estimates

An optional Adapt input port is added when the Adapt input check box is selected in the dialog box. When this port is enabled, the block continuously adapts the filter coefficients while the Adapt input is nonzero. A zero-valued input to the Adapt port causes the block to stop adapting, and to hold the filter coefficients at their current values until the next nonzero Adapt input.

The FIR filter length parameter specifies the length of the filter that the LMS algorithm estimates. The Step size parameter corresponds to µ in the equations. Typically, for convergence in the mean square, 0<µ<2. The Initial value of filter taps specifies the initial value as a vector, or as a scalar to be repeated for all vector elements. The Leakage factor specifies the value of the leakage factor, , in the leaky LMS algorithm below. This parameter must be between 0 and 1.

Examples

The lmsdemo demo illustrates a noise cancellation system built around the LMS Adaptive Filter block.

Dialog Box

FIR filter length
The length of the FIR filter.
Step-size
The step size, usually in the range (0, 2). Tunable.
Initial value of filter taps
The initial FIR filter coefficients.
Leakage factor
The leakage factor, in the range [0, 1]. Tunable.
Use normalization
Select or deselect normalization.
Adapt input
Enables the Adapt port.

References

Haykin, S. Adaptive Filter Theory. 3rd ed. Englewood Cliffs, NJ: Prentice Hall, 1996.

Supported Data Types

Double-precision floating point

See Also

Kalman Adaptive Filter
DSP Blockset
RLS Adaptive Filter
DSP Blockset

See Adaptive Filters for related information.


 Levinson-Durbin LU Factorization