Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 60177.doc
Скачиваний:
28
Добавлен:
01.05.2022
Размер:
1.63 Mб
Скачать

2.5. Циклические коды

В основе построения циклических кодов лежит представление кодовых комбинаций в виде полиномов. Так, n - элементная кодовая комбинация записывается в виде

F(x)=an-1 xn-1 + an-2 xn-2 +...+ a1 x + a0,

где коэффициенты ai равны 0 или 1, причем ai = 0 соответствует нулевым элементам комбинации, а ai = 1 - ненулевым. Например, комбинациям 1101 и 1010 отвечают полиномы F1(x)=x3 + x2 + 1 и F2(x)=x3 + x. Наивысшая степень полинома на единицу меньше числа элементов кодовой комбинации.

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

F1(x) F2(x)=(x3 + x2 + 1) (x3 + x)=x2 + x + 1,

поскольку x3 x3=x3(1 1)=0.

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

x7

+

x5

+

x3

+

x2

+

1

x4

+

x

+

1

x7

+

x4

+

x3

x3

+

x

+

1

x5

+

x4

+

x2

x5

+

x2

+

x

x4

+

x

+

1

x4

+

x

+

1

0

0

0

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

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

Полином Q(x), соответствующий k-элементной комбинации простого кода, умножаем на . Умножение Q(x) на необходимо, чтобы сдвинуть информационные элементы на r разрядов влево и тем самым высвободить справа r разрядов для записи проверочных элементов. Определяем проверочные элементы в виде остатка R(x) от деления произведения Q(x) на образующий полином P(x) степени r. Проверочные элементы прибавляем к Q(x) . В результате получаем кодовую комбинацию n-элементного циклического кода

. (2.2)

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

Можно заметить, что при таком способе построения комбинаций циклического кода первые k элементов являются информационными, а последующие r - проверочными, т.е. код является разделимым.

Пример 2.5. Задан полиномом Q(x) = x3 + x, соответствующий четырехэлементной комбинации простого кода. Требуется построить комбинацию циклического кода с . Этому условию удовлетворяет циклический код (7,4) (см. пример 2.3). Возьмем в качестве образующего полинома P(x)=x3 + x + 1 и разделим Q(x)xr = ( x3 + x ) x3= x6 + x4 на x3 + x + 1:

x6

+

x4

x3

+

x

+

1

x6

+

x4

+

x3

x3

+

1

x3

x3

+

x

+

1

x

+

1

Остаток от деления

R(x) = x + 1.

Соответственно полином комбинации циклического кода

F(x) = x6 + x4 + x + 1.

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

Циклические коды относятся к классу линейных кодов, которые могут быть заданы в виде произведения матриц Gn,k=|Ik Br,k|. В отличие от линейного кода, где матрица проверочных элементов определяется методом подбора строк с определенным весом, в циклических кодах матрица Br,k находится по общим правилам (2.2) с помощью деления строк матрицы Ik, сдвинутых на r разрядов влево, на образующий полином.

Производящая матрица циклического кода (7,4) (см. пример 2.3) может быть записана в виде

G7,4=

1

0

0

0

1

0

1

.

0

1

0

0

1

1

1

0

0

1

0

1

1

0

0

0

0

1

0

1

1

a1

a2

a3

a4

b1

b2

b3

Строки в матрице G7,4 содержат четыре комбинации циклического кода. Пятая комбинация является нулевой. Остальные одиннадцать комбинаций получаются суммированием по модулю два всех сочетаний строк матрицы G7,4.

Матрица проверочных элементов B3,4, как и для обычных линейных кодов, представляет собой набор синдромов – опознавателей одиночных ошибок. Первый синдром соответствует искажению элемента a1, второй – a2 и т.д.

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