Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кодирования.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
12.08 Mб
Скачать

1.1. Классификация корректирующих кодов

С классификацией корректирующих кодов студенты уже знакомы по материалам, приведенным в ЛР № 3. В связи с этим напомним только основные положения, касающиеся циклических кодов.

Все корректирующие коды можно разделить на два класса: блочные

и непрерывные.

Блочные коды – коды, в которых каждому сообщению (или элементу) сопоставляется блок из n символов (кодовый вектор длиной n). Операции кодирования и декодирования в каждом блоке производятся отдельно.

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

Как блочные, так и непрерывные коды делятся на разделимые и не- разделимые.

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

Неразделимые коды не предусматривают такой возможности и к ним относятся, например коды с постоянным весом (КПВ).

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

Систематические коды характеризуются тем, что сумма по модулю

2 двух разрешенных кодовых комбинаций кодов этого класса снова дает разрешенную кодовую комбинацию.

Кроме того, в систематических кодах информационные символы, как правило, не изменяются при кодировании и занимают определенные заранее заданные места. Проверочные символы вычисляются как ли- нейная комбинация информационных, откуда и возникло другое наи- менование этих кодов – линейные. Для систематических кодов прини- мается обозначение [n, k]-код, где k – число информационных симво- лов в кодовой комбинации, n – общее число символов в коде.

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

Циклические коды составляют большую группу наиболее широко ис- пользуемых на практике линейных, систематических кодов. Их основ- ное свойство, давшее им название, состоит в том, что каждый вектор, получаемый из исходного кодового вектора путем циклической пере- становки его символов, также является разрешенным кодовым векто- ром. Принято описывать циклические коды (ЦК) при помощи порожда-

ющих полиномов G(Х) степени r = n – k, где r – число проверочных символов в кодовом слове. В связи с этим ЦК относятся к разновидно- сти полиномиальных кодов.

Операции кодирования и декодирования ЦК сводятся к известным

процедурам умножения и деления полиномов. Для двоичных кодов эти операции легко реализуются технически с помощью линейных пере- ключательных схем (ЛПС), при этом получаются относительно простые схемы кодеков, в чем состоит одно из практических достоинств ЦК.

Среди циклических кодов особое место занимает класс кодов, пред- ложенных Боузом и Чоудхури и независимо от них Хоквингемом. Коды Боуза–Чоудхури–Хоквингема получили сокращенное наименование БЧХ-коды.

БЧХ-коды являются обобщением кодов Хемминга на случай исправ- ления нескольких независимых ошибок (gи > 1). Частными случаями БЧХ-кодов являются коды Файра, предназначенные для обнаружения и

исправления серийных ошибок ("пачек" ошибок), код Голея – код, ис- правляющий одиночные, двойные и тройные ошибки (dmin= 7), коды Рида–Соломона (РС-коды), у которых символами кода являются много-

разрядные двоичные числа.

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

Циклические коды являются частным случаем систематических, ли- нейных [n, k]-кодов. Название ЦК получили из-за своего основного свой- ства: циклическая перестановка символов разрешенной кодовой ком- бинации дает также разрешенную кодовую комбинацию. При цикли- ческой перестановке символы кодового слова перемещаются слева на- право на одну позицию, причем крайний справа символ переносится на место крайнего левого.

Если, например А1–101100, то разрешенной кодовой комбинацией будет и А2– 010110, полученная циклической перестановкой. Отметим, что перестановка производится вместе с проверочными символами, и

по правилам линейных кодов сумма по модулю 2 двух разрешенных кодовых комбинаций дает также очередную разрешенную кодовую ком- бинацию.

Описание ЦК связано с представлением кодовых комбинаций в виде полиномов (многочленов) фиктивной переменной X. Для примера пе- реведем кодовое слово А1 = 101100 в полиномиальный вид

i

6

5

4

3

2

1

Код

1

0

1

1

0

0

При этом А1(X) = 1 X 5 + 0 X 4 + 1 X 3 + 1 X 2 + 0 X 1 + 0 X0 = X5 + X3 + X2. Действия с кодовыми векторами, представленными в виде полино- мов, производятся по правилам арифметики по модулю 2, в которой

вычитание равносильно сложению. Так, из равенства Хn – 1 = 0 получа- ем Хn = 1. Прибавив к левой и правой частям по единице, имеем Хn + 1 =

= 1  1= 0. Таким образом, вместо двучлена Хn – 1 можно ввести бином

Хn +1 или 1 + Хn, из чего следует, что Хk  Хk = Хk (1  1) = 0 и при последующих операциях с полиномами необходимо вычеркивать пары

фиктивных переменных X с одинаковыми степенями.

Приведем далее порядок суммирования (вычитания), умножения и деления полиномов с учетом того, что операция суммирования осуще- ствляется по модулю 2. В примерах используем вышеприведенные ко- довые комбинации А1(X) = X 5 + X 3 + X 2 и А2(X) = X 4 + X 2+ X.

Суммирование (вычитание):

А1 + А2 = А1 – А2 = X 5 + X 4 + X 3 + X2 + X 2 + X = X 5 + X 4 + X 3+ X

или А1 101100

А2 010110

111010 = X 5 + X 4 + X 3+ X.

Умножение:

А1  А2 = (X 5 + X 3 + X 2)  (X 4 + X 2+ X) = X 9 + X 7 + X 6+ X 7 + X 5 +

+ X 4 + X 6 + X 4 + X 3 = X9 + X 5 + X 3 = 1000101000.

Деление: A1

A

X 5 + X 3 + X 2 X 4 + X 2+ X

X 5 + X 3 + X 2 X

——————

0 0 0 – остаток при делении R(X) = 0.

Из последнего примера следует, что при циклическом сдвиге вправо на один разряд необходимо исходную кодовую комбинацию поделить на X, а умножение на X эквивалентно сдвигу влево на один символ.

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

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