Задачи.
Линейный
-код
задан порождающей матрицей
.
Найдите проверочную матрицу. Определите
вес кода. Сколько ошибок обнаруживает
и сколько ошибок исправляет такой код?
Найдите разложение
в смежные классы по подгруппе
.
Выберите лидеры смежных классов. Ошибки
в каких разрядах могут быть исправлены?
1.
.
2.
.
3.
.
4.
Коды
и
называются эквивалентными, если
существует взаимно однозначное
отображение
,
сохраняющее расстояния между словами.
Какие из кодов в примерах 1 – 3 эквивалентны?
5. Линейный
-код
задан порождающей матрицей
.
Найдите проверочную матрицу. Определите вес кода. Сколько ошибок обнаруживает и сколько ошибок исправляет такой код?
2.2. Коды Хэмминга
Определение
1.
Максимальное
число точек пространства
,попарные
расстояния между которыми не меньше
,
обозначим
.
Предложение 1. Справедливо неравенство Хэмминга
.
Доказательство.
Число точек в шаре радиуса
равно
.
Действительно, если
– центр шара, то эта точка принадлежит
шару. Существует
точек, отстоящих от
на расстоянии 1, т.к. в
можно изменить одну координату
способами. Существует
точек, отстоящих от
на расстоянии 2, и т.д.
,
т.к. шары не пересекаются.
Определение
2.
Линейный
-код
веса
называется совершенным, если

.
Таким образом, для совершенного кода неравенство Хэмминга превращается в равенство.
Код
Хэмминга, исправляющий одну ошибку, это
линейный
-код,
где
(
– некоторое натуральное число).
Проверочная
матрица
этого кода имеет размеры
и представляет собой двоичную запись
натуральных чисел
,
расположенных по столбцам. Например,
для
.
Если
была допущена одна ошибка, и на приём
поступило слово
,
то вектор
будет представлять двоичную запись
разряда, в котором эта ошибка была
допущена.
Определение
3.
Отношение
для блочного
-кода
называется скоростью передачи.
Для
кода Хэмминга
при
.
Код
Хэмминга является совершенным (при
,
т.к.
,
а
– размерность пространства кодовых
слов.
Вес
кода Хэмминга
,
т.к. в проверочной матрице нет одинаковых
столбцов, т.е. любые два столбца линейно
независимы, и существуют 3 столбца,
которые линейно зависимы, например,
сумма первых двух столбцов равна
третьему.
Задачи.
Запишите
проверочную матрицу для
-кода
Хэмминга. Известно, что в принятом слове
допущена одна ошибка. Исправьте её.
1.
.
2.
.
3.
.
2.3. Циклические коды
Определение
1.
Линейный
-код
называется циклическим, если вместе с
вектором
он всегда содержит вектор
.
Каждому
кодовому слову
линейного
-кода
сопоставим многочлен
(над
).
Предложение
1.
Линейный
-код
является циклическим
множество соответствующих многочленов
образует идеал в кольце
.
Доказательство.
Пусть код
– циклический. Тогда множество
соответствующих многочленов образуют
абелеву группу
.
Если
,
то
.
Тогда
.
Поскольку
,
то
.
Следовательно,
– идеал.
Обратно,
если
– идеал,
,
,
то
,
т.е.
и, значит, код
– циклический.
Предложение доказано.
Определение
2.
Многочлен
наименьшей степени, порождающий идеал
многочленов циклического кода, будем
называть порождающим многочленом
циклического кода.
Теорема
1.
Пусть
–
порождающий многочлен циклического
кода
.
Тогда матрица

размера
является порождающей матрицей кода
.
Пусть
.
Тогда матрица

размера
– проверочная матрица кода. Размерность
кода совпадает со степенью
.
Доказательство.
Строки матрицы
линейно независимы, т.к.
.
Если
– многочлен кода
,
то
и
делится на
в обычном смысле. Пусть
,
где
.
Тогда
и
.
Значит, строки матрицы
действительно образуют базис кода
.
Умножим
-ю
строчку матрицы
на
-ю
строчку матрицы
;
.
Получим сумму вида
,
что
представляет собой коэффициент при
в произведении многочленов
,
причём
,
т.к. произведение последних строк будет
равно
,
т.е.
,
а произведение первых строк равно
,
т.е.
.
Теорема доказана.
Пример
1.
Многочлен
раскладывается на множители следующим
образом
.
Рассмотрим
циклический код с порождающим многочленом
.
Проверочный многочлен будет равен
.
В этом случае
,
.
Тогда порождающая матрица кода имеет
вид
.
Проверочная матрица будет такой
.
Поскольку
в матрице
нет одинаковых столбцов, любые два
столбца линейно независимы. Сумма
первого, второго и четвёртого столбцов
равна нулю, поэтому существуют три
столбца, которые линейно зависимы.
Следовательно, вес кода равен 3 и поэтому
этот код исправляет одну ошибку.
Рассмотрим процедуру кодирования и
декодирования. Поскольку мы имеем дело
с
-кодом,
при кодировании слова длиной 4 преобразуются
в слова длины 7. Рассмотрим слово
.
Ему соответствует кодовый многочлен
.
Кодирование состоит в умножении на
порождающий многочлен.
.
Допустим,
в процессе передачи произошла одна
ошибка и на приёме вместо многочлена
мы получили
.
Чтобы иметь возможность исправлять
одну ошибку нужно составить таблицу
синдромов ошибок. Выражение
будем называть локатором ошибки. Синдром
ошибки получается при умножении локатора
ошибки на проверочный многочлен (все
умножения производятся в фактор-кольце
).
В результате получается следующая
таблица синдромов ошибок
|
Локатор |
Синдром |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Умножая
полученный многочлен
на
получим

Далее
по таблице находим локатор ошибки
.
Исправленный многочлен
.
Процесс декодирования завершается
делением многочлена
на
.
Так выглядит процесс кодирования и
декодирования для циклических кодов.













