- •Тема 1. Інформація та інформаційні процеси.
- •1. Повідомлення та інформація.
- •2. Моделі інформаційних систем
- •3. Математичні моделі каналу зв’язку
- •4. Предмет теорії інформації та кодування
- •Тема 2. Вимірювання інформації.
- •1. Основні підходи до вимірювання інформації, їх особливості.
- •2. Технічний (об’ємний) спосіб оцінювання інформації та його застосування в комп’ютерних системах.
- •3. Інформаційний обсяг повідомлення
- •4. Поняття про алгоритмічний підхід до вимірювання інформації.
- •Тема 3. Поняття ентропії інформації. Умовна та безумовна ентропії.
- •1. Кількісна міра інформації.
- •2. Ентропія та її властивості.
- •3. Безумовна ентропія
- •4. Умовна ентропія
- •5. Ентропія об’єднання двох джерел.
- •Тема 4. Методи визначення ентропії.
- •1. Ентропія по Хартлі.
- •2. Ентропія по Шеннону.
- •3. Ентропія по Колмогорову та ентропія 3
- •4. Ентропія по Шульцу та Мідлтону
- •5. Ентропія по Николайчуку. Інші методи визначення ентропії.
- •Тема 5. Характеристика дискретних джерел інформації. Теорема Шеннона.
- •1. Продуктивність дискретного джерела та швидкість передачі інформації
- •2. Інформаційні втрати при передачі інформації по дискретному каналу зв'язку
- •3. Пропускна здатність дискретного каналу. Основна теорема про кодування дискретного джерела.
- •Тема 6. Характеристики неперервних джерел інформації.
- •1. Інформаційні втрати при кодуванні неперервних джерел.
- •2. Продуктивність неперервного джерела та швидкість передачі інформації
- •3. Пропускна здатність неперервного каналу
- •Тема 7. Поняття про коди та кодування.
- •1. Поняття про коди та кодування. Потужність та довжина коду.
- •2. Рівномірні коди. Основна теорема про рівномірні коди.
- •3. Нерівномірні коди
- •4. Основні напрями кодування
- •Тема 8. Основи економного кодування.
- •1. Передавання інформації каналами зв’язку
- •2. Теоретичні основи побудови економних кодів. Перша теорема Шенона
- •3. Алгоритм Шенона—Фано для побудови економного коду
- •Алгоритм кодування за методом Шенона—Фано
- •4. Алгоритм Хаффмена для побудови оптимального коду
- •Алгоритм Хаффмена
- •5. Оптимальні нерівномірні коди і проблеми стискування інформації
- •Тема 9. Нерівномірні двійкові первинні коди.
- •1. Класифікація первинних кодів
- •2. Код Морзе
- •3. Число-імпульсні коди
- •Тема 10. Рівномірні двійкові первинні коди.
- •1. Числові двійкові коди
- •2. Двійково-десяткові коди
- •3. Двійково-десяткові коди з самодоповненням
- •4. Двійково-шістнадцятковий код
- •5. Рефлексні коди
- •Тема 11. Двійкові коди з виявленням помилок.
- •1. Коди з перевіркою на парність та непарність
- •2. Код із простим повторенням
- •3. Інверсний код
- •4. Кореляційний код
- •5. Код зі сталою вагою
- •6. Код із кількістю одиниць в комбінації, кратною трьом
- •Тема 12. Недвійкові коди з виявленням помилок.
- •1. Код з перевіркою за модулем q
- •2. Код із повторенням
- •3. Незвідні змінно-позиційні коди
- •4. Штрихові коди
- •Тема 16. Кодування в системі залишкових класів.
- •1. Побудова кодів у системі залишкових класів, породжених базисом Крестенсона
- •2. Переваги та недоліки кодування у системі залишкових класів
- •3. Ефективність математичних операцій у системі залишкових класів
- •4. Надлишковість та здатність виявляти та виправляти помилки
- •Тема 17. Коди Галуа.
- •1. Методика формування кодів Галуа, їх переваги
- •2. Надлишковість та здатність виявляти та виправляти помилки
2. Теоретичні основи побудови економних кодів. Перша теорема Шенона
Найважливішою складовою започаткованої Клодом Шеноном теорії інформації є теорія передачі інформації. Вона вивчає оптимальні й близькі до них методи передачі інформації каналами зв’язку за умови, що можливо змінювати методи кодування повідомлень у сигнали на вході каналу зв’язку і декодувати їх на виході.
В праці «Математична теорія зв’язку» Шенон запропонував розв’язання основної проблеми про знаходження швидкості передавання інформації, яку можна досягнути при оптимальному методі кодування та декодування так, щоб ймовірність помилки при передачі інформації була б як завгодно малою.
Зазначимо, що зберігання інформації можна розглядати як передавання інформації, але не в просторі, а в часі. Тому проблеми, пов’язані з оптимальним способом зберігання повідомлень, принципово не відрізняються від проблем оптимального передавання інформації каналами зв’язку без перешкод.
Перша теорема Шенона (для каналу без завад)
Сформулюємо її так, як це зробив сам Шенон.
Нехай джерело має ентропію Н (біт на символ), а канал має пропускну здатність С (біт за секунду). Тоді можна закодувати повідомлення на виході джерела таким чином, щоб передавати символи каналом із середньою швидкістю С/Н – ε символів за одну секунду, де ε — як завгодно мале. Передавати із середньою швидкістю, більшою ніж С/Н неможливо.
К. Шенон довів цю теорему двома різними способами.
У більш сучасній редакції першу теорему Шенона формулюють так:
Для каналу без завад кодування дискретних повідомлень можна здійснити так, щоб середня кількість двійкових знаків на елемент кодуючого алфавіту А була як завгодно близька до ентроропії джерела Н, але не менша за неї.
Першу теорему Шенона ще називають основною теоремою про кодування. Вона лежить в основі економного кодування.
Економним називається кодування, яке проводять з метою скорочення обсягу інформації та підвищення швидкості її передавання.
Економне кодування називають ще ефективним кодуванням, а також стискуванням даних.
В економному кодуванні користуються такими визначальними інформаційними характеристиками, як ентропія джерела, надлишковість джерела, середнє число символів у коді, надмірність коду.
Ентропія джерела повідомлень (див.7,п.4) визначається за формулою
Н(х)=
–
де
—
ймовірність появи в повідомлення
елемента (букви) джерела
,
а m —
потужність алфавіту джерела.
Якщо
=
,
де
=1,2,...,m,
то Н(х)
=log
m
Надмірність джерела. Реальні джерела з однією й тією ж потужністю алфавіту m можуть мати різну ентропію (тексти, музика, мова, зображення тощо). Тому вводять таку характеристику джерела повідомлень як надмірність
P
= 1-H(х)/H(х)
=
1-H(х)/log
m,
де
Н(х)
—
ентропія реального джерела, log
m
—
максимально досяжна ентропія для джерела
з обсягом (потужністю) алфавіту в m
символів.
Наприклад, доведено, що для букв українського алфавіту (32, включаючи ь) реальна кореляція Н(х)=2,0 біт/букву (з урахуванням різної ймовірності букв у тексті та їх кореляцію). Оскільки максимально досяжна тут ентропія Н(х) =log m=log 32=5,то
P = 1-(2 біти/букву) / (5 біт/букву)=0,6
Тобто при передачі тексту каналом зв’язку кожні 6 букв із 10-ти не несуть ніякої інформації.
Середнє число двійкових символів, що припадають на одну букву джерела повідомлення, визначається за формулою
,
де l
— довжина коду, що відповідає букві
x
,
p(x
)
— ймовірність букви x
.
Для
рівномірних кодів
дорівнює довжині слова
.
Надмірність коду визначається за формулою P
=1
–
Зіставимо ці характеристики для двох
прикладів.
Приклад
1. Джерелом повідомлень є алфавіт
вісімкової системи числення А
=
{0,1,2,3,4,5,6,7}. Букви його закодовані
рівномірним тризначним кодом: 0↔000,
1↔001, 2↔010, ..., 7↔111. Визначимо основні
інформаційні характеристики джерела
з таким алфавітом:
Ентропія джерела Н(А ) = log 8=3;
Надлишковість джерела
P
= 1 –
;
середнє число символів в коді дорівнює
(код рівномірний);надлишковість коду
Отже, надлишковість рівномірного коду дорівнює нулю.
Приклад 2. Візьмемо те ж джерело з алфавіту А , але з різною ймовірністю появи букв у тексті (вісімковому числі), яку подано в таблиці 4.
Таблиця 4
а |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Р(а ) |
0,04 |
0,01 |
0,015 |
0,1 |
0,6 |
0,025 |
0,01 |
0,2 |
Ентропія джерела Н(А )= 1,781;
Середнє число символів при використанні цього рівномірного тризначного коду ;
Надлишковість коду
P
=
1 -
≈
0,41.
Отже, порівняно з результатами прикладу 1, надлишковість коду тут доволі значна. Вана свідчить про те, що в середньому 4 символи із 10 не несуть ніякої інформації.
Отже, при кодуванні нерівноймовірних повідомлень рівномірним кодом виникає велика надлишковість. Тому цілком логічною була пропозиція використати нерівномірні коди, довжина кодових слів яких була б узгоджена з ймовірністю появи різних букв у тексті.
При цьому нерівномірні коди повинні бути такими, щоб за кодовою послідовністю, побудованою на їх основі, можна було однозначно відновити початковий текст, без додаткових розділових знаків (повинні бути однозначно декодовані).
Тому
при їх побудові важливе значення має
теорема Мак-Міланна, яка стверджує, що
для однозначного кодування має
виконуватися співвідношення
,
де k
– загальна кількість кодових слів, li
- довжина i-того кодового слова, Q
– основа (потужність) коду (Теорема
3.2).
Важливими економними кодами є коди без пам’яті, в яких кожний символ вектора, що кодується, замінюється кодовим словом із префіксної множини двійкових послідовностей чи слів.
Префіксна множина двійкових послідовностей S — це така множина, у якій жодний із її елементів не є префіксом (початком) жлдного іншого елемента цієї множини.
Наприклад, множина двійкових слів S1= {01,10,11,000,001} є префіксною множиною двійкових послідовностей, оскільки жоден її елемент не є префіксом будь-якого іншого елемента цієї послідовності. В цьому легко переконатися, якщо перевірити будь-яку із 20 можливих пар елементів множини S1.
Множина S2= {0,01,011,111} не є префіксною, оскільки її перший елемент є префіксом (початком) другого та третього елемента, а другий — третього.
Для
побудови префіксного коду деякого
повідомлення m=
(m
,m
,…,m
)
з алфавітом А користуються такими
правилами [11,п.2.2]:
Складають повний список символів a ,a ,a
,…,a
алфавіту А так, щоб вони були розташовані
в міру спадання їх ймовірностей появи
в m:
на першому місці стоятиме символ, який
найчастіше з’являється в m,
на другому місці — менш часто і т.д.Кожному символу a приписують (ставлять у взаємно однозначну відповідність) кодове слово
із
префіксної множини двійкових
послідовностей S.Вихід кодера одержують об’єднанням в одну послідовність усіх одержаних двійкових слів.
Але як для кожного конкретного випадку відшукати префіксну множину S? Які є необхідні та достатні умови для того, щоб існував відповідний префіксний код? Відповідь на ці запитання одержують на основі розгляду так званого вектора Крафта
Нехай S={v ,v ,…,v } — префіксна множина, а V(S)=(l ,l ,…,l ) — вектор, який складається з чисел, що є довжинами відповідних префіксних послідовностей, тобто l є довжиною ( i=1,2,..,k).
Вектор
(l
,l
,…,l
),
який складається з довільних чисел, що
задовольняють умову l
≤l
,
називають вектором Крафта.
Для цього вектора виконується нерівність Крафта:
2
+
2
+
...+ 2
≤1 (3.7)
У теорії економних кодів дуже важливою є:
Теорема 3.3.
Для того щоб існував префіксний код з довжинами кодових слів l ,l ,…,l , необхідно й достатньо, щоб виконувалася нерівність Крафта (3.7).
Якщо нерівність (3.7) переходить у строгу нерівність, то такий префіксний код називають компактним. Такий код має найменшу серед усіх кодів, що побудовані для даного алфавіту А, довжину, тобто він є оптимальним.
Нехай необхідно побудувати код без пам’яті для стискування вектора даних m=(m ,m ,…,m ) з алфавіту А, потужність якого К. Для цього уведемо в розгляд так званий вектор частот P=(P ,P ,...,P ) де P — частота появи i-того символа з А в m. Закодуємо тепер Х кодом без пам’яті, для якого вектор Крафта l= (l ,l ,…,l ). У цьому випадку кодова послідовність на виході кодера матиме довжину L(m)
L(m)=(l *P1+l *P +…+l *P ) (3.8)
Легко зрозуміти, що кращим префіксним кодом є такий, для якого довжина L(m) мінімальна.
Для побудови такого коду потрібно знайти вектор Крафта l, для якого сума (3.8) була б мінімальною.
Це питання розглядатиметься в наступних параграфах.
Наприкінці даного параграфа розглянемо приклади простих префіксних множин і відповідних їм векторів Крафта. Подамо цю інформацію у вигляді таблиці 5.
Таблиця 5
|
Префіксна множина |
Вектор Крафта |
1 |
{0,10,11} |
(1,2,2) |
2 |
{0,10,110,111} |
(1,2,3,3) |
3 |
{0,10,110,1110,1111} |
(1,2,3,4,4) |
4 |
{0,10,1100,1101,1110,1111} |
(1,2,4,4,4,4) |
5 |
{0,10,1100,1101,1110,11110,11111} |
(1,2,4,4,5,5) |
