10.5. Кодирование с использованием циклических кодов и математического аппарата умножения и деления полиномов. Сигнатурный анализ
Циклический код.
Циклический код обязан своим названием особенности: если некоторая кодовая комбинация принадлежит множеству разрешённых комбинаций, то и комбинация, полученная циклической перестановкой разрядов тоже принадлежит множеству разрешённых комбинаций.
Существует соответствующий математический аппарат умножения и деления полиномов, основным понятием которого является полином, например, третьей степени:
G(x3)=x3+x+1.
Циклические коды позволяют обнаружить не только одиночные, но и групповые ошибки. Такие коды используются при тестировании цифровой аппаратуры, чтобы обнаружить отказы в схемах и при криптографической защите информации.
Идея построения циклического кода основана на понятии неприводимого многочлена, который делится только на себя и на единицу:
G(x2)=x2+x+1;
G(x)=x+1;
G(x16)=x16+x9+x7+x4+1.
По существу, используется так называемое поле Галуа – алгебра с двумя операциями: умножением и сложением по модулю 2 (GF(2)).
Умножение полиномов.
Некоторый полином x3+1 можно записать в развёрнутой форме:
Здесь коэффициенты принимают значения из бинарного множества.
Умножение производится по правилам обычной алгебры, например:
(х3+1)х=х4+х, т.е. получили:
Это сдвиг на один разряд вправо.
С учетом использования операции сложения по модулю 2, одинаковые разряды при сложении уничтожаются.
Рассмотрим пример умножения информационного полинома А=х3+1 на порождающий (образующий) полином G=х3+х+1.
Аналитически процесс умножения можно представить так:
Процесс умножения в развернутом виде показан в табл. 66.
Таблица 66
Умножение A на образующий полином G
| х6 | х5 | х4 | х3 | х2 | х | 1 |
А1 |
|
|
| х3 |
|
| 1 |
Аx |
|
| х4 |
|
| х |
|
Аx3 | х6 |
|
| х3 |
|
|
|
АG | х6 |
| х4 |
|
| х | 1 |
Проведем умножение в двоичном коде:
х6пр х5пр х4пр х3пр х2пр хпр 1пр – порядок следования разрядов произведения (пр).
Получим уравнения для произведения многочленов, при условии, что множитель G «жестко задан», а полином А – любой, – степени три:
Амн=х3мн х2мн хмн 1мн – это переменные множимого (мн)-полинома
третьей степени.
G= 1 0 1 1 – множитель (образующий полином).
Процесс умножения в развернутом виде показан в табл. 67.
Таблица 67
|
0 х3мн |
0 х2мн |
х3мн 0 хмн | х3мн х2мн 0 1мн | х2мн хмн 0
| хмн 1мн
| 1мн |
|
х3мн |
х2мн |
х3мн Å хмн |
х3мн Åх2мн Å1мн |
х3мн Å хмн |
хмн Å1мн |
1мн |
х6пр х5пр х4пр х3пр х2пр хпр 1пр
Т.е. уравнения, описывающие значения разрядов произведения, в зависимости от значения разрядов множимого при условии «жестко заданного» множителя имеют вид:
Эти уравнения позволяют определить вид соответствующего устройства – умножителя полиномов, основанного на D-триггерах и элементах сложения по модулю 2.
Деление полиномов.
По аналогии с умножением вводится операция деления полиномов.
При делении необходима операция вычитания по модулю 2, однако результат этой операции совпадает с результатом суммы по модулю 2.
Например:
Здесь используется суммирование по модулю 2, поэтому х6+х6=0, аналогично х4+х4=0, х3+х3=0, х+х=0, 1+1=0.
Деление полиномов можно выполнять последовательными вычитаниями по модулю 2.
Можно показать, что если А – делимое (дл), G – делитель, то разряды частного (чст) определяются так:
1чст=х3длÅх5длÅх6дл
хчст=х4длÅх6дл
х2чст=х5дл
х3чст=х6дл
Остаток:
1ост=1длÅх3длÅх5длÅх6дл
хост=хдлÅх3длÅх4длÅх5дл
х2ост=х2длÅх4длÅх5длÅх6дл
Нулевой остаток указывает на отсутствие ошибки. Такие уравнения позволяют построить схемы – делители на образующий полином.
Принципы контроля передачи информации.
Принцип 1.
Перед передачей информации канал связи исходящего полинома умножается на образующий полином (AG = K).
В канале связи на произведение К воздействует вектор ошибок Е: КÅЕ=К*.
В приёмнике выполняется деление: К*/G=A*. Если остаток нулевой, то ошибки нет, и принятое слово А* – это достоверная информация, а если остаток не равен нулю, то информацию использовать нельзя.
По виду остатка можно определить и вид ошибки.
Принцип 2.
Передаётся сам полином и следом – остаток от деления его на образующий полином.
А||R, R=A/G, где || – операция конкатенации (соединения).
Потом остатки сравниваются, – если они равны, то информацию можно использовать далее.
Имеются циклические коды, которые позволяют обнаружить:
1) одиночные ошибки;
2) групповые ошибки.
Существуют коды БЧХ, Файра для обнаружения групповых ошибок [14].
Кодеры, декодеры, использующие эти принципы, применяются для записи информации на магнитные и оптические диски. Узлы умножения и деления полиномов широко используются при криптографической защите данных. Дело в том, что информация, умноженная на образующий полином, может быть расшифрована только, если злоумышленник знает этот полином.
Сигнатурный анализ.
Сигнатура в переводе с латинского – подпись, запись. Это некоторый код, получение которого позволяет судить о работоспособности цифровых схем.
Используется при анализе работоспособности цифровых схем.
Чтобы получить сигнатуру работоспособной схемы для заданного вида отказа, нужно последовательность ее выходных сигналов, представляющую некоторый полином, разделить на образующий полином. При этом получится некоторый остаток от деления, который гораздо короче выходного полинома схемы. Этот остаток и есть сигнатура, которая для работоспособной схемы одна, а для схемы с отказом – другая. Путем определения сигнатур с помощью устройств – сигнатурных анализаторов, использующих узлы умножения и деления полиномов, определяют место отказа. Такой принцип используется в микропроцессорах при проверке работоспособности схем управления после включения питания. Узел имеет отказ, если входная сигнатура правильная, а выходная нет.
- Содержание
- 6. Элементарные двоичные переключательные функции
- 7. Основные законы булевой алгебры и преобразование
- Приложение 2. Варианты контрольных заданий по дисциплине
- Предисловие
- Дискретная математика
- 1. Множества и алгебраические системы. Булевы алгебры
- 1.1. Основные понятия теории множеств
- 1.2. Основные операции над множествами
- 1.3. Декартово произведение множеств
- 1.4. Соответствия и функции
- 1.5. Отношения
- 1.6. Использование множеств в языке Паскаль
- 2. Элементы общей алгебры
- 2.1. Операции на множествах
- 2.2. Группа подстановок Галуа
- 2.3. Алгебра множеств (алгебра Кантора)
- 2.4. Алгебраические системы. Решетки
- 2.5. Задание множеств конституентами
- 2.6. Решение уравнений в алгебре множеств.
- 3. Элементы комбинаторики
- 3.1. Комбинаторные вычисления
- 3.2. Основные понятия комбинаторики
- 3.3. Размещения
- 3.4. Перестановки
- 3.5. Сочетания
- 3.6. Треугольник Паскаля.
- 3.7. Бином Ньютона
- 3.8. Решение комбинаторных уравнений
- 4. Основные понятия теории графов
- 4.1. Способы задания графов
- 4.2. Характеристики графов
- 4.3. Понятие о задачах на графах
- 4.4. Задача о Ханойской башне
- 5. Переключательные функции и способы их задания
- 5.1. Понятие о переключательных функциях
- 5.2. Двоичные переключательные функции и способы их задания
- 5.3. Основные бинарные логические операции
- 5.4. Понятие о переключательных схемах и технической реализации переключательных функций
- 5.5. Использование логических операций в теории графов
- 6. Элементарные двоичные переключательные функции и функциональная полнота систем переключательных функций
- 6.1. Элементарные переключательные функции одной переменной
- 6.2. Элементарные переключательные (логические) функции двух переменных
- 6.3. Функциональная полнота систем переключательных функций
- 6.4. Базисы представления переключательных функций
- 6.5. Пример анализа и определения свойств пф, заданной десятичным номером
- 7. Основные законы булевой алгебры и преобразование переключательных функций
- 7.1. Основные законы булевой алгебры переключательных функций
- 7.2. Равносильные преобразования. Упрощение формул алгебры переключательных функций
- 7.3. Преобразование форм представления переключательных функций
- 8. Минимизация переключательных функций
- 8.1. Цель минимизации переключательных функций
- 8.2. Основные понятия и определения, используемые при минимизации
- 8.3. Аналитические методы минимизации переключательных функций
- 8.4. Минимизация переключательных функций по картам Карно
- 8.5. Метод поразрядного сравнения рабочих и запрещенных наборов
- Минимизация переключательных функций на основе поразрядного сравнения рабочих и запрещенных восьмеричных наборов.
- 8.6. Минимизация переключательных функций, заданных в базисе {, и, не}
- 8.7. Минимизация систем переключательных функций
- 8.8. Минимизация переключательных функций методом неопределенных коэффициентов
- 9. Понятие об автомате и его математическом описании
- 9.1. Основные определения теории конечных автоматов
- 9.2. Описание конечных детерминированных автоматов
- 9.3. Понятие о технической интерпретации конечных автоматов
- 9.4. Синтез комбинационных автоматов в заданном базисе
- 9.5. Булева производная
- 9.6. Элементарные автоматы памяти на основе комбинационного автомата и задержки
- 9.7. Синтез автомата – распознавателя последовательности
- 10. Элементы теории кодирования
- 10.1. Понятие о кодировании
- 10.2. Системы счисления, как основа различных кодов
- 10.3. Понятие о помехоустойчивом кодировании
- 10.4. Кодирование по Хэммингу
- 10.5. Кодирование с использованием циклических кодов и математического аппарата умножения и деления полиномов. Сигнатурный анализ
- 10.6. Понятие о криптографической защите информации
- 10.7. Понятие о сжатии информации