Эквалайзер MLSE

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

Библиотека

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

Описание

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

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

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

Оценка канала принимает форму вектор-столбца, содержащего коэффициенты КИХ, просачиваются порядок убывания степеней. Длина этого вектора является памятью канала, которая должна быть кратной параметру 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 в этом блоке.

Например, чтобы задать совокупность, данную отображением

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 в векторе соответствует 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.

Параметры

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