Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
12667_Теор.кодирования (контр. раб.).doc
Скачиваний:
143
Добавлен:
10.04.2015
Размер:
7 Мб
Скачать
☆

2.3.10. Декодирование циклических кодов

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

Подсчитывается вес остатка . Если он равен или меньше кратности исправляемых ошибок, т.е., то принятый КВ складывают по модулю 2 с остатком и получают исправленный КВ.

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

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

Пример

Предположим, что при передаче рассмотренного выше КВ произошло искажение 2-го разряда, т.е. принятый КВимеет вид:.

Решение

Согласно правилу, необходимо делить поступивший КВ на образующий многочлен и оценивать вес остатка.

Выполняем:

1

1

0

1

1

1

0

1

0

1

1

1

0

1

1

1

1

0

1

1

0

1

1

1

1

0

1

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

. Остаток не нулевой, следовательно, есть ошибка.

Вес – нужно осуществить циклический сдвиг принятой кодовой комбинации влево и повторить деление:

1)

1

1

0

1

1

1

0

1

0

1

1

1

0

1

1

0

1

1

1

0

1

1

1

0

1

. Опять, поэтому выполняем еще один циклический сдвиг влево и повторяем деление:

2)

1

0

1

1

1

0

1

0

1

1

1

0

1

1

1

0

1

1

1

0

1

1

1

0

1

1

1

0

1

1

0

0

1

. Здесь, поэтому складываем сдвинутую кодовую комбинацию с остатком по модулю 2:

0

1

1

1

0

1

1

0

0

1

0

1

1

1

0

1

0

Полученную после суммирования комбинацию циклически сдвигаем вправо на 2 такта:

0

1

1

1

0

1

0

– 1-ый сдвиг вправо

0

0

1

1

1

0

1

– 2-ой сдвиг вправо

1

0

0

1

1

1

0

Исправленная кодовая комбинация – 1001110.