Основы теории передачи информации


Неалгебраические методы декодирования циклических кодов - часть 2


тактов вводится в буферный регистр и одновременно с этим в (n-k)-разрядном сдвиговом регистре с обратными связями производится ее деление на порождающий полином g(x).

Через n тактов в буферном регистре оказывается принятое слово r , a в регистре синдрома — остаток от деления вектора ошибки на порождающий полином.

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

После этого синдромный и буферный регистры один раз циклически сдвигаются. Это реализует умножение S(x) на x и деление на g(x). Содержимое  ячеек  синдромного регистра теперь равно остатку от деления x×S(x) на g(x)

или синдрому ошибки x× е(x) mod (Хn + 1).

Если новый синдром совпадает с одним их табличных, то исправляется очередная ошибка и т.д. Через n тактов все позиции будут, таким образом, исправлены.

Рассмотрим работу декодера Меггитта для циклического (7,4)-кода, исправляющего одиночную ошибку. Схема декодера изображена на рис. 1.16.

Рис. 1.16

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

Полином  ошибки в старшем разряде для  (7,4)-кода  Хемминга  имеет  вид  е6 (x) =  x6, соответствующий  ему  синдромный  полином S6 (x) =  1 + x3 ( S = (101)), детектор ошибки настроен на это значение синдрома.

Пусть, например, передана последовательность U = (1001011), ей соответствует кодовый полином U(x) = 1 + x3 + x5 + x6. Произошла ошибка в третьей позиции е(x) = x3, принятый вектор имеет вид r = (1000011), его полином r(x) = 1 + x5 + x6.

Kогда принятая последовательность полностью входит в буферный регистр, в регистре синдрома оказывается  синдром, соответствующий ошибке  е(x) = x3 S3 = (110). Поскольку он не совпадает с табличным для е6, на выходе детектора ошибок будет 0 и исправления не происходит.




Начало  Назад  Вперед