Выравнивайте с помощью алгоритма Viterbi
Блок Эквалайзера
Блок 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 в этом блоке.
Для примера задать созвездие, заданное отображением
установите 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
режим.
Способ определения оценки канала. Если вы выбираете Input port
блок отображает второй входной порт, который принимает оценку канала. Если вы выбираете Dialog
можно задать оценку канала как вектор коэффициентов для конечная импульсная характеристика в Channel coefficients поле.
Вектор, содержащий коэффициенты конечной импульсной характеристики, которые блок использует для оценки канала. Это поле видим, только если установить для Specify channel via значение Dialog
.
Вектор комплексных чисел, который задает созвездие для модуляции.
Количество ветвей шпалеры (эквивалентно количеству символов), которое блок использует в алгоритме Viterbi, чтобы создать каждый путь следования.
Режим работы декодера Viterbi. Варианты Continuous with reset option
и Reset every frame
.
После установки флажка преамбулу можно задать в поле Expected preamble. Эта опция появляется только, если для Operation mode задано значение Reset every frame
.
Вектор целых чисел от 0 до M-1, представляющий преамбулу, где M - размер созвездия. Это поле видим и активно, только если вы задаете Operation mode Reset every frame
а затем выберите Input contains preamble.
После установки флажка в поле Expected postamble можно установить значение postamble. Эта опция появляется только, если для Operation mode задано значение Reset every frame
.
Вектор целых чисел от 0 до M-1, представляющий postamble, где M - размер созвездия. Это поле видим и активно, только если вы задаете Operation mode Reset every frame
а затем выберите Input contains postamble.
Количество входа отсчетов для каждой точки созвездия.
Когда вы устанавливаете этот флажок, блок имеет второй входной порт, помеченный 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.