Самосинхронізуються коди 1

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

Одна з можливих реалізацій самосінхронізірующіхся кодів - двофазні коди, в кожному бітовому інтервалі яких обов'язково присутній перехід з одного стану в інший.

Більшість технологій локальних мереж використовують саме самосінхронізірующіхся коди: в Ethernetпріменяется манчестерський код, вTokenRing- варіант диференціального манчестерського коду

Контроль передачі інформації і стиснення даних

самовідтворюваними коди

Одним із засобів боротьби з перешкодами є самовідновлювальні (коригувальні) коди, що дозволяють не тільки виявити, але і виправити помилки при прийомі.

Нехай використовується n-розрядний двійковий код. Помилка при прийомі кодової комбінації полягає в тому, що (під впливом перешкоди) або переданий нуль був прийнятий, як одиниця, або одиниця була прийнята, як нуль. Якщо в кодової комбінації помилка присутня тільки в одному розряді, то таку помилку будемо називати одиночній, якщо в двох розрядах - подвійний і т.д.

Якщо при передачі в якості інформаційних використовуються всі можливі кодові комбінації, помилки неможливо навіть знайти: будь-яка помилка перетворює кодову комбінацію в іншу допустиму кодову комбінацію. Для розпізнавання помилок необхідно частину кодових комбінацій зарезервувати для контролю помилок. Для того, щоб було можна виявити одиночну помилку, досить в якості інформаційних взяти такі кодові комбінації, які розрізнялися б між собою не менше, ніж в двох знаках. Тоді одиночна помилка в будь-якій інформаційній кодової комбінації приводила б до появи забороненої кодової комбінації. Для виправлення одиночних помилок, можна використовувати код, інформаційні кодові комбінації якого розрізняються не менш, ніж в трьох знаках. Тоді одиночна помилка дасть заборонену кодову комбінацію, що відрізняється від вихідної в одному знакові, але відрізняється від будь-якої іншої дозволеної комбінації не менше, ніж в двох знаках. Відповідно, можна буде не тільки виявити помилку, але і знайти справжню передавалася кодову комбінацію.

Аналогічним чином можна побудувати коди, які виявляють і виправляють помилки будь кратності. Для цього потрібно лише зменшувати частку інформаційних кодових комбінацій серед усіх можливих.

При такому підході необхідно кожну прийняту кодову комбінацію порівнювати з усіма дозволеними комбінаціями і, в разі збігу, вважати, що помилки не було, а в іншому випадку вважати істинної дозволену комбінацію, що відрізняється від прийнятої в мінімальній кількості розрядів. Це - досить малоефективний метод виявлення і виправлення помилок.

систематичні коди

Інший підхід до побудови кодів - поділ розрядів коду на інформаційні та контрольні. Такі коди називаються систематичними. Нехай все в коді nразрядов, з ніхk- інформаційних іr- контрольних розрядів (n = k + r). Такий код може передаватьN = 2 k різних повідомлень. Ізrконтрольних розрядів можна організувати 2 r різних комбінацій. Для виявлення та виправлення одиночної помилки потрібно, по-перше, вказати наявність / відсутність помилки і, по-друге, вказати номер розряду, в якому сталася помилка.

Таким чином, щоб в контрольних розрядах можна було передавати інформацію для виправлення одиночних помилок, їх кількість повинна задовольняти нерівності 2 r ≥n + 1 або 2 n / (n + 1) ≥N. Якщо досягається рівність: 2 n / (n + 1) = N, то кількість контрольних розрядів, що припадають на один інформаційний, буде найменшим. Наприклад, дляN = 4 різних повідомлень (k = 2) найменше значеніеnравно п'яти (2 4 / (4 + 1) = 3,2 <4, а 2 5 /6 ≈ 5,3> 4). Значить, кількість контрольних розрядів, необхідне для виявлення та виправлення одиночних ошібокr = n-k = 5-2 = 3.