при передачі дискретних повідомлень. Побудова (7,4) - коду Хеммінга
В даний час відомо безліч кодів, які застосовуються для канального кодування, вони поділяються на класи за різними ознаками.
Наприклад, якщо інформаційна послідовність символів джерела (після економного кодування) розбивається на блоки, які кодуються незалежно один від одного, то код називається блоковим, якщо ж інформаційна послідовність кодується без розбиття, код називають безперервним. Блокові коди - рівномірні.
Якщо в кодовому слові можна виділити інформаційні символи, службовці для передачі повідомлення, та перевірочні символи, призначені для виявлення та виправлення помилок, код називають разделімого; якщо таке розбиття здійснити не можна, код - нероздільний. Разделімие коди, у свою чергу, можуть бути лінійні і нелінійні.
Лінійні блокові коди. Блочний рівномірний код складається з кодових слів (комбінацій) однакової довжини. Елементи кодових слів вибираються з деякого алфавіту (канальних) символів об'ємом. Якщо, код називається двійковим. Оскільки всі кодові слова мають однакову довжину, зручно вважати їх векторами, приналежними лінійному простору розмірності.
Всього можна утворити -мірним векторів з двійковими компонентами (кодових комбінацій або слів). З них тільки, комбінацій є дозволеними і складають код, який називається-кодом. Решта комбінації в кодере утворитися не можуть (є забороненими), але можуть вийти з дозволених під впливом перешкод в каналі. Тому якщо в приймачі має місце заборонена комбінація, отже, при передачі по каналу сталася помилка. Дозволені комбінації, як вектори лінійного простору, повинні відстояти один від одного досить далеко. Чим більше відстань між дозволеними комбінаціями, тим менша ймовірність перетворення їх один в одного під впливом перешкод, тим вище здатність коду до виявлення помилок.
Більше того, при прийомі забороненої комбінації можна не тільки виявляти, але і виправляти помилки. Для цього декодер повинен приймати рішення про переданої комбінації на основі відстані між прийнятої забороненої комбінацією і найближчою дозволеною. Таким чином, чим далі один від одного дозволені комбінації, тим вище коригувальна здатність коду. Алгоритм роботи декодера формально зводиться до розбиття всього простору на області,, кожна з яких містить одну дозволену комбінацію. Якщо прийнята комбінація належить області, то декодер приймає рішення про те, що передавалася дозволена комбінація.
Лінійні коди є разделімого, тому із символів тільки є інформаційними, а решта () - перевірочними.
Одним з найбільш відомих завадостійких кодів є коди Хеммінга. Вони є блоковими, тобто інформаційна послідовність символів джерела розбивається на сегменти (блоки), які кодуються незалежно один від одного. У завадостійких кодах для передачі повідомлення використовуються не всі кодові комбінації, а тільки деяка їх частина (дозволені кодові комбінації). Тим самим створюється можливість виявлення та виправлення помилки при неправильному відтворенні деякого числа символів. Коригувальні властивості кодів забезпечуються введенням в кодові комбінації додаткових (надлишкових) символів.
Коди Хеммінга являють собою (n, k) - коди, що задовольняють при деякому цілому m умові
(n, k)=(2 m - 1,2 m - 1 - m), при деякому цілому m.
де n - кількість всіх символів, - кількість інформаційних символів,
(nk) - кількість перевірочних символів.
Код (7,4) є кодом Хеммінга. Для нього кількість інформаційних символів k=4, кількість перевірочних символів - 3.
Цей код породжується матрицею кодування (породжує матрицею):
Кодові слова мають структуру: С=(х1, х2, х3, х4, С5, С6, С7), де
с5=х1 + х2 + х3
с6=х2 + х3 + х4
с7=х1 + х2 + х4
(мається на увазі додавання по модулю 2).
Реалізувати таке кодування можна за допомогою наступного пристрою:
Рис. 15. Структура кодера для систематичного (7,4) - коду
Пристрій включає два зсувних регістра об'ємом 4 і 3 розряду, а також три суматора по модулю 2. Інформаційна послідовність надходить на вхід першого регістра і записується в його розрядах.
На виходах суматорів за модулем 2 формуються перевірочні символи, які запам'ятовуються в розрядах другого регістра. Потім відбувається зчитування спочатку чотирьох інформаційних символів, а потім трьох перевірочних, при цьому на виході пристрою виходить семіразрядний кодове слово.
Декодування блочного коду могло б полягати в простому відкиданні перевірочних символів, але це не забезпечувало б виявлення і виправленню помилок. Для виявлення помилок може використовуватися породжує мат...