Двоичные циклические коды


Вышеприведенная процедура построения линейного кода имеет ряд недостатков. Она неоднозначна (МДР можно задать различным образом) и неудобна в реализации в виде технических устройств. Этих недостатков лишены линейные корректирующие коды, принадлежащие к классу циклических.

Циклическими называют линейные (n,k)-коды, обладающие следующим свойством: для любого кодового слова:

;

существует другое кодовое слово:

,

полученное циклическим сдвигом элементов исходного кодового слова ||KC|| вправо или влево, и которое также принадлежит этому коду.

Для описания циклических кодов используют полиномы с фиктивной переменной. Будем обозначать эту переменную буквой Х.

Например, кодовое слово ||KC|| = ||011010|| .

Его можно описать полиномом

А(Х) = 0*Х5+1*Х4+1*Х3+0*Х2+1*Х1+0*Х0 .

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

Наибольшая степень фиктивной переменной Х в слагаемом с ненулевым коэффициентом называется степенью полинома. В вышеприведенном примере получился полином 4-й степени.

Теперь действия над кодовыми словами сводятся к действиям над полиномами. Вместо алгебры матриц здесь используется алгебра полиномов.

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

Суммирование полиномов разберем на примере С(Х) = А(Х) + В(Х).

Пусть ||A|| = ||011010||, ||B|| = ||110111||.

Тогда:

A(X) = + X4 + X3 + + X1 +
B(X) = X5 + X4 + + X2 + X1 + X0
C(X) = X5 + 0 + X3 + X2 + 0 + X0

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

Умножение выполняется как обычно, но с использованием суммирования по модулю 2.

Рассмотрим умножение на примере умножения полинома (Х310) на полином (Х10).

  Х3 + + Х1 + Х0
          Х1 + Х0
    Х3 + + Х1 + Х0
Х4 + + Х2 + Х1    
Х4 + Х3 + Х2 + + Х0

Операция обратная умножению – деление. Деление полиномов выполняется как обычно, за исключением того, что вычитание выполняется по модулю 2 (вспомним, что вычитание по модулю 2 эквивалентно сложению по модулю 2).

Пример деления полинома (Х643) на полином (Х320):

Х6 + 0 + Х4 + Х3 + 0 + 0 + 0 Х3 + Х2 + 0 + Х0
Х6 + Х5 + 0 + Х3  
Результат ==

        Х3 + Х2        
    Х5 + Х4 + 0 + 0                      
    Х5 + Х4 + 0 + Х2                      
   
Остаток ==

      0 + Х2       .              

Циклический сдвиг влево на одну позицию коэффициентов полинома степени n-1 получается путем его умножения на Х с последующим вычитанием из результата умножения полинома Xn+1, если его порядок n. Последнее эквивалентно вычислению остатка от деления результата умножения на Xn+1.

Проверим это на примере.

Пусть требуется выполнить циклический сдвиг влево на одну позицию коэффициентов полинома С(Х) = Х5320.

В результате должен получиться полином = Х4310 .

Это легко доказывается:

= С(Х)*Х-(Х6+1)=(Х6+Х431)+(Х60) = Х4310 .

В основе циклического кода лежит образующий полином m-го порядка (напомним, что m – число дополнительных разрядов). Будем обозначать его gm(X).

Образование кодовых слов (кодирование) KC выполняется путем умножения информационного полинома (информационный полином – полином с коэффициентами, являющимися информационной последовательностью) Иi(X) порядка i<k на образующий полином:

КСm+i(Х) = gm(X) * Иi(X) .

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

ПКС(Х) = КС(Х) + ВО(Х),

где ВО(Х) – полином вектора ошибки, а суммирование, как обычно, ведется по модулю 2.

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

.

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

.

Образующий полином выбирается таким, чтобы при данном m как можно больше число отношений ВО(Х)/gm(Х) давало различные остатки.

Такому требованию отвечают так называемые неприводимые полиномы, которые не делятся без остатка ни на один полином степени m и ниже, кроме как сам на себя и на 1.

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

Этот недостаток был устранен.

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

Эти дополнительные разряды предлагается находить по следующей формуле:

Порядок полинома ДР(Х) гарантировано меньше m (поскольку это остаток).

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

KC(X) = И(Х)*Хm + ДР(Х)

Одним из свойств циклических линейных кодов является то, что результат деления любого разрешенного кодового слова КС на образующий полином g также является разрешенным кодовым словом.

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

.

Рассмотрим первое слагаемое: ,

где d(X) – целая часть результата деления.

Подставим полученную сумму на место первого слагаемого:

.

Суммирование последних двух слагаемых дает нулевой результат (напомним, что суммирование выполняется по модулю 2).

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



Дата добавления: 2021-04-21; просмотров: 419;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.012 сек.