Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТИК_Лекция 9_16-20.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.27 Mб
Скачать

19.2. Полиноминальное представление циклических кодов.

При описании циклических кодов удобно кодовые комбинации представлять в форме полиномов степени n-1 фиктивной переменной x.

V(x)=a0 x0+a1 x1+a2 x2+…+an-1 xn-1, где ai .

Так для кодовой комбинации 1010111 может быть записан полином

V(x)=1∙x0+0∙x1+1∙x2+0∙x3+1∙x4+1∙x5+1∙x6=1+x2+x4+x5+x6.

Представление в виде полиномов позволяет свести действия над комбинациями к действию над полиномами. При этом при приведении подобных членов коэффициенты при равных степенях складываются по mod2.

Например, x4+x4+x4=x4; x3+x3=0; x3+x3+x3=x3 и т.д.

Операция циклической перестановки есть результат простого умножения данного полинома на x.

Так, если V(x) = a0+a1 x+a2 x2+…+an-1 xn-1, то x∙V(x)= a0 x+a1 x2+a2 x3+…+an-1 xn, заменяем xn на 1, тогда V1(x) = an-1+ a0 x+a1 x2+a2 x3+…+an-2 xn-1.

При этом V1(x) = V(x) ∙x-an-1xn+an-1=V(x) ∙x-an-1(xn-1).

Теория циклических кодов базируется на теории полей, теории полей – ветвей современной алгебры, теории конечных полей (Галуа), n-мерном представлении арифметического пространства над полем Галуа GF(2), в котором каждому кодовому вектору a0 a1 a2 ….an-1 GF(2) однозначно сопоставляется полином

P(x)= a0+a1 x+a2 x2+…+an-1 xn-1 c коэффициентами из GF(2).

Если в этом пространстве выбрать некоторый полином g(x), то множество всех полиномов, которые делятся на g(x) без остатка, образуют подпространство, на котором определяется циклический код. Код V(x) является циклическим.

Таким образом, чтобы код V1(x) был циклическим, полином V1(x) должен делиться на g(x).

V1(x) = V(x) ∙x-an-1(xn-1).

Поскольку V(x)*x из условия цикличности V(x) делится на g(x), то многочлен хn-1 тоже должен делиться на g(x).

19.3. Порождающий многочлен циклического кода

Полиномиальный код является циклическим тогда и только тогда, когда полином g(x) является делителем многочлена хn-1. В этом случае многочлен g(x) называется порождающим многочленом циклического кода.

Многочлен хn-1 можно разложить на множители

xn-1=(х-1) ∙ (хn-1n-2+…+1),

следовательно, циклические коды существуют при любом n.

Число циклических n-разрядных кодов равно числу делителей многочлена xn-1. Для построения циклических кодов разработана таблица разложения многочленов xn-1 на неприводимые многочлены, т.е. такие, которые делятся только на единицу и на самого себя. Неприводимые многочлены дают наибольшее число остатков при делении. Это свойство используется для обнаружения ошибки при депозировании.

Рассмотрим, например, какие коды можно построить на основе многочлена х7+1 над полем GF(2).

x7+1=(х+1)(х32+1)(х3+х+1).

Комбинируя, мы можем получить шесть делителей и, соответственно, получить шесть двоичных циклических кодов.

Код (n,k) определяется значениями n и k, где k=n- , а – степень многочлена g(x) – делителя х4-1, определяющего код.

g1(x)=x+1, =1, k=6, код (7,6)(1 разряд проверочный на четность)

g2(x)=x3+x2+1, =3, k=4, код (7,4)

g3(x)=x3+x+1, =3, k=4, код (7,4)

g4(x)=(x+1)( x3+x2+1), =4, k=3, код (7,3)

g5(x)=(x+1)(x3+x+1), =4, k=3, код (7,3)

g6(x)=( x3+x2+1)(x3+x+1), =6, k=1, код (7,1)

При осуществлении операции циклической перестановки мы принимаем хn-1. Учитывая, что кодовые комбинации складываются по mod2, то хn+1=0 и хn-1=0, т.е. х 1=0 или хn+1=хn-1. С другой стороны, с учетом того, что порождающий полином делит полином хn-1, получим

x4+1=g(x) ∙h(x), и, соответственно

g(x) ∙h(x)=0.

Полином h(x) называется проверочным полиномом. Произведение проверочного и порождающего полиномов равно h(x) ∙g(x)=0. Это соотношение положено в основу декодирования циклических кодов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]