Компенсируйте алгоритм Viterbi использования
Блок эквалайзера
Блок MLSE Equalizer использует алгоритм Viterbi, чтобы компенсировать линейно модулируемый сигнал через дисперсионный канал. Входные кадры процессов блока и выходные параметры оценка последовательности наибольшего правдоподобия (MLSE) сигнала, с помощью оценки канала, смоделированного как фильтр конечного входного ответа (FIR).
Этот блок поддерживает single
и double
типы данных.
Оценка канала принимает форму вектор-столбца, содержащего коэффициенты КИХ, просачиваются порядок убывания степеней. Длина этого вектора является памятью канала, которая должна быть кратной параметру Samples per input symbol блока.
Чтобы задать оценочный вектор канала, используйте один из этих методов:
Установите Specify channel via на Dialog
и введите вектор в поле Channel coefficients.
Установите Specify channel via на Input port
и блок отображает дополнительный входной порт, пометил Ch
, который принимает на вход сигнал в виде вектора - столбца или скалярной величины.
Параметр Signal constellation задает созвездие для модулируемого сигнала, как определено модулятором в вашей модели. Signal constellation является вектором комплексных чисел, где kth комплексное число в векторе является точкой созвездия, с которой модулятор сопоставляет целое число 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 в векторе соответствует kth записи в векторе Constellation points и, следовательно, к входу модулятора k-1.
Преамбула или постиноходь должны уже быть включены вначале или конец, соответственно, входного сигнала с этим блоком. При необходимости можно конкатенировать векторы в программном обеспечении Simulink® с помощью блока Matrix Concatenation.
Чтобы изучить, как блок использует преамбулу и постиноходь, см. "Сброс Каждая Система координат" Режим работы ниже.
Один способ, которым алгоритм Viterbi может перейти между последовательными системами координат, называется Reset every frame
режим. Можно выбрать этот режим с помощью параметра Operation mode.
В Reset every frame
режим, блок декодирует каждую систему координат информационно-независимо, сбрасывая метрику состояния в конце каждой системы координат. traceback, декодирующий всегда, запускается в состоянии с минимальной метрики состояния.
Инициализация метрик состояния зависит от того, задаете ли вы преамбулу и/или постиноходь:
Если вы не задаете преамбулу, декодер инициализирует метрики всех состояний к 0 в начале каждой системы координат данных.
Если вы задаете преамбулу, блок использует ее, чтобы инициализировать метрики состояния в начале каждой системы координат данных. А именно, блок декодирует преамбулу и присваивает метрику 0 к декодируемому состоянию. Если преамбула не декодирует к уникальному состоянию - то есть, если длина преамбулы меньше памяти канала - декодер присваивает метрику 0 ко всем состояниям, которые могут быть представлены преамбулой. Каждый раз, когда вы задаете преамбулу, traceback концы пути в одном из состояний, представленных преамбулой.
Если вы не задаете постиноходь, traceback путь запускается в состоянии с самой маленькой метрики.
Если вы задаете постиноходь, traceback путь начинается в состоянии, представленном постиноходью. Если постиноходь не декодирует к уникальному состоянию, декодер идентифицирует самое маленькое из всех возможных декодируемых состояний, которые представлены постиноходью, и начинает traceback, декодирующий в том состоянии.
В Reset every frame
режим, вход с блоком MLSE Equalizer должен содержать, по крайней мере, T символы, не включая дополнительную преамбулу, где T является параметром Traceback depth.
Альтернативный способ, которым алгоритм Viterbi может перейти между последовательными системами координат, называется Continuous with reset option
режим. Можно выбрать этот режим с помощью параметра Operation mode.
В Continuous with reset option
режим, блок инициализирует метрики всех состояний к 0 в начале симуляции. В конце каждой системы координат блок сохраняет метрику внутреннего состояния для использования в вычислении traceback путей в следующей системе координат.
Если вы выбираете Enable the reset input port, блок отображает другой входной порт, пометил Rst
. В этом случае блок сбрасывает метрики состояния каждый раз, когда скалярное значение в Rst
порт является ненулевым.
Блок MLSE Equalizer вводит выходную задержку, равную Traceback depth в Continuous with reset option
режим и никакая задержка Reset every frame
режим.
Метод для определения оценки канала. Если вы выбираете Input port
, блок отображает второй входной порт, который получает оценку канала. Если вы выбираете Dialog
, можно задать оценку канала, когда вектор коэффициентов для КИХ просачивается поле Channel coefficients.
Вектор, содержащий коэффициенты КИХ-фильтра, который блок использует в оценке канала. Это поле отображается, только если вы устанавливаете Specify channel via на Dialog
.
Вектор комплексных чисел, который задает созвездие для модуляции.
Количество ветвей решетки (эквивалентно, количество символов) блок использует в алгоритме Viterbi, чтобы создать каждый traceback путь.
Режим работы Декодера Витерби. Выбором является 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. Эта опция появляется, только если вы устанавливаете Operation mode на Reset every frame
.
Вектор целых чисел между 0 и M-1 представление постиноходи, где M является размером созвездия. Это поле отображается и активно, только если вы устанавливаете Operation mode на Reset every frame
и затем выберите Input contains postamble.
Количество входных выборок для каждой точки созвездия.
То, когда вы устанавливаете этот флажок, блок имеет второй входной порт, пометило Rst
. Обеспечение ненулевого входного значения к этому порту заставляет блок устанавливать свою внутреннюю память на начальное состояние прежде, чем обработать входные данные. Эта опция появляется, только если вы устанавливаете Operation mode на Continuous with reset option
.
[1] Proakis, Джон Г., Цифровая связь, Четвертый выпуск, Нью-Йорк, McGraw-Hill, 2001.
[2] Стил, Рэймонд, Эд., коммуникации рации, Чичестер, Англия, Вайли, 1996.