This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


(To be removed) Construct signed least mean square (LMS) adaptive algorithm object

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


alg = signlms(stepsize)
alg = signlms(stepsize,algtype)


The signlms 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 Equalization.

alg = signlms(stepsize) constructs an adaptive algorithm object based on the signed least mean square (LMS) algorithm with a step size of stepsize.

alg = signlms(stepsize,algtype) constructs an adaptive algorithm object of type algtype from the family of signed LMS algorithms. The table below lists the possible values of algtype.

Value of algtypeType of Signed LMS Algorithm
'Sign LMS'Sign LMS (default)
'Signed Regressor LMS'Signed regressor LMS
'Sign Sign LMS'Sign-sign LMS


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

AlgTypeType of signed LMS algorithm, corresponding to the algtype input argument. You cannot change the value of this property after creating the object.
StepSizeLMS step size parameter, a nonnegative real number
LeakageFactorLMS leakage factor, a real number between 0 and 1. A value of 1 corresponds to a conventional weight update algorithm, while a value of 0 corresponds to a memoryless update algorithm.


collapse all

This example shows to use a signed least mean square (LMS) algorithm to create an adaptive equalizer object.

Set the number of weights and the step size for the equalizer.

nWeights = 2;
stepSize = 0.05;

Create the adaptive algorithm object using the signed regressor LMS algorithm type.

alg = signlms(stepSize,'Signed Regressor LMS');

Construct a linear equalizer using the algorithm object.

eqObj = lineareq(nWeights,alg)
eqObj =

                  EqType: 'Linear Equalizer'
                 AlgType: 'Signed Regressor LMS'
                nWeights: 2
             nSampPerSym: 1
                  RefTap: 1
                SigConst: [-1 1]
                StepSize: 0.0500
           LeakageFactor: 1
                 Weights: [0 0]
            WeightInputs: [0 0]
    ResetBeforeFiltering: 1
     NumSamplesProcessed: 0


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 weights, w, this adaptive algorithm creates the new set of weights given by

  • (LeakageFactor) w + (StepSize) u*sgn(Re(e)), for sign LMS

  • (LeakageFactor) w + (StepSize) sgn(Re(u)) Re(e), for signed regressor LMS

  • (LeakageFactor) w + (StepSize) sgn(Re(u)) sgn(Re(e)), for sign-sign LMS

where the * operator denotes the complex conjugate and sgn denotes the signum function (sign in MATLAB® technical computing software).

Compatibility Considerations

expand all

Not recommended starting in R2019a


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

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

Introduced before R2006a