Documentation

# rls

(To be removed) Construct recursive least squares (RLS) adaptive algorithm object

rls will be removed in a future release. Use `comm.LinearEqualizer` or `comm.DecisionFeedback` instead.

## Syntax

```alg = rls(forgetfactor) alg = rls(forgetfactor,invcorr0) ```

## Description

The `rls` function creates an adaptive algorithm object that you can use with the `lineareq` function or `dfe` function to create an equalizer object. You can then use the equalizer object with the `equalize` function to equalize a signal. To learn more about the process for equalizing a signal, see .

`alg = rls(forgetfactor)` constructs an adaptive algorithm object based on the recursive least squares (RLS) algorithm. The forgetting factor is `forgetfactor`, a real number between 0 and 1. The inverse correlation matrix is initialized to a scalar value.

`alg = rls(forgetfactor,invcorr0)` sets the initialization parameter for the inverse correlation matrix. This scalar value is used to initialize or reset the diagonal elements of the inverse correlation matrix.

### Properties

The table below describes the properties of the RLS adaptive algorithm object. To learn how to view or change the values of an adaptive algorithm object, see Equalization.

PropertyDescription
`AlgType`Fixed value, `'RLS'`
`ForgetFactor`Forgetting factor
`InvCorrInit`Scalar value used to initialize or reset the diagonal elements of the inverse correlation matrix

Also, when you use this adaptive algorithm object to create an equalizer object (via the `lineareq` function or `dfe` function), the equalizer object has an `InvCorrMatrix` property that represents the inverse correlation matrix for the RLS algorithm. The initial value of `InvCorrMatrix` is `InvCorrInit*eye(N)`, where `N` is the total number of equalizer weights.

## Examples

collapse all

The code creates equalizer objects for these configurations:

• A symbol-spaced linear RLS equalizer with 10 weights.

• A fractionally spaced linear RLS equalizer with 10 weights, a BPSK constellation, and two samples per symbol.

• A decision-feedback RLS equalizer with three weights in the feedforward filter and two weights in the feedback filter.

All three equalizer objects specify the RLS adaptive algorithm with a forgetting factor of 0.3.

Create equalizer objects of different types. The default settings are used for properties not set using `'Name,Value'` pairs.

`eqlin = comm.LinearEqualizer('Algorithm','RLS','NumTaps',10,'ForgettingFactor',0.3)`
```eqlin = comm.LinearEqualizer with properties: Algorithm: 'RLS' NumTaps: 10 ForgettingFactor: 0.3000 InitialInverseCorrelationMatrix: 0.1000 Constellation: [1x4 double] ReferenceTap: 3 InputDelay: 0 InputSamplesPerSymbol: 1 TrainingFlagInputPort: false AdaptAfterTraining: true InitialWeightsSource: 'Auto' WeightUpdatePeriod: 1 ```
```eqfrac = comm.LinearEqualizer('Algorithm','RLS','NumTaps',10,'ForgettingFactor',0.3, ... 'Constellation',[-1 1],'InputSamplesPerSymbol',2)```
```eqfrac = comm.LinearEqualizer with properties: Algorithm: 'RLS' NumTaps: 10 ForgettingFactor: 0.3000 InitialInverseCorrelationMatrix: 0.1000 Constellation: [-1 1] ReferenceTap: 3 InputDelay: 0 InputSamplesPerSymbol: 2 TrainingFlagInputPort: false AdaptAfterTraining: true InitialWeightsSource: 'Auto' WeightUpdatePeriod: 1 ```
```eqdfe = comm.DecisionFeedbackEqualizer('Algorithm','RLS','NumForwardTaps',3, ... 'NumFeedbackTaps',2,'ForgettingFactor',0.3)```
```eqdfe = comm.DecisionFeedbackEqualizer with properties: Algorithm: 'RLS' NumForwardTaps: 3 NumFeedbackTaps: 2 ForgettingFactor: 0.3000 InitialInverseCorrelationMatrix: 0.1000 Constellation: [1x4 double] ReferenceTap: 3 InputDelay: 0 InputSamplesPerSymbol: 1 TrainingFlagInputPort: false AdaptAfterTraining: true InitialWeightsSource: 'Auto' WeightUpdatePeriod: 1 ```

## Algorithms

Referring to the schematics presented in Equalization, define w as the vector of all weights wi and define u as the vector of all inputs ui. Based on the current set of inputs, u, and the current inverse correlation matrix, P, this adaptive algorithm first computes the Kalman gain vector, K

where H denotes the Hermitian transpose.

Then the new inverse correlation matrix is given by

(`ForgetFactor`)-1(P – KuHP)

and the new set of weights is given by

w + K*e

where the * operator denotes the complex conjugate.

## Compatibility Considerations

expand all

Not recommended starting in R2019a

## References

 Farhang-Boroujeny, B., Adaptive Filters: Theory and Applications, Chichester, England, John Wiley & Sons, 1998.

 Haykin, S., Adaptive Filter Theory, Third Ed., Upper Saddle River, NJ, Prentice-Hall, 1996.

 Kurzweil, J., An Introduction to Digital Communications, New York, John Wiley & Sons, 2000.

 Proakis, John G., Digital Communications, Fourth Ed., New York, McGraw-Hill, 2001.