Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Итак, для получения блока кода нам надо из битов данных получить
битов готового блока. Преобразование строки чисел (в данном случае -
однобитовых) в другую строку обычно описывается матрицами – умножением
вектора-строки на матрицу, или матрицы на вектор-столбец – если преобразование
линейно. Преобразования в кодах Хэмминга линейны – и получение проверочных
битов, и вычисление синдрома. Поэтому описание кода Хэмминга и множества
других кодов, которые так и называются – линейные, часто опирается на матричную
алгебру.
Кстати, при использовании матриц проверочные биты ещё и окажутся на
определённых местах в блоке кода.
Например, если биты данных в примере выше записать в виде вектора-строки
, а биты чётности в виде вектора-строки , то матрица,
генерирующая код по данным, согласно равенствам выше будет следующей
,
Для того, чтобы код мог обнаружить ошибку, комбинации битов, образуемые из
правильных данных при ошибке, должны быть «запрещены» - отсутствовать в
исходных вариантах данных.
В случае одиночных ошибок это значит – должны быть запрещены все
комбинации бит, отличающиеся в одном бите от правильных.
Количество бит, в которых две последовательности бит отличаются друг
от друга, называется расстоянием по Хэммингу между последовательностями.
Т.е. для того, чтобы код мог обнаружить единичную ошибку, должны быть
запрещены все комбинации, находящиеся на расстоянии 1 по Хэммингу от
правильных комбинаций.
Или, то же самое другими словами – правильные комбинации кода должны
находиться друг от друга на расстоянии не меньше 2 по Хэммингу.
Простейший код с битом чётности работал потому что любые комбинации,
отличающиеся в одном бите, т.е. находящиеся на расстоянии 1 от правильных,
имели нечётное число единиц и были «запрещены».
Чтобы код мог обнаружить две ошибки, правильные комбинации кода должны
находиться друг от друга на расстоянии, большем двух по Хэммингу и т.д.
Т.е. для того, чтобы код обнаруживал не менее ошибок на блок при передаче
минимальное расстояние между любыми двумя правильными комбинациями кода
должно быть
Задачи
1. Для некоторого канала среднее число бит на одну ошибку передачи равно 8
(т.е. на каждые 8 бит приходится, в среднем одна ошибка). Если вы хотите
разместить 1 бит чётности на блок, содержащий в среднем 1 ошибку, сколько битов
данных будет в одном блоке?
2. Найти число бит на блок в коде Хэмминга для числа контрольных бит ,
. Сколько битов данных будет в блоке?
3. Найти выражения для через из матричного произведения в
тексте.
4. Чему равно
а) 3 + 3 по модулю 5; б) 3 + 5 по модулю 8; в) 1 – 2 по модулю 12;
г) 1 – 0, 0 – 1, 0 – 0 и 1 – 1 по модулю 2. Сравнить со сложением тех же
значений.