Кусающее хвост сверточное кодирование

Эта модель показывает, как использовать Convolutional Encoder и Viterbi Decoder блоки, чтобы симулировать кусающий хвост сверточный код. Завершение решетки сверточного кода является основным параметром в производительности кода для основанных на пакете коммуникаций. Кусающее хвост сверточное кодирование является методом завершения решетки, которое избегает потери уровня, понесенной завершением нулевого хвоста за счет более комплексного декодера [1].

Пример использует оперативный субоптимальный метод декодирования в кусающем хвост декодировании и показывает, как кодирование достигается для энкодера feedforward. Сравнения производительности частоты ошибок по битам сделаны со случаем с нулевым хвостом для стандартного сверточного кода.

Кусающее хвост кодирование

Кусающее хвост кодирование гарантирует, что начальное состояние энкодера эквивалентно, это - конечное состояние (и что это значение состояния должно не обязательно быть все-нулевым состоянием). Для уровня 1/n энкодер feedforward, это достигается путем инициализации m элементы памяти энкодера с последним m информационные биты блока данных длины L, и игнорирование выхода. Весь L биты затем вводятся к энкодеру и результирующему L*n выходные биты используются в качестве кодовой комбинации.

Это моделируется Tail-biting Convolutional Encoder подсистема в следующей модели, commtailbiting.slx:

Для длины блока 100 битов, подсистема энкодера выходные параметры 200 битов для уровня 1/2 энкодер feedforward с 6 элементами памяти. Display блокируйтесь в подсистеме, указывает, что начальные и конечные состояния идентичны для каждого блока обработанных данных.

Сверточные блоки Энкодера используют установку "Truncated (reset every frame)" в параметре Режима работы, чтобы указать на мудрую блоком обработку.

Обратитесь к Tailbiting, Кодирующему Используя Энкодеры Обратной связи согласно [2] о том, как достигнуть кодирования кусания хвоста для энкодера обратной связи.

Кодирование с нулевым хвостом

В сравнении метод завершения нулевого хвоста добавляет m нули к блоку данных, чтобы гарантировать энкодер feedforward начинают с и заканчиваются во все-нулевом состоянии для каждого блока. Это подвергается потере уровня из-за дополнительных битов хвоста (т.е. неинформационные биты), которые передаются.

Что касается следующей модели, commterminatedcnv.slx,

заметьте, что для той же длины блока 100 битов, энкодер вывел, теперь включает биты нулевого хвоста, приводящие к фактическому уровню кода 100/212, который меньше что достигнут кусающим хвост энкодером.

Convolutional Encoder блок использует установку "Terminate trellis by appending bits" в параметре Режима работы для этого случая, который работает на энкодеры обратной связи также.

Кусающее хвост декодирование

Декодер кусания хвоста наибольшего правдоподобия вовлекает определение лучшего пути в решетку при ограничении что это начала и концы в том же состоянии. Способ реализовать это состоит в том, чтобы запустить M параллельные алгоритмы Viterbi, где M количество состояний в решетке, и выберите декодируемые биты на основе алгоритма Viterbi, который дает лучшую метрику. Однако это делает декодирование M времена, более комплексные, чем это для кодирования с нулевым хвостом.

Этот пример использует оперативную подоптимальную схему согласно [3], который намного более прост, чем наибольшее правдоподобие приближается, и все же выполняет сравнительно. Схема основана на предпосылке, что кусающая хвост решетка может быть рассмотрена круговой как ее начала и концы в том же состоянии. Это позволяет алгоритму Viterbi быть продолженным мимо конца блока путем повторения полученной циркулярной кодовой комбинации. В результате модель повторяет полученную кодовую комбинацию от демодулятора и запускает этот набор данных через Декодер Витерби, выполняя traceback от лучшего состояния в конце повторного набора данных. Только фрагмент декодируемых битов с середины выбран как декодируемые биты сообщения.

Параметр Режима работы для блока Viterbi Decoder устанавливается, чтобы быть "Усеченным" для кусающего хвост случая, в то время как это установлено в "Отключенный" для случая с нулевым хвостом.

Производительность BER

Пример сравнивает производительность Частоты ошибок по битам двух методов завершения для декодирования трудного решения в канале AWGN в области значений значений Eb/No. Обратите внимание на то, что эти две модели установлены таким образом, что они могут быть симулированы в области значений значений Eb/No с помощью BERTool.

Когда рисунок показывает, что оперативная схема декодирования кусания хвоста выполняет сравнительно близко к ниже ограниченной производительности сверточного кода с нулевым хвостом для выбранных параметров.

Дальнейшее исследование

После загрузки модели инициализируют набор переменных, которые управляют симуляцией. Они включают длину блока, Eb/No и максимальное количество ошибок и симулированных битов. Вы поощряетесь вопроизвести со значениями этих переменных, чтобы видеть их эффекты на производительности ссылки.

Обратите внимание на то, что оперативная производительность схемы декодирования чувствительна к используемой длине блока. Также производительность кода зависит от traceback декодирование длины, используемой в алгоритме Viterbi.

Выбранная библиография

  1. H. Мама и Дж. Уолф, "На Хвосте, Кусающем сверточные коды", Транзакции IEEE на Коммуникациях, Издании COM-34, № 2, февраль 1986, стр 104-11.

  2. C. Weiss, К. Беттстеттер, С. Ридель, "Конструкция кода и Декодирование Параллельных Конкатенированных Кусающих Хвост Кодов", Транзакции IEEE на Теории информации, издании 47, № 1, январь 2001, стр 366-386.

  3. И. Э. Ван и Р. Рэмеш, "Чтобы Укусить или не Укусить? Исследование Битов Хвоста по сравнению с Кусанием хвоста", Коммуникации Персональной, Внутренней и Рации, 1996. PIMRC '96, Седьмой Симпозиум IEEE® International, Объем 2, 15-18 октября 1996, Страница (страницы):317 - 321.