| Communications Blockset™ | ![]() |
Equalize using constant modulus algorithm
Equalizers
The CMA Equalizer block uses a linear equalizer and the constant modulus algorithm (CMA) to equalize a linearly modulated baseband signal through a dispersive channel. During the simulation, the block uses the CMA to update the weights, once per symbol. If the Number of samples per symbol parameter is 1, then the block implements a symbol-spaced equalizer; otherwise, the block implements a fractionally spaced equalizer.
When using this block, you should initialize the equalizer weights with a nonzero vector. Typically, CMA is used with differential modulation; otherwise, the initial weights are very important. A typical vector of initial weights has a 1 corresponding to the center tap and zeros elsewhere.
The port labeled Input receives the signal you want to equalize, as a scalar or a frame-based column vector. The port labeled Equalized outputs the result of the equalization process.
You can configure the block to have one or more of the extra ports listed in the table below.
| Port | Meaning | How to Enable |
|---|---|---|
| Err output | y(R -|y|2), where y is the equalized signal and R is a constant related to the signal constellation | Check the Output error check box. |
| Wts output | A vector listing the weights after the block has processed either the current input frame or, in sample-based mode, the current input sample. | Check the Output weights check box. |
The delay between the transmitter's modulator output and the CMA equalizer output is typically unknown (unlike the delay for other adaptive equalizers in this blockset). If you need to determine the delay, you can use the Find Delay block.

The number of taps in the filter of the equalizer.
The number of input samples for each symbol.
A vector of complex numbers that specifies the constellation for the modulation.
The step size of the CMA.
The leakage factor of the CMA, a number between 0 and 1. A value of 1 corresponds to a conventional weight update algorithm, and a value of 0 corresponds to a memoryless update algorithm.
A vector that lists the initial weights for the taps.
If you check this box, the block outputs the error signal described in the table above.
If you check this box, the block outputs the current weights.
[1] Haykin, Simon, Adaptive Filter Theory, Third Ed., Upper Saddle River, N.J., Prentice-Hall, 1996.
[2] Johnson, Richard C. Jr., Philip Schniter, Thomas. J. Endres, et al., "Blind Equalization Using the Constant Modulus Criterion: A Review," Proceedings of the IEEE, vol. 86, pp. 1927-1950, October 1998.
LMS Linear Equalizer, LMS Decision Feedback Equalizer, RLS Linear Equalizer, RLS Decision Feedback Equalizer
![]() | Charge Pump PLL | Complex Phase Difference | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |