Jump to content

Сверточный код

(Перенаправлено из кода свертки )

В телекоммуникациях сверточный код — это тип кода с исправлением ошибок , который генерирует символы четности посредством скользящего применения булевой полиномиальной функции к потоку данных. Скользящее приложение представляет собой «свертку» кодера над данными, что приводит к появлению термина «сверточное кодирование». Скользящая природа сверточных кодов облегчает решетчатое декодирование с использованием неизменяемой во времени решетки. Независимое от времени решетчатое декодирование позволяет сверточным кодам быть декодированными с мягким решением с максимальной вероятностью и разумной сложностью.

Способность выполнять экономичное декодирование с мягким решением с максимальным правдоподобием является одним из основных преимуществ сверточных кодов. В этом отличие от классических блочных кодов, которые обычно представляются изменяющейся во времени решеткой и поэтому обычно декодируются с жестким решением. Сверточные коды часто характеризуются базовой скоростью кода и глубиной (или памятью) кодера. . Базовая скорость кода обычно задается как , где n — скорость необработанных входных данных, а k — скорость данных закодированного потока выходного канала. n меньше k , поскольку канальное кодирование вводит избыточность во входные биты. Память часто называют «длиной ограничения» K , где выходной сигнал является функцией текущего ввода, а также предыдущего. входы. Глубина также может быть задана как количество элементов памяти v в полиноме или максимально возможное количество состояний кодера (обычно: ).

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

Скорость кода сверточного кода обычно модифицируется посредством выкалывания символов . Например, сверточный код с «материнской» скоростью кода. могут быть проколоты до более высокой скорости, например, просто не передавая часть кодовых символов. Производительность проколотого сверточного кода обычно хорошо масштабируется в зависимости от количества передаваемой четности. Способность выполнять экономичное декодирование с мягким решением на сверточных кодах, а также гибкость длины блока и скорости кода сверточных кодов делают их очень популярными для цифровой связи.

Сверточные коды были введены в 1955 году Питером Элиасом . Считалось, что сверточные коды можно декодировать с произвольным качеством за счет вычислений и задержек. В 1967 году Эндрю Витерби определил, что сверточные коды могут быть декодированы с максимальной вероятностью и разумной сложностью с использованием инвариантных ко времени решетчатых декодеров — алгоритма Витерби . Позже были разработаны другие алгоритмы декодера на основе решетки, включая алгоритм декодирования BCJR .

Рекурсивные систематические сверточные коды были изобретены Клодом Берру примерно в 1991 году. Эти коды оказались особенно полезными для итеративной обработки, включая обработку составных кодов, таких как турбокоды . [1]

Используя «сверточную» терминологию, классический сверточный код можно рассматривать как фильтр с конечной импульсной характеристикой (FIR), а рекурсивный сверточный код можно рассматривать как фильтр с бесконечной импульсной характеристикой (IIR).

Где используются сверточные коды

[ редактировать ]
Этапы кодирования каналов в GSM. [2] Блок-кодер и проверка четности – часть обнаружения ошибок. Сверточный кодер и декодер Витерби – часть коррекции ошибок. Перемежение и обратное перемежение – разделение кодовых слов увеличивается во временной области и позволяет избежать пакетных искажений.

Сверточные коды широко используются для обеспечения надежной передачи данных во многих приложениях, таких как цифровое видео , радио, мобильная связь (например, в сетях GSM, GPRS, EDGE и 3G (до версии 3GPP Release 7). [3] [4] ) и спутниковая связь . [5] Эти коды часто реализуются в сочетании с кодом жесткого принятия решения, особенно с кодом Рида-Соломона . До появления турбокодов такие конструкции были наиболее эффективными и наиболее близки к пределу Шеннона .

Сверточное кодирование

[ редактировать ]

