| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Communications Toolbox |
| Contents | Index |
| Learn more about Communications Toolbox |
| On this page… |
|---|
Choosing an Adaptive Algorithm |
Configuring an equalizer involves choosing an adaptive algorithm and indicating your choice when creating an equalizer object in the MATLAB environment.
Although the best choice of adaptive algorithm might depend on your individual situation, here are some generalizations that might influence your choice:
The LMS algorithm executes quickly but converges slowly, and its complexity grows linearly with the number of weights.
The RLS algorithm converges quickly, but its complexity grows with the square of the number of weights, roughly speaking. This algorithm can also be unstable when the number of weights is large.
The various types of signed LMS algorithms simplify hardware implementation.
The normalized LMS and variable-step-size LMS algorithms are more robust to variability of the input signal's statistics (such as power).
The constant modulus algorithm is useful when no training signal is available, and works best for constant modulus modulations such as PSK.
However, if CMA has no additional side information, it can introduce phase ambiguity. For example, CMA might find weights that produce a perfect QPSK constellation but might introduce a phase rotation of 90, 180, or 270 degrees. Alternatively, differential modulation can be used to avoid phase ambiguity.
Details about the adaptive algorithms are in the references listed in Selected Bibliography for Equalizers.
After you have chosen the adaptive algorithm you want to use, indicate your choice when creating the equalizer object mentioned in Basic Procedure for Equalizing a Signal. The functions listed in the table below provide a way to indicate your choice of adaptive algorithm.
| Adaptive Algorithm Function | Type of Adaptive Algorithm |
|---|---|
| lms | Least mean square (LMS) |
| signlms | Signed LMS, signed regressor LMS, sign-sign LMS |
| normlms | Normalized LMS |
| varlms | Variable-step-size LMS |
| rls | Recursive least squares (RLS) |
| cma | Constant modulus algorithm (CMA) |
Two typical ways to use a function from the table are as follows:
Use the function in an inline expression when creating the equalizer object.
For example, the code below uses the lms function inline when creating an equalizer object.
eqlms = lineareq(10,lms(0.003));
Use the function to create a variable in the MATLAB workspace and then use that variable when creating the equalizer object. The variable is called an adaptive algorithm object.
For example, the code below creates an adaptive algorithm object named alg that represents the adaptive algorithm, and then uses alg when creating an equalizer object.
alg = lms(0.003); eqlms = lineareq(10,alg);
Note To create an adaptive algorithm object by duplicating an existing one and then changing its properties, see the important note in Duplicating and Copying Objects about the use of copy versus the = operator. |
In practice, the two ways are equivalent when your goal is to create an equalizer object or to equalize a signal.
The adaptive algorithm functions not only provide a way to indicate your choice of adaptive algorithm, but they also let you specify certain properties of the algorithm. For information about what each property of an adaptive algorithm object means, see the reference pages for the lms, signlms, normlms, varlms, rls, or cma functions.
To view or change any properties of an adaptive algorithm, use the syntax described for channel objects in Viewing Object Properties and Changing Object Properties.
![]() | Using Adaptive Equalizer Functions and Objects | Specifying an Adaptive Equalizer | ![]() |

Learn how to apply early verification to your development process through these technical resources.
How much time do you spend on testing to ensure implementation meets system-level requirements?
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |