MLSE Equalizer

Выравнивайте с помощью алгоритма Viterbi

Библиотека

Блок Эквалайзера

  • MLSE Equalizer block

Описание

Блок MLSE Equalizer использует алгоритм Viterbi, чтобы выровнять линейно модулированный сигнал через дисперсионный канал. Блок обрабатывает входные кадры и выводит максимальную оценку последовательности правдоподобия (MLSE) сигнала, используя оценку канала, смоделированного как фильтр с конечной входной характеристикой (конечной импульсной характеристикой).

Этот блок поддерживает single и double типы данных.

Оценки канала

Оценка канала принимает форму вектора-столбца, содержащей коэффициенты конечной импульсной характеристики фильтра в порядке убывания степеней. Длина этого вектора является памятью канала, которая должна быть кратной параметру Samples per input symbol блока.

Чтобы задать вектор оценки канала, используйте один из следующих методов:

  • Установите Specify channel via значение Dialog и введите вектор в поле Channel coefficients.

  • Установите Specify channel via значение Input port и блок отображает дополнительный входной порт, обозначенный Ch, который принимает вектор-столбец входной сигнал.

Сигнальное Созвездие

Параметр Signal constellation задает созвездие для модулируемого сигнала, как определено модулятором в вашей модели. Signal constellation является вектором комплексных чисел, где k-е комплексное число в векторе является точкой созвездия, к которой модулятор преобразует целое число k-1.

Примечание

Последовательность точек созвездия должна быть последовательной между модулятором в вашей модели и параметром Signal constellation в этом блоке.

Для примера задать созвездие, заданное отображением

0+1+i11+i21i3+1i

установите Constellation points значение [1+i, -1+i, -1-i, 1-i]. Обратите внимание, что последовательность чисел в векторе указывает, как модулятор преобразует целые числа в набор созвездия точек. Маркированное созвездие показано ниже.

Преамбула и постамб

Если ваши данные сопровождаются преамбулой (префиксом) или постамблом (суффиксом), то сконфигурируйте блок соответствующим образом:

  • Если вы выбираете Input contains preamble, то параметр Expected preamble задает преамбулу, которую вы ожидаете предшествовать данным в входном сигнале.

  • Если вы проверяете Input contains postamble, то параметр Expected postamble задает постамб, который вы ожидаете следить за данными в входном сигнале.

Параметр Expected preamble или Expected postamble должен быть вектором целых чисел от 0 до M-1, где M - количество точек созвездия. Целочисленное значение k-1 в векторе соответствует k-й записи в векторе Constellation points и, следовательно, входу модулятора k-1.

Преамбула или постамбла уже должны быть включены в начале или конце, соответственно, входного сигнала к этому блоку. При необходимости можно конкатенировать векторы в Simulink® программное обеспечение, использующее блок Конкатенация Матриц.

Чтобы узнать, как блок использует преамбулу и постамб, смотрите Режим работы «Сбросить каждую систему координат» ниже.

Операция «Сброс каждой системы координат»

Один из способов, которым алгоритм Viterbi может переходить между последовательными системами координат, называется Reset every frame режим. Вы можете выбрать этот режим, используя параметр Operation mode.

В Reset every frame блок декодирует каждую систему координат данных независимо, сбрасывая метрику состояния в конце каждой системы координат. Декодирование трассировки всегда начинается в состоянии с метрики минимального состояния.

Инициализация метрик состояния зависит от того, задаете ли вы преамбулу и/или постамб:

  • Если вы не задаете преамбулу, декодер инициализирует метрики всех состояний на 0 в начале каждой системы координат данных.

  • Если вы задаете преамбулу, блок использует ее, чтобы инициализировать метрики состояния в начале каждой системы координат данных. Более конкретно, блок декодирует преамбулу и присваивает метрику 0 декодированному состоянию. Если преамбула не декодируется до уникального состояния, то есть если длина преамбулы меньше, чем память канала, декодер присваивает метрику 0 всем состояниям, которые могут быть представлены преамбулой. Каждый раз, когда вы задаете преамбулу, путь трассировки заканчивается в одном из состояний, представленных преамбулой.

  • Если вы не задаете postamble, путь трассировки начинается в состоянии с наименьшей метрики.

  • Если вы задаете postamble, путь трассировки начинается с состояния, представленного postamble. Если постамбл не декодируется в уникальное состояние, декодер идентифицирует наименьшие из всех возможных декодированных состояний, которые представлены постамблом, и начинает декодирование обратного отслеживания в этом состоянии.

    Примечание

    В Reset every frame режим, вход блока MLSE Equalizer должен содержать по меньшей мере T символов, не включая необязательную преамбулу, где T является Traceback depth параметром.

Режим непрерывной операции

Альтернативный способ, которым алгоритм Viterbi может переходить между последовательными системами координат, называется Continuous with reset option режим. Вы можете выбрать этот режим, используя параметр Operation mode.

В Continuous with reset option mode, блок инициализирует метрики всех состояний в 0 в начале симуляции. В конце каждой системы координат блок сохраняет метрику внутреннего состояния для использования при вычислении путей трассировки в следующей системе координат.

Если вы выбираете Enable the reset input port, блок отображает другой входной порт, маркированный Rst. В этом случае блок сбрасывает метрики состояния всякий раз, когда скалярное значение в Rst порт ненулевый.

Задержка декодирования

Блок MLSE Equalizer вводит выход задержку, равную Traceback depth в Continuous with reset option mode, и без задержки в Reset every frame режим.

Параметры

Specify channel via

Способ определения оценки канала. Если вы выбираете Input portблок отображает второй входной порт, который принимает оценку канала. Если вы выбираете Dialogможно задать оценку канала как вектор коэффициентов для конечная импульсная характеристика в Channel coefficients поле.

Channel coefficients

Вектор, содержащий коэффициенты конечной импульсной характеристики, которые блок использует для оценки канала. Это поле видим, только если установить для Specify channel via значение Dialog.

Signal constellation

Вектор комплексных чисел, который задает созвездие для модуляции.

Traceback depth

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

Operation mode

Режим работы декодера Viterbi. Варианты Continuous with reset option и Reset every frame.

Input contains preamble

После установки флажка преамбулу можно задать в поле Expected preamble. Эта опция появляется только, если для Operation mode задано значение Reset every frame.

Expected preamble

Вектор целых чисел от 0 до M-1, представляющий преамбулу, где M - размер созвездия. Это поле видим и активно, только если вы задаете Operation mode Reset every frame а затем выберите Input contains preamble.

Input contains postamble

После установки флажка в поле Expected postamble можно установить значение postamble. Эта опция появляется только, если для Operation mode задано значение Reset every frame.

Expected postamble

Вектор целых чисел от 0 до M-1, представляющий postamble, где M - размер созвездия. Это поле видим и активно, только если вы задаете Operation mode Reset every frame а затем выберите Input contains postamble.

Samples per input symbol

Количество входа отсчетов для каждой точки созвездия.

Enable the reset input port

Когда вы устанавливаете этот флажок, блок имеет второй входной порт, помеченный Rst. Предоставление ненулевого входного значения этому порту заставляет блок устанавливать свою внутреннюю память в начальное состояние перед обработкой входных данных. Эта опция появляется только, если для Operation mode задано значение Continuous with reset option.

Ссылки

[1] Proakis, John G., Digital Communications, Fourth edition, New York, McGraw-Hill, 2001.

[2] Steele, Raymond, Ed., Mobile Radio Communications, Chichester, England, Wiley, 1996.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

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