Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекц_изм.doc
Скачиваний:
28
Добавлен:
21.07.2019
Размер:
8.55 Mб
Скачать

5.2.4Код Хэмминга

Код Хэмминга относится к линейным систематическим корректирующим кодам с проверкой на четность. Этот код строится путем добавления к « » информационным символам, образующим кодовую комбинацию, проверочных символов. Проверочные элементы получаются по результатам проверки на четность групп символов. Так, если к последовательности двоичных символов добавляется двоичный символ так, что последовательность содержит четное число единиц, то говорят: - определяется проверкой на четность.

В основу построения кода Хэмминга положены следующие правила:

При кодировании к информационным двоичным символам путем проверок на четность добавляется проверочных двоичных символов (во всей группе, включая проверочный, число единиц всегда четно, каждая проверка охватывает определенную группу символов).

При декодировании проверяются на четность те же группы. Если число единиц в группе четно, то результат проверки - принимается равным «0», в противном случае – «1» (произошла ошибка). Если проверка дала в результате «1», то это означает, что исказился один из символов, входящий в -ю группу.

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

Это требование позволяет определить число необходимых проверочных разрядов. Число элементов в коде - , число разрядов двоичного числа, которое указывает номер искаженного элемента - , следовательно, ; . Иначе, при передаче может быть искажен любой символ (п) или искажений нет (1) – столько вариантов надо различать с помощью проверок.

;

; .

Найдем правило, согласно которому определяется состав проверочных групп. Мы потребовали, чтобы число указывало двоичный номер искаженного символа. «1» в -ом разряде этого числа указывает на то, что исказился символ, двоичный номер которого содержит «1» в -ом разряде. Значит, проверка, в результате которой получается , должна охватывать все символы, порядковые двоичные номера которых содержат «1» в -ом разряде.

Удобно, чтобы проверочный элемент, при этом, входил только в одну из групп проверок. В противном случае получится дополнительная неопределенность.

Таким образом, контролирует разряды -разрядного числа 1, 3, 5, 7, 9,…

: 2, 3; 6, 7; 10, 11; 14, 15

: 4, 5, 6, 7, 12, 13, 14, 15,…

: 8, 9, 10, 11, 12, 13, 14, 15; и т.д.

Элементы, входящие в каждую из проверочных групп только один раз, имеют номера 1, 2, 4, 8, 16, 32 и т.д. их мы и выбираем в качестве контрольных.

Процедуру кодирования – декодирования кодом Хэмминга проиллюстрируем примером.

Пусть . Тогда, согласно ; , получим .

двоичные символы

а1

а2

а3

а4

а5

а6

а7

а8

а9

итог кодирования

0

0

1

1

0_

1

0

1

1

Пусть хотим передать сообщение 10101. Записываем его в позициях информационных разрядов: .

Находим значения контрольных символов.

1.

2.

3.

4.

Получим: 001101011

Пусть в канале при передаче исказился седьмой символ и принято сообщение 001101111.

Определим номер искаженного символа и декодируем сообщение.

Определили номер искаженного символа и инвертируем его (символ), т.е. передавалось: 10101.

Если получим , это говорит об отсутствии ошибок. Если точнее на отсутствие одиночных ошибок; с двойными, тройными и более высокой кратности ошибками этот код бороться не может.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]