Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
84
Добавлен:
31.01.2021
Размер:
731.14 Кб
Скачать

6.3 Коды Хэмминга

Коды Хэмминга позволяют исправлять одиночную ошибку с помощью непо­средственного описания. Для каждого числа проверочных символов существует классический код Хэмминга с маркировкой

, (13,18)

т.е. — (7,4), (15, 11), (31, 26) ...

При других значениях числа информационных символов т получаются так называемые усеченные (или укороченные) коды Хэмминга. Так, для международ­ного телеграфного кода МТК-2, имеющего 5 информационных символов, по­требуется использование корректирующего кода (9,5), являющегося усеченным от классического кода Хэмминга (15,11), так как число символов в этом коде уменьшается (укорачивается) на 6. Для примера рассмотрим код Хэмминга (7,4).

В простейшем варианте при заданных четырех (т=4) информационных символах будем полагать, что они сгруппированы в начале кодового слова, хотя это и не обязательно. Дополним эти информационные символы тремя проверочными символами ( ), задавая их следующими равенствами проверки на четность, которые определяются соответствующими алгоритмами. Известно, что кодовое расстояние равно минимальному числу проверок, в которые входит информационный символ, плюс 1. В рассматриваемом коде . Следовательно, каждый информационный символ должен входить минимум в две проверки. Определим правило формирования проверочных символов следующим образом:

(6.20)

В соответствии с этим алгоритмом определения значений проверочных символов в табл. 6.2 приведены все возможные 16 кодовых слов кода Хэмминга (7,4).

Таблица 6.2

0

0

0

0

0

0

0

0

0

0

1

0

1

1

0

0

1

0

1

1

0

0

0

1

1

1

0

1

0

1

0

0

1

1

1

0

1

0

1

1

0

0

0

1

1

0

0

0

1

0

1

1

1

0

1

0

1

0

0

0

1

0

1

1

0

0

1

1

1

0

1

0

1

0

0

1

1

1

0

1

1

0

0

0

1

1

0

0

0

1

0

1

1

0

1

0

0

1

1

1

1

0

1

0

0

1

1

1

1

1

1

1

Составим производящую матрицу в канонической форме

или .

Таблица 6.3

9

1

0

0

0

1

0

1

5

0

1

0

0

1

1

1

3

0

0

1

0

1

1

0

2

0

0

0

1

0

1

1

,

Составим проверочную матрицу

.

Транспонированная проверочная матрица будет иметь вид

.

Предположим, что на вход декодера для (7,4)-кода Хэмминга поступает кодовое слово

.

Апостроф означает, что любой символ слова может быть искажен помехой в канале связи и возникает ошибка .

В декодере в режиме исправления ошибок строится последовательность:

(6.21)

где – результат декодирования (синдром), который в данном случае является трехсимвольным.

Символы синдрома можно так же получить с использованием следующей процедуры

(6.22)

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

Число возможных синдромов определяется выражением

. (6.23)

При числе проверочных символов имеется восемь возможных синдромов (23 = 8). Нулевой синдром (000) указывает на то, что ошибки при приеме от­сутствуют или не обнаружены. Всякому ненулевому синдрому соответствует определенная конфигурация ошибок, которая и исправляется. Классические коды Хэмминга (6.18) имеют число синдромов, точно равное их необходимому числу, позволяют исправить все однократные ошибки в любом информативном и проверочном символах и включают один нулевой синдром. Такие коды называются плотноупакованными.

Для рассматриваемого кода (7,4) в табл. 6.4 представлены ненулевые синд­ромы и соответствующие конфигурации ошибок.

Таблица 6.4

Синдром

001

010

011

100

101

110

111

Конфи-гурация ошибок

0000001

0000010

0001000

0000100

1000000

0010000

0100000

Ошиб-

ка в символе

Для определения и исправления искаженного разряда можно использовать матрицу одиночных ошибок, состоящую из единичной матрицы размерности , к которой приписывается транспонированная проверочная матрица.

.

При определении синдрома в проверочной матрице находится комбинация синдрома. Искаженный разряд – это разряд в данной строке, в которой стоит «1». Искаженный разряд исправляем посредством сложения строки в матрице ошибок полученной комбинации.

Пример. Для кода (7,4) задана комбинация .

Составляется матрица одиночных ошибок

