Главная > Помехоустойчивое кодирование > Коды, исправляющие ошибки
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

13.4. Реальное осуществление AN- и (AN+B)-кодов

Если речь идет о вычислительных машинах, то, очевидно, кодирование в случае -кода сводится к умножению подлежащего кодированию числа на А и прибавлению к произведению числа В. Чтобы произвести декодирование, можно просто вычесть В из полученного кодового числа и результат разделить на А. Появление ненулевого остатка указывает на то, что произошла ошибка. Величина остатка характеризует величину ошибки, которая равна разности между полученным кодовым числом и тем кодовым числом, передача которого кажется наиболее правдоподобной (см. теорему 13.2 и задачу 13.1). Обращение к таблице, в которой для каждого возможного остатка перечисляются соответствующие значения ошибок, является обычно наиболее удобным способом исправления ошибок при работе самой вычислительной машины.

Исправление ошибок AN-кодом "без потерь", т. е. кодом, удовлетворяющим условиям теоремы 13.3, может быть проведено способом, аналогичным описанному в разд. 8.7 способу исправления ошибок для циклического кода Хэмминга. Первый шаг состоит в

построении регистра, сдвиг которого эквивалентен умножению на 2 по модулю А. Такое устройство для изображено на рис. 13.1. Если в результате сдвига содержимое регистра сдвига должно принять значение 19 или больше, т. е. с ели содержимое регистра сдвига равно 10 или большему числу или равно 9, но на вход регистра подана 1, то одновременно со сдвигом из содержимого регистра сдвига необходимо вычесть 19. Вычитание числа 19 эквивалентно прибавлению в -значном двоичном сумматоре.

Рис. 13.1. Регистр сдвига со сдвигом, эквивалентным умножению на 2 по модулю 19.

Если после "проверки на наличие 10 или большего числа" на выходе логического устройства появилась 1, то одновременно со сдвигом к содержимому регистра сдвига прибавляется 13, или в двоичной записи.

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

Исправление ошибок может быть завершено путем сдвигов регистра без подачи каких-либо данных на вход до тех пор, пока в регистре сдвига не появится или появляется как или в двоичной записи 10010). При этом нужно следить за числом требуемых сдвигов. Если ошибка появилась в разряде, то ее величина равна Так как 2 — примитивный элемент по модулю 19, то , и, следовательно, если ошибка равна то —1 появляется в регистре сдвига после сдвигов. Если ошибка равна то после сдвигов в регистре появляется Таким образом, положение ошибки может быть определено по числу сдвигов, а будет ли ошибка равна V или определяется тем, +1 или — 1 появилась первой в регистре сдвига. Что касается

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

<< Предыдущий параграф Следующий параграф >>
Оглавление