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 variable-step-size least mean square (LMS) adaptive algorithm object

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


alg = varlms(initstep,incstep,minstep,maxstep)


The varlms 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 = varlms(initstep,incstep,minstep,maxstep) constructs an adaptive algorithm object based on the variable-step-size least mean square (LMS) algorithm. initstep is the initial value of the step size parameter. incstep is the increment by which the step size changes from iteration to iteration. minstep and maxstep are the limits between which the step size can vary.


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

AlgTypeFixed value, 'Variable Step Size LMS'
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.
InitStepInitial value of step size when the algorithm starts
IncStepIncrement by which the step size changes from iteration to iteration
MinStepMinimum value of step size
MaxStepMaximum value of step size

Also, when you use this adaptive algorithm object to create an equalizer object (via the lineareq or dfe function), the equalizer object has a StepSize property. The property value is a vector that lists the current step size for each weight in the equalizer.


Referring to the schematics presented in Equalization, define w as the vector of all current weights wi and define u as the vector of all inputs ui. Based on the current step size, μ, this adaptive algorithm first computes the quantity

μ0 = μ + (IncStep) Re(ggprev)

where g = ue*, gprev is the analogous expression from the previous iteration, and the * operator denotes the complex conjugate.

Then the new step size is given by

  • μ0, if it is between MinStep and MaxStep

  • MinStep, if μ0 < MinStep

  • MaxStep, if μ0 > MaxStep

The new set of weights is given by

(LeakageFactor) w + 2 μ g*

Compatibility Considerations

expand all

Not recommended starting in R2019a


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

Introduced before R2006a