- •Тема 6. Кодування інформації
- •1. Характеристики кодів
- •2. Приклади бінарних кодів без надлишковості.
- •3. Основні теореми кодування
- •4. Оптимальне кодування за відсутності шумів. Код Шеннона-Фано.
- •5. Принципи завадостійкого кодування
- •6. Приклади бінарних кодів з виявленням і виправленням помилок.
- •1. Код з перевіркою на парність.
- •2. Код з простим повторенням.
- •3. Інверсний код (код Бауера).
- •4. Кореляційний код (Манчестер - код).
- •5. Кoд з сталою вагою (код на одну сполуку).
- •6. Код Хеммінга.
2. Приклади бінарних кодів без надлишковості.
У кодах без надлишку кількість інформації, яка припадає на один символ максимальна. Однак вони не можуть не тільки виправити, а часто і виявити помилку у реальних каналах зв'язку з перешкодами.
Згідно з (2) для передачі N повідомлень (кодових слів) бінарним кодом потрібна кількість розрядів (довжина коду)
n = log2 N
Запис кодових слів у вигляді двійкових чисел (3), у яких всі символи інформаційні, зветься простим війковим кодом. У такому коді кількість інформації, що припадає, на один символ максимальна. Однак простий двійковий код не може не тільки виправити, але навіть виявити помилку.
Бінарними ненадлишковими кодами, які здатні виявляти деякі помилки, є так звані рефлексні (відображені) коди, у яких сусідні кодові слова відрізняються символом тільки в одному розряді. Відсутність такої властивості у прийнятих сусідніх кодових словах означає наявність помилки. Серед рефлексних кодів найбільш розповсюдженим є код Грея.
Перехід
від простого двійкового коду (3) аk,
( k= 1,2,...,n) до
коду Грея
,
здійснюється за правилом
(k=1,2,…n)
(11)
(Старші
розряди співпадають, а кожний
наступний
дорівнює
сумі за модулем 2 відповідного
і
попереднього розрядів простого війкового
коду) зворотній перехід від коду Грея
до простого двійкового відбувається
за правилом
(k=1,2,…n)
(12)
(Старші розряди співпадають, а кожний наступний дорівнює сумі за модулем 2 всіх попередніх розрядів включно коду Грея). Практично при переведенні у код Грея під двійковим числом записується таке саме число з зсувом праворуч на один розряд; при цьому молодший розряд зсуненого числа губиться. Наприклад переведення простого двійкового числа 11010011 у код Грея:
11010011
11010011
[11010011]2,
= [10111010] Грея..
10111011
Практично при зворотньому переході до простого двійкового коду кожна цифра у коді Грея інвертується стільки разів скільки одиниць перед нею. Так для наведеного прикладу
[10111010]Грея=[1(0→1)(1→0)(1→→1)(1→→→0)(0→→→→0)(1→→→→1)(0→→→→→1)]2
=[11010011]2
Бінарним кодом майже без надлишковості, який застосовується у телемеханіці і зв'язку для передачі текстових і цифрових повідомлень є код Бодо. Це бінарний код довжиною n=5, з загальним числом кодових слів
N=25=32
Стандартний міжнародний код Бодо наведений у таблиці
Кодове слово |
Значення кодового слова |
|
|
|
На першому регістрі |
На другому регістрі |
На третьому регістрі |
|
|
10000 |
1 |
1 |
Ф |
|
00110 |
В |
8 |
Б |
|
01101 |
W |
С |
В |
|
01010 |
G |
7 |
Г |
|
11110 |
0 |
0 |
Д |
|
01000 |
Е |
2 |
Е |
|
00010 |
V |
Z |
Ж |
|
11001 |
Z |
: |
3 |
|
01100 |
І |
Ш |
И |
|
10010 |
J |
6 |
Й |
|
10011 |
К |
9 |
К |
|
11011 |
L |
= |
л |
|
01011 |
М |
S |
М |
|
01111 |
N |
Ю |
Н |
|
11100 |
O |
5 |
о |
|
11000 |
Р |
Т |
п |
|
00111 |
R |
— |
Р |
|
00101 |
S |
. |
с |
|
10101 |
Т |
Ч |
т |
|
10100 |
U |
4 |
У |
|
01110 |
F |
Э |
Ф |
|
11010 |
Н |
+ |
X |
|
10110 |
С |
9 |
ц |
|
10111 |
Q |
/ |
щ |
|
01001 |
X |
, |
ь |
|
00100 |
У |
3 |
ы |
|
00011 |
Ь |
θ |
я |
|
11111 |
Буквы русские |
|
|
|
00010 |
Цифры |
|
|
|
00001 |
Буквы латинские |
|
|
|
10001 |
Пробел |
|
|
|
00000 |
Звонок |
|
|
|
Ансамбль повідомлень коду Бодо - літери російської та латинської абеток, арабські цифри, розділові знаки («.», «,», «—», «:»), прогалина, службові слова («Буквы русские», «Буквы латинские», «Цифры», «Звонок»). 32 кодових слів недостатньо для передачі всіх зазначених повідомлень, тому в апаратурі, що працює на коді Бодо, є три регістри. При цьому загальна кількість кодових слів майже потроюється і складає 86.
Якщо
кодувати у коді Бодо 32-літерну російську
абетку, то з урахуванням нерівноймовірності
літер ентропія Н = 4,36
Максимальне
значення ентропії (для рівноймовірної
32-літерної абетки) Hmax =
log2 32
= 5
Отже надлишковість коду Бодо
Функціональна схема код ера (шифратора) для кожного слова коду Бодо містить один трігер Т і шість логічних елементів (ячеек) I: одного управляючого I0 і п'яти робочих I0 ÷I5.
На всі елементи I весь час подаються тактові імпульси (від генератора). Припустимо, що треба отримати кодове слово 10100, що відповідає російській літері У. При натисканні на клавішу “У” на вхід трігера Т потрапляє пусковий імпульс, який перекидає трігер Т , і той видає імпульс на вхід I0. На виході I0 виникає імпульс, який, по-перше, повертає Т у вихідний стан, а по-друге, подається на I1,. На виході I1 виникає імпульс, який через діод Д потрапляє на шину виходу і, крім того, подається на I2. На виході I2 виникає імпульс, який не подається на вихід, а потрапляє на I 3. На виході I 3 виникає імпульс, який подається на вихід і на I 4. За час, поки працював I 3 на виході не було імпульса від I 2 (на виході „О”). З виходу I4, імпульс потрапляє на I 5. З виходів I4та I 5 імпульси на вихід не подаються (на виході „О”). Отже за час Тс, що відповідає кодовому слову (5 довжин імпульсів) на виході схеми формується послідовність імпульсів, що відповідає кодовому слову 10100.
Функціональна схема декодера (дешифратора) для кода Бодо містить шість логічних елементів I: один допоміжний (стартовий) I0 і п'ять робочих I1÷I5.
На виходах I1, та I 3 з'являться імпульси, якщо надійдуть імпульси від попереднього елемента і від спільної шини. На виходах I 2, I 4, I 5 з’явиться імпульс, якщо на входах нема імпульсів від попереднього елемента і від спільної шини. Ячейка I0 призначена для розшифрування стартового імпульса і скидання інформації, записаної у I1÷I5. На схему за робочий цикл подаються 6 імпульсів: стартовий і 5 інформаційних (кодових). Коли працює I 0, не працюють I1÷I5. Елемент I5, може спрацювати лише, якшо порядок кодових імпульсів буде відповідати схемі підключення I1÷I5. (на наведеному малюнку це тобто 10100). Стартовий імпульс запускає I 0. В цей час вимикаються I1÷I5.- знищується попередній „запис”. На виході I0 з'являється імпульс, який разом з кодовим імпульсом (1) подається на I1 на виході якого через час τ виникає імпульс. Тому I2 не спрацьовує (нема другого дозволяючого імпульса) і від І2 не потрапляє кодовий імпульс (0) за наступний проміжок часу τ і тому на виході I3, виникає імпульс, який потрапляє на І4, на другому вході якого нема імпульсу. Тому на виході І4 нема імпульса, а тому на виході І5 з'явиться імпульс. Отже на виході схеми (І5) з'являється імпульс тільки, якщо послідовність кодових імпульсів на вході відповідає 10100.
