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

3.4 Синдром циклического кода и его свойства

Синдром циклического кода, как и в любом систематическом коде, определяется суммой по модулю 2, принятых проверочных элементов и элементов проверочной группы, сформированных из принятых элементов информационной группы.

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

Для определения номеров элементов, в которых произошла ошибка, существует несколько методов. Один из них основан на свойстве, которое заключается в том, что R(x), полученный при делении принятого многочленаH(x) наPr(x), равенR(x), полученному в результате деления соответствующего многочлена ошибок E(x) наPr(x).

Многочлен ошибок Е(x)=А(x)+Н(x), где A(x) — исходный многочлен циклического кода. Так, если ошибка произошла вa1, то при коде (9.5) Е1(0,1)=100000000, ошибка вa2соответствует Е2(0,1)=010000000 и т. д. Остаток от деленияE(0,1) наPr(0,1)=10011=R1(0,1) дли данного 9-элементного кода всегда одинаков, он не зависит от вида передаваемой комбинации. В рассматриваемом примереR(0,1)=0101. Наличие ошибки в других элементах (a2,a3,...) приведет к другим остаткам. Остатки зависят только от видаPr(x) иn. Дляn=9 иP4(0,1)=10011 будет следующее соответствие:

Таблица 3.4 Соответствие элемента синдрому

Элемент с ошибкой

a1

а2

a3

а4

а5

Синдром

0101

1011

1100

0110

0011

Указанное однозначное соответствие можно использовать для определения места ошибки. Синдром не зависит от переданной кодовой комбинации, но в нем сосредоточена вся информация о наличии ошибок. Обнаружение и исправление ошибок в систематических кодах могут производиться только на основе анализа синдрома.

На основании приведенного свойства существует следующий метод определения места ошибки. Сначала находится остаток R1(0,1), соответствующий наличию ошибки в старшем разряде. Если ошибка произошла в следующем разряде (более низком), то такой же остаток получится в произведении принятого многочлена иx, т. е.H(x)x. Это служит основанием для приема, суть которого ясна из примера 3.12.

Пример 3.12.Предположим, задан код (11,7) в виде кодовой комбинации 10110111100. Здесь последние четыре разряда проверочные и получены на основе использования производящего многочленаP4(0,1)=10011. Принята кодовая комбинация 10111111100. Определить ошибочно принятый элемент.

Вычисляем R1(x) как остаток от деленияE1(0,1)=10000000000 на 10011. Произведя деление, получим 0111. Далее делим принятую комбинацию наPr(0,1) и получаем остатокR(0,1). ЕслиR(0,1)=R1(0,l), то ошибка в старшем разряде. Если нет, то дописываем нуль и продолжаем деление. Номер ошибочно принятого разряда (отсчет слева направо) на единицу больше числа приписанных нулей, после которых остаток окажется равным 0111. Проведем процесс деления, отмечая цифрой в круглых скобках получаемые остаткиR1(0,l),R2(0,1),R3(0,1),R4(0,1):

В данном примере для этого пришлось дописать четыре нуля. Это означает, что ошибка произошла в пятом элементе, т. е. исправленная кодовая комбинация будет иметь вид

A(0,1)=1011111110000001000000=1010111100.

Для нахождения и исправления ошибочных элементов в кодах с d0>5 получили распространение методы, основанные на анализе веса остатка. При этом осуществляются следующие процедуры:

  • принятая кодовая комбинация делится на Pr(x);

  • подсчитывается вес остатка (количество единиц в остатке);

  • если tи.ош(tи.ош— допустимое количество ошибок, которое исправляется кодом), то исправление сводится к сложению принятой кодовой комбинации с остатком;

  • если tи.ош, то производят циклический сдвиг принятой кодовой комбинации влево на один разряд, а затем делят ее наPr(x) и определяют вес остатка. Еслиtи.ош, то делимое суммируют с остатком, а затем производят циклический сдвиг на один элемент вправо. Это и будет исправленная кодовая комбинация;

  • если после первого сдвига остаток дает tи.ош, то повторяют операцию сдвига на один разряд влево, а затем деление и определение веса остатка производят до тех пор, пока не будет удовлетворяться условиеtи.ош.

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

Пример 3.13.Рассмотрим данную методику применительно кd0=3 иtи.ош=1,=2>1. Передано 1001110. Образующий полиномPr(x)=x3+x+1, ошибка произошла на позиции а4, т. е. принято 1000110. Определить номер элемента с ошибкой.

1. Находим R(0,1) от деления 1000110 наPr(0,1)=1011. Итак,R(0,1)=011.

2. Сдвигаем 1000110 влево на один разряд, имеем 0001101; а R(0,1)=110,=2>tи.ош.

3. Сдвигаем влево еще на разряд (всего на два), имеем 0011010; R(0,1)=111,=3>tи.ош.

4. Повторяем сдвиг (всего на три разряда), имеем 0110100, а R(0,1)=101,=2>tи.ош.

5. Делаем еще сдвиг (всего четыре разряда), при этом имеем 1101000. Тогда R(0,1)=001,=1=tи.ош.

6. Производим сложение сдвинутой кодовой комбинации с остатком. Имеем 1101000001=1101001.

7. Сдвигаем эту кодовую комбинацию вправо на четыре разряда и получаем исправленную кодовую комбинацию:

11010011110100011101000111011001110.