Групповые коды
Полиномиальные коды
При полиномиальном кодировании каждое сообщение отождествляется с многочленом, а само кодирование состоит в умножении на фиксированный многочлен. Полиномиальные коды - блочные и отличаются от рассмотренных ранее только алгоритмами кодирования и декодирования.
Пусть - двоичное сообщение. Тогда
сопоставим ему многочлен
. Все вычисления
происходят в поле классов вычетов по модулю 2, т. е. от результата любой
арифметической операции берется остаток от его деления на 2.
Например, последовательности 10011 при соответствует
многочлен
.
Зафиксируем некоторый многочлен степени ,









Пример. Рассмотрим кодирующий многочлен .
Сообщение 01011, отвечающее многочлену
, будет закодировано
коэффициентами многочлена
, т.е.
.
Полиномиальный код с кодирующим многочленом степени
является матричным кодом с кодирующей матрицей
размерности
:




Например, -код с кодирующим многочленом
отвечает матрице









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