Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / 11. Циклические коды.ppt
Скачиваний:
12
Добавлен:
19.09.2023
Размер:
471.55 Кб
Скачать

Таблица неприводимых полиномов

Степень

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 …)

При декодировании полученная последовательность разделяется на информационную и проверочную. Вычисляется ИПХ информационной последовательности и получается контрольная последовательность. Если контрольная и проверочная последовательности совпадают, значит ошибки нет.