Main Content

RLS Filter

计算输出过滤,过滤错误,和过滤器weights for given input and desired signal using RLS adaptive filter algorithm

Library

Filtering / Adaptive Filters

dspadpt3

  • RLS Filter block

Description

The RLS Filter block recursively computes the least squares estimate (RLS) of the FIR filter weights. The block estimates the filter weights, or coefficients, needed to convert the input signal into the desired signal. Connect the signal you want to filter to the Input port. The input signal can be a scalar or a column vector. Connect the signal you want to model to the Desired port. The desired signal must have the same data type, complexity, and dimensions as the input signal. The Output port outputs the filtered input signal. The Error port outputs the result of subtracting the output signal from the desired signal.

The corresponding RLS filter is expressed in matrix form as

k ( n ) = λ 1 P ( n 1 ) u ( n ) 1 + λ 1 u H ( n ) P ( n 1 ) u ( n ) y ( n ) = w ( n 1 ) u ( n ) e ( n ) = d ( n ) y ( n ) w ( n ) = w ( n 1 ) + k H ( n ) e ( n ) P ( n ) = λ 1 P ( n 1 ) λ 1 k ( n ) u H ( n ) P ( n 1 )

where λ-1denotes the reciprocal of the exponential weighting factor. The variables are as follows

Variable Description

n

The current time index

u(n)

The vector of buffered input samples at stepn

P(n)

The inverse covariance matrix at stepn

k(n)

The gain vector at stepn

w ( n )

The vector of filter-tap estimates at stepn

y(n)

The filtered output at stepn

e(n)

The estimation error at stepn

d(n)

The desired response at stepn

λ

The forgetting factor

The implementation of the algorithm in the block is optimized by exploiting the symmetry of the inverse covariance matrixP(n). This decreases the total number of computations by a factor of two.

Use theFilter lengthparameter to specify the length of the filter weights vector.

TheForgetting factor (0 to 1)parameter corresponds to λ in the equations. It specifies how quickly the filter “forgets” past sample information. Setting λ=1specifies an infinite memory. Typically, 1 1 2 L < λ < 1 , whereLis the filter length. You can specify a forgetting factor using the input port, Lambda, or enter a value in theForgetting factor (0 to 1)parameter in the Block Parameters: RLS Filter dialog box.

Enter the initial filter weights, w ^ ( 0 ) , as a vector or a scalar for theInitial value of filter weightsparameter. 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.

The initial value ofP(n) is

1 σ 2 I

where you specify σ 2 in theInitial input variance estimateparameter.

When you select theAdapt portcheck box, an Adapt port appears on the block. When the input to this port is nonzero, 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 theReset inputparameter. 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 theReset inputlist, selectNoneto disable the Reset port. To enable the Reset port, select one of the following from theReset inputlist:

  • Rising edge— Triggers a reset operation when the Reset input does one of the following:

    • Rises from a negative value to a positive value or zero

    • Rises from zero to a positive value, where the rise is not a continuation of a rise from a negative value to zero; see the following figure

  • Falling edge— Triggers a reset operation when the Reset input does one of the following:

    • Falls from a positive value to a negative value or zero

    • Falls from zero to a negative value, where the fall is not a continuation of a fall from a positive value to zero; see the following figure

  • Either edge— Triggers a reset operation when the Reset input is aRising edgeorFalling edge, as described above

  • Non-zero sample——触发复位操作each sample time that the Reset input is not zero

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

Examples

Therlsdemoexample illustrates a noise cancellation system built around the RLS Filter block.

Parameters

Filter length

Enter the length of the FIR filter weights vector.

Specify forgetting factor via

SelectDialogto enter a value for the forgetting factor in the Block parameters: RLS Filter dialog box. SelectInput portto specify the forgetting factor using the Lambda input port.

Forgetting factor (0 to 1)

Enter the exponential weighting factor in the range0≤λ≤1. A value of1specifies an infinite memory.Tunable(Simulink).

Initial value of filter weights

Specify the initial values of the FIR filter weights.

Initial input variance estimate

The initial value of 1/P(n).

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

  • Double-precision floating point

  • Single-precision floating point

See Also

Kalman Adaptive Filter (Obsolete) DSP System Toolbox
LMS Filter DSP System Toolbox
Block LMS Filter DSP System Toolbox
Fast Block LMS Filter DSP System Toolbox

SeeNoise Cancellation in Simulink Using Normalized LMS Adaptive Filterfor related information.

Extended Capabilities

Introduced before R2006a