Block LMS Filter - Compute output, error, and weights using LMS adaptive algorithm

Library

Filtering / Adaptive Filters

dspadpt3

Description

The Block LMS Filter block implements an adaptive least mean-square (LMS) filter, where the adaptation of filter weights occurs once for every block of samples. The block estimates the filter weights, or coefficients, needed to minimize the error, e(n), between the output signal, y(n), and the desired signal, d(n). Connect the signal you want to filter to the Input port. This input signal can be a sample-based scalar or a single-channel frame-based signal. Connect the signal you want to model to the Desired port. The desired signal must have the same data type, frame status, complexity, and dimensions as the input signal. The Output port outputs the filtered input signal, which can be sample or frame based. The Error port outputs the result of subtracting the output signal from the desired signal.

The block calculates the filter weights using the Block LMS adaptive filter algorithm. This algorithm is defined by the following equations.

The weight update function for the Block LMS adaptive filter algorithm is defined as

The variables are as follows.

VariableDescription

n

The current time index

i

The iteration variable in each block,

k

The block number

N

The block size

u(n)

The vector of buffered input samples at step n

w(n)

The vector of filter-tap estimates at step n

y(n)

The filtered output at step n

e(n)

The estimation error at time n

d(n)

The desired response at time n

μ

The adaptation step size

Use the Filter length parameter to specify the length of the filter weights vector.

The Block size parameter determines how many samples of the input signal are acquired before the filter weights are updated. The input frame length must be a multiple of the Block size parameter.

The adaptation Step-size (mu) parameter corresponds to µ in the equations. You can either specify a step-size using the input port, Step-size, or enter a value in the Block Parameters: Block LMS Filter dialog box.

Use the Leakage factor (0 to 1) parameter to specify the leakage factor, , in the leaky LMS algorithm shown below.

Enter the initial filter weights as a vector or a scalar in the Initial value of filter weights text box. When you enter a scalar, the block uses the scalar value to create a vector of filter weights. This vector has length equal to the filter length and all of its values are equal to the scalar value

When you select the Adapt port check box, an Adapt port appears on the block. When the input to this port is greater than zero, the block continuously updates the filter weights. When the input to this port is zero, the filter weights remain at their current values.

When you want to reset the value of the filter weights to their initial values, use the Reset input parameter. The block resets the filter weights whenever a reset event is detected at the Reset port. The reset signal rate must be the same rate as the data signal input.

From the Reset input list, select None to disable the Reset port. To enable the Reset port, select one of the following from the Reset input list:

Select the Output filter weights check box to create a Wts port on the block. For each iteration, the block outputs the current updated filter weights from this port.

Dialog Box

Filter length

Enter the length of the FIR filter weights vector.

Block size

Enter the number of samples to acquire before the filter weights are updated. The input frame length must be an integer multiple of the block size.

Specify step-size via

Select Dialog to enter a value for mu in the Block parameters: LMS Filter dialog box. Select Input port to specify mu using the Step-size input port.

Step-size (mu)

Enter the step-size. Tunable.

Leakage factor (0 to 1)

Enter the leakage factor, . Tunable.

Initial value of filter weights

Specify the initial values of the FIR filter weights.

Adapt port

Select this check box to enable the Adapt input port.

Reset input

Select this check box to enable the Reset input port.

Output filter weights

Select this check box to export the filter weights from the Wts port.

References

Hayes, M. H. Statistical Digital Signal Processing and Modeling. New York: John Wiley & Sons, 1996.

Supported Data Types

PortSupported Data Types

Input

  • Double-precision floating point

  • Single-precision floating point

  • Fixed point

Desired

  • Must be the same as Input for floating-point signals

  • Must be any fixed-point data type when Input is fixed point

Step-size

  • Must be the same as Input for floating-point signals

  • Must be any fixed-point data type when Input is fixed point

Adapt

  • Double-precision floating point

  • Single-precision floating point

  • Boolean

  • 8-, 16-, and 32-bit signed integers

  • 8-, 16-, and 32-bit unsigned integers

Reset

  • Double-precision floating point

  • Single-precision floating point

  • Boolean

  • 8-, 16-, and 32-bit signed integers

  • 8-, 16-, and 32-bit unsigned integers

Output

  • Must be the same as Input for floating-point signals

  • Must be the same as Desired for fixed-point signals

Error

  • Must be the same as Input for floating-point signals

  • Must be the same as Desired for fixed-point signals

Wts

  • Must be the same as Input for floating-point signals

  • Obeys the Weights parameter for fixed-point signals

See Also

Fast Block LMS FilterSignal Processing Blockset
Kalman Adaptive Filter (Obsolete)Signal Processing Blockset
LMS FilterSignal Processing Blockset
RLS FilterSignal Processing Blockset

See Adaptive Filters for related information.

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS