(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.
Property | Description |
---|---|
AlgType | Fixed value, 'Variable Step Size LMS' |
LeakageFactor | LMS 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. |
InitStep | Initial value of step size when the algorithm starts |
IncStep | Increment by which the step size changes from iteration to iteration |
MinStep | Minimum value of step size |
MaxStep | Maximum 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*
[1] Farhang-Boroujeny, B., Adaptive Filters: Theory and Applications, Chichester, England, Wiley, 1998.