Соотношение между числом информационных символов , числом исправляемых ошибок и числом символов кодовой комбинации отображается неравенством (5.6). Хемминг предложил использовать знак равенства
. (5.15)
Таблица 5.2* | |||||||
n | |||||||
k | |||||||
r | |||||||
0.4286 | 0.2667 | 0.1613 | 0.0952 | 0.0551 | 0.0314 | ||
Это предложение выполняется только для определённых соотношений , и . В таблице 5.2 приведены решения уравнения (5.15) для целых , и =1.
Коды имеют минимальное кодовое расстояние и позволяют исправить одиночную ошибку. Коды имеют минимальное кодовое расстояние , обнаруживают двукратную ошибку и позволяют исправить одиночную ошибку.
Второе предложение Хемминга касается построения проверочной матрицы [Березюк Справочник]. Проверочная матрица должна состоять из столбцов, являющихся кодом номера столбца в двоичном представлении. Например, для кода проверочная матрица будет иметь вид
В отличие от проверочной матрицы , в которой проверочные символы занимают позиции после информационных символов, проверочные символы в матрице занимают позиции кратные степени два и обозначены жирными единицами. Уравнения для определения проверочных символов получаются из матрицы , умножением его на вектор , =(h1 ,h2 , …, h15 ):
(5.16)
Если задана информационная часть кода , необходимо определить значения проверочных символов на 1-ой, 2-ой, 4-ой и 8-ой позициях пятнадцатиразрядного кода по уравнениям (5.16).
Для определения синдрома ошибки проверочная матрица H умножается на принятую кодовую комбинацию. Синдром указывает номер позиции символа, в которой произошла ошибка.
Ввиду того, что код Хемминга принадлежит систематическим (линейным) кодам, можно также составить производящую матрицу (с учётом особенностей записи кодов Хемминга) и определить все кодовые комбинации составляющие множество кодов Хемминга С(n,k)
Пример 5.3 Используем код с информационной частью
. Составим таблицу 5.3, в первой строке – номера символов (разрядов) в кодовой комбинации, во второй – позиции проверочных и значения информационных символов.
Таблица 5.3 | |||||||||||||||
Номер символа | |||||||||||||||
символы | h1 | h 2 | h 4 | h 8 |
Подставим значения символов согласно таблице 5.3 в систему равенств (5.16) и получим значения проверочных символов h1, h 2 , h 4, h 8 .
h1 = h3 Å h5 Å h7 Å h9 Å h11 Å h13 Å h15 = 1 Å 1 Å 1 Å 0 Å 1 Å 1 Å 1 =0,
h 2= h3 Å h6 Å h7 Å h12 Å h13 Å h14 Å h15 = 1Å 0 Å 1 Å 0 Å 1 Å 1 Å 1 =1,
h 4 = h 5 Å h6 Å h7 Å h10 Å h11 Å h13 Å h15 = 1 Å 0 Å 1 Å 0 Å 1 Å 1 Å 1 =1,
h 8 = h 9 Å h 10 Å h11 Å h 12 Å h13 Å h 14 Å h15 = 0 Å 0 Å 1 Å 0 Å 1 Å 1 Å 1 = 0,
Кодер канала выдает последовательность символов
.
Проверка правильности вычислений – произведение . Если произошла однократная ошибка, скажем в третьем разряде, декодер выдает двоичный код ошибки , если ошибка в десятом разряде вектора, код ошибки равен .Ввиду иого, что