Декодирование циклических кодов
Декодирование циклических кодов проводится путем деления принятого КВ на образующий многочлен. Если ошибки нет, то деление выполняется без остатка. Появление остатка сигнализирует об ошибке, исправление которой осуществляется в следующей последовательности.
Подсчитывается вес остатка . Если он равен или меньше кратности исправляемых ошибок, т.е. , то принятый КВ складывают по модулю 2 с остатком и получают исправленный КВ.
Если , то производится циклический сдвиг на один символ влево и полученный после такого сдвига КВ снова делится на образующий многочлен. Если вес полученного остатка , то циклически сдвинутую комбинацию складывают с остатком и полученный КВ циклически сдвигают в обратную сторону. В результате на исходной позиции получают исправленный КВ.
Если после первого сдвига и последующего деления на вновь оказывается , делается еще один сдвиг влево, снова проверяют остаток и так до тех пор, пока не окажется . После сложения сдвинутой комбинации с остатком осуществляется ее сдвиг в обратную сторону на столько шагов, сколько их было сделано до получения требуемого остатка.
Пример
Предположим, что при передаче рассмотренного выше КВ произошло искажение 2-го разряда, т.е. принятый КВ имеет вид: .
Решение
Согласно правилу, необходимо делить поступивший КВ на образующий многочлен и оценивать вес остатка.
Выполняем:
. Остаток не нулевой, следовательно, есть ошибка.
Вес – нужно осуществить циклический сдвиг принятой кодовой комбинации влево и повторить деление:
1) | |||||||||||||||||||||
. Опять , поэтому выполняем еще один циклический сдвиг влево и повторяем деление:
2) | |||||||||||||||||||||
. Здесь , поэтому складываем сдвинутую кодовую комбинацию с остатком по модулю 2:
Полученную после суммирования комбинацию циклически сдвигаем вправо на 2 такта:
– 1-ый сдвиг вправо | |||||||
– 2-ой сдвиг вправо | |||||||
Исправленная кодовая комбинация – 1001110.
Дата добавления: 2019-02-08; просмотров: 633;