С помощью проверки на четность выявляют какой из символов должен стоять на позиции “1” или “0”. Рассмотрим это на примере приведенной выше комбинации.
Таблица 1. Составление проверочной таблицы для кодов Хемминга
Разряды двоичных чисел
|
Символы кода
| k3 | k3 | k3 |
0
|
0
|
1
|
m1
|
0
|
1
|
0
|
m2
|
0
|
1
|
1
|
k4
|
1
|
0
|
0
|
m3
|
1
|
0
|
1
|
k3
|
1
|
1
|
0
|
k2
|
Таблица 2. Проверочная таблица для кода Хемминга
m1
|
+k4
|
+k3
|
+k1
|
m2
|
+k4
|
+k2
|
+k1
|
m3
|
+k3
|
+k2
|
+k1
|
В таблице 1 записаны все кодовые комбинации (исключая нулевую) для трехразрядного двоичного кода на все сочетания и рядом справа, сверху вниз проставлены символы комбинаций кода Хемминга, записанные в последовательности (1). Из таблицы 1 составляется таблица 2, в которой выписаны символы в трех строках в следующей закономерности. В первую строку записывают символы, против которых проставлены 1 в младшем (первом) разряде комбинации двоичного кода в таблице 1. Во вторую строку проверочных коэффициентов записываются символы, против которых проставлены 1 во втором разряде двоичного кода. В третью строку записываются символы, против которых проставлены 1 в третьем разряде двоичного кода (m3, k3, k2, k1,). Состав контрольных символов с помощью проверок определяют следующим образом. Суммируют информационные символы, входящие в каждую строку таблицы 2, если сумма единиц в данной строке четная, то значение символов m, входящих в эту строку .равно нулю, если нечетная, то единице. По первой строке таблицы 2 определяют значение символа m1, по второй - m2, по третьей - m3.
Как найти число контрольных символов “m”, для слов с числом информационных символов “k”?
С помощью контрольных символов m можно описать два события. Значит должно быть выполнено условие:
2M > n+1=(k+m)+1
Изложите порядок декодирования кода Хемминга.
Декодирование проходит в три этапа:
Сначала с информационными символами - k1, k2, k3, k4 проводится кодирование по Хеммингу, т.е. формируются проверочные символы – m1*, m2*, m3*. Например, символ m1* равен сумме по модулю информационных символов k1, k2, k3, k4.
m1*= k1+ k3+k4=1+1+1=1, т2*= k1+ k2+k4=1+0+1=0, m3*= k1+ k2+k3 =1+0+1=0.
Затем исходные проверочные символы (m1, m2, m3) сравнивают с полученными в результате кодирования (m1*, m2*, m3*), т.е. складывают по модулю 2. Если полученная сумма равна 0, то комбинация принята без искажений и ошибка отсутствует. В противном случае значение этой суммы указывает (если отсчет принять слева) на порядковый номер символа кодовой комбинации, который был искажен.
В рассматриваемом примере m3+m3*=0, т2+m2*=1, m1+ m1*=0, значит был искажен символ k2 (1202 = 610).
На последнем этапе исправляют искаженный символ и выделяют его из исходной комбинации информационные символы.
Достарыңызбен бөлісу: |