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

Требования к образующему 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