rls

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

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

Синтаксис

alg = rls(forgetfactor)
alg = rls(forgetfactor,invcorr0)

Описание

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

alg = rls(forgetfactor) создает адаптивный алгоритм, основанный на объектах на алгоритме рекурсивных наименьших квадратов (RLS). Фактором упущения является forgetfactor, вещественное число между 0 и 1. Матрица обратной корреляции инициализируется к скалярному значению.

alg = rls(forgetfactor,invcorr0) устанавливает параметр инициализации для матрицы обратной корреляции. Это скалярное значение используется, чтобы инициализировать или сбросить диагональные элементы матрицы обратной корреляции.

Свойства

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

СвойствоОписание
AlgTypeФиксированное значение, 'RLS'
ForgetFactorУпущение фактора
InvCorrInitСкалярное значение раньше инициализировало или сбрасывало диагональные элементы матрицы обратной корреляции

Кроме того, когда вы используете этот адаптивный объект алгоритма создать объект эквалайзера (через функцию lineareq или функцию dfe), объект эквалайзера имеет свойство InvCorrMatrix, которое представляет матрицу обратной корреляции для алгоритма RLS. Начальным значением InvCorrMatrix является InvCorrInit*eye(N), где N является общим количеством весов эквалайзера.

Примеры

свернуть все

Этот код создает объекты эквалайзера для трех настроек.

  • Расположенный с интервалами символом линейный эквалайзер RLS с 10 весами.

  • Незначительно расположенный с интервалами линейный эквалайзер RLS с 10 весами, совокупностью BPSK и двумя выборками на символ.

  • Обратная связь решения эквалайзер RLS с тремя весами в фильтре feedforward и двумя весами в фильтре обратной связи.

  • Все три объекта эквалайзера задают адаптивный алгоритм RLS с фактором упущения 0,3.

Создайте объекты эквалайзера различных типов. Отметьте настройки по умолчанию, используемые свойствами, которые не установлены с помощью пар 'Name,Value'.

eqlin = comm.LinearEqualizer('Algorithm','RLS','NumTaps',10,'ForgettingFactor',0.3)
eqlin = 
  comm.LinearEqualizer with properties:

                          Algorithm: 'RLS'
                            NumTaps: 10
                   ForgettingFactor: 0.3000
    InitialInverseCorrelationMatrix: 0.1000
                      Constellation: [1x4 double]
                       ReferenceTap: 3
                         InputDelay: 0
              InputSamplesPerSymbol: 1
              TrainingFlagInputPort: false
                 AdaptAfterTraining: true
               InitialWeightsSource: 'Auto'
                 WeightUpdatePeriod: 1

eqfrac = comm.LinearEqualizer('Algorithm','RLS','NumTaps',10,'ForgettingFactor',0.3, ...
    'Constellation',[-1 1],'InputSamplesPerSymbol',2)
eqfrac = 
  comm.LinearEqualizer with properties:

                          Algorithm: 'RLS'
                            NumTaps: 10
                   ForgettingFactor: 0.3000
    InitialInverseCorrelationMatrix: 0.1000
                      Constellation: [-1 1]
                       ReferenceTap: 3
                         InputDelay: 0
              InputSamplesPerSymbol: 2
              TrainingFlagInputPort: false
                 AdaptAfterTraining: true
               InitialWeightsSource: 'Auto'
                 WeightUpdatePeriod: 1

eqdfe = comm.DecisionFeedbackEqualizer('Algorithm','RLS','NumForwardTaps',3, ...
    'NumFeedbackTaps',2,'ForgettingFactor',0.3)
eqdfe = 
  comm.DecisionFeedbackEqualizer with properties:

                          Algorithm: 'RLS'
                     NumForwardTaps: 3
                    NumFeedbackTaps: 2
                   ForgettingFactor: 0.3000
    InitialInverseCorrelationMatrix: 0.1000
                      Constellation: [1x4 double]
                       ReferenceTap: 3
                         InputDelay: 0
              InputSamplesPerSymbol: 1
              TrainingFlagInputPort: false
                 AdaptAfterTraining: true
               InitialWeightsSource: 'Auto'
                 WeightUpdatePeriod: 1

Алгоритмы

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

K=Pu(ForgetFactor)+uHPu

где H обозначает, что Эрмитовы транспонируют.

Затем новой матрицей обратной корреляции дают

(ForgetFactor)-1 (P – KuHP)

и новым набором весов дают

w + K *e

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

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

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

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

Ссылки

[1] Farhang-Boroujeny, B., адаптивные фильтры: теория и Applications, Chichester, England, John Wiley & Sons, 1998.

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

[3] Kurzweil, J., введение в цифровую связь, Нью-Йорк, John Wiley & Sons, 2000.

[4] Proakis, Джон Г., цифровая связь, четвертый Эд., Нью-Йорк, McGraw-Hill, 2001.

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

Системные объекты

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