Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
#02 Учебное пособие СДО МТИ(ВТУ).doc
Скачиваний:
34
Добавлен:
01.07.2025
Размер:
3.62 Mб
Скачать

Расстояние Хемминга

Американский математик Хемминг исследовал, от чего зависит данный код, будет ли он обнаруживать ошибки и когда может их исправлять. Интуитивно ясно, что это зависит от того, как разнесены между собой кодовые слова и сколько ошибок может появиться в передаваемом слове. M ы сейчас формализуем следующую идею. При кодировании надо согласовывать число возможных ошибок в передаваемом слове так, чтобы при изменении передаваемого кодового слова оно оставалось более близким к исходному кодовому слову, чем к любому другому кодовому слову.

Определение 13.1. Рассмотрим на множестве всех двоичных слов в алфавите В = {0,1} длины т расстояние d ( x , у ), которое равно числу несовпадающих позиций этих слов. Например, Для слов х = 011101, у = 101010 расстояние равно d ( x ,  y ) = 5. Это расстояние носит название расстояние Хемминга .

Можно показать, что расстояние Хемминга удовлетворяет аксиомам метрического пространства:

1)   d ( x , у ) ≥ 0, d ( x , у ) = 0 тогда и только тогда, когда х = у;

2)   d ( x y ) = d ( y x );

3)   d ( x , у ) ≤ d ( x , z ) + d ( z , у ) — неравенство треугольника.

Теорема 13.1 (об обнаруживающем коде ). Код является обнаруживающим в случае, когда в передаваемом слове имеется не более чем k ошибок, тогда и только тогда, когда наименьшее расстояние между кодовыми словами

d ( b 1 ,  b 2 ) ≥ k + 1.

Теорема 13.2 (об исправляющем коде .). Код является исправляющим все ошибки в случае, когда в передаваемом слове имеется не более k ошибок, тогда и только тогда, когда наименьшее расстояние между кодовыми словами

d ( b 1 ,  b 2 ) ≥ 2k + 1.

Доказательство . Доказательства этих теорем аналогичны. Поэтому докажем только последнюю теорему.

Достаточность . Пусть для любых кодовых слов имеем d ( b 1 ,  b 2 ) ≥ 2k + 1. Если при передаче кодового слова b 1 произошло не более k ошибок, то для принятого слова с имеем d ( b 1 ,  c ) ≤ k . Но из неравенства треугольника для любого другого кодового слова b 2 имеем d ( b 1 , с ) + d ( c , b 2 ) ≥ d ( b 1 , b 2 ) ≥ 2 k + 1. Следовательно, от принятого слова до любого другого кодового слова расстояние d ( c , b 2 ) ≥ k + 1, т. е. больше, чем до b 1 . Поэтому по принятому слову с можно однозначно найти ближайшее кодовое слово b 1 и далее декодировать его.

Необходимость . От противного. Предположим, что минимальное расстояние между кодовыми словами меньше, чем 2 k + 1. Тогда найдутся два кодовых слова, расстояние между которыми будет d ( b 1 ,  b 2 ) ≤ 2 k . Пусть при передаче слова b 1 принятое слово с находится на отрезке между словами b 1 , b 2 и имеет ровно k ошибок. Тогда d ( c ,  b 1 ) = k ,  d ( c ,  b 2 ) = d ( b 1 ,  b 2 ) – d ( c ,  b 1 ) ≤ k . Тем самым по слову с нельзя однозначно восстановить кодовое слово, которое было передано, b 1 или b 2 . Пришли к противоречию.

Пример 13 .3 . Рассмотрим следующие пятиразрядные коды слов длиной 2 в алфавите В = {0,1}:

b 1 = K (00) = 00000,      b 2 = K (01) = 01011,

b 3 = K (10) = 10101,      b 4 = k (11) =11110.

Минимальное расстояние между различными кодовыми словами равно d ( bi ,  bj ) = 3. В силу первой теоремы об обнаруживающем коде, этот код способен обнаруживать не более двух ошибок в слове. В силу второй теоремы, код способен исправлять не более одной ошибки в слове.