Эта модель показывает, как использовать 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)" для параметра Режима работы, чтобы указать на мудрую блоком обработку.
Обратитесь к Tailbiting, Кодирующему Используя Энкодеры Обратной связи согласно [2] о том, как достигнуть кодирования кусания хвоста для энкодера обратной связи.
В сравнении метод завершения нулевого хвоста добавляет m
нули к блоку данных, чтобы гарантировать энкодер прямого распространения начинают с и заканчиваются во все-нулевом состоянии для каждого блока. Это подвергается потере уровня из-за дополнительных битов хвоста (i.e. неинформационные биты), которые передаются.
Что касается следующей модели, 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.