Совершенные и квазисовершенные коды
Групповой -код, исправляющий все ошибки веса, не большего
, и никаких других, называется совершенным.
Свойства совершенного кода2:
Для совершенного -кода, исправляющего все ошибки веса, не большего
, выполняется соотношение
. Верно и обратное утверждение;
Совершенный код, исправляющий все ошибки веса, не большего , в столбцах таблицы декодирования содержит все слова, отстоящие от кодовых на расстоянии, не большем
. Верно и обратное утверждение;
Таблица декодирования совершенного кода, исправляющего все ошибки в не более чем позициях, имеет в качестве лидеров все строки, содержащие не более
единиц. Верно и обратное утверждение.
Совершенный код - это лучший код, обеспечивающий максимум минимального расстояния между кодовыми словами при минимуме длины кодовых слов. Совершенный код легко декодировать: каждому полученному слову однозначно ставится в соответствие ближайшее кодовое. Чисел ,
и
, удовлетворяющих условию совершенности кода очень мало. Но и при подобранных
,
и
совершенный код можно построить только в исключительных случаях.
Если ,
и
не удовлетворяют условию совершенности, то лучший групповой код, который им соответствует называется квазисовершенным, если он исправляет все ошибки кратности, не большей
, и некоторые ошибки кратности
. Квазисовершенных кодов также очень мало.
Двоичный блочный -код называется оптимальным, если он минимизирует вероятность ошибочного декодирования. Совершенный или квазисовершенный код - оптимален. Общий способ построения оптимальных кодов пока неизвестен.
Для любого целого положительного числа существует совершенный
-код, исправляющий одну ошибку, называемый кодом Хэмминга (Hamming), в котором
и
.
Действительно, .
Порядок построения кода Хэмминга следующий:
Выбираем целое положительное число . Сообщения будут словами длины
, а кодовые слова - длины
;
В каждом кодовом слове
бит с индексами-степенями двойки
- являются контрольными, остальные - в естественном порядке - битами сообщения. Например, если
, то биты
- контрольные, а
- из исходного сообщения;
Строится матрица из
строк и
столбцов. В
-ой строке стоят цифры двоичного представления числа
. Матрицы для r=2, 3 и 4 таковы:
Записывается система уравнений , где
- матрица из предыдущего пункта. Система состоит из
уравнений. Например, для
:
Чтобы закодировать сообщение , берутся в качестве
,
не равно степени двойки, соответствующие биты сообщения и отыскиваются, используя полученную систему уравнений, те
, для которых
- степень двойки. В каждое уравнение входит только одно
,
. В выписанной системе
входит в 1-е уравнение,
- во второе и
- в третье. В рассмотренном примере сообщение
будет закодировано кодовым словом
.
Декодирование кода Хэмминга проходит по следующей схеме. Пусть принято слово , где
- переданное кодовое слово, а
- строка ошибок. Так как
, то
. Если результат нулевой, как происходит при правильной передаче, считается, что ошибок не было. Если строка ошибок имеет единицу в
-й позиции, то результатом произведения
будет
-я строка матрицы
или двоичное представление числа
. В этом случае следует изменить символ в
-й позиции слова
, считая позиции слева, с единицы.
Пример. -код Хэмминга имеет в качестве одного из кодовых слов
. Матрица
приведена на шаге 3 хода построения кода Хэмминга. Ясно, что
. Добавим к
строку ошибок
. Тогда
и
, т.е. ошибка находится в третьей позиции. Если
, то
и позиция ошибки -
и т.п. Если ошибка допущена в более чем в одной позиции, то декодирование даст неверный результат.
Дата добавления: 2015-12-26; просмотров: 2341;