Застосування кодів Хеммінга дозволяє виправляти поодинокі помилки. Додавання до коду Хеммінга контрольного розряду, що забезпечує парність / непарність всієї кодової комбінації в цілому, призводить до модифікованого коду Хеммінга, за допомогою якого можна виправляти поодинокі помилки і виявляти подвійні.
Методи контролю за допомогою кодів Хеммінга засновані на тих же ідеях, що і контроль за модулем 2. Звідси і область ефективного застосування кодів Хеммінга - пристрої, в яких імовірність одиничних помилок багато більше, ніж ймовірність групових.
Кожен контрольний розряд асоціюється з деякою групою розрядів кодової комбінації і виводить вага групи, в яку він входить, на парність / непарність.
Перший контрольний розряд входить в групу розрядів з номерами XX. XX1, де Х означає довільне значення, тобто 0 або 1. Іншими словами в першу групу входять розряди з непарними номерами: 1, 3, 5, 7, 9.
Другий контрольний розряд входить в групу розрядів з номерами, що мають одиницю в другому справа розряді, т. Е. Номерами XX. X1X. Це номери 2, 3, 6, 7, 10, 11. Третій контрольний розряд входить в групу, у якій номера розрядів мають одиницю в третьому справа розряді: ХХ. 1ХХ, т. Е. З номерами 4, 5, 6, 7, 12, 13, 14, 15.
Контрольні розряди виводять ваги своїх груп на парність / непарність. Далі для визначеності приймемо, що ведеться контроль по парності. Після виконання операції (наприклад, зчитування кодової комбінації з пам'яті) проводиться стільки перевірок по модулю 2, скільки контрольних розрядів в кодової комбінації, т. Е. Перевіряється збереження парності ваг груп. Якщо в кодової комбінації сталася помилка, то в одних перевірках вона позначиться, а в інших - ні. Це і дозволяє визначити розряд, в якому сталася помилка. Для відновлення правильного значення слова тепер залишається тільки проинвертировать помилковий розряд. Така ідея побудови і використання коду Хеммінга.
Приклад складання коду Хеммінга для чотирирозрядний інформаційного слова А = а3 а2 а1 а0 = 0110 наведено в табл. 2.10.
Через r в таблиці позначений загальний контрольний розряд для всієї кодової комбінації, через r1. r2. r3 - перший, другий і третій групові контрольні розряди.
Для коротких слів надмірність коду Хеммінга вийшла значною (тут на чотири інформаційних розряду доводиться чотири контрольні), але це нетипово, оскільки реально контролюються слова більшої розрядності, для яких надмірність (відносна) швидко зменшується з ростом розрядності слів. Коротке слово взято, щоб приклад не був громіздким.
Розглянемо тепер процес виправлення і виявлення помилок. Нехай, наприклад, передавалося інформаційне слово 0110 = 610. Не враховуючи поки розряд r, отримаємо, що правильна кодова комбінація має вигляд:
Перша перевірка (по групі розрядів з непарними номерами) показує збереження парності, т. Е. В цій групі помилок немає, результат цієї перевірки зазначається нулем.
Друга перевірка (за розрядами 2, 3, 6, 7) виявляє порушення парності ваги комбінації, її результат відзначається одиницею.
Третя перевірка (за розрядами 4, 5, б, 7) також виявляє порушення парності, її результат відзначається одиницею.
Результати перевірок утворюють слово, зване синдромом. Синдром вказує номер розряду, в якому сталася помилка. У взятому прикладі результати перевірок дають слово 0110 = 610. проінвертірованний розряд номер 6, повертаємося до правильної кодової комбінації - помилка виправлена.
Мінімальна кодова відстань звичайного коду Хеммінга дорівнює трьом. Додавання розряду перевірки загальної парності ваги комбінації призводить до модифікованого коду Хеммінга з мінімальним кодовою відстанню, рівним 4 і, відповідно, додає можливість виявлення подвійної помилки. Виявлення подвійної помилки засноване на зіставленні наявності або відсутності ознак помилки в синдромі і загальної парності. Якщо позначити через S будь-нульове значення синдрому, то можливі ситуації, які використовуються для виявлення подвійної помилки, виявляться такими (табл. 2.11).
Згортка кодової комбінації
Все правильно, слово можна використовувати
Була одинична помилка, виправлена, слово можна використовувати.
Ці ситуації можуть виникати тільки внаслідок помилок подвійний або більшої кратності, слово використовувати не можна.