Реализация декодирующего устройства, исправляющего одиночные и двойные смежные ошибки с двумя схемами деления
Рассмотрим все на примере кода (7; 3).
Образующий многочлен, исправляющий одиночные и двойные смежные ошибки, получается путем умножения образующего многочлена, исправляющего одиночные ошибки на (x 1) (см. 6.3.6.). Если у нас в предыдущем примере многочленом, исправляющим одиночные ошибки, был g(x) = x3 x2 1, то в качестве многочлена, исправляющего одиночные и двойные смежные ошибки, выбираем многочлен:
Если количество проверочных символов увеличилось до m = 4, то, если мы хотим оставить n = 7, количество информационных символов сократилось до k = 3.
Пусть ai(x) = 101, тогда
В линии связи подействовала помеха . Из линии связи получили ƒi*(x) = 1000100.
Требуется построить Д.У., исправляющее одиночные и двойные смежные ошибки.
Решение
Последовательность действий та же, что и в случае исправления одиночных ошибок.
1. Выберем схему деления. Пусть это будет схема деления с m-ного такта, то есть g(x) = 10111; имеем:
Рис. 6.14. Схема деления с m-ного такта
2. Определим остатки, на которые необходимо настроить схемы распознавания ошибок. Этих остатков должно быть два: один для ошибки и второй для ошибки (двойной смежной ошибки в старших разрядах). Пока одиночная ошибка будет двигаться по схеме деления до ячейки x3, никакого деления не будет, то есть
А с пятого такта включится обратная связь и будет деление:
Для двойной смежной ошибки получим аналогичным образом:
Итак, для исправления двойной смежной ошибки необходимо находить остаток 0101, а для одиночной ошибки – 1011. Если бы построили схему деления с первого такта, то остатки были бы другими: 1000 и 1100.
1. Спроектируем схемы распознавания остатков с минимизацией затрат.
Для исправления одиночной ошибки:
Рис. 6.15
Для исправления двойной смежной ошибки:
Рис. 6.16
2. Особо следует рассмотреть возможность коррекции схемы деления 2. Когда будет исправлена первая из двух смежных ошибок, то в схеме деления 2 остаток из 0101 должен перейти в остаток для исправления одиночной ошибки, то есть в 1011, а затем он должен перейти в 0000.
Рис. 6.17
Работа идет корректно.
3. Нарисуем общую схему Д.У.:
Рис. 6.18. Общая схема Д.У.
4. Приведем таблицу потактовой работы декодирующего устройства.
Таблица 6.7
1 |
1 |
1 |
0 |
0 |
0 |
– |
Шло заполнение схемы деления, т.к. в x3 был всегда ноль |
2 |
0 |
0 |
1 |
0 |
0 |
– |
3 |
0 |
0 |
0 |
1 |
0 |
– |
4 |
0 |
0 |
0 |
0 |
1 |
– |
5 |
1 |
0 |
1 |
1 |
0 |
– |
Шло потактовое деление в схеме деления 1. На 7 такте перезапись остатка в схему деления 2. |
6 |
0 |
0 |
0 |
1 |
1 |
– |
7 |
0 |
1 |
1 |
1 |
1 |
– |
8 |
– |
0 |
0 |
1 |
1 |
1 |
Начало выхода информации из регистра |
9 |
– |
1 |
0 |
1 |
0 |
0 |
Остаток соответствующий 2-ой смежной ошибке |
10 |
– |
1 |
1 |
0 |
1 |
1 |
Коррекция ошибки и остатка |
11 |
– |
0 |
0 |
0 |
0 |
1 |
Коррекция 2-ой ошибки и остатка |
12 |
– |
0 |
0 |
0 |
0 |
1 |
|
13 |
– |
0 |
0 |
0 |
0 |
0 |
|
14 |
– |
0 |
0 |
0 |
0 |
0 |
|
В таблице 9 получен требуемый результат.
Примечание. Не всегда коррекция остатка проходит так удачно: из остатка двойной смежной ошибки получается остаток для одиночной ошибки, а он превращается в ноль. http://peredacha-informacii.ru/ Для более сложных случаев возможно следующее решение:
Рис. 6.19
Таким образом, происходит исправление двух ошибок подряд, если ошибки смежные, и одной ошибки, если смежных нет.
|