Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жураковський Ю. П., Полторак В. П. Теорія інфор...doc
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
3.24 Mб
Скачать

8.1.6. Код із багатократним повторенням

Код із багатократним повторенням (без інверсії") є поділь­ним лінійним кодом. Він містить к інформаційних і nRk перевір­них елементів, де nR > 2 — кількість повторень початкової ко­дової комбінації. В цьому коді кожні к перевірних елементів є просто повтореними інформаційними елементами

bj = bj+2k = bj+3k = - = bjHnR-\)k = Я/,У = 1 ... к.

Через те, що код має кодову відстань dmin = nR + 1, він може використовуватися для виявлення та виправлення помилок. Процедура виявлення помилок у прийнятій кодовій комбінації полягає в порівнянні однойменних інформаційних і перевірних елементів. Незбіг їх свідчить про наявність помилок у прийня­тій комбінації.

При виправленні помилок у кодовій комбінації застосову­ється мажоритарний принцип виправлення для кожного інфор­маційного елемента, тобто «голосування за більшістю», коли за істинне значення приймається те, яке найчастіше зустріча­ється в цьому інформаційному та відповідних перевірних еле­ментах. Код дає змогу виправити помилки кратністю від 1 до (dmin - і)/2 та деякі помилки більш високої кратності залежно від кількості повторень їх.

Надмірність коду визначається виразом

187

8.1.7. ІТЕРАТИВНІ КОДИ

Уперше ітеративні коди були запропоновані П. Еліасом [48]. Вони характеризуються двома або більшою кількістю переві­рок усередині кодової комбінації, а властивості цих кодів пов­ністю визначаються параметрами їх.

Так, довжина п кодової комбінації, кількість інформаційних параметрів k та мінімальна кодова відстань dmin визначаються виразами.

S S <?

/=і і=і /=і

де пі9 кр dmini — параметри ітерованих кодів; S—кратність іте-рування; YI—знак множення.

На практиці широко застосовуються двовимірні лінійні іте­ративні коди з кодуванням за рядками та стовпцями з однією перевіркою на парність. Дозволяється використовувати коди з кількістю перевірних елементів 8, 9 і 16. Для коду з г = 8 засто­совується блок інформаційних елементів розміром 3x4 (з кх = З рядками та к2 = 4 стовпцями). При цьому кількість інформа­ційних елементів к = кхк2 = 3 • 4 = 12, а перевірних г = = 8; п - 20. Для коду з г - 9 беруть к = кхк2 = 4 • 4 = 16, п = 25; для коду з г = 16 або к = кхк2 = 8 • 7 = 56, п = 72, або к = кхк2 = 7 • 8 = = 56, п = 72.

Ці коди мають мінімальну кодову відстань dmin = 2 • 2 = 4 і дають змогу виявити помилки будь-якої кратності, за винят­ком деяких чотири-, шести- та восьмикратних помилок, якщо вони розміщуються на вершинах прямокутників або попарно в певному порядку. В режимі виправлення та виявлення поми­лок код виправляє будь-які поодинокі помилки і виявляє всі подвійні та деякі помилки більшої кратності.

При виявленні помилок на приймальному боці виконується перевірка на парність кожних рядка та стовпця. Невиконання умови парності в якомусь стовпці свідчить про наявність спо­творених елементів у прийнятій кодовій комбінації.

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

Надмірність двовимірних ітеративних кодів становить:

*над =1-к/п = гіп = 8/20 = 2/5 при г = 8;

R =9/25 при г = 9;

Д= 16/72 = 2/9 при г =16.

Нехай, наприклад, двовимірним ітеративним кодом треба закодувати комбінацію 110111000110 двійкового простого коду з к = 12 інформацій­ними елементами.

Розбиваємо цю комбінацію на три частини й записуємо її в три рядки:

110 1

г - 110 0

0 110

Перевіряємо на парність елементи кожних рядка та стовпця й допису­ємо перевірні елементи:

110 111 (*,) 1 1 0 0 ' 0 2)

о_ j__i_gj о (63)

оі і і і - ■■ ■ ■■;■ ■ : : -у-

ЬА Ь5 ЬЬ Ь1 h ' "

Таким чином, маємо двовимірний ітеративний код із перевіркою на парність. У лінію (канал) передається така послідовність двійкових еле­ментів: 11011110000110001111.

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

110 11 110 0 0 1110,, 0 1111

і перевіряємо на йарність кожні її рядок та стовпець:

110 110

  1. 0 0 0

  2. 0 0 1 0 11110 10 0 0 0