Для сверточного кодирования данных начните с k регистров памяти , каждый из которых содержит один входной бит. Если не указано иное, все регистры памяти начинаются со значения 0. Кодировщик имеет n по модулю 2 сумматоров (сумматор по модулю 2 может быть реализован с помощью одного логического элемента XOR , где логика: 0+0 = 0 , 0+ 1 = 1 , 1+0 = 1 , 1+1 = 0 ) и n генераторных полиномов — по одному на каждый сумматор (см. рисунок ниже). Входной бит m 1 подается в самый левый регистр. Используя полиномы генератора и существующие значения в остальных регистрах, кодер выводит n символов. Эти символы могут передаваться или прокалываться в зависимости от желаемой скорости кода. Теперь побитовый сдвиг всех значений регистра вправо ( m 1 перемещается в m 0 , m 0 перемещается в m −1 ) и дождитесь следующего входного бита. Если оставшихся входных битов нет, кодер продолжает сдвиг до тех пор, пока все регистры не вернутся в нулевое состояние (завершение сброса битов).

Изображение 1. Нерекурсивный несистематический сверточный кодер со скоростью 1/3 и длиной ограничения 3

На рисунке ниже указана ставка 1 3 ( m n ) кодер с длиной ограничения ( k ) равной 3. Полиномы генератора: G 1 = (1,1,1), G 2 = (0,1,1) и G 3 = (1,0,1) . Таким образом, выходные биты вычисляются (по модулю 2) следующим образом:

п 1 = м 1 + м 0 + м -1
п 2 = м 0 + м -1
п 3 знак равно м 1 + м -1 .

Сверточные коды могут быть систематическими и несистематическими:

  • систематическое повторение структуры сообщения перед кодированием
  • несистематическое изменение исходной структуры

Несистематические сверточные коды более популярны из-за лучшей помехоустойчивости. Это относится к свободному расстоянию сверточного кода. [6]

Рекурсивные и нерекурсивные коды

[ редактировать ]

Кодировщик на рисунке выше является нерекурсивным кодером. Вот пример рекурсивного метода, который допускает структуру обратной связи:

Изображение 2. Рекурсивный систематический сверточный кодер с 8 состояниями со скоростью 1/2. Используется в качестве составного кода в турбокоде 3GPP 25.212.

Пример кодера является систематическим , поскольку входные данные также используются в выходных символах (Выход 2). Коды с выходными символами, не включающими в себя входные данные, называются несистематическими.

Рекурсивные коды обычно являются систематическими, и, наоборот, нерекурсивные коды обычно несистематические. Это не строгое требование, а обычная практика.

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

Рекурсивные систематические сверточные коды (RSC) стали более популярными благодаря их использованию в турбокодах. Рекурсивные систематические коды также называются псевдосистематическими кодами.

Другие коды RSC и примеры приложений включают:

Изображение 3. Двухуровневый рекурсивный систематический сверточный (RSC) код. Также называется «аккумулятором».

Полезно для реализации кода LDPC и в качестве внутреннего составного кода для последовательных составных сверточных кодов (SCCC).

Изображение 4. Четырехуровневый рекурсивный систематический сверточный (RSC) код.

Полезно для SCCC и многомерных турбокодов.

Изображение 5. Рекурсивный систематический сверточный (RSC) код с шестнадцатью состояниями.

Полезен в качестве составного кода в турбокодах с низкой частотой ошибок для таких приложений, как спутниковые линии связи. Также подходит в качестве внешнего кода SCCC.

Импульсная характеристика, передаточная функция и длина ограничения

[ редактировать ]

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

где x — входная последовательность, y дж — это последовательность с выхода j , h дж - импульсная характеристика для выхода j и обозначает свертку.

Сверточный кодер — это дискретная линейная стационарная система . Каждый выход кодера может быть описан собственной передаточной функцией , которая тесно связана с полиномом генератора. Импульсная характеристика связана с передаточной функцией посредством Z-преобразования .

Передаточные функции для первого (нерекурсивного) кодера:

Передаточные функции для второго (рекурсивного) кодера:

Определите m по

где для любой рациональной функции ,

.

Тогда m — максимальная из полиномиальных степеней

, а длина ограничения определяется как . Например, в первом примере длина ограничения равна 3, а во втором — длина ограничения 4.

Схема решетки

[ редактировать ]

Сверточный кодер — это конечный автомат . Кодер с n двоичными ячейками будет иметь 2 н государства.

