Construct constant modulus algorithm (CMA) object
alg = cma(stepsize)
alg = cma(stepsize,leakagefactor)
cma function creates an adaptive algorithm
object that you can use with the
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.
After you use either
create a CMA equalizer object, you should initialize the equalizer
Weights property 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 0s elsewhere.
alg = cma(stepsize) constructs
an adaptive algorithm object based on the constant modulus algorithm
(CMA) with a step size of
alg = cma(stepsize,leakagefactor) sets
the leakage factor of the CMA.
be 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
The table below describes the properties of the CMA adaptive algorithm object. To learn how to view or change the values of an adaptive algorithm object, see Access Properties of an Adaptive Algorithm.
|Fixed value, |
|CMA step size parameter, a nonnegative real number|
|CMA leakage factor, a real number between 0 and 1|
Use the constant modulus algorithm (CMA) to create an adaptive equalizer object.
Set the number of weights and the step size for the equalizer.
nWeights = 1; stepSize = 0.1;
Create an adaptive algorithm object using the
alg = cma(stepSize);
Construct a linear equalizer using the algorithm object.
eqObj = lineareq(nWeights,alg)
eqObj = EqType: 'Linear Equalizer' AlgType: 'Constant Modulus' nWeights: 1 nSampPerSym: 1 SigConst: [-1 1] StepSize: 0.1000 LeakageFactor: 1 Weights: 0 WeightInputs: 0 ResetBeforeFiltering: 1 NumSamplesProcessed: 0
Referring to the schematics in Equalizer Structure, define w as the vector of all weights wi and define u as the vector of all inputs ui. Based on the current set of weights, w, this adaptive algorithm creates the new set of weights given by
LeakageFactor) w + (
where the * operator denotes the complex conjugate.
 Haykin, Simon, Adaptive Filter Theory, Third Ed., Upper Saddle River, NJ, Prentice-Hall, 1996.
 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, October 1998, pp. 1927–1950.