Эта модель показывает, как использовать Convolutional Encoder
и блоки Viterbi Decoder
, чтобы моделировать кусающий хвост сверточный код. Завершение решетки сверточного кода является основным параметром в производительности кода для основанных на пакете коммуникаций. Кусающее хвост сверточное кодирование является методом завершения решетки, которое избегает потери уровня, понесенной завершением нулевого хвоста за счет более комплексного декодера [1].
Пример использует оперативный субоптимальный метод декодирования для кусающего хвост декодирования и показывает, как кодирование достигается для прямого каналом энкодера. Сравнения производительности частоты ошибок по битам сделаны со случаем с нулевым хвостом для стандартного сверточного кода.
Кусающее хвост кодирование гарантирует, что начальное состояние энкодера эквивалентно, это - конечное состояние (и что это значение состояния должно не обязательно быть все-нулевым состоянием). Для уровня энкодер форварда канала 1/n
это достигается путем инициализации элементов памяти m
энкодера с последними битами информации о m
блока данных длины L
и игнорирования вывода. Все биты L
затем вводятся к энкодеру и результирующему L*n
, биты вывода используются в качестве кодовой комбинации.
Это моделируется подсистемой Tail-biting Convolutional Encoder
в следующей модели, commtailbiting.slx:
Для длины блока 100 битов, подсистема энкодера выходные параметры 200 битов для уровня 1/2 прямой каналом энкодер с 6 элементами памяти. Блок Display
в подсистеме указывает, что начальные и конечные состояния идентичны для каждого блока обработанных данных.
Сверточные блоки Энкодера используют установку "Truncated (reset every frame)" для параметра Режима работы, чтобы указать на мудрую блоком обработку.
Обратитесь к Примеру согласно [2] о том, как достигнуть кодирования кусания хвоста для энкодера обратной связи.
В сравнении метод завершения нулевого хвоста добавляет нули m
к блоку данных, чтобы гарантировать, что прямой каналом энкодер начинает с и заканчивается во все-нулевом состоянии для каждого блока. Это подвергается потере уровня из-за дополнительных битов хвоста (т.е. неинформационные биты), которые передаются.
Что касается следующей модели, commterminatedcnv.slx,
заметьте, что для той же длины блока 100 битов, энкодер вывел, теперь включает биты нулевого хвоста, приводящие к фактическому уровню кода 100/212, который является меньше, чем достигнутый кусающим хвост энкодером.
Блок Convolutional Encoder
использует установку "Terminate trellis by appending bits" для параметра Режима работы для этого случая, который работает на энкодеры обратной связи также.
Декодер кусания хвоста наибольшего правдоподобия вовлекает определение лучшего пути в решетку при ограничении, которое это запускает и заканчивает в том же состоянии. Способ реализовать это состоит в том, чтобы запуститься, M
параллельны алгоритмам Viterbi, где M
является количеством состояний в решетке, и выберите декодируемые биты на основе алгоритма Viterbi, который дает лучшую метрику. Однако это делает декодирование временами M
более комплексный, чем это для кодирования с нулевым хвостом.
Этот пример использует оперативную подоптимальную схему согласно [3], который намного более прост, чем наибольшее правдоподобие приближается, и все же выполняет сравнительно. Схема основана на предпосылке, что кусающая хвост решетка может быть рассмотрена круговой, как это запускается и заканчивается в том же состоянии. Это позволяет алгоритму Viterbi быть продолженным мимо конца блока путем повторения полученной циркулярной кодовой комбинации. В результате модель повторяет полученную кодовую комбинацию от демодулятора и запускает этот набор данных через Декодер Витерби, выполняя traceback от лучшего состояния в конце повторного набора данных. Только фрагмент декодируемых битов с середины выбран как декодируемые биты сообщения.
Параметр Режима работы для блока Viterbi Decoder устанавливается, чтобы быть "Усеченным" для кусающего хвост случая, в то время как это установлено в "Отключенный" для случая с нулевым хвостом.
Пример сравнивает производительность Частоты ошибок по битам двух методов завершения для декодирования трудного решения в канале AWGN в области значений значений Eb/No. Обратите внимание на то, что эти две модели установлены таким образом, что они могут быть моделированы в области значений значений Eb/No с помощью BERTool.
Когда данные показывают, что оперативная схема декодирования кусания хвоста выполняет сравнительно близко к ниже ограниченной производительности сверточного кода с нулевым хвостом для выбранных параметров.
После загрузки модели инициализируют набор переменных, которые управляют симуляцией. Они включают длину блока, Eb/No и максимальное количество ошибок и моделируемых битов. Вы поощряетесь вопроизвести со значениями этих переменных, чтобы видеть их эффекты на производительность ссылки.
Обратите внимание на то, что оперативная производительность схемы декодирования чувствительна к используемой длине блока. Также производительность кода зависит от traceback декодирование длины, используемой для алгоритма Viterbi.
H. Мама и Дж. Уолф, "На Хвосте, Кусающем сверточные коды", Транзакции IEEE на Коммуникациях, Издании COM-34, № 2, февраль 1986, стр 104-11.
C. Weiss, К. Беттстеттер, С. Ридель, "Конструкция кода и Декодирование Параллельных Конкатенированных Кусающих Хвост Кодов", Транзакции IEEE на Теории информации, издании 47, № 1, январь 2001, стр 366-386.
И. Э. Ван и Р. Рэмеш, "Чтобы Укусить или не Укусить? Исследование Битов Хвоста по сравнению с Кусанием хвоста", Коммуникации Персональной, Внутренней и Рации, 1996. PIMRC '96, Седьмой Симпозиум IEEE® International, Объем 2, 15-18 октября 1996, Страница (страницы):317 - 321.