
- •Теорія інформації
- •Тулякова н.О.0 теорія інформації
- •Теорія інформації
- •1.1 Предмет курсу. Види інформації. Теорема дискретизації
- •1.2 Базові поняття теорії інформації
- •1.3 Способи вимірювання інформації
- •1. 4 Ентропія джерела. Властивості кількості інформації та ентропії
- •Розв'язання
- •Розв'язання
- •2.1 Умовна ентропія
- •2.2 Модель системи передачі інформації
- •2.3 Види умовної ентропії
- •2.4 Ентропія об'єднання двох джерел інформації
- •2.5 Продуктивність дискретного джерела інформації. Швидкість передачі інформації
- •2.6 Інформаційні втрати при передачі інформації по дискретному каналу зв'язку
- •2.7 Пропускна здатність дискретного каналу. Основна теорема про кодування дискретного джерела
- •Розв'язання
- •Розв'язання
- •3.1 Способи задання кодів. Статистичне кодування
- •3.2 Елементи теорії префіксних множин
- •3.3 Оптимальні методи статистичного стиснення інформації Шеннона-Фано і Хаффмена
- •Розв'язання
- •I Метод Шеннона-Фано:
- •II Метод Хаффмена:
- •4.1 Теоретичні границі стиснення інформації
- •4.2 Метод блокування повідомлення
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •Метод Шеннона-Фано
- •Арифметичний метод
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •7.1 Алгоритм lz77
- •7.2 Алгоритм lzss
- •7.3 Алгоритм lz78
- •7.4 Алгоритм lzw
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •8.1 Огляд типів систем стиснення інформації
- •8.2 Стиснення без втрат інформації
- •8.3 Стиснення із втратами інформації
- •9.1 Основні принципи
- •9.2 Елементи двійкової арифметики
- •9.3 Код з перевіркою на парність
- •9.4 Ітеративний код
- •Розв'язання
- •Розв'язання
- •10.1 Способи задання лінійних кодів. Твірна матриця лінійного блокового коду
- •10.2 Перевірна матриця лінійного блокового коду
- •10.3 Кодовий синдром і виявлення помилок лінійним блоковим кодом
- •10.4 Синдромне декодування лінійних блокових кодів
- •10.5 Вага і відстань Хеммінга. Можливості лінійних кодів виявляти і виправляти помилки
- •Розв'язання
- •Розв'язання
- •Розв'язання
- •12.1 Операції над поліномами в полі двійкових символів gf(2)
- •12.2 Поліноміальні коди
- •12.3 Циклічні коди
- •12.4 Синдром і виправлення помилок у циклічних кодах
- •12.5 Твірна і перевірна матриці циклічного коду
- •12.6 Способи декодування циклічного коду
- •Розв'язання
- •Розв'язання
- •Розв'язання
Розв'язання
Метод Шеннона-Фано
Побудуємо таблицю кодів для дискретної випадкової величини (д. в. в.) X за алгоритмом Шеннона-Фано (табл. 1)
Таблиця 1
Значення xi |
Імовірність P(xi) |
Код Code(xi) |
Довжина коду li |
pili |
5 |
0,3 |
00 |
2 |
0,6 |
6 |
0,25 |
01 |
2 |
0,5 |
1 |
0,2 |
10 |
2 |
0,4 |
7 |
0,15 |
110 |
3 |
0,45 |
2 |
0,1 |
111 |
3 |
0,3 |
lipi= 2,25 |
Середня
довжина отриманого коду
(біт/сим).
Метод Хаффмена:
Скориставшись заданими ймовірностями д. в. в. X, побудуємо кодове дерево (рис. 1) і відповідну таблицю кодів (табл. 2) за алгоритмом Хаффмена:
Рисунок 1
Таблиця 2
Значення xi |
Імовірність P(xi) |
Код Code(xi) |
Довжина коду li |
pili |
5 |
0,3 |
00 |
2 |
0,6 |
6 |
0,25 |
01 |
2 |
0,5 |
1 |
0,2 |
11 |
2 |
0,4 |
7 |
0,15 |
100 |
3 |
0,45 |
2 |
0,1 |
101 |
3 |
0,3 |
|
lipi=2,25 |
Середня довжина отриманого коду (біт/сим).
Арифметичний метод
Побудуємо таблицю інтервалів і кодів для даної д. в. в. X (табл. 3):
Таблиця 3
Значе- ння xi |
Імовір- ність pi |
Інтервал |
Число інтервалу |
Код |
Довжи-на коду li |
lipi |
1 |
0,2 |
[0,8; 1) |
7/8[0,8;1) |
111 |
3 |
0,6 |
2 |
0,1 |
[0,7; 0,8) |
3/4[0,7;0,8) |
11 |
2 |
0,2 |
5 |
0,3 |
[0,4; 0,7) |
1/2[0,4;0,7) |
1 |
1 |
0,3 |
6 |
0,25 |
[0,15; 0,4) |
1/4[0,15;0,4) |
01 |
2 |
0,5 |
7 |
0,15 |
[0; 0,15) |
1/8[0;0,15) |
001 |
3 |
0,45 |
|
lipi=2,05 |
Обчислимо середню довжину арифметичного коду
(біт/сим).
Приклад 2 Закодувати за арифметичним алгоритмом повідомлення BAABCB, отримане від дискретної випадкової величини X, заданої таким розподілом ймовірностей: P(X=A)=1/3; P(X=B)=7/15; P(X=C)=1/5.
Розв'язання
Побудуємо таблицю символів і відповідних їм інтервалів:
Символ |
Імовірність |
Інтервал |
A |
1/3 |
[2/3; 1) |
B |
7/15 |
[1/5; 2/3) |
C |
1/5 |
[0; 1/5) |
Ця таблиця зберігається разом із кодом стисненого повідомлення і призначена для кодування й декодування за арифметичним алгоритмом.
Процес кодування повідомлення BAABCB зручно подати у вигляді такої таблиці:
Повідомлення |
Інтервал |
Ширина інтервалу |
|
|
1 |
B |
|
|
A |
|
|
A |
|
|
B |
|
|
C |
|
|
B |
|
|
Повідомлення
BAABCB
однозначно визначає інтервал
.
Знайдемо дійсне число, що належить цьому
інтервалу і є часткою від ділення цілого
додатного числа на мінімальний степінь 2.
Таке
число
.
Двійкове подання чисельника буде арифметичним кодом повідомлення. Розрядність коду визначається степенем 2.
Отже, знайдемо двійковий 9-розрядний код числа 321: 32110=1010000012. Таким чином, арифметичний код заданого повідомлення
Code(BAABCB)=101000001.
Довжина коду L(X)=9 бітів.
Приклад 3 Декодувати повідомлення довжиною 5 символів за арифметичним алгоритмом. Код повідомлення 010001011.
Таблиця символів і відповідних їм інтервалів така:
Символ |
Імовірність |
Інтервал |
C |
1/4 |
[3/4; 1) |
B |
1/2 |
[1/4; 3/4) |
A |
1/4 |
[0; 1/4) |