Matlab中关于CMA的介绍

来源:互联网 发布:php匹配字符串 编辑:程序博客网 时间:2024/06/17 16:10

cma

Construct constant modulus algorithm (CMA) object





alg = cma(stepsize)

alg = cma(stepsize,leakagefactor)

Description

The cma 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.

    Note:   After you use either lineareq or dfe to create a CMA equalizer object, you should initialize the equalizer object's 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 stepsize.

alg = cma(stepsize,leakagefactor) sets the leakage factor of the CMA. leakagefactor must 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 algorithm.

Properties

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.

PropertyDescriptionAlgTypeFixed value, 'Constant Modulus'StepSizeCMA step size parameter, a nonnegative real numberLeakageFactorCMA leakage factor, a real number between 0 and 1

Examples

Create a Linear Equalizer using CMA

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 cma function.

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

More About

Algorithms

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 + (StepSize) u*e

where the * operator denotes the complex conjugate.

  • Equalization


%                                                  CMA引发相位旋转
% 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.