Краткие теоретические сведения. Циклические коды являются наиболее распространенными из систематических кодов
Циклические коды являются наиболее распространенными из систематических кодов. Это обусловлено их высокими корректирующими свойствами и сравнительно простой реализацией кодирующих и декодирующих устройств. Формальное представление циклических кодов, как и любых других чисел в произвольной системе счисления, описывается многочленами фиктивной переменной х где х – основание системы счисления;
до х – 1. Переход от записи двоичного числа к записи в виде многочлена осуществляется следующим образом:
С многочленами, представляющими циклические коды, можно производить все основные алгебраические операции (сложение, умножение, деление). Однако сложение производится по модулю 2, например, если сложить два многочлена (полинома):
Важно отметить, что в результате алгебраических действий над циклическими кодами, степень полученных полиномов не должна превосходить степени исходных полиномов [ ]. Основным свойством циклических кодов, определившим их название, является то, что циклический сдвиг элементов кодового слова на один элемент влево также образует разрешенную комбинацию. Данный циклический сдвиг алгебраически эквивалентен умножению ее на многочлен х. Т.к. степень многочлена n -элементной комбинации не должна превышать n - 1, то
т.е.
или в численном выражении Таким образом, заменяя Среди общего количества комбинаций (n - 1)-разрядного полинома, равного Идея построения циклического кода сводится к тому, что полином, представляющий информационную часть кодовой комбинации разрядностью k преобразуется на передающем конце (умножением на образующий полином) в полином степени n - 1, который при безошибочной передаче по каналу связи делится без остатка на образующий полином на приемном конце системы передачи дискретных сообщений. Образующий полином циклического кода должен удовлетворять двум условиям: 1) Полиномы 2) Двучлен вида Поскольку неприводимый полином не может быть представлен в виде произведения многочленов низших степеней, то проверить это можно простой подстановкой в него корней х = 1 и х = 0. Например, при r = 3
Если Для того, чтобы код а
а
Левая часть выражения делится на Обнаружение ошибок в циклическом коде производится делением принятой кодовой комбинации на порождающий полином (вид его должен быть известен на приеме). Остаток от деления R(x) играет роль синдрома. Если R(x) Возможность исправления одиночной ошибки связана с выбором образующего полинома. Поскольку вид синдрома зависит от места, где произошла ошибка, то для определения ее местоположения необходимо, чтобы разрядность синдрома (остатка деления) позволила идентифицировать ошибку в каждом из n разрядов передаваемого числа. Остаток от деления – синдром циклического кода, не равный нулю, – свидетельствует о наличии ошибки. В кодах с образующим полиномом степени r остаток представляется в виде полинома, максимальная степень которого r. Это означает, что количество различных ненулевых остатков может быть Таким образом, для исправления ошибок необходимо обеспечить условие, при котором количество различных ненулевых остатков будет равно количеству элементов n (при исправлении одной ошибки) или числу сочетаний из n по Не все неприводимые многочлены позволяют формировать
В таблицах справочников и учебников, посвященных циклическим кодам, приводятся обычно только примитивные полиномы. Итак, разрешенную кодовую комбинацию циклического кода можно получить умножением исходной кодовой комбинации С(х) на образующий полином
или в алгебраической форме
Отсюда видно, что в полученной комбинации нельзя выделить информационные разряды. Поэтому на практике применяется другой способ образования циклического кода: 1) представляем информационную часть кодовой комбинации длиной k в виде полинома Q(x); 2) умножаем Q(x) на одночлен 3) делим многочлен
При делении получается полином С(х) такой же степени, что и Q(x) и остаток R(x) от деления Умножив обе части выражения на
или Знак вычитания заменяется знаком сложения по модулю 2. Очевидно, что выражение Таким образом, можно вместо передачи по дискретному каналу связи циклического кода, образованного умножением исходной кодовой комбинации Q (x) на образующий полином Для ранее приведенного примера согласно описанному алгоритму имеем:
1) 2) Умножаем Q (x) на
3) Делим Q (x)× Отсюда 4) Получаем
что соответствует кодовой комбинации На приеме (при безошибочной передаче) снова делим полученную комбинацию на Остаток равен нулю, значит, принятая комбинация, сочетающая в себе k информационных и r проверочных разрядов, принята верно и информационные разряды могут быть сразу переданы получателю сообщений.
4.2. Практическая программа: 1) запустить на персональный компьютере в составе локальной вычислительной сети (Рис.1) программу перехватывателя пакетов Ethreal; 2 Рис.1 Структурная схема локальной сети кафедры телекоммуникационных систем УГАТУ
2) настроить программу Ethreal на перехват данных; 3) запустить броузер “Internet Explorer”; 4) активизировать функцию перехвата данных; 5) найти в составе принятого кадра 2 уровня сети Ethernet проверочную FCS комбинацию IP заголовка; 6) вычислить контрольную сумму IP заголовка посредством суммирования шестнадцатиразрядных слов, кодирующих поля от «версии» до «IP адреса назначения», с переносом в младший разряд и суммированием с ним, цифры переноса, выходящей за пределы шестнадцати разрядов и сравнить полученный остаток с найденным в п.5 значением FCS; 7) повторить пп.5 и 6 для двух других принятых кадров.
Список литературы
1.. Телекоммуникационные системы и сети:: уч.пособие для вузов. Под ред. В.П. Шувалова. Т.1, Т.2. М.: Горячая линия-Телеком. 2005 2. Галкин В.А., Григорьев Ю.А. «Телекоммуникации и сети». М. Издательство МГТУ им.Н.Э.Баумана. 2003 г. 3. Шувалов В.П. и др. «Передача дискретных сообщений». М. Радио и связь. 1990 г.
|