Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
334
Добавлен:
20.06.2014
Размер:
7.49 Mб
Скачать

10. Коды Хэмминга. Построение. Определение контрольных символов, места ошибки.

Ошибки исправляются автоматически. Эта задача выполняется за счет увеличения количества контрольных разрядов.

Сущность кода Хэмминга заключается в том, что контрольные разряды, определяемые на основе информационной части, определяются с помощью вычисления контрольных сумм по модулю 2. Для каждого контрольного разряда своя контрольная сумма. Контрольные разряды могут размещаться как справа информационной части, так и внутри нее.

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

Используются два варианта размещения контрольных разрядов:

1.контрольные разряды располагаются отдельно от информационных;

2.контрольные разряды чередуются с информационными.

Позиции контрольных разрядов:

...X12

X11

X10

X9

X8

X7

X6

X5

X4

X3

X2

X1

... И

И

И

И

К

И

И

И

К

И

К

К

К - контрольный разряд,

И - информационный разряд.

Место контрольного разряда определяется формулой: 2i =1,2,4,8,16,...

где i – номер контрольного разряда.

Условия проверки на четность.

Д

-через 1 по 1

-через 2 по 2

-через 4 по 4

ля определения контрольных разрядов используется сумма по модулю 2 (проверка на четность). Количество условий проверки на четность равно количеству контрольных разрядов. Эти условия сводятся к вычислению контрольных сумм:S1,S2,S3...

Вычисление 1-ого контрольного разряда:

Вычисление 2-ого контрольного разряда:

Вычисление 3-его контрольного разряда:

Условия проверки на четность позволяют установить место ошибочного разряда (обнаружить и устранить ошибку ).

Опознаватель места ошибки – это кодовая комбинация, составленная из контрольных сумм: S0=...S4,S3,S2,S1 , где S0 - число, указывающее на номер ошибочного разряда. Если S0=0, то ошибки в кодовой комбинации нет.

Для исправления ошибки необходимо заменить 0 на 1 и наоборот.

Пример. Закодируем кодом Хэмминга число 11.

Q(X)=(1011)2=(11)10 – безызбыточный код.

  1. Определение мест информационных разрядов.

И

К

И

И

И

К

И

К

К

--

--

1

0

1

0

1

0

1

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

Результат : H(X)=1010101 – код Хемминга.

  1. Обнаружение и исправление ошибок.

Пусть Hош (X)=1011101

Определим место ошибочного разряда путем вычисления контрольных сумм.

Опознаватель S0 = 100, т. е. ошибка в 4-ом разряде.

Определение количества контрольных разрядов в коде Хэмминга.

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

Если , тоS0 = 000...111 можно найти ошибку в 7 разрядах.

Если , тоS0 = 0000...1111, т.е. ошибка обнаруживается в 15-ти разрядном коде.

, то S0 = 00000...11111 (11111)2 = (31)10

Общая связь: или

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

При применении кода Хэмминга не снимается проблема борьбы с групповыми ошибками, т.е. ошибочно 2 или большее количество рядом стоящих разрядов