Под воздействием помех принята комбинация - искажен третий разряд.

Определяем синдром

В проверочной матрице находим комбинацию 110.

Прибавляем третью строку единичной матрицы к полученной комбинации .

Сообщение исправлено.

Таким образом, код (7,4) позволяет исправить все одиночные ошибки. Прос­тая проверка показывает, что каждая из ошибок имеет свой единственный син­дром. При этом возможно создание такого цифрового корректора ошибок (де­шифратора синдрома), который по соответствующему синдрому исправляет соот­ветствующий символ в принятой кодовой группе. После внесения исправления проверочные символы на выход декодера не выводятся. Две или более ошибки превышают возможности корректирующего кода Хэмминга, и декодер будет ошибаться. Это означает, что он будет вносить неправильные ис­правления и выдавать искаженные информационные символы.

Идея построения подобного корректирующего кода, естественно, не меня­ется при перестановке позиций символов в кодовых словах. Все такие варианты также называются кодами Хэмминга (7,4).

Усеченные коды являются неплотно упакованными, так как число синдромов у них превышает необходимое. Так, в коде (9,5) при четырех проверочных символах число синдромов будет равно 24 =16, в то время как необходимо всего 10. Лишние 6 синдромов свидетельствуют о неполной упаковке кода (9,5).

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

Таблица 6.5

Расположим проверочные разряды на тех позициях, которым соответствуют номера разрядов в двоичной системе с одной единицей, а именно расположим на 1-м месте (№ разряда в двоичной системе – 0001), на 2-м (0010), на 4-м (0100) и на 8-м (1000). Информационные разряды расположим на оставшихся местах. Проверочный разряд получим суммированием информационных разрядов, которым соответствует номер с единицей в 1- разряде двоичной системы счисления . Проверочный разряд получим суммированием информационных разрядов, которым соответствует номер с единицей во 2- разряде двоичной системы . Аналогично и . Для формирования разряда остался один информационный разряд , что характерно для усеченных кодов. Чтобы не было простого дублирования информационного разряда для формирования возьмем еще какой-нибудь разряд, например, , который также можно исключить из формирования . Тогда , а . Если же мы исключили из и ввели в , то его номер также должен быть изменен. Поэтому теперь соответствует номер 1110.

Рассмотрим пример. Необходимо закодировать сообщение 1 1 0 1 0.

Имеется 5 информационных разряда :

1

1

0

1

0

Рассчитаем количество проверочных разрядов

Маркировка кода Хэмминга .

Необходимо, чтобы выполнялось условие: , – число полученных разрядов.

Если принять ,

23 =8;

тогда =8-1=7; 7-5=2. 22 < 7+1 неравенство не выполняется.

Примем ,

24 =16;

тогда =16-1=15; 15-5=10. 210 ≥ 15+1 неравенство выполняется.

24 ≥ +1, =4+5=9.

Получен код (9,5).

Получим проверочные разряды

1 1 0 1 0

=1+1+0=0;

=1+0+1=0;

=1+0+1=0;

=1+0=1.

Закодированное сообщение будет иметь вид:

0

0

1

0

1

0

1

1

0

Пусть под воздействием помех в данной комбинации исказился 7=й разряд, т.е. 0 0 1 0 1 0 0 1 0. Определяем синдром:

=0+1+1+0=0;

=0+1+0+0=1;

=0+1+0+0=1;

=1+0+0=1.

Получен синдром 1 1 1 0.

Смотрим в таблицу 6.5 и ищем синдром 1 1 1 0 и определяем, что ему соответствует 7-й разряд. Исправляем 7-й разряд 0 0 1 0 1 0 1 1 0. Сообщение исправлено. Исключаем проверочные символы: 1 1 0 1 0.

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

За показатель помехоустойчивости кода Хэмминга примем вероятность приёма кодовой комбинации с ошибками.

Расчёт вероятности ошибки произведём для семиэлементного кода, считая искажения символов в кодовых комбинациях равновероятными и независимыми.

Приём с ошибкой при применении кода Хемминга с исправлением одиночной ошибки будет в том случае, если искажено более одного символа. В соответствии с этим вероятность искажения кодовой комбинации равна

, (6.24)

где - вероятность отсутствия искажений;

- вероятность возникновения одной ошибки.

Соседние файлы в папке Лекции