Коди з перевіркою на парність та непарність
Особливість кодів, які виявляють помилки, полягає в тому, що кодові комбінації, які входять до складу цих кодів, різняться кодовою відстанню, не меншою ніж dmin = 2. Такі коди умовно можна поділити на дві групи: коди, в яких використовуються всі комбінації, але до кожної з них за обумовленим правилом додаються r перевірних елементів; коди, утворені зменшенням кількості дозволених комбінацій.
До першої групи кодів, що виявляють помилки, належать коди з перевіркою на парність і непарність; код із простим повторенням; інверсний та кореляційний коди; до другої - код зі сталою вагою. Код з кількістю одиниць у комбінації, кратною трьом, може належати до першої або другої групи кодів залежно від методики його побудови.
Це найпоширеніший код, який застосовується для виявлення поодиноких помилок і всіх помилок непарної кратності. Код містить (n-1) інформаційних й один перевірний елементи, належить до систематичних кодів і позначається як (n, n-1)код.
Перевірний елемент коду визначається сумою за модулем 2 всіх інформаційних елементів.
Для виявлення помилки на приймальному боці перевіряють на парність усю прийняту кодову комбінацію, визначаючи кодовий синдром.
Вважається, що при s1 = 0 помилки в комбінації немає, а при s1 = 1 помилка є. Надмірність коду визначається виразом Rнад=1-k/(k+1) = 1/(k+1).
Код з перевіркою на непарність відрізняється від попереднього тим, що кожна його комбінація має непарну кількість одиниць, тобто додатковий перевірний елемент формують, виходячи з кількості одиниць у початковій кодовій комбінації: при парній кількості перевірний елемент дорівнює одиниці, а при непарній нулю.
Для виявлення помилки в кодовій комбінації на приймальному боці її перевіряють на непарність. Код є подільним завдовжки n-1 інформаційних й один перевірний елементи; він може так само виявляти помилки та має надмірність, як і код із перевіркою на парність.
2. Код із простим повторенням
Код із простим повторенням (без інверсії) є подільним лінійним кодом. Він містить k інформаційних і r = kперевірних елементів. У цьому коді r перевірних елементів є простим повторенням k інформаційних елементів первинної кодової комбінації: bі = аi, де i = 1.. .k.
Через те, що код має відстань dmin = 2, він може використовуватися для виявлення поодиноких помилок. Ця процедура зводиться до порівняння однойменних інформаційних і перевірних елементів у прийнятій кодовій комбінації. Незбіг їх свідчить про наявність помилок у ній.
Код дає змогу виявити не тільки однократні помилки, а й деякі помилки більшої кратності, за винятком “дзеркальних”, коли в інформаційній та перевірній послідовностях кодової комбінації внаслідок дії завад спотворюються елементи, що знаходяться на однакових за номером розрядах.
Надмірність коду визначається виразом
Rнад = 1-k/(2k) = 1/2.
3. Інверсний код
Інверсний код (із повторенням та інверсією) є подільним лінійним кодом, який має k інформаційних і стільки ж перевірних елементів. Його відмінність від попереднього коду полягає в тому, що значення перевірних елементів у ньому залежать від значення суми за модулем 2 всіх інформаційних елементів.
При парній кількості одиниць у початковій кодовій комбінації, перевірні елементи просто повторюють інформаційні, при непарній кількості зазначених одиниць, перевірні елементи повторюють інформаційні й інвертованому вигляді (в оберненому коді).
Для виявлення помилок на приймальному боці в послідовності, що складається з 2k елементів, спочатку підсумовують одиниці, які знаходяться в перших k елементах. Якщо їх кількість парна, то решту k елементів приймають у позитиві. Обидві зареєстровані частини комбінації поелементно порівнюють (перший елемент із першим, другий - з другим і т.д.). За наявності хоча б одного незбігу вся послідовність елементів бракується.
Якщо кількість одиниць серед перших k елементів непарна, то решту k елементів приймають у негативі (інвертують), після чого поелементно порівнюють їх. Наявність незбігу призводить до відбраковування всіх 2k елементів. Така побудова коду дає змогу виявляти майже всі випадки спотворення його елементів, крім двократних “дзеркальних” помилок.
Надмірність коду визначається виразом Rнад = 1-k/(2k) = 1/2.
Кореляційний код
У цьому коді кожний розряд двійкового початкового коду записується у вигляді двох елементів: 0 як 01, а 1 - як 10. Так, початковій кодовій комбінації 010011 відповідатиме комбінація 011001011010 кореляційного коду. В технічній літературі такий двійковий запис дуже часто називається Манчестер-кодом.
Приймальний пристрій в кожному такті, що складається з двох сусідніх елементів кореляційного коду, має зафіксувати перехід 0 → 1 або 1 → 0. У разі прийняття двох нулів або одиниць приймальний пристрій фіксує наявність помилки.
Кореляційний код дає змогу виявляти помилки будь-якої кратності, але не здатний виявити двократні “дзеркальні” помилки, коли сусідні елементи одного такту під впливом завад змінюються на протилежні за значенням.
Надмірність коду визначається виразом Rнад = 1-k/(2k) = 1/2.
До переваг кореляційного коду, крім відсутності постійної складової в напрузі кодового сигналу при передачі кодової комбінації по каналу зв'язку, можна віднести також можливість самосинхронізації генератора приймача, оскільки прийняття кожного біта супроводжується фронтом сигналу, що приймається, в центрі біта.
Код зі сталою вагою
Код зі сталою вагою, тобто з незмінною кількістю одиниць і нулів у комбінаціях, часто називається кодом на одне сполучення. Такий код утворюється з двійкового простого коду відбором комбінацій, що мають однакову кількість одиниць. Приймальний пристрій, підраховуючи кількість одиниць у прийнятій кодовій комбінації, виявляє помилки, якщо кількість перших відрізнятиметься від m.
Код зі сталою вагою має мінімальну кодову відстань dmin = 2. Він виявляє всі помилки непарної кратності, а також усі помилки парної кратності, що призводять до порушення умови m = const.
Порівняно з кодом із простим повторенням цей код при меншій його надмірності дає змогу виявляти помилки тієї самої кратності.