- •1. Лекция: Предмет и основные разделы кибернетики
- •2. Лекция: Базовые понятия теории информации
- •Способы измерения информации
- •Упражнение 4 Какое из соотношений несет в себе больше информации или ? Вероятностный подход к измерению дискретной и непрерывной информации
- •3. Лекция: Смысл энтропии Шеннона
- •Семантическая информация
- •4. Лекция: Сжатие информации
- •Простейшие алгоритмы сжатия информации
- •5. Лекция: Арифметическое кодирование
- •Адаптивные алгоритмы сжатия. Кодирование Хаффмена
- •Адаптивное арифметическое кодирование
- •6. Лекция: Подстановочные или словарно-ориентированные алгоритмы сжатия информации. Методы Лемпела-Зива
- •Lz-алгоритмы распаковки данных. Примеры
- •Особенности программ-архиваторов
- •7. Лекция: Сжатие информации с потерями.
- •Информационный канал
- •Помехозащитное кодирование
- •8. Лекция: Математическая модель системы связи
- •Матричное кодирование
- •9. Лекция: Групповые коды
- •Совершенные и квазисовершенные коды
- •Полиномиальные коды
- •10. Лекция: Понятие о кодах Боуза-Чоудхури-Хоккенгема
Полиномиальные коды
При полиномиальном кодировании каждое сообщение отождествляется с многочленом, а само кодирование состоит в умножении на фиксированный многочлен. Полиномиальные коды - блочные и отличаются от рассмотренных ранее только алгоритмами кодирования и декодирования.
Пусть
-
двоичное сообщение. Тогда сопоставим
ему многочлен
.
Все вычисления происходят в поле классов
вычетов по модулю 2, т. е. от результата
любой арифметической операции берется
остаток от его деления на 2.
Например,
последовательности 10011 при
соответствует
многочлен
.
Зафиксируем
некоторый многочлен степени
,
![]()
Полиномиальный
код с
кодирующим многочленом
кодирует
слово сообщения
многочленом
или
кодовым словом из коэффициентов этого
многочлена
.
Условия
и
необходимы,
потому что в противном случае
и
не
будут нести никакой информации, т.к. они
всегда будут нулями.
Пример.
Рассмотрим кодирующий многочлен
.
Сообщение 01011, отвечающее многочлену
,
будет закодировано коэффициентами
многочлена
,
т.е.
.
Полиномиальный
код с кодирующим многочленом
степени
является
матричным кодом с кодирующей
матрицей
размерности
:

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

или
отображению:
;
;
;
;
;
;
;
.
Полиномиальные коды являются групповыми.
Это следует из того, что коды, получаемые матричным кодированием, - групповые.
Рассмотрим
-код
с кодирующим многочленом
.
Строка ошибок
останется
необнаруженной в том и только в том
случае, если соответствующий ей
многочлен
делится
на
.
Действительно,
делится
на
тогда
и только тогда, когда
делится
на
.
Поэтому любая ошибка, многочлен которой
не делится на
,
будет обнаружена и, соответственно,
любая ошибка, многочлен которой делится
на
,
не может быть обнаружена.
Таким
образом, обнаружение ошибки при
использовании полиномиального кода с
кодирующим многочленом
может
быть реализовано при помощи алгоритма
деления многочленов с остатком: если
остаток ненулевой, то при передаче
произошло искажение данных.
Коды
Хэмминга можно
строить как полиномиальные, например,
кодирующий многочлен
определяет
совершенный
-код,
отличный от рассмотренного ранее.
Вообще
же, если кодирующий многочлен
,
порождающий соответствующий
-код,
не является делителем ни одного из
многочленов вида
при
,
то минимальное расстояние между кодовыми
словами порожденного им кода не меньше
3.
Пусть
-
минимальное расстояние между кодовыми
словами, оно равно минимуму среди весов
ненулевых кодовых слов. Предположим
.
Тогда существует
такой,
что
и
степень
не
больше
.
Вес
равен
2, поэтому
и
.
Следовательно,
,
что означает, что
должен
делиться на
,
а это невозможно по условию. Если
предположить, что
,
то это приведет к утверждению о том,
что
должен
делиться на
,
что тоже противоречит условию. Итак,
.
Кодирующий
многочлен
определяет
совершенный
-код
Голея (Golay) с минимальным расстоянием
между кодовыми словами 7.
В 1971 году финскими и советскими математиками было доказано1), что кроме кодов Хэмминга и Голея других совершенных кодов нет.
Наиболее
интересными среди полиномиальных кодов
являются циклические
коды,
в которых вместе с любым кодовым словом
вида
есть
кодовое слово
.
Упражнение
43 По
кодирующему многочлену
построить
полиномиальные коды для двоичных
сообщений 0100, 10001101, 11110.
Упражнение 44 Принадлежат ли коду Голея кодовые слова 10000101011111010011111 и11000111011110010011111?
