Построение циклических кодов

Сведения из алгебры полиномов

ЦИКЛИЧЕСКИЕ КОДЫ

 

 

Описание циклических кодов основано на представлении комбинаций в виде многочленов (полиномов) от одной фиктивной переменной х с коэффициентами [17]. При наименьшем разряде полинома присутствует степень x0, а при наибольшем – степень xn-1, где n - длина разрядов. Например, комбинация 11011011 в виде полинома будет иметь вид х7643+х+1. Заметим, что арифметический знак + здесь рассматривается как фиктивная операция.

Сложение двух полиномов выполняется как поразрядное суммирование по модулю два (mod2). Например, b1=1011=х3+х+1, а b2=11101=х432+1. Тогда b1Åb1=х3+х+1+х432+1=х42.

Умножение двух полиномов осуществляется в идеале поля Галуа n+1). Происходит это следующим образом. Пусть n=4, b1=0011=х+1, а b2=0110=х2. Тогда b1b2=(х+1)(х2+х)=х3.Пусть n=4, b1(х)=х32, а b2(х)=х3+х+1. Тогда в обычной алгебре b1b2=х6542, а по модулю 4+1) b1b2=Rem[(х6542)/(х4+1)]=х+1, где Rem[.] - остатокот деления. Следовательно, b1b2=х+1 (0011).

 

Таблица 5.1

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

 

 

Циклические коды являются частным случаем групповых кодов и однозначно задаются с помощью порождающего (образующего) полинома

g(x)=gkxk+gk-1xk-1+…+g1x+g0.

Особенности порождающего полинома:

- порождающий полином g(x) имеет наименьшую степень среди многочленов данного идеала n+1);

- свободный член g0 всегда не равен нулю;

- любой многочлен циклической группы делится на g(x) без остатка;

- g(x) является делителем для двучлена n+1).

Так как любое кодовое слово b(х) должно делиться на g(x) , то

b(х)=n(х)g(х). (4.1)

Соотношение (4.1) описывает процесс кодирования слова. n=(nm-1,nm-2,…,n0) - вектор первичного (безызбыточного) кода длиной m разрядов, записанный в виде полинома

.

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

.

Желательно циклический код представлять в виде разделимого кода, т.е. в кодовой комбинации b(х)=bn-1xn-1+bn-2xn-2+…+b1x+b0, коэффициенты кодового полинома при xn-1, xn-2,…,xk - информационные символы, а при xk-1,xk-2, …,x,1 - контрольные символы.

Для получения разделимого циклического кода достаточно вычислить остатки от деления произведения xkni(х), (i-0,1,…m-1) на порождающий полином g(x).

Если выбрать в качестве базисных кодовых полиномов xixk+Ri(х), то получим для разделимого кода порождающую матрицу в канонической форме Gm,n=|ImRm,k|. Причем,

. (4.2)

Пример. Полином g(х)=х32+1 порождает циклический код (7,4). Информационные элементы кодовых комбинаций, используемые в качестве строк образующей матрицы, имеют следующую запись: ni(х)=х0, ni(х)=х1, ni(х)=х2, ni(х)=х3.

Тогда, R0(х)=Rem[xkx0/g(x)]=Rem[x3/(х32+1)]=х2+1, R1(х)=Rem[x4/(х32+1)]=х2+x+1, R2(х)=Rem[x5/(х32+1)]=x+1, R6(х)=Rem[x6/(х32+1)]=x2+x.

Образующая матрица будет иметь вид

.