- •Теория информационных процессов и систем
- •Лекции читает канд.техн.наук, доцент Литвинов Владислав Леонидович
- •Циклические коды
- ••Наибольшая степень х в слагаемом с ненулевым коэффициентом называется степенью полинома. Таким образом,
- ••Следовательно, если в качестве исходного взять некоторый полином g(x), то процесс получения разрешенных
- ••Основные свойства циклических кодов:
- ••Кодирование с использованием циклических кодов
- ••Второй:
- ••Кодирование циклических кодов с помощью сдвиговых схем
- ••Вычисление синдрома и исправление ошибок в циклических кодах
- ••Покажем, что синдромный многочлен,S(x) однозначно связан с многочленом ошибки e(x), а значит, с
- •Получение порождающих полиномов для циклических кодов
- ••Дальше остатки повторяются. Получили следующие остатки: 011, 110, 111, 101, 001, 010, 100.
- ••Дальше остатки повторяются. Получили следующие остатки: 111, 001, 010, 100. Всего 4 штуки.
- ••Пример. Выбрать порождающий полином циклического кода, исправляющего однократные ошибки и позволяющего передать 2000
- •Таблица неприводимых полиномов
- ••ГОСТ 28082-89 «Методы обнаружения ошибок при последовательной передаче данных» устанавливает в качестве основного
- •Непрерывные коды
- ••При этом кодирование кадра информационных символов в кадр кодового слова производится с учетом
- ••Сверточный (цепной) алгоритм непрерывного кодирования
- ••Таким образом, каждый символ входной последовательности ak участвует в формировании двух проверочных символов:
- ••На приеме информационные и проверочные символы разделяются и регистрируются независимо друг от друга.
- ••Непрерывное кодирование с помощью импульсной переходной характеристики
Таблица неприводимых полиномов
Степень |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
|
|
|
|
|
|
|
|
Двоичное |
1 |
111 |
1011 |
10011 |
100101 |
1000011 |
10001001 |
100011101 |
представление |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1101 |
11111 |
111101 |
1010111 |
10001111 |
101110111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
11001 |
110111 |
1100111 |
10011101 |
111110011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101111 |
1001001 |
11110111 |
101101001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111011 |
1101101 |
10111111 |
110111101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11010101 |
111100111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10000011 |
100101011 |
|
|
|
|
|
|
|
|
|
•ГОСТ 28082-89 «Методы обнаружения ошибок при последовательной передаче данных» устанавливает в качестве основного порождающий полином 16-й степени
•x16+x12+x5+1 (10001000000100001).
•Для более высокой степени помехозащищенности передаваемой информации ГОСТом рекомендовано использовать полином 32-й степени
•x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 (100000100110000010001110110110111).
Непрерывные коды
•Методы кодирования и декодирования, рассмотренные ранее, относились к блочным кодам. При использовании таких кодов информационная последовательность разбивается на отдельные блоки, которые кодируются независимо друг от друга. Таким образом, закодированная последовательность становится последовательностью независимых слов одинаковой длины.
•При использовании непрерывных кодов поток данных разбивается на
гораздо меньшие блоки длиной k0 символов (в частном случае k0 = 1), которые называются кадрами информационных символов.
•Кадры информационных символов кодируются кадрами кодовых символов длиной r0 символов (в частном случае r0 = 1 ).
•При этом кодирование кадра информационных символов в кадр кодового слова производится с учетом предшествующих L кадров информационных символов.
•L называется размером памяти кода. Процедура кодирования, таким образом, связывает между собой последовательные кадры кодовых слов.
•Передаваемая последовательность становится одним полубесконечным кодовым словом.
•Сверточный (цепной) алгоритм непрерывного кодирования
•Цепной алгоритм кодирования, известный также как код Финка – Хагельбаргера, является одним из наиболее простых примеров непрерывных кодов. В нем каждый проверочный символ формируется путем сложения двух информационных символов, отстоящих друг от друга на длину памяти L. Вводятся характеристики кода:
•k = (L+1) × k0 - информационная длина слова;
•n = (L+1) × n0 - кодовая длина слова, где n0 = k0+r0.
•Кодовая длина слова - это длина кодовой последовательности, на которой сохраняется влияние одного кадра информационных символов.
•R = k/n – скорость кода, которая характеризует степень избыточности кода, вводимой для обеспечения исправляющих свойств кода.
•Как и блочные, сверточные коды обозначаются как (n,k)-коды.
•В частном, наиболее распространенном, случае, k0 = 1, r0 = 1, n0 = k0+r0= 2, R = ½.
•Хоть избыточность такого кода достаточно велика, но зато он позволяет исправлять пачки ошибок, т.е. непрерывные последовательности ошибочных разрядов. Длина исправляемой пачки зависит от размера памяти кода.
•Обозначая последовательность информационных символов через
a0a1a2 … aLaL+1 …, получим следующую последовательность проверочных символов сверточного кода: b0=a0 aL; b1=a1 aL+1; …
bL=aL a2L; bL+1=aL+1 a2L+1; …
•В общем потоке символов цепного кода между каждыми двумя информационными разрядами помещается один проверочный (первые L символов удваиваются):
a0a0a1a1…aLb0aL+1b1aL+2b2…
•Таким образом, каждый символ входной последовательности ak участвует в формировании двух проверочных символов: bk-L и bk. Например, для размера памяти кода L=3 и n0=2 процесс формирования выходной последовательности выглядит так:
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
•На приеме информационные и проверочные символы разделяются и регистрируются независимо друг от друга. Из принятой последовательности информационных символов формируются
контрольные символы сi по тем же правилам, что и проверочные: ci = ai aL+i. Затем каждый контрольный символ ci сравнивается с соответствующим проверочным символом bi.
•Если произошла ошибка в информационном символе, например, ak, то это вызовет искажение сразу двух контрольных символов: ck-L и ck, что и обнаружится в результате их сравнения с проверочными символами bk-L и bk.
•Отсюда по общему индексу k легко определить и исправить ошибку.
Ошибка в принятом проверочном символе, например, bk, приводит к несовпадению контрольной и проверочной последовательностей лишь в одном месте. Исправление такой ошибки не требуется. Видно, что проверку надо производить с задержкой на 2L.
•Непрерывное кодирование с помощью импульсной переходной характеристики
•Импульсная переходная характеристика (ИПХ) – это реакция кодера на воздействие в виде δ-функции. δ = (10000…)
•Например, для (8,4)-кода L = 3. Значит, последовательность δ = (10000…) будет кодироваться так: u = (11 00 00 01 00 00 …). Это и будет импульсная переходная характеристика кода.
•Обозначается: Н(8,4) = (11 00 00 01). Для кодирования надо просуммировать с соответствующим сдвигом реакцию кодера на каждый входной разряд.
•Например, пусть входная последовательность m = (1101000…). Каждая единица входной последовательности вызывается реакцию в виде ИПХ.
•Просуммируем реакции:
•11 0000 01
•11000 001
• 110 00001
u=(10 1110 01101 …)
•При декодировании полученная последовательность разделяется на информационную и проверочную. Вычисляется ИПХ информационной последовательности и получается контрольная последовательность. Если контрольная и проверочная последовательности совпадают, значит ошибки нет.