При відсутності спотворень усі перевірні елементи, сформовані деко­дером, мають дорівнювати нулю. Однак у розглядуваному прикладі ви­явлено помилку в першому стовпці та третьому рядку, причому в двох перевірках брав участь елемент аг Якщо значення цього елемента зміни­ти на обернене, то всі перевірні елементи, сформовані декодером, дорів­нюватимуть нулю. Таким чином, помилку буде виявлено й виправлено.

При побудові ітеративних кодів для кодування елементів по рядках і стовпцях можна використовувати не тільки код із пе­ревіркою на парність (або непарність), а й інші коди (напри­клад, Хеммінга). При цьому мінімальна кодова відстань dmin збільшується, а значить, зростає й здатність коду виправляти помилки.

Суттєвим недоліком ітеративних кодів є порівняно висока надмірність їх, яка значно перевищує надмірність циклічних

188

189

кодів, здатних виявляти та виправляти ту саму кількість поми­лок за інших однакових умов. Однак їх використання в систе­мах передачі даних зумовлює більш просте порівняно з цикліч­ними кодами кодування та декодування за допомогою ЕОМ. Ітеративні коди знайшли широке застосування для виявлення та виправлення помилок, які виникають при запису, зберіганні та зчитуванні цифрової інформації на магнітних носіях.

8.1.8. КАСКАДНІ КОДИ

Збільшення мінімальної кодової відстані dmin і, як наслідок, здатності коду виправляти помилки можна досягти, якщо засто­сувати кілька ступенів кодування (каскадний принцип кодуван­ня). Такі коди дістали назву каскадних.

На практиці поширеними є каскадні коди, що складаються з двох кодів (два ступені кодування), які називаються внутрішнім і зовнішнім. При цьому зовнішній код використовується для кодування повідомлень, що надходять від джерела у вигляді первинного коду, а внутрішній — для кодування комбінацій зовнішнього коду перед передачею їх у канал зв'язку. На рис. 8.1 показано спрощену схему системи передачі з каскадним прин­ципом кодування повідомлень.

Як зовнішній код звичайно використовуються коди Ріда — Соломона або коди БЧХ [27,37]. Вибір внутрішнього коду зале­жить від характеристик каналу зв'язку та інтенсивності виник­нення помилок. Це може бути код БЧХ, код Хеммінга чи ін­ший код. Взагалі задачею внутрішнього коду є забезпечення прийнятої ймовірності помилки, а зовнішнього — зниження результуючої ймовірності неправильного декодування до за­даного значення.

Джерело

Зовнішній кодер (п,г)

Внутрішній кодер (N,R)

Модуля-

Канал

тор

зв'язку

V

У

Розширений кодер

Демоду-

Внутрішній

Зовнішній

«V

Одержувач

S

л

яіир

«*

дек

содер

Дек

одер

пс

>В|ДОЯ

л пень

Розширений декодер Рис. 8.1

190

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

Загалом, тобто при S ступенях (каскадах) кодування, міні­мальна кодова відстань каскадного коду визначається кодови­ми відстанями кодів, які використовуються для його побудови:

S

^min ll^min/ * і=1

Швидкість і надмірність каскадного коду також залежать від кодів, що використовуються при його побудові.

Каскадні коди знайшли широке застосування для передачі повідомлень по радіоканалах із великим рівнем завад, зокрема в супутникових лініях зв'язку.

8.2. РЕКУРЕНТНІ КОДИ

Рекурентними (неперервними) називаються коди, що пода­ються неперервною послідовністю кодових елементів без поділу на окремі комбінації.

Рекурентні коди дають суттєвий ефект при захисті інформа­ції, яка передається по каналах, де можливе виникнення поми­лок великої кратності та початок помилок. Найпростіше ці коди реалізуються при надмірності Лнад = 1 -а/1 = 0,5, де а — кіль­кість інформаційних елементів; / — довжина ділянки послідов­ності елементів, що передаються.

Від блокових рекурентні коди відрізняються тим, що дають змогу кодувати інформаційну послідовність неперервно, не поділяючи її на блоки фіксованої довжини п з А: інформаційни­ми та г перевірними елементами. Такі коди ще називаються ланцюговими. В них при передачі кожний перевірний елемент формується додаванням за модулем 2 двох інформаційних елемен­тів, відстань між якими дорівнює кроку додавання /кр = k - і (рис. 8.2):

а;®аккк1+1®ак+1=Ь;+1к+1'9

ак 0 ак +/кр; ак+\ ® ak+\+tKp = bk+hk+i+tKp;...'

191

IMP

W

W9

w*m

<^р

Інформаційні