Представьте, что кодер (показанный на рисунке 1 выше) имеет «1» в левой ячейке памяти ( m 0 ) и «0» в правой ( m −1 ). ( m 1 на самом деле не является ячейкой памяти, поскольку представляет текущее значение). Обозначим такое состояние как «10». В соответствии с входным битом энкодер на следующем обороте может перейти либо в состояние «01», либо в состояние «11». Видно, что не все переходы возможны (например, декодер не может преобразовать состояние «10» в состояние «00» или даже остаться в состоянии «10»).

Все возможные переходы можно показать, как показано ниже:

Изображение 6. Решетчатая диаграмма для кодера на рис.1. Путь через решетку показан красной линией. Сплошные линии обозначают переходы, где вводится «0», а пунктирные линии — где вводится «1».

Фактическую закодированную последовательность можно представить в виде пути на этом графе. В качестве примера один действительный путь показан красным.

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

Свободное расстояние и распределение ошибок

[ редактировать ]
Теоретические кривые частоты битовых ошибок закодированной QPSK (рекурсивное и нерекурсивное, мягкое решение), канал аддитивного белого гауссовского шума. Кривые мало выделяются из-за примерно одинаковых свободных расстояний и весов.

Свободная дистанция [7] ( d ) — минимальное расстояние Хэмминга между различными кодированными последовательностями. Корректирующая способность ( t ) сверточного кода — это количество ошибок, которые можно исправить с помощью кода. Его можно рассчитать как

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

Свободное расстояние можно интерпретировать как минимальную длину ошибочного «пакета» на выходе сверточного декодера. Тот факт, что ошибки появляются как «пакеты», следует учитывать при разработке составного кода с внутренним сверточным кодом. Популярным решением этой проблемы является чередование данных перед сверточным кодированием, чтобы код внешнего блока (обычно Рида-Соломона ) мог исправить большинство ошибок.

Декодирование сверточных кодов

[ редактировать ]
Кривые коэффициента битовых ошибок для сверточных кодов с различными вариантами цифровой модуляции ( QPSK, 8-PSK , 16-QAM, 64-QAM ) и LLR . алгоритмами [8] [9] (Точный [10] и приблизительный [11] ) по каналу аддитивного белого гауссова шума.

Существует несколько алгоритмов декодирования сверточных кодов. Для относительно небольших значений k алгоритм Витерби используется повсеместно, поскольку он обеспечивает максимальную производительность правдоподобия и легко распараллеливается. Таким образом, декодеры Витерби легко реализовать в аппаратном обеспечении СБИС и в программном обеспечении процессоров с наборами команд SIMD .

Коды с большей длиной ограничения более практично декодируются с помощью любого из нескольких алгоритмов последовательного декодирования , из которых Фано наиболее известен алгоритм . В отличие от декодирования Витерби, последовательное декодирование не является методом максимального правдоподобия, но его сложность увеличивается лишь незначительно с увеличением длины ограничения, что позволяет использовать сильные коды с большой длиной ограничения. Такие коды использовались в программе Pioneer в начале 1970-х годов для Юпитера и Сатурна, но уступили место более коротким кодам, декодированным по Витерби, обычно объединенным с большими кодами исправления ошибок Рида-Соломона , которые увеличивают общую кривую частоты ошибок по битам и создают чрезвычайно низкий уровень остаточных необнаруженных ошибок.

И алгоритмы Витерби, и алгоритмы последовательного декодирования возвращают трудные решения: биты, которые образуют наиболее вероятное кодовое слово. К каждому биту можно добавить приблизительную меру достоверности с помощью алгоритма Витерби с мягким выходом . Максимально апостериорные (MAP) мягкие решения для каждого бита можно получить с помощью алгоритма BCJR .

[ редактировать ]
Сдвиговый регистр для полинома сверточного кода (7, [171, 133]). Филиалы: , . Все математические операции должны выполняться по модулю 2.
Теоретические кривые частоты битовых ошибок кодированного QPSK (мягкое решение), канал аддитивного белого гауссовского шума. Более длинные ограничения создают более мощные коды, но сложность алгоритма Витерби возрастает экспоненциально с увеличением длины ограничения, ограничивая эти более мощные коды миссиями в дальний космос, где дополнительная производительность легко оправдывает возросшую сложность декодера.

