## Documentation Center |

`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 Adaptive Algorithms.

`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 Access Properties of an Adaptive Algorithm.

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.

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

`cma` | `dfe` | `equalize` | `lineareq` | `lms` | `normlms` | `rls` | `signlms`

Was this topic helpful?