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

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

Синдром циклического кода, как и в любом систематическом коде, определяется суммой по модулю 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 и т. д.

Остаток от деления E1(0,1) на Pr(0,1)=10011 равный R1(0,1) для, например, заданного 9-элементного кода всегда одинаков, он не зависит от вида передаваемой комбинации.

В рассматриваемом примере R(0,1)=0101. Наличие ошибки в других элементах (a2,a3,...) приведет к другим остаткам. Остатки зависят только от вида Pr(x) и n. Для n=9 и Pr(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.