Фактически в промышленности используются заранее заданные структуры сверточных кодов, полученные в ходе научных исследований. Это связано с возможностью выбора катастрофических сверточных кодов (вызывает большее количество ошибок).

Особенно популярный сверточный код, декодированный по Витерби, используемый, по крайней мере, со времен программы «Вояджер» , имеет длину ограничения K , равную 7, и скорость r , равную 1/2. [12]

Mars Pathfinder , Mars Exploration Rover и зонд Кассини, направляющийся к Сатурну, используют K 15 и скорость 1/6; этот код работает примерно на 2 дБ лучше, чем более простой код со сложностью декодирования в 256 раз (по сравнению с кодами миссии "Вояджер").

Сверточный код с длиной ограничения 2 и скоростью 1/2 используется в GSM в качестве метода исправления ошибок. [13]

Перфорированные сверточные коды

[ редактировать ]
Сверточные коды со скоростями кодирования 1/2 и 3/4 (и длиной ограничения 7, мягкое решение, 4-QAM/QPSK/OQPSK). [14]

Сверточный код с любой скоростью кода может быть разработан на основе полиномиального выбора; [15] однако на практике для достижения требуемой скорости кода часто используется процедура прокалывания. Прокалывание — это метод, используемый для создания кода скорости m / n из «базового» низкоскоростного (например, 1/ n ) кода. Это достигается удалением некоторых битов на выходе кодера. Биты удаляются в соответствии с матрицей выкалывания . Наиболее часто используются следующие матрицы выкалывания:

Скорость кода Матрица прокалывания Свободное расстояние (для стандартного сверточного кода НАСА K=7)
1/2
(Без перф.)
1
1
10
2/3
1 0
1 1
6
3/4
1 0 1
1 1 0
5
5/6
1 0 1 0 1
1 1 0 1 0
4
7/8
1 0 0 0 1 0 1
1 1 1 1 0 1 0
3

Например, если мы хотим создать код со скоростью 2/3, используя соответствующую матрицу из приведенной выше таблицы, мы должны взять выход базового кодера и передать каждый первый бит из первой ветви и каждый бит из второй. Конкретный порядок передачи определяется соответствующим стандартом связи.

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

Перфорированные сверточные коды также называют «перфорированными».

Турбокоды: замена сверточных кодов

[ редактировать ]
Турбокод с кодами компонентов 13, 15. [16] Турбокоды получили свое название потому, что декодер использует обратную связь, как турбодвигатель. Перестановка означает то же самое, что и чередование. C1 и C2 — рекурсивные сверточные коды. Рекурсивные и нерекурсивные сверточные коды не сильно отличаются по производительности BER, однако рекурсивный тип реализуется в турбосверточных кодах благодаря лучшим свойствам перемежения. [17]

Простые сверточные коды, декодируемые Витерби, теперь уступают место турбокодам , новому классу итерированных коротких сверточных кодов, которые близко приближаются к теоретическим ограничениям, налагаемым теоремой Шеннона, с гораздо меньшей сложностью декодирования, чем алгоритм Витерби для длинных сверточных кодов, которые потребуются. за ту же производительность. Конкатенация с внешним алгебраическим кодом (например, Рида-Соломона ) решает проблему минимального уровня ошибок, свойственную конструкциям турбокодов.

См. также

[ редактировать ]
  • Общественное достояние В этой статье использованы общедоступные материалы из Федеральный стандарт 1037C . Управление общего обслуживания . Архивировано из оригинала 22 января 2022 г.
  1. ^ Бенедетто, Серджио и Гвидо Монторси. « Роль рекурсивных сверточных кодов в турбокодах ». Electronics Letters 31.11 (1995): 858-859.
  2. ^ Эберспехер Дж. и др. GSM-архитектура, протоколы и сервисы. Джон Уайли и сыновья, 2008. стр.97.
  3. ^ Проект партнерства 3-го поколения (сентябрь 2012 г.). «3GGP TS45.001: Группа технических спецификаций Сеть радиодоступа GSM/EDGE; Физический уровень на радиотракте; Общее описание». Проверено 20 июля 2013 г.
  4. ^ Халонен, Тимо, Хавьер Ромеро и Хуан Мелеро, ред. Производительность GSM, GPRS и EDGE: эволюция в сторону 3G/UMTS. Джон Уайли и сыновья, 2004. с. 430
  5. ^ Бутман, С.А., LJ Deutsch и RL Miller. «Выполнение составных кодов для полетов в дальний космос». Отчет о ходе работы в области телекоммуникаций и сбора данных 42–63, март – апрель 1981 г. (1981): 33–39.
  6. ^ Мун, Тодд К. «Кодирование с коррекцией ошибок». Математические методы и алгоритмы. Джон Уайли и сын (2005). п. 508
  7. ^ Мун, Тодд К. « Кодирование с коррекцией ошибок ». Математические методы и алгоритмы. Джон Уайли и сын (2005).- стр.508.
  8. ^ LLR против демодуляции жесткого решения (MathWorks)
  9. ^ Оценка BER для декодирования Витерби с жестким и мягким решением (MathWorks)
  10. ^ Цифровая модуляция: точный алгоритм LLR (MathWorks)
  11. ^ Цифровая модуляция: приблизительный алгоритм LLR (MathWorks)
  12. ^ Бутман, С.А., LJ Deutsch и RL Miller. «Выполнение составных кодов для полетов в дальний космос». Отчет о ходе работы в области телекоммуникаций и сбора данных 42–63, март – апрель 1981 г. (1981): 33–39.
  13. ^ Глобальная система мобильной связи (GSM)
  14. ^ Проколотое сверточное кодирование (MathWorks)
  15. ^ «Преобразуйте полиномы сверточного кода в описание решетки – MATLAB poly2trellis» .
  16. ^ Турбо-код
  17. ^ Бенедетто, Серджио и Гвидо Монторси. « Роль рекурсивных сверточных кодов в турбокодах ». Electronics Letters 31.11 (1995): 858-859.
[ редактировать ]

Дальнейшее чтение

[ редактировать ]

Публикации

[ редактировать ]
  • Фрэнсис, Майкл. «Блочное декодирование декодера Витерби — завершение решетки и закрепление хвоста». Xilinx XAPP551 v2. 0, ДД (2005): 1-21.
  • Чен, Цинчунь, Вай Хо Моу и Пинчжи Фань. «Некоторые новые результаты по рекурсивным сверточным кодам и их приложениям». Семинар по теории информации, 2006. ITW'06, Чэнду. IEEE. ИИЭР, 2006.
  • Фибиг, Калифорнийский университет, и Патрик Робертсон. «Мягкое решение и декодирование со стиранием в системах с быстрой перестройкой частоты со сверточными, турбо-кодами и кодами Рида-Соломона». Транзакции IEEE по коммуникациям 47.11 (1999): 1646-1654.
  • Бхаскар, Видьячаран и Лори Л. Джойнер. «Производительность проколотых сверточных кодов в асинхронной связи CDMA в идеальных условиях отслеживания фазы». Компьютеры и электротехника 30.8 (2004): 573-592.
  • Модестино Дж. и Шоу Муи. «Производительность сверточного кода в канале затухания Райса». Транзакции IEEE по коммуникациям 24.6 (1976): 592-606.
  • Чен, Ю-Лонг и Че-Хо Вэй. «Оценка производительности сверточных кодов с MPSK на каналах с затуханием Райса». Слушания IEE F-коммуникации, радар и обработка сигналов. Том. 134. № 2. ИЭПП, 1987.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1e32d1fbe7498b933720ccaf59fc84cf__1722385260
URL1:https://arc.ask3.ru/arc/aa/1e/cf/1e32d1fbe7498b933720ccaf59fc84cf.html
Заголовок, (Title) документа по адресу, URL1:
Convolutional code - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)