| Signal Processing Blockset™ | ![]() |
Compute filtered output, filter error, and filter weights for given input and desired signal using RLS adaptive filter algorithm
Filtering / Adaptive Filters
dspadpt3

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. 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 corresponding RLS filter is expressed in matrix form as

where λ-1 denotes 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 step n |
P(n) | The inverse correlation matrix at step n |
k(n) | The gain vector 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 forgetting factor |
The implementation of the algorithm in the block is optimized by exploiting the symmetry of the inverse correlation matrix P(n). This decreases the total number of computations by a factor of two.
Use the Filter length parameter to specify the length of the filter weights vector.
The Forgetting factor (0 to 1) parameter
corresponds to λ in the equations. It specifies how quickly
the filter "forgets" past sample information. Setting
λ=1 specifies an infinite memory. Typically,
, where L is the filter length. You can specify a forgetting factor
using the input port, Lambda, or enter a value in the Forgetting
factor (0 to 1) parameter in the Block Parameters: RLS
Filter dialog box.
Enter the initial filter weights,
, as a vector or
a scalar for the Initial value of filter weights parameter. 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 of P(n) is
![]()
where you specify
in
the Initial input variance estimate parameter.
When you select the Adapt port check 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 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:
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 a Rising edge or Falling edge, as described above
Non-zero sample — Triggers a reset operation at each sample time that the Reset input is not zero
Note When running simulations in the Simulink® MultiTasking mode, sample-based reset signals have a one-sample latency, and frame-based reset signals have one frame of latency. Thus, there is a one-sample or one-frame delay between the time the block detects a reset event, and when it applies the reset. For more information on latency and the Simulink tasking modes, see Excess Algorithmic Delay (Tasking Latency) and Models with Multiple Sample Rates in the Real-Time Workshop® User's Guide. |
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.
The rlsdemo demo illustrates a noise cancellation system built around the RLS Filter block.

Enter the length of the FIR filter weights vector.
Select Dialog to enter a value for the forgetting factor in the Block parameters: RLS Filter dialog box. Select Input port to specify the forgetting factor using the Lambda input port.
Enter the exponential weighting factor in the range 0 ≤λ≤1. A value of 1 specifies an infinite memory. Tunable.
Specify the initial values of the FIR filter weights.
The initial value of 1/P(n).
Select this check box to enable the Adapt input port.
Select this check box to enable the Reset input port.
Select this check box to export the filter weights from the Wts port.
Hayes, M.H. Statistical Digital Signal Processing and Modeling. New York: John Wiley & Sons, 1996.
Double-precision floating point
Single-precision floating point
| Kalman Adaptive Filter | Signal Processing Blockset |
| LMS Filter | Signal Processing Blockset |
| Block LMS Filter | Signal Processing Blockset |
| Fast Block LMS Filter | Signal Processing Blockset |
See Adaptive Filters for related information.
![]() | RLS Adaptive Filter | RMS | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |