Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Циклические коды.doc
Скачиваний:
69
Добавлен:
17.04.2013
Размер:
188.42 Кб
Скачать
  1. Двойственные полиномы

P*(x) – полином двойственный P(x)

P*(x)=xmP(1/x), где m – степень P(x).

Пример:

P(x)=x4+x+1

P*(x)=x4P(1/x)=x4(1/x4+1/x+1)=x4+x3+1.

Свойства двойственности:

а) Полином двойственный неприводимому полиному является также неприводимым;

б) Полином двойственный примитивному является также примитивным. P(x)= x4+x3+1.

Восьмеричное представление двоичных многочленов

Для удобства и компактности записи двоичные многочлены представлены в восьмеричном виде:x8+x+1  100 000 011  403

4 0 3

726  111 010 110  x8+x7+x6+x4+x2+x+1

Используя представление двоичных кодов в виде полиномов, дадим следующее определение циклического кода.

Циклический код образуется путем умножения информационного k-значного кода, выраженного в виде полинома Q(x) степени k-1, на некоторый образующий полином G(x) степени (n-k = r).

Q(x)=1010(x3+x); G(x)=(x3+x+1); E(x)=(x6+x3+x2+x).

  1. Отсюда, основное свойство циклического кода: многочлен E, выражающий разрешенную кодовую комбинацию циклического кода, будет делиться на образующий многочлен без остатка.

  2. С другой стороны: ни один многочлен, соответствующий запрещенной кодовой комбинации, на образующий многочлен G(x) без остатка не делится. То есть остаток – это проверочный синдром.

Это основное свойство позволяет определить наличие ошибки в кодовой комбинации.

Отсюда следующее:

  1. Процедура кодирования состоит в умножении кодовой комбинации из информационных символов на образующий многочлен G(x).

  2. Процедура декодирования состоит в делении принятой кодовой комбинации, выраженной в E(x) на образующий полином G(x) и определения остатка R(x).

Если R(x)=0 – нет ошибки,

Если R(x)0 – есть ошибка, и ее надо определить по виду R(x).

Требования к образующему g(X).

Корректирующие свойства циклического кода определяются в основном образующим полиномом G(x). Поэтому, выбор образующего полинома – важнейший этап построения циклического кода.

Процедура кодирования (получения кодовой комбинации без остатка делящейся на G(x)) может быть реализована тремя путями:

  1. E1(x)= Q(x)*G(x)

Исходная 

кодовая комбинация

Достоинство: простота

Недостаток: информационные и проверочные разряды перемешались, что усложняет процесс дешифрирования.

  1. E2(x)= Q(x)*xn-k+ R(x), где R(x)- частное от деления Q(x)*xn-k/ G(x)

Можно показать, что

F2(x) делится без остатка на G(x)

Q(x) R(x)

Структурная схема

k r

Достоинство: полезная информация Q(x) отделена от проверочной R(x).

Требования к образующему полиному.

1) Для того, чтобы разрешенная кодовая комбинация при циклическом сдвиге влево (т.е. при «x» наx) оставалась разрешенной, т.е. делилась без остатка наG(x) необходимо, чтобыG(x) являлся сомножителемxn-1.

Цикл. сдвиг



F1(x)- разрешенная кодовая комбинация; E2=E1=E1*x-C(xn-1),

где C=0, если степеньE1*x  n;

C=1, если степень E1*x > n.

Отсюда, G(x) является сомножителем двучлена (xn-1).

2) Из определения циклического кода – степеньG(x)= r = n-k

3) Циклический код принадлежит к линейным кодам. Циклический код, являясь линейным, способен различать и исправлять количество ошибок равное количеству различных комбинаций проверочного синдрома.

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

Наибольшее количество остатков, равное 2r-1 (т.е. равное n  2r>n, т.е. числу векторов одиночных ошибок) может обеспечить только примитивный многочлен.

G(x) должен быть примитивным полиномом (специальные таблицы), т.е. являясь делителем двучленаxn-1, не входит в разложениеx+1,гдеn  представление в «свернутой» форме.

Пояснение: выбрать образующий полином кода (15,11)

(x15+1)

(x+1)(x2+x+1)(x4+x+1)(x4+x3+1)(x4+x3+x2+x+1)

<3 =3 3

степень4 степень = 4

(x4+x+1) и (x4+x3+1) – можно выбрать в качестве G(x).

!!! Циклические коды, образованные с помощью двойственных многочленов – эквивалентные.

(x4+x3+x2+x+1) – нельзя выбрать какG(x), потому что:

  1. формально, он входит x5+1515

  2. фактически, дает не 2r-1 (15 остатков), а только 5 остатков.

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

  1. Для исключения (каждый раз) операция деления на практике построения циклического кода осуществляется при помощи образующей матрицы Gn,k(аналогично групповым кодам).

1

. Набор остатков от деления строже

. единичной матрицы, сдвинутой влево на

. Rij r разрядов, на P(x). При этом, вес каждого

1 остатка Ri  dmin-1, что гарантировано

1 условием выбораP(x).

1

1

единичная, но

транспонированная матрица

Пример (*) r

Выбрать образующий многочлен для случая n= 15 , m= 4. Двучлен x15+1 = x2 -1 +1 можно записать в виде произведения всех неприводимых многочленов, степени которых являются делителями числа 4. Последнее делится на 1,2,4.

В таблице неприводимых многочленов находим,

1 многочлен первой степени x+1

1 многочлен второй степени x2+x+1

3 многочлена четвертой степени x4+x+1, x4+x3+1, x4+x3+x2+x+1

x15+1 = (x+1) *(x2+x+1) *(x4+x+1) *(x4+x3+1) *(x4+x3+x2+x+1)

Один из сомножителей (x4+x+1), (x4+x3+1) может быть взят за образующий многочлен.

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

k

bj = pij aj , i = 1,2,3, …r

i=1

Соседние файлы в папке Лекции