cma

(Чтобы быть удаленным) объект постоянного алгоритма модуля (CMA) Построения

cma будет удален в будущем релизе. Используйте comm.LinearEqualizer или comm.DecisionFeedback вместо этого.

Синтаксис

alg = cma(stepsize)
alg = cma(stepsize,leakagefactor)

Описание

cma функция создает адаптивный объект алгоритма, который можно использовать с lineareq функция или dfe функция, чтобы создать объект эквалайзера. Можно затем использовать объект эквалайзера с equalize функция, чтобы компенсировать сигнал. Чтобы узнать больше о процессе для компенсации сигнала, смотрите Эквализацию.

Примечание

После того, как вы используете любой lineareq или dfe чтобы создать объект эквалайзера CMA, необходимо инициализировать объект эквалайзера Weights свойство с ненулевым вектором. Как правило, CMA используется с дифференциальной модуляцией; в противном случае начальные веса очень важны. Типичный вектор начальных весов имеет 1 соответствие центральному касанию и 0s в другом месте.

alg = cma(stepsize) создает адаптивный алгоритм, основанный на объектах на постоянном алгоритме модуля (CMA) с размером шага stepsize.

alg = cma(stepsize,leakagefactor) устанавливается коэффициент утечки CMA. leakagefactor должен быть между 0 и 1. Значение 1 соответствует обычному алгоритму обновления веса, в то время как значение 0 соответствует алгоритму обновления без памяти.

Свойства

Приведенная ниже таблица описывает свойства CMA адаптивный объект алгоритма. Чтобы изучить, как просмотреть или изменить значения адаптивного объекта алгоритма, смотрите Эквализацию.

СвойствоОписание
AlgTypeФиксированное значение, 'Constant Modulus'
StepSizeПараметр размера шага CMA, неотрицательное вещественное число
LeakageFactorФактор утечки CMA, вещественное число между 0 и 1

Примеры

свернуть все

Используйте постоянный алгоритм модуля (CMA), чтобы создать адаптивный объект эквалайзера.

Определите номер весов и размера шага для эквалайзера.

nWeights = 1;
stepSize = 0.1;

Создайте адаптивный объект алгоритма использование cma функция.

alg = cma(stepSize);

Создайте линейный эквалайзер с помощью объекта алгоритма.

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

Алгоритмы

Что касается схематики в Эквализации, задайте w как вектор всех весов w i и задайте u как вектор всех входных параметров u i. На основе текущего набора весов, w, этот адаптивный алгоритм создает новый набор весов, данных

(LeakageFactor) w + (StepSize) u*e

где оператор * обозначает сопряженное комплексное число.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2019a

Ссылки

[1] Haykin, Саймон, адаптивная теория фильтра, треть Эд., верхний Сэддл-Ривер, NJ, Prentice Hall, 1996.

[2] Джонсон, Ричард К. младший, Филип Шнитер, Томас. Дж. Эндрес, и др., “Слепая Эквализация Используя Постоянный Критерий Модуля: Анализ”, Продолжения IEEE, Издания 86, октябрь 1998, стр 1927–1950.

Смотрите также

Объекты

Представлено до R2006a