Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ по Delphi Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog
Код Хемминга
В коде Хемминга вводится понятие кодового расстояния d (рас-стояния между двумя кодами), равного числу разрядов с неодинако-выми значениями. Возможности исправления ошибок связаны с мини-мальным кодовым расстоянием dmjn. Исправляются ошибки кратности r = ent(dmin-1)/2 и обнаруживаются ошибки кратности dmin-1 (здесь ent означает "целая часть"). Так, при контроле на нечетность dmin=2 и об-наруживаются одиночные ошибки. В коде Хемминга dmin=3. Дополни-тельно к информационным разрядам вводится L=log2K избыточных контролирующих разрядов, где К - число информационных разрядов, L округляется до ближайшего большего целого значения. L-разрядный контролирующий код есть инвертированный результат поразрядного сложения (т.е. уложения по модулю 2) номеров тех информационных разрядов, значения которых равны 1.
Пример 1. Пусть имеем основной код 100110, т.е. К = 6. Следова-тельно, L= 3 и дополнительный код равен
010 # 011 # 110= 111,
где # - символ операции поразрядного сложения, и после инвертирова-ния имеем 000. Теперь вместе с основным кодом будет передан и до-полнительный. На приемном конце вновь рассчитывается дополни-тельный код и сравнивается с переданным. Фиксируется код сравне-ния (поразрядная операция отрицания равнозначности), и если он от-личен от нуля, то его значение есть номер ошибочно принятого разря-да основного кода. Так, если принят код 100010, то рассчитанный на приемнике дополнительный код равен инверсии от 010 # 110=100, т.е. 011 , что означает ошибку в третьем разряде.
Пример 2. Основной код 11 00000, дополнительный код 110 (ре-зультат инверсии кода 110 # 111=001). Пусть принятый код 1101000, его дополнительный код 010, код сравнения 100, т.е. ошибка в четвер-том разряде.