Interested Article - Свёрточный код
- 2020-05-28
- 2
Свёрточный код — это корректирующий ошибки код , в котором
- на каждом такте работы кодера символов входной полубесконечной последовательности преобразуются в символов выходной последовательности
- в преобразовании также участвуют предыдущих символов
- выполняется свойство линейности (если двум кодируемым последовательностям и соответствуют кодовые последовательности и , то кодируемой последовательности соответствует ).
Свёрточный код является частным случаем и кодов.
История возникновения
В 1955 году Л. М. Финком , который в то время являлся заведующим кафедрой Ленинградской академии связи, был предложен первый рекуррентный код.
В 1959 году западный специалист Хегельбергер ( Hegelbeger ), не имевший представления о работе советских ученых в области кодирования, «вновь открыл» рекуррентный код и назвал его своим именем.
Сам Финк в своей монографии «Теория передачи дискретных сообщений» писал: «В этом коде последовательность кодовых символов не разделяется на отдельные кодовые комбинации. В поток информационных символов включаются корректирующие символы так, что между каждыми двумя информационными символами помещается один корректирующий. Обозначая информационные символы через , а корректирущие через получаем такую последовательность символов:
Информационные символы определяются переданным сообщением, а корректирующие формируются по следующему правилу:
(1.1)
где — произвольное целое число, называемое шагом кода ( ). Очевидно, что при ошибочном приеме некоторого корректирующего символа b i соотношение (1.1) в принятой последовательности не будет выполнено для . В случае же ошибочного приема информационного символа соотношение (1.1) не будет выполняться при двух значениях , а именно при и при . Отсюда легко вывести правило исправления ошибок при декодировании. В принятой кодовой последовательности для каждого проверяется соотношение (1.1). Если оно не выполняется при двух значениях ( и ), и при этом
(1.2)
то информационный элемент должен быть заменен на противоположный.
Очевидно, что избыточность кода равна . Он позволяет исправлять все ошибочно принятые символы, кроме некоторых неудачных сочетаний. Так, если , он обеспечивает правильное декодирование, когда между двумя ошибочно принятыми символами имеется не менее трех (а в некоторых случаях двух) правильно принятых символов (при этом учитываются как информационные, так и проверочные символы).»
Общая схема нерекурсивного кодера
Схема кодера нерекурсивного свёрточного кода представлена на Рис.1 . Он состоит из -ичных регистров сдвига с длинами . Некоторые (может и все) входы регистров и выходы некоторых ячеек памяти соединены с несколькими сумматорами по модулю . Число сумматоров больше числа регистров сдвига:
На каждом такте работы кодера на его вход поступает информационных символов, они вместе с хранящимися в регистрах сдвига символами поступают на входы тех сумматоров, с которыми имеется связь. Результатом сложения является кодовых символов, готовых к передаче. Затем в каждом регистре сдвига происходит сдвиг: все ячейки сдвигаются вправо на один разряд, при этом крайние левые ячейки заполняются входными символами, а крайние правые стираются. После этого такт повторяется. Начальное состояние регистров заранее известно (обычно нулевое).
- Суммарная длина всех регистров сдвига называется кодовым ограничением , а максимальная длина — задержкой .
- Значения регистров сдвига в каждый момент времени называется состоянием кодера.
Двоичные свёрточные кодеры
Для наглядности представления будем описывать свёрточное кодирование по действию соответствующего кодирующего устройства.
— это устройство, принимающее на каждом такте работы в общем случае k входных информационных символов, и выдающее на выход каждого такта n выходных символов. Число называют относительной скоростью кода. k — число информационных символов, n — число передаваемых в канал связи символов за один такт поступления на кодер информационного символа. Выходные символы рассматриваемого такта зависят от m информационных символов, поступающих на этом и предыдущих тактах, то есть выходные символы свёрточного кода однозначно определяются его входными символами и состоянием, которое зависит от m — k предыдущих информационных символов. Основными элементами свёрточного кода являются: регистр сдвига, сумматор по модулю 2, коммутатор.
Регистр сдвига ( англ. Shift register ) — это динамическое запоминающее устройство, хранящее двоичные символы 0 и 1. Память кода определяет число триггерных ячеек m в регистре сдвига. Когда на вход регистра сдвига поступает новый информационный символ, то символ, хранящийся в крайнем правом разряде, выводится из регистра и сбрасывается. Остальные символы перемещаются на один разряд вправо и, таким образом, освобождается крайний левый разряд куда будет поступать новый информационный символ.
Сумматор по модулю 2 осуществляет сложение поступающих на него символов 1 и 0. Правило сложения по модулю 2 таково: сумма двоичных символов равна 0, если число единиц среди поступающих на входы символов четно, и равно 1, если это число нечетно.
Коммутатор последовательно считывает поступающие на его входы символы и устанавливает на выходе очередность кодовых символов в канал связи. По аналогии с блоковыми кодами, свёрточные коды можно классифицировать на систематические и несистематические.
— это код, содержащий в своей выходной последовательности кодовых символов породившую её последовательность информационных символов. Иначе код называют несистематическим.
Параметры и характеристики свёрточных кодов
При свёрточном кодировании преобразование информационных последовательностей в выходные и кодовые происходит непрерывно. Кодер двоичного свёрточного кода содержит сдвигающий регистр из m разрядов и сумматоры по модулю 2 для образования кодовых символов в выходной последовательности. Входы сумматоров соединены с определёнными разрядами регистра. Коммутатор на выходе устанавливает очередность посылки кодовых символов в канал связи. Тогда структуру кода определяют нижеследующие характеристики.
- Число информационных символов, поступающих за один такт на вход кодера — k.
- Число символов на выходе кодера — n, соответствующих k, поступившим на вход символам в течение такта.
- Скорость кода определяется отношением R=k/n и характеризует избыточность, вводимую при кодировании.
- Избыточность кода
- Память кода (входная длина кодового ограничения или информационная длина кодового слова), определяется максимально степенью порождающего многочлена в составе порождающей матрицы G(X):
- Маркировка сверточного кода обозначается в большинстве случаев (n, k, l), но возможны и вариации.
- Вес w двоичных кодовых последовательностей определяется числом «единиц», входящих в эту последовательность или кодовые слова.
-
Кодовое расстояние
показывает степень различия между i-й и j-й кодовыми комбинациями при условии их одинаковой длины. Для любых двух двоичных кодовых комбинаций кодовое расстояние равно числу несовпадающих в них символов. В общем виде кодовое расстояние может быть пределено как суммарный результат сложения по модулю 2 одноимённых разрядов кодовых комбинаций
, где и — k-е символы кодовых комбинаций i и j; L- длина кодовой комбинации. - Минимальное кодовое расстояние — это наименьшее расстояние Хемминга для набора кодовых комбинаций постоянной длины. Для его нахождения необходимо перебрать все возможные пары кодовых комбинаций. Тогда получаем .
Но! Это определение справедливо для блочных кодов, имеющих постоянную длину. Сверточные коды являются непрерывными и характеризуются многими минимальными расстояниями, определяемыми длинами начальных сегментов кодовых последовательностей, между которыми берется минимальное расстояние. Число символов в принятой для обработки длине сегменты L определяет на приемной стороне число ячеек в декодирующем устройстве.
Общий вид двоичного сверточного кодера
Пусть регистр сдвига содержит m ячеек, то есть память кода равна m, коммутатор производит один цикл опроса, проходя значения информационных символов, где m кратно k , при этом за один цикл он опрашивает n 2 выходов кодера. Количество выходных кодовых символов, на которые оказывает влияние изменение одного входного информационного символа, равно . Величина I all называется .
Поскольку корректирующие свойства конкретного сверточного кода определяются длиной кодового ограничения и выбором связей сдвигающего регистра на сумматор по модулю 2 ( XOR ), то для задания структуры сверточного кодера необходимо указать какие разряды регистра сдвига связаны с каждым из сумматоров по модулю 2 ( XOR ).
Связь j-го сумматора по модулю 2 описывается j-ой порождающей последовательностью:
где (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 после прохождения сигнала через скремблер , вследствие чего количество передаваемых символов увеличивается в два раза и, следовательно, мы можем добиться благоприятного приема на принимающем устройстве.
См. также
Примечания
- , главы 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.
- 2020-05-28
- 2