MLSE Equalizer

Компенсируйте алгоритм Viterbi использования

Библиотека

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

  • MLSE Equalizer block

Описание

Блок 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 является вектором из комплексных чисел, где 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® программное обеспечение с помощью блока 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 режим.

Параметры

Specify channel via

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

Channel coefficients

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

Signal constellation

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

Traceback depth

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

Operation mode

Режим работы Декодера Витерби. Выбором является 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. Эта опция появляется, только если вы устанавливаете Operation mode на Reset every frame.

Expected postamble

Вектор из целых чисел между 0 и M-1 представление постиноходи, где 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, Джон Г., Цифровая связь, Четвертый выпуск, Нью-Йорк, McGraw-Hill, 2001.

[2] Стил, Рэймонд, Эд., коммуникации рации, Чичестер, Англия, Вайли, 1996.

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

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

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

Блоки

Функции

Объекты

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