Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
200
Добавлен:
16.03.2015
Размер:
4.25 Mб
Скачать

3.3.1 Выбор образующего многочлена

В теории кодирования показано, что степень многочлена Pr(x) следует выбирать равнойr=mtи.ош, гдеmопределяется условием 2m=n+1, аtи.ош— число ошибок, исправляемых циклическим кодом (7.12).

Пример 3.9.Определитьrдля кода сk=20,tи.ош=2.

Примем m=3. Тогда 2m=23=8,n=7, что меньшеk=20. Возьмемm=5. Тогдаn=31;r=mtи.ош=52=10. Получается код сk=21,r=10. Этот код обеспечивает кодовое расстояниеd02tи.ош+1=5.

В табл. 3.3 приведены образующие (примитивные) полиномы до 10-й степени.

3.3.2 Базис циклического кода, формирование кодовых комбинаций

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

Таблица 3.3  Образующие полиномы

r

Pr(x)

Двоичная запись Pr(x)

2

x2+x+1

111

3

x3+x+1

x3+x2+1

1011

1101

4

x4+x2+1

x4+x2+1

10011

100101

5

x5+x4+x3+x2+1

x5+x4+x2+x+1

111101

110111

6

x6+x+1

x6+x5+x2+x+1

1000011

1100111

7

x7+x3+1

х732+x+1

х7432+1

10001001

10001111

10011101

8

х87652+x+1

x8+x4+x3+x1+1

х8+x6+x5+х+1

111100111

100011101

101100011

9

x9532+1

х987653+1

1000101101

1111101001

10

х1043+х+1

х10+x965+x42+х+1

10000011011

11001110111

комбинации есть разрешенная комбинация того же кода. Рассмотрим циклический сдвиг кодовой комбинации:

. (3.13)

Такая циклическая перестановка при представлении комбинаций в виде полиномов соответствует умножению данного полинома A(x) наx, т.е.. Чтобы степень полученного полиномаA1(x) не превышалаn-1, членan-1xnзаменяется единицей. Поэтому .

Например, имеем кодовую комбинацию: 1011101A(x)=х6+x4+x3+x2+l. Образуем циклический сдвиг на один разряд: 0111011A(x)x=х7543+х11010. Заменив х7на единицу, имеемx5+x4+x3+x+l0111011, т. е. сдвинутую на один разряд исходную кодовую комбинацию.

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

Пример 3.10. Сформировать базис циклического кода (7,4) сP3(x)=x3+x+1,r=3,k=4,d0=3. Для формирования первой разрешенной комбинации базиса следует взять кодовую комбинацию сn=7, соответствующую образующему полиномуx3+x+1. (Ясно, что она будет делиться без остатка па образующий полином).

Итак, первая разрешенная комбинация имеет вид

.

Остальные три разрешенные комбинации находятся циклическим сдвигом полученной кодовой комбинации, т. е. умножением A1(x) наx,x2,x3. В результате имеем

Тогда производящая матрица циклического кода (7, 4) имеет вид:

Все остальные кодовые комбинации можно определить линейной композицией комбинаций базиса (ср. с производящей матрицей (7,3)).

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

.

В качестве оператора используется вычисление вычета произведенияAk-1(x)xrпо модулюPr(x), гдеAk-1(x) — многочлен, представляющий информативную часть кодовой комбинации, аPr(x) — образующий многочлен степениr. Ранее было определено, что среди 2nкодовых комбинацийAn-1(x) длинойnэлементов имеется подмножество из 2kкомбинаций, которые характеризуются отсутствием вычета по образующему многочлену степениr, гдеr=n-k.

Это создает возможность дополнить каждую кодовую комбинацию Ak-1(x)k-элементного первичного кода группой из r проверочных элементов, которая определяется в виде остаткаR(x) от деления произведенияAk-1(x)xrна образующий многочленPr(x). При этом образуется многочленAn-1(х), соответствующийn-элементному коду, у которого отсутствует вычет поPr(x).

Действительно, умножение Ak-1(x) наxrприводит к многочлену, соответствующемуn-элементной кодовой комбинации, у которойrмладших разрядов нулевые. ОпределивR(x) как вычетAk-1(x)xrпоPr(x), получаем всю проверочную группу изrэлементов, которую и приписываем вместоrнулей.

Пример 3.11. Задана кодовая комбинация простого семиэлементного кодаA6(0,1)=1001011, т. е.A6(x)=x6+x3+x+1. Надо образовать циклический код (9,7). Это код, у которогоr— степень образующего многочлена (число проверочных элементов) равна 2.

Из табл. 3.3

P2 (x)=x2 + x + 1.

Повысим степень полинома на два:

A6(x) х2=x8532.

Определим группу проверочных разрядов в виде остатка от деления A6(x)x2наP2(x). Значение остатка будетR(x)=x, т. е.R(0,1)=10. Найдем полином разрешенной кодовой комбинации:

A8(x)=A6(x)x2+R(x)=х8+x5+x3+x2+x.

Кодовая комбинация имеет вид 100101110.

Наряду с определением кодовой комбинации в виде многочлена все операции можно проделать и в записи двоичными элементами. В этом случаеAk-1(x)xrсоответствует добавлению кAk-1(0,1)rнулей, т. е. 100101100. Определение вычета произведем на основе деления в двоичной записи:

Отсюда R(0,1)=10.

Тогда A(0,1)=100101.10.

Можно заметить, что при таком способе построения комбинаций циклического кода проверочные и информационные разряды находятся на определенных позициях, т. е. код является разделимым. При другом способе построения это свойство нарушается и код становится неразделимым. Способ основан на простом перемножении кодовых комбинаций информационной группы и образующего полинома. Действительно, поскольку произведение Ak-1(x)Pr(x)=An-1(x) делится без остатка наPr(x), тоAn-1(х) является разрешенной комбинацией циклического кода. Однако в этой комбинации нельзя выделить информационные и проверочные разряды. Из примера 3.11 имеем произведение

что соответствует кодовой комбинации 111110001. Выделить позиции информационных элементов здесь нельзя. Поэтому на практике используется первый способ построения циклического кода.