Код Хеммінга: ідея побудови

Код Хеммінга є одним із найважливіших класів лінійних кодів, що знайшли широке застосування на практиці, і має простий і зручний для технічної реалізації алгоритм виявлення й виправлення одиничної помилки.

Нехай необхідно виправити одиничну помилку бінарного коду. Такий код складається з nі інформаційних символів і nк контрольних (надлишкових) символів. Усього символів у коді:

 

n = nі + nк (4.1)

 

При передаванні коду може бути спотворено будь-який інформаційний символ. Однак можливий і такий варіант, коли жоден із символів не буде перекручений, тобто якщо всього n символів, то за допомогою контрольних символів, що входять у це число, повинна бути створена така кількість комбінацій , щоб просто розрізнити n + 1 варіант.

Тому nк повинне задовольняти нерівність:

 

2nk ³ n + 1 (4.2)

 

Тоді, згідно (4.1):

2n = 2nk+ni = 2nk × 2ni (4.3)

 

Використовуючи (4.2), запишемо:

2n ³ (n + 1) × 2nk,

де 2n – повне число комбінацій коду.

 

Звідси число інформаційних символів коду, що виявляє і коригує одиничну помилку, буде дорівнювати:

Для обчислення основних параметрів коду Хеммінга задається кількість або інформаційних символів, або інформаційних комбінацій N = 2ni.

За допомогою формул обчислюють n і nк. Співвідношення між n, nі і nк для коду Хеммінга представлені в табл. 4.1.

Знаючи основні параметри коригувального коду, визначають робочі і контрольні сигнали. Практика показує, що номери контрольних символів зручно вибирати за законом 2i, де i = 0, 1, 2, 3, ... – натуральний ряд чисел. Номери контрольних символів у цьому випадку дорівнюють відповідно 1, 2, 4, 16, 32... Потім вираховують значення контрольних коефіцієнтів (0 або 1), керуючись наступним правилом: сума одиниць на перевірочних позиціях повинна бути парної. Якщо ця сума парна, то значення контрольного коефіцієнту буде дорівнювати нулю, чи одиниці - у протилежному випадку.

 

Таблиця 4.1 – Співвідношення між кількістю інформаційних і контрольних символів у коді Хеммінга

n nі nk n nі nk

 

Таблиця 4.2 – Номери перевірочних позицій коду Хеммінга

№ перевірки Перевірочні позиції (П) № контрольного символу
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, …
2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 24, ...
4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23, ...
8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31, 40, 41, 42, ...
16, 17, 18, 19, 20, 21, …

 

Побудова коду Хеммінга

Розглянемо правила побудови коду Хеммінга на прикладі.

Приклад 4.1.Побудувати макет коду Хеммінга й розрахувати значення коригувальних розрядів для кодової комбінації (nі=4) 0101.

Розв‘язок:Згідно табл. 4.1 мінімальне число контрольних символів nк = 3, при цьому n = 7. Контрольні коефіцієнти будуть розташовані на позиціях 1, 2, 4. Складемо макет коригувального коду і запишемо його в другий стовпчик табл. 2.3. Користуючись табл. 4.2, визначимо значення коефіцієнтів K1, K2 і K3.

Перша перевірка: сума П1+П3+П5+П7 повинна бути парної, а сума K1+0+1+1 буде парної при K1 = 0.

Друга перевірка: сума П2+П3+П6+П7 повинна бути парної, а сума K2+0+0+1 буде парної при K2 = 1.

Третя перевірка: сума П4+П5+П6+П7 повинна бути парної, а сума K3+1+0+1 буде парної при K3 = 0.

Остаточне значення шуканої комбінації коригувального коду записуємо в третій стовпчик таблиця 4.3.

 

Таблиця 4.3

Позиція символів коригувального коду Кодове слово
без значень контрольних коефіцієнтів зі значеннями контрольних коефіцієнтів
К1
К2
К3