§6. Коди, що виправляють помилки.
Будемо розглядати всі можливі двійкові слова довжини у якості символів деякого алфавіту (де ). Якщо поставити у відповідність кожному такому слову його код Хеммінга довжини ми одержимо схему кодування
. (13)
Основна властивість одержаної схеми кодування полягає в тому, що зробивши одну помилку в будь-якому кодовому слові , ми все одно можемо визначити символ , який воно кодує.
Цю властивість можна узагальнити. Розглянемо, тепер, довільний алфавіт і довільну схему кодування (13). Нехай – ціле додатне число. Припустимо, що зробивши у будь-якому з кодових слів не більше ніж помилок, ми все одно завжди можемо однозначно відновити символ , який воно кодує. Тоді кодова функція, задана схемою (13) називається кодуванням, що виправляє помилок.
В подальшому будемо вважати, що всі кодові слова схеми (13) мають однакову довжину . Нехай – двійковий алфавіт, – множина двійкових слів довжини . Нехай , – два елементи . Відстанню між цими елементами називається кількість значень індексу , для яких .
Теорема 6. Множина разом з відстанню утворюють метричний простір.
Доведення. Перші дві аксіоми метрики очевидні. Для перевірки третьої аксіоми зазначимо, що відстань між елементами , множини може бути обчислена за формулою
.
Розглянемо елементи .
.
Отже третя аксіома теж виконується. Теорема доведена.
Позначимо через схему кодування (13). Кодовою відстанню схеми називається найменша з відстаней між її кодовими словами:
.
Поняття кодової відстані дозволяє сформулювати критерій того, що кодування виправляє помилок.
Теорема 7. Кодування виправляє помилок тоді й лише тоді, коли кодова відстань задовольняє нерівності
. (14)
Доведення. Достатність. Нехай кодова відстань схеми задовольняє нерівності (14). Візьмемо довільне кодове слово і зробимо у ньому помилок. Одержане при цьому нове слово знаходиться від на відстані , отже
.
Якщо знайдеться якесь інше слово , , таке що , то ми будемо мати
,
що суперечить умові (14).
Отже для всіх відмінних від кодових слів . Це означає, що ми завжди можемо відновити правильне слово , вибравши з кодових слів найближче до .
Необхідність. Припустимо, що кодування виправляє помилок, але умова (14) порушується. Тоді існують кодові слова , такі що . В цьому разі