- •Исследование свойств циклических кодов
- •Исследование свойств циклических кодов
- •1. Цель работы
- •2. Индивидуальное задание
- •3. Описание программы
- •4. Описание функциональной схемы
- •5. Лабораторное задание
- •6. Методические указания по выполнению работы
- •6.1 Проверка работы кодера
- •6.2 Проверка правильности декодирования при отсутствии ошибок
- •6.3. Методика исследования способности кода исправлять ошибки
- •6.4. Методика проверки ошибочного декодирования в режиме исправления ошибок.
- •Список литературы
- •8. Контрольные вопросы
4. Описание функциональной схемы
Функциональная схема лабораторного макета приведена на рис. 1. Информационное слово длиной четыре разряда (k=4) задается нажатием кнопок на панели Источник.
Кодер формирует кодовую комбинацию разделимого циклического кода (7,4) путём добавления к четырём информационным разрядам трёх проверочных разрядов. Проверочные разряды образуются в результате умножения на X3 , и деления получившейся комбинации на образующий полином 1011 ( g(x)=X3+X+1).
Остаток от деления будет представлять проверочные разряды, которые приписываются справа от информационных.
Кодер выдает кодовое слово V длиной n = 7, соответствующее информационному слову M длиной k = 4, поданному на вход кодера.
Семиразрядная кодовая комбинация (вектор V) с выхода кодера подаётся на вход канала. В канале передаваемая кодовая комбинация складывается с семиразрядным вектором ошибки E. Сложение производится поразрядно по модулю 2 (00=0, 01=1, 10=1, 11=0).
Например, если комбинация на входе канала равна 1011000 ,
а вектор ошибки равен 0010001,
то комбинация на выходе канала будет равна 1001001.
Таким образом, единица в i-том разряде в векторе ошибки приводит к ошибке (инверсии) i-того разряда в кодовой комбинации на выходе канала.
Вектор ошибки задаётся на панели Источник ошибок. Там же имеются кнопки для циклического сдвига вектора ошибки и для его инверсии.
С выхода канала принятая кодовая комбинация подаются на входы декодеров.
Декодер 1 работает в режиме исправления ошибок. Если ошибок нет или вектор ошибок принадлежит к векторам ошибок, исправляемых кодом, то сигнал на выходе декодера 1, совпадает с сигналом на входе кодера (выходе источника).
Если сигнал на выходе декодера 1 не совпадает с входным сигналом, поступающим на вход кодера, значит, произошло ошибочное декодирование.
Это соответствует появлению вектора ошибок, который код, используемый в системе, исправить не может. Код (7,4) исправляет все одиночные ошибки.
Исправление одиночной ошибки производится следующим образом:
принятая 7-ми разрядная комбинация делится на образующий полином;
если остаток от деления (синдром ошибки) не равен нулю, то по таблице соответствия ‘вектор ошибки – синдром’ определяется вектор ошибки, которому соответствует данный синдром;
принятая 7-ми разрядная комбинация складывается по модулю 2 с найденным вектором ошибки.
Декодер 2 работает в режиме обнаружения ошибок.
Если декодером 2 обнаружена ошибка, то декодер формирует сигнал ‘обнаружена ошибка’ кодовая комбинация при этом не выдаётся (высвечивается ? ? ? ? ). Если вектор ошибок принадлежит к не обнаруживаемым заданным кодом векторам ошибок, сигнал на выходе декодера 2 будет отличным от сигнала, поданного на вход кодера.
Декодер 2 не может обнаружить вектора ошибок, которые совпадают с разрешенными кодовыми комбинациями. Это следует из свойства линейного кода: ‘сумма двух кодовых слов является тоже кодовым словом’.