Лекція 1. Корегуючі коди. Класифікація. Параметри. Згортувальні коди.
Корегуючі коди – це такі коди, в які формуються на основі інформаційної послідовності символів а1,а2... акпослідовність перевірочних символів в1, в2... вr. в кодері. За допомогою введеної збитковості декодер має можливість в залежності від вибраного коду і алгоритму декодування, виявляти чи виправляти помилково прийняті інформаційні символи, які створені в результаті дії різного роду перешкод в каналі зв’язку.
В класифікаційній діаграмі розглянемо тільки ті коди, що знаходять найбільше застосування в системах документального електрозв’язку.
До блокових кодів відносяться такі коди, в яких кодування та декодування здійснюється в межах блоку, який складається з визначеного числа кодових символів. Всі блокові коди характеризуються довжиною блока, або значністю кодової комбінації (КК) n кількістю інформаційних символів k. Для цього прийнято позначення (n, k).
До згортувальних кодів, або ще як їх називають безперервні, рекурсивні чи ланцюгові відносяться такі коди, в яких процеси кодування та декодування мають безперервний характер, без явного виділення границь при формуванні кодового слова.
Блокові коди в свою чергу діляться на лінійні та нелінійні. До лінійних відносяться такі коди, в яких формування блоків, тобто кодування здійснюється з використанням лінійних операцій над інформаційними символами. В іншому випадку корегуючи коди відносяться до нелінійних. Прикладом нелінійного коду є міжнародний семиелементний код МТА-3,або код с постійною вагою (КПВ). Кожна комбінація такого коду має три одиниці і чотири нуля при всіх можливих варіаціях.
Для лінійних (n, k) кодів відносяться такі коди, в яких r = n- k збиткових символів формується із k інформаційних за допомогою лінійних операцій, тобто операцій додавання та переключення.
Для двійкових кодів додавання виконується по mod2, тобто 0+1=1, 1+0=1, 0+0=0 і 1+1≡0, а перемноження здійснюється в звичайному порядку.
Перевірочні символи для лінійного групового коду визначається
при цьому необхідно, щоб базові коефіцієнти створювали прямокутну матрицю:
Лінійні блокові коди мають властивість замкнутості, це означає, що сума по mod2 2-х або більше дозволених КК створює КК, яка належить цьому чи іншому коду. І ще будь-який лінійний код завжди має нульову КК, створену як суму двох однакових КК.
Лінійні коди в свою чергу діляться на систематичні та несистематичні. в систематичних кодах інформаційні символи на виході кодера представлені в явному виді. Належність до систематичних чи до несистематичних кодів визначається вибором коду й алгоритму кодування.
Значну частину лінійних кодів займають циклічні коди, до них відносяться:
– коди Хемінга;
– коди БЧХ (Боуза-Чоудхури-Хоквингема);
– коди з мажоритарним декодуванням (ЦКМД), яким властива проста схемна реалізація декодера;
– коди Файра (виправляють пакети помилково прийнятих кодових символів).
Згортувальні коди як і блокові можна розділити на систематичні та несистематичні. Перші декодуються відносно простим методом – пороговим (ЗКПД), а другі – з використанням алгоритму послідовного декодування (ЗКАПД) і алгоритму Вітербі (ЗКАВ). Несистематичні коди з алгоритмом декодування Вітерці знаходять широке застосування в телекомунікаційному обладнанні.
Параметри. Загальна кількість кодових комбінацій (КК)
Корегуючі коди застосовуються для виявлення або виправлення помилок заданої кратності. Під кратністю помилки розуміють кількість створених символів в КК значністю n. При незалежних помилках в каналі зв’язку ймовірність випадкового виникнення t кратної помилки визначається по формулі Бернуллі:
де
Корегуюча здатність двійкових кодів визначається мінімальною кодовою відстанню:
де
Таким чином мінімальна кодова відстань, або кодова відстань дорівнює найменшому із всіх можливих відстаней в метриці Хемінга між всіма можливими парами КК.
Для лінійних кодів. враховуючи, що в коді завжди є нульова КК, кодова відстань визначається мінімальною вагою КК,
Максимальна кратність виявлення помилок
а виправлення:
Теорема. Якщо d0 парне, то код може виправляти
На рисунку 1 приведена геометрична модель найпростішого коригувального коду (4, 3) з парним числом одиниць, представлена на площині, де всі дозволені КК зображені у виді крапок, що є центрами окружностей з радіусами d = 1. Заборонені КК відображені крапками на окружностях, що завжди є загальними для двох суміжних окружностей.
З рис. 1 видно, що мінімальна відстань між двома дозволеними КК дорівнює двом одиницям по Хемінгу, тобто d0 = 2. Тут дозволені КК мають єдине відображення – центри окружностей, а кожній заборонений КК відповідають дві дозволені КК, у чому виявляється невизначеність при декодуванні таких КК. Принцип виявлення помилок при використанні коду (4, 3) очевидний. Якщо в результаті дії перешкод дозволена КК "переходи" з центра на окружність (d = 1), то таке викривлення в місці прийому завжди буде виявлено за структурою коду. Перехід з одного центра окружності в центр будь-якої іншої окружності (d = 2 чи 4) приводить до невиявленої помилки. Такий код, як видно з приведеного рисунку, дозволяє виявляти всі помилки непарної кратності.
Подібно до коду (4,3), на рис. 2 а приведений тільки фрагмент геометричного представлення коду з d0 = 3, а на рис. 2 б – коду з d0 = 4. З наведених рисунків видно, що перший код дозволяє виправляти однократні помилки, а інший – дає можливість, окрім виправлення однократних помилок ще й виявлення двократних помилок, що переконує у справедливості виразів (1) і (2).
а) б)
Рис. 2
Код з парним числом одиниць має один перевірочний символ, який визначається:
d0=2, значність коду n=k+1; збитковість
Такий код дозволяє виявити всі помилки непарної кратності:
Для КПВ
Швидкість коду
Збитковість коду
Згортувальні коди – це такі коди, в яких кодова послідовність на виході кодера може бути представлена як дискретна "згортка" по mod2 інформаційних символів і імпульсної реалізації кодера, тобто:
де