Декодирование и исправление ошибки по Хэммингу

Переданная по информационному каналу в приемник битовая последовательность делится на блоки по n = 2r - 1 бит — получаются блоки кода. С каж­дым таким блоком выполняется операция

ci = (bi)T×M,

здесь (bi)T — строка (вместо столбца) расширенного кода. Пример приведен на рис. 20. Причем здесь значения контрольных разрядов участвуют в вычислении суммы.

Если все биты ci равны нулю, то ошибок нет и коррекция не нужна, см. рис. 20.

Если хотя бы один бит ci не равен нулю (см. рис. 21), то была ошибка. Значение ci преобразуют из битового представления в десятичное число i и бит блока кода с номером i — ошибочный бит. Для исправления значение бита инвертируют: заменяют ноль на единицу, а единицу на ноль. В результате получаем правильное значение блока кода.

Проверка на ошибки — нет ошибок

Рис. 20.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: