Interested Article - Свёрточный код

Свёрточный код — это корректирующий ошибки код , в котором

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

Свёрточный код является частным случаем и кодов.

История возникновения

В 1955 году Л. М. Финком , который в то время являлся заведующим кафедрой Ленинградской академии связи, был предложен первый рекуррентный код.

В 1959 году западный специалист Хегельбергер ( Hegelbeger ), не имевший представления о работе советских ученых в области кодирования, «вновь открыл» рекуррентный код и назвал его своим именем.

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

Информационные символы определяются переданным сообщением, а корректирующие формируются по следующему правилу:

(1.1)

где — произвольное целое число, называемое шагом кода ( ). Очевидно, что при ошибочном приеме некоторого корректирующего символа b i соотношение (1.1) в принятой последовательности не будет выполнено для . В случае же ошибочного приема информационного символа соотношение (1.1) не будет выполняться при двух значениях , а именно при и при . Отсюда легко вывести правило исправления ошибок при декодировании. В принятой кодовой последовательности для каждого проверяется соотношение (1.1). Если оно не выполняется при двух значениях ( и ), и при этом

(1.2)

то информационный элемент должен быть заменен на противоположный.

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

Общая схема нерекурсивного кодера

Схема кодера нерекурсивного свёрточного кода представлена на Рис.1 . Он состоит из -ичных регистров сдвига с длинами . Некоторые (может и все) входы регистров и выходы некоторых ячеек памяти соединены с несколькими сумматорами по модулю . Число сумматоров больше числа регистров сдвига:

Рис.1. Общая схема кодирования свёрточным кодом

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

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

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

Для наглядности представления будем описывать свёрточное кодирование по действию соответствующего кодирующего устройства.

— это устройство, принимающее на каждом такте работы в общем случае k входных информационных символов, и выдающее на выход каждого такта n выходных символов. Число называют относительной скоростью кода. k — число информационных символов, n — число передаваемых в канал связи символов за один такт поступления на кодер информационного символа. Выходные символы рассматриваемого такта зависят от m информационных символов, поступающих на этом и предыдущих тактах, то есть выходные символы свёрточного кода однозначно определяются его входными символами и состоянием, которое зависит от m — k предыдущих информационных символов. Основными элементами свёрточного кода являются: регистр сдвига, сумматор по модулю 2, коммутатор.

Регистр сдвига ( англ. Shift register ) — это динамическое запоминающее устройство, хранящее двоичные символы 0 и 1. Память кода определяет число триггерных ячеек m в регистре сдвига. Когда на вход регистра сдвига поступает новый информационный символ, то символ, хранящийся в крайнем правом разряде, выводится из регистра и сбрасывается. Остальные символы перемещаются на один разряд вправо и, таким образом, освобождается крайний левый разряд куда будет поступать новый информационный символ.

Сумматор по модулю 2 осуществляет сложение поступающих на него символов 1 и 0. Правило сложения по модулю 2 таково: сумма двоичных символов равна 0, если число единиц среди поступающих на входы символов четно, и равно 1, если это число нечетно.

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

— это код, содержащий в своей выходной последовательности кодовых символов породившую её последовательность информационных символов. Иначе код называют несистематическим.

Параметры и характеристики свёрточных кодов

При свёрточном кодировании преобразование информационных последовательностей в выходные и кодовые происходит непрерывно. Кодер двоичного свёрточного кода содержит сдвигающий регистр из m разрядов и сумматоры по модулю 2 для образования кодовых символов в выходной последовательности. Входы сумматоров соединены с определёнными разрядами регистра. Коммутатор на выходе устанавливает очередность посылки кодовых символов в канал связи. Тогда структуру кода определяют нижеследующие характеристики.

  1. Число информационных символов, поступающих за один такт на вход кодера — k.
  2. Число символов на выходе кодера — n, соответствующих k, поступившим на вход символам в течение такта.
  3. Скорость кода определяется отношением R=k/n и характеризует избыточность, вводимую при кодировании.
  4. Избыточность кода
  5. Память кода (входная длина кодового ограничения или информационная длина кодового слова), определяется максимально степенью порождающего многочлена в составе порождающей матрицы G(X):
  6. Маркировка сверточного кода обозначается в большинстве случаев (n, k, l), но возможны и вариации.
  7. Вес w двоичных кодовых последовательностей определяется числом «единиц», входящих в эту последовательность или кодовые слова.
  8. Кодовое расстояние показывает степень различия между i-й и j-й кодовыми комбинациями при условии их одинаковой длины. Для любых двух двоичных кодовых комбинаций кодовое расстояние равно числу несовпадающих в них символов. В общем виде кодовое расстояние может быть пределено как суммарный результат сложения по модулю 2 одноимённых разрядов кодовых комбинаций
    , где и — k-е символы кодовых комбинаций i и j; L- длина кодовой комбинации.
  9. Минимальное кодовое расстояние — это наименьшее расстояние Хемминга для набора кодовых комбинаций постоянной длины. Для его нахождения необходимо перебрать все возможные пары кодовых комбинаций. Тогда получаем .

Но! Это определение справедливо для блочных кодов, имеющих постоянную длину. Сверточные коды являются непрерывными и характеризуются многими минимальными расстояниями, определяемыми длинами начальных сегментов кодовых последовательностей, между которыми берется минимальное расстояние. Число символов в принятой для обработки длине сегменты L определяет на приемной стороне число ячеек в декодирующем устройстве.

Общий вид двоичного сверточного кодера

Пусть регистр сдвига содержит m ячеек, то есть память кода равна m, коммутатор производит один цикл опроса, проходя значения информационных символов, где m кратно k , при этом за один цикл он опрашивает n 2 выходов кодера. Количество выходных кодовых символов, на которые оказывает влияние изменение одного входного информационного символа, равно . Величина I all называется .

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

Связь j-го сумматора по модулю 2 описывается j-ой порождающей последовательностью:

g j =(g j0 , g j1 ,g j2 ,…,g jm-1 ), (4.1)

где (4.2)

Типичные параметры сверточных кодов: k, n= 1,2,…,8; R=k/n=1/4,…,7/8; m=2,…,10.

Способ задания свёрточных кодов

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

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

где X i — символ оператора задержки на i тактов работы сдвигающего регистра, a i = {0, 1} — информационные двоичные символы. Многочлены, описывающие n последовательностей кодовых символов, поступающих на вход коммутатора кодера, а затем в канал связи, имеют вид

где двоичные кодовые символы на j -м входе коммутатора кодера.

j -й порождающий многочлен свёрточного кода имеет вид , где — двоичные коэффициенты, равные 1, если i -я ячейка сдвигающего регистра через схему суммирования связана с j -м коммутатором кодера, и равны 0 в противном случае. Причём, в силу линейности свёрточного кода и принятых обозначений получаем .

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

В общем случае последовательность коэффициентов j -го производящего многочлена будет иметь вид и совпадает с порождающей последовательностью кода (4.1). Тогда, если — последовательность кодируемых символов, а — последовательность кодовых символов на j -м входе коммутатора кодера, то для любого из них, появляющегося в -й момент времени ( ), можно записать

Таким образом, каждый кодовый символ выходной последовательности кодера свёрточного кода определяется свёрткой кодируемой информационной и порождающей последовательности, что и обуславливает название свёрточных кодов. Свёрточные коды являются частным случаем итеративных или рекуррентных кодов.

Применение

Свёрточные коды используются для надежной передачи данных: видео, мобильной связи, спутниковой связи. Они используются вместе с кодом Рида — Соломона и другими кодами подобного типа. До изобретения турбо-кодов такие конструкции были наиболее действенными и удовлетворяли пределу Шеннона. Также свёрточное кодирование используется в протоколе 802.11a на физическом MAC-уровне для достижения равномерного распределения 0 и 1 после прохождения сигнала через скремблер , вследствие чего количество передаваемых символов увеличивается в два раза и, следовательно, мы можем добиться благоприятного приема на принимающем устройстве.

См. также

Примечания

  1. , главы 4 и 5.

Литература

  • Галлагер Р. Теория информации и надёжная связь. — М. : Советское радио, 1974. — 720 с.
  • Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение / пер. с англ. . — М. : Техносфера, 2006. — 320 с. — (Мир связи). — 2000 экз. ISBN 5-94836-035-0 .
  • Финк Л. М. Теория передачи дискретных сообщений. — М. : Сов. радио, 1963. — 576 с.
  • Никитин Г. И. Сверточные коды: Учебное пособие. — СПб. : Сов. радио, 2001. — 78 с.
  • — 3-е изд., перераб. и доп. — М. : ИППИ РАН , 2014. — 310 с. — ISBN 978-5-901158-24-1
  • Банкет, В. Л. "Сигнально-кодовые конструкции в телекоммуникационных системах." О.: Феникс (2009).
  • Колесник В. Д., Полтырев Г. Ш. Курс теории информации. – " Наука," Глав. ред. физико-математической лит-ры, 1982.
  • Нгок Д. К. Исследование методов поиска оптимальных сверточных и перфорированных сверточных кодов : дис. – Диссертация на соискание ученой степени кандидата технических наук. СПб.: ЛЭТИ, 2014.
Источник —

Same as Свёрточный код