- •Тема 6. Кодування інформації
- •1. Характеристики кодів
- •2. Приклади бінарних кодів без надлишковості.
- •3. Основні теореми кодування
- •4. Оптимальне кодування за відсутності шумів. Код Шеннона-Фано.
- •5. Принципи завадостійкого кодування
- •6. Приклади бінарних кодів з виявленням і виправленням помилок.
- •1. Код з перевіркою на парність.
- •2. Код з простим повторенням.
- •3. Інверсний код (код Бауера).
- •4. Кореляційний код (Манчестер - код).
- •5. Кoд з сталою вагою (код на одну сполуку).
- •6. Код Хеммінга.
4. Оптимальне кодування за відсутності шумів. Код Шеннона-Фано.
Наведені вище основні теореми кодування є теоремами існування: вони лише доводять існування оптимальних (ефективних, завадостійких) кодів, але не дають способів їх побудови.
Нижче розглядаються питання ефективного бінарного кодування за відсутності шумів (кодування у системах з шумами буде розглядатись у наступному розділі). Для таких систем оптимальними вважаються майже безнадлишкові коди з мінімальною середньою довжиною слів (13).
Властивості бінарних оптимальних кодів:
1. Довжина кодового слова повинна бути обернено пропорційна його ймовірності (тобто ймовірності відповідного повідомлення):
(З
(5) і (14) випливає
2.
Символи абетки коду (0 та 1) повинні бути
взаємонезалежними і рівноймовірними
(це відповідає умові
3. Кодове слово не може бути початком іншого, більш довгого (можливість відокремлення без додаткових символів).
4. Нерівномірність
(Для
бінарного коду
,
отже рівномірний код може бути ефективним
лише, якщо кількість повідомлень дорівнює
цілій степені двійки, а за п.2 його символи
повинні бути рівноймовірними. Такі
умови практично нереальні)
Прикладом наближення до ефективного бінарного коду є алгоритм Шеннона - Фано :
1. Множина повідомлень, що кодуються, розташовується у порядку спадання ймовірностей.
2. Зазначена множина розбивається на дві підгрупи таким чином, щоб суми ймовірностей повідомлень у обох групах були по можливості однакові.
3. Першій підгрупі присвоюється символ 0, другій підгрупі -символ 1. Так отримується перша цифраїкоду.
4. Кожна з отриманих підгруп знову розбивається на дві групи за принципом п.2, і першим групам кожної підгрупи знову присвоюється 0, а другим - 1. Так отримується друга цифра коду.
5. Кожна з отриманих чотирьох груп знову розбивається на дві частини, ..., і процес триває доки не будуть закодовані всі повідомлення.
Приклад: Побудувати код Шеннона - Фано для ансамбля з 8 повідомлень.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
І
розбиття:
Перша цифра |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
II
розбиття:
Перша і друга цифри |
00 |
01 |
10 |
10 |
11 |
11 |
11 |
11 |
|
|
|
|
|
|
|
|
|
III
розбиття:
Перша, друга і третя цифри |
00 |
01 |
100 |
101 |
110 |
110 |
111 |
111 |
|
|
|
|
|
|
|
|
|
IV
розбиття:
Перша, друга третя і четверта цифри |
00 |
01 |
100 |
101 |
1100 |
1101 |
1110 |
1111 |
|
|
|
|
|
|
|
|
|
Середня довжина коду
Мінімально можлива середня довжина
Надлишковість
Для відповідного рівномірного коду:
Зауваження:
1. Кодові слова однакової ймовірності появи мають однакову довжину.
2.Умова
виявилась
тому, що кількість повідомлень дорівнює
цілій степені двійки (8=23),
і суми ймовірностей у групах розбиття
були однакові.
