- •Д.Е. Турчин
- •Лабораторный практикум
- •Кемерово 2013
- •Описание лабораторного практикума
- •1.2.2. Понятие кода и кодирования. Моделирование дискретных источников сообщений без памяти
- •1.3. Порядок выполнения работы
- •1.4. Контрольные вопросы
- •Марковские источники сообщений.
- •Эффективность, избыточность и производительность источника сообщений.
- •Кодовые деревья и префиксные коды.
- •2.3. Порядок выполнения работы
- •2.4. Контрольные вопросы
- •3.2.2. Пропускная способность дискретного канала связи. Кодеры и декодеры канала связи. Код с битом четности Пропускная способность дискретного канала связи.
- •Кодер и декодер канала связи. Код с битом четности.
- •3.3. Порядок выполнения работы
- •3.4. Контрольные вопросы
- •Метод Шеннона-Фано.
- •4.2.2. Методы кодирования источников сообщений по Хаффману Кодирование дискретного источника сообщений без памяти по Хаффману.
- •4.3. Порядок выполнения работы
- •4.4. Контрольные вопросы
- •Декодирование арифметического кода.
- •5.2.2. Метод адаптивного арифметического кодирования и его программная реализация
- •5.3. Порядок выполнения работы
- •5.4. Контрольные вопросы
- •6. Сжатие информации методами Лемпела-Зива
- •6.1. Цель работы
- •6.2. Основные теоретические сведения
- •Код Хэмминга.
- •7.2.2. Расширенный код Хэмминга. Программная реализация кода Хэмминга Расширенный код Хэмминга.
- •7.3. Порядок выполнения работы
- •7.5. Контрольные вопросы
- •8. Построение и декодирование линейных блоковых кодов
- •8.1. Цель работы
- •8.2. Основные теоретические сведения
- •8.3. Порядок выполнения работы
- •8.4. Контрольные вопросы
- •Приложение п.1. Понятие события и его вероятности. Теоремы сложения и умножения вероятностей Понятие события и вероятности события. Непосредственный подсчет вероятностей.
- •Теорема сложения вероятностей.
- •Теорема умножения вероятностей.
- •П.2. Данные для расчета энтропии и количества информации
- •П.3. Матрицы и операции над ними п.4. Многочлены и операции над ними
- •П.5. Вопросы к экзамену
Метод Шеннона-Фано.
Для случая отсутствия статистической взаимосвязи между символами методы построения эффективных кодов впервые были предложены Шенноном и Фано. Поскольку эти методы существенно не отличаются, то общий метод получил название метода Шеннона-Фано.
При построении двоичного кода метод Шеннона-Фано сводится к следующему:
Символы алфавита источника сообщений располагаются в порядке убывания вероятностей.
Алфавит источника разбивается на две группы таким образом, чтобы суммарные вероятности символов обеих групп были по возможности равны. Первой группе присваивается знак «1», второй – «0».
Каждую из образованных групп вновь делят на две части с приблизительно равными суммарными вероятностями и присваивают им 1 и 0. Таким образом, получают вторые цифры кода.
Процесс повторяется до тех пор, пока в каждой подгруппе не останется по одному символу.
Метод Шеннона-Фано не всегда приводит к однозначному построению кода. От указанного недостатка свободен метод Хаффмана.
❒ Пример 4.1. Построение кода Шеннона-Фано.
Требуется получить двоичный код Шеннона-Фано для источника без памяти, который описывается следующим ансамблем:
.
Также для кода необходимо определить эффективность E.
Дополнительно найдем энтропию H(S), эффективность E(S) и избыточность R(S) источника S, которые по формулам (1.3), (2.2) и (2.3) будут:
H(S) = – (0,14·log20,14 + 0,07·log20,07 + 0,12·log20,12 +
+ 0,11·log20,11 + 0,22·log20,22 + 0,05·log20,05 + 0,16·log20,16 +
+ 0,13·log20,13) = 0,397 + 0,269 + 0,367 + 0,350 + 0,481 + 0,216 +
+ 0,423 + 0,383 = 2,885 (бит/символ);
Hmax = log28 = 3 (бит/символ).
E(S) = 2,885 / 3 = 0,962;
R(S) = 1 – 0,962= 0,038.
Для получения кода Шеннона-Фано построим таблицу, в которой по шагам будем производить разбиение символов на группы с близкими суммарными вероятностями (табл. 4.1).
Таблица 4.1.
Получение эффективного кода по методу Шеннона-Фано
si |
p(si) |
1 |
2 |
3 |
4 |
|
Li |
s5 |
0,22 |
1 0,52 |
1 0,22 |
|
|
11 |
2 |
s7 |
0,16 |
|
0 0,30 |
1 0,16 |
|
101 |
3 |
s1 |
0,14 |
|
|
0 0,14 |
|
100 |
3 |
s8 |
0,13 |
0 0,48 |
1 0,25 |
1 0,13 |
|
011 |
3 |
s3 |
0,12 |
|
|
0 0,12 |
|
010 |
3 |
s4 |
0,11 |
|
0 0,23 |
1 0,11 |
|
001 |
3 |
s2 |
0,07 |
|
|
0 0,12 |
1 0,07 |
0001 |
4 |
s6 |
0,05 |
|
|
|
0 0,05 |
0000 |
4 |
Кодовое дерево, соответствующее полученному коду Шеннона-Фано, представлено на рис. 4.1.
Рис. 4.1. Кодовое дерево для кода Шеннона-Фано
Найдем по формуле (4.1) среднюю длину кодовых слов:
0,14·3
+ 0,07·4
+ 0,12·3
+ 0,11·3
+ 0,22·2
+ 0,05·4
+
+ 0,16·3 + 0,13·3 = 2,9.
Отсюда эффективность кода Шеннона-Фано по формуле (4.4) будет:
E = 2,885 / 2,9 = 0,995. ❒
