- •1.1. Повідомлення та інформація
- •1.2. Моделі інформаційних систем
- •1.4. Предмет теорії інформації та кодування
- •2.2. Кількісна міра інформації
- •2.3. Ентропія та її властивості
- •2.4. Безумовна ентропія
- •2.5. Умовна ентропія
- •2.6. Ентропія об'єднання двох джерел
- •3.1. Продуктивність дискретного джерела та швидкість передачі інформації
- •4.1. Квантування сигналів
- •4.2. Інформаційні втрати
- •4.3. Продуктивність неперервного джерела та швидкість передачі інформації
- •IhlilhM
- •4.4. Пропускна здатність . . . .
- •5.1. Класифікація кодів і характеристики їх
- •5.4. Способи подання кодів
- •5.6. Основні теореми кодування для каналів
- •6.1. Класифікація первинних кодів
- •6.2. Нерівномірні двійкові первинні коди
- •6.2.1. Код морзе
- •6.2.2. Число-імпульсні коди
- •6.3. Рівномірні двійкові первинні коди
- •6.3.1. Числові двійкові коди
- •6.3.2. Двійково-десяткові коди
- •6.3.4. Двійково-шістнадцятковий код ;;.-,-.
- •6.3.5. Рефлексні коди
- •7.1. Двійкові коди,
- •7.1.2. Код із перевіркою на непарність
- •7.1.3. Код із простим повторенням
- •7.2. Недвійкові коди, що виявляють помилки
- •7.2.1. Код із перевіркою за модулем q
- •7.2.2. Код із повторенням
- •8"6 90472 "100562 І' • шТрИховє зОбраЖєння кодового сло-
- •8.1. Двійкові групові коди
- •8.1.1. Лінійний систематичний груповий (блоковий) код
- •8.1.2. Коди хеммінга
- •8.1.4. Коди боуза - чоудхурі - хоквінгема
- •8.1.5. Код файра
- •8.1.6. Код із багатократним повторенням
- •8.3.2. Узагальнений код хеммінга
- •8.3.3. Коди боуза - чоудхурі - хоквінгема
- •8.3.4. Коди ріда - соломона
- •8.3.6. Недвійковий ланцюговий код
- •9.1. Вірогідність передачі кодованих повідомлень
- •9.2. Стиснення інформації"
- •9.2.1. Способи стиснення даних при передачі
- •9.2.2. Способи стиснення даних при архівації
- •Збіжного рядка
- •9.3. Збільшення основи коду
- •0Сзезс99е8с0е1с10d1c242d5c3d2c6d8cbd6e8c0
- •VosooooooooooooooooOvJvJ
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ч ,, 0 1111
і перевіряємо на йарність кожні її рядок та стовпець:
110 110
0 0 0
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).
