Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы_5.doc
Скачиваний:
23
Добавлен:
25.09.2019
Размер:
4.72 Mб
Скачать
  1. Обнаружение и исправление ошибок в двоичных комбинациях с помощью кода Хэмминга.

Код Хэмминга содержит n=k+r разрядов, из которых к- информационные, а r-контрольные (проверочные), которые находятся на строго определенных позициях. Проверочная матрица кода имеет г строк л 2r-1 столбцов. Столбцами матрицы кода являются все ненулевые г - разряд­ные двоичные комбинации. Контрольные разряды вводятся в таблицу ко­довых комбинаций таким образом, чтобы, проведя серию проверок, можно было определить искаженную позицию в принятом коде.

Каждый проверочный разряд bj формируется проверкой на четность определенных информационных разрядов аi

Результаты каждой проверки записываются в виде комбинации дво­ичных цифр: при отсутствии ошибки - 0, а при наличии ее - 1. Таким об­разом, в результате проверок получается синдром (опознаватель) в виде двоичного r-разрядного числа, десятичный эквивалент кото­рого укажет номер искаженной позиции в кодовой комбинации. Разряды синдрома записываются в порядке очередности проверок справа налево, а номер разряда искаженной позиции в кодовой комбинации читается слева направо. Для обнаружения ошибки в n-разрядной комбинации необходи­мо сделать r проверок на четность. Общее число комбинаций (позиций), изображаемых r-разрядным контрольным числом, должно охватывать все разряды, т.е. быть не менее n+1, значит,

Единица в правой части этого неравенства указывает случай отсутствия искажений. Из последнего неравенства находим, что длина прове­рочной комбинации .

Отсюда число информационных разрядов .

Эти неравенства являются исходными для определения разрядности кодовой комбинации при заданной разрядности k информационных эле­ментов.

При каждой проверке контролируется четность числа единиц в опреде­ленных позициях кода. Чтобы обнаружить ошибку, необходимо определить, какие из кодовых комбинаций должны использоваться при каждой проверке. Пусть в результате первой проверки на четность число единиц в проверяемых разрядах оказалось нечетным, то есть один из элементов кодовой комбинации искажен. Таким образом, в младшем разряде синдрома будет единица s1=l. А наличие единицы в младших разрядах комбинации двоичных чисел свидетель­ствует о том, что искаженный разряд является нечетным, т.к. единицу в млад­шем разряде имеют все нечетные числа. Значит, первой проверкой должны ох­ватываться все нечетные разряда принятой комбинации:

Для определения второго разряда синдрома используется таблица де­сятичных чисел и соответствующих им двоичных комбинаций. Из таблицы видно, что единицу во втором двоичном разряде имеют следующие десятичные числа: 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, ... Следовательно, второй проверкой на четность можно охватывать двоич­ные разряды, соответствующие этим числам:

В результате этой проверки находится второй разряд синдрома s2.

При третьей проверке находится третий разряд синдрома. Из приве­денной таблицы находим числа, имеющие единицу в третьем двоичном разряде: 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23, ... Следовательно, при третьей проверке должны охватываться соответствующие этим числам разряды:

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

Для обеспечения кодирования по Хэммингу необходимо иметь спе­циальный буферный накопитель, в ячейках которого набирается вся п- разрядная комбинация кода. В декодирующем устройстве вся кодовая комбинация должна также накопиться, а затем анализироваться. Если пе­реставить разряды кода, то его исправляющие возможности не изменятся. Поэтому для упрощения кодирующего и декодирующего устройств целе­сообразнее в начале записывать информационные, а затем контрольные разряды. В этом случае будет не нужен выходной накопитель, т.к. соответ­ствующие проверки можно выполнять одновременно с передачей инфор­мационных разрядов.

Однако для сохранения исправляющей возможности кода Хэмминга необходимо провести разделение номеров разрядов следующим образом: