Код Хэмминга
Код Хэмминга, являющийся групповым (n,k) кодом, с минимальным расстоянием d=3 позволяет обнаруживать и исправлять однократные ошибки. Для построения кода Хэмминга используется матрица H. Если Х - исходная последовательность, то произведение Х·Н=0. Пусть E - вектор ошибок. Тогда (Х+Е)·Н = Х·Н+Е·Н = 0+Е·Н=E·H - синдром или корректор, который позволяет обнаружить и исправить ошибки. Контрольные символы e1 ,e2 ,...,er образуются из информационных символов, путем линейной комбинации Рассмотрим Построение кода Хэмминга для k=4 символам. Число контрольных символов r=n-k можно определить по неравенству Хэмминга
где [.] - означает округление до большего ближайшего целого значения. Вычислим для k=4 Контрольные символы ej определим по формуле При декодировании вычисляем корректор K=k4k2k1 Если корректор равен нулю, следовательно, ошибок нет. Если корректор не равен нулю, то местоположение вектор-столбца матрицы H, совпадающего с вычисленным корректором, указывает место ошибки. При передаче может возникнуть двойная и более ошибка. Корректор также не будет равен нулю. В этом случае произойдет исправление случайного символа и нами будет принят неверный код. Для исключения такого автоматического исправления вводится еще один символ Пример 5.4. Дана 1101 - исходная комбинация (k=4). Закодировать ее в коде Хэмминга. По формуле (5.2) находим число контрольных символов r=3. Берем регистр из 7 ячеек памяти. Размещаем исходную комбинацию в ячейках 3,5,6,7. 1 2 3 4 5 6 7 * * 1 * 1 0 1 Находим контрольные символы е4 = 5 + 6 + 7 = 1 + 0 + 1 = 0 е2 = 3 + 6 + 7 = 1 + 0 + 1 = 0 е1 = 3 + 5 + 7 = 1 + 1 + 1 = 1 Закодированная комбинация будет иметь вид 1 2 3 4 5 6 7 1 0 1 0 1 0 1 Допустим, что при передаче возникла ошибка, и мы приняли неверную комбинацию 1 2 3 4 5 6 7 1 0 1 0 1 1 1
|