елементи ..., о,-, 0/+/, ..., ак , ak+t, ..., ak+tm* **+/„>+/' •••# °*+2tm» •••

елементи .... bifkt bi+u .... bk , bk+t , .... bk + ttp, ...

k+1 k+t^ fc+Гцр+Г fc+2/kp

Рис. 8.2

Кількість перевірних елементів, сформованих за час Г, дорів­нює кількості інформаційних елементів, які надійшли за той са­мий час. Ці елементи передаються через один (а, Ь, я, 6, а, Ь9...). На приймальному боці вони розділяються й реєструються незалежно.

Із прийнятої послідовності інформаційних елементів форму­ються контрольні елементи Ъ" за тим самим алгоритмом, що й елементи bt при кодуванні. При цьому кожний контрольний елемент Ь" порівнюється із прийнятим перевірним елементом Ь(. Якщо спотворень не було, то b( - Ь" (перевірний елемент збігається із відповідним контрольним). Наявність двох незбігів контрольних і перевірних елементів, зсунутих один відносно одного на t елементів, свідчить про спотворення інформацій­ного елемента, спільного для обох перевірних елементів, і його значення необхідно змінити на протилежне.

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

Коректувальна здатність ланцюгового коду залежить від кроку додавання t . Якщо кожний перевірний елемент перед передачею в канал затримати на час Г3 і пачки помилок, розташовані поруч, розділити захисним інтервалом А, який не містить спотворених елементів = 6/кр + 1; Г3 = 3(/кр + 1)те, де те — тривалість одного елемента), то ланцюговий код може виправити пачку помилок зав­довжки 2tKp. Зміною довжини кроку /кр коректувальну здатність коду можна узгоджувати з характеристиками каналу зв'язку, змен­шуючи чи збільшуючи допустиму частість помилок [12,45].

8.3. НЕДВІЙКОВІ КОДИ

Ці коди поділяються на блокові та неперервні. Як відомо [2,8, 12], двійкові блокові коди призначені в основному для виправ­лення незалежних помилок. Відповідні їм q-коди також виправ-

ляють помилки аналогічного походження. Проте слід ураху­вати, що один елемент q-коду несе \og2q (при т = 1) або log2C m (при т>2) бітів інформації залежно від методу побудови кон­кретного коду.

Зазначена особливість #-коду дає підставу стверджувати, що навіть недвійковий блоковий код дає змогу виправляти умов­ний пакет помилок із log2^ або log2C m бітів інформації, який, якщо б він виник у аналогічному двійковому коді, не міг бути ним виправлений. Це є однією з переваг використання недвій-кових кодів, які виправляють помилки.

Розглянемо алгоритм побудови деяких недвійкових кодів, що виправляють помилки: з багатократним повторенням, узагаль­неного коду Хеммінга, кодів БЧХ, кодів Ріда — Соломона, іте­ративних і ланцюгового.

8.3.1. КОД ІЗ БАГАТОКРАТНИМ ПОВТОРЕННЯМ

Відмінність цього коду від д-коду з повторенням полягає в багатократному (nR > 3) повторенні початкової кодової комбі­нації. Даний метод кодування застосовується при передачі інформації по каналах з високим рівнем завад для істотного підвищення вірогідності, коли немає можливості для цієї мети використати зворотний канал.

Якщо застосування двійкового коду з багатократним повто­ренням потребує відповідного аналогічного #-коду дає змогу або зберегти колишню швидкість передачі, або зменшити її несуттє­во. Це пояснюється тим, що при використанні д-коду можна ввес­ти аналог «^-кратного повторення, збільшивши кількість пози­цій та ознак сигналу (алфавіт коду). В разі передачі інформації по радіоканалах, де, крім селективних завмирань, діють також завмирання сигналу в часі, аналог багатократного повторення можна ввести за кілька часових позицій (інтервалів).

Код із багатократним повторенням містить k інформацій­них елементів, а кількість перевірних елементів залежить від кількості повторень пю причому кожний перевірний елемент збігається з відповідним йому інформаційним. Таким чином, довжина кодової комбінації п - k + knR = k{\ + nR), де г = knR.

При Яд-кратному повторенні надмірність коду визначається виразом

ЛІИД = ял/0л)-

Алгоритм побудови #-коду з багатократним повторенням має вигляд

at^>b{\ i=|l,*|, Ні,лл|,

192

7 І195

193

де аі9 bt — множини позицій, призначені для передачі /-х інфор­маційного та перевірного елементів кодової комбінації відпо­відно; і — порядковий номер повторення.

Цей код є характерним представником класу низькошвидкіс-них кодів, тому що його швидкість R = кіп = \l(nR + 1).