- •Д.Е. Турчин
- •Лабораторный практикум
- •Кемерово 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. Вопросы к экзамену
4.2.2. Методы кодирования источников сообщений по Хаффману Кодирование дискретного источника сообщений без памяти по Хаффману.
Наиболее известным и широко используемым методом эффективного кодирования является метод Хаффмана.
Коды Хаффмана играют важную роль в кодировании изображений, звука и видео. Они являются составной частью стандартов JPEG, MPEG и H.261.
При кодировании источника сообщений без памяти двоичным кодом метод Хаффмана сводится к следующему:
Символы алфавита источника сообщений выписываются в столбец в порядке убывания вероятностей.
Два последних символа объединяются в один вспомогательный символ, которому приписывается суммарная вероятность.
Вероятности символов, участвующих в объединении и полученная суммарная вероятность вновь располагаются в порядке убывания вероятностей в дополнительном столбце, а два последних символа объединяются.
Процесс продолжается до тех пор, пока не будет получен единственный вспомогательный символ с суммарной вероятностью, равной 1.
Для получения кодового слова, соответствующего данному символу необходимо проследить путь перехода по строкам и столбцам полученной таблицы.
❒ Пример. 4.2. Построение кода Хаффмана для источника без памяти.
Требуется получить двоичный код Хаффмана для источника без памяти, модель которого описана в примере 4.1. Для этого построим таблицу пошагового выполнения алгоритма (табл. 4.2).
Таблица 4.2.
Получение эффективного кода по методу Хаффмана
Кодовое дерево, полученное по методу Хаффмана, показано на рис. 4.2.
Рис. 4.2. Кодовое дерево для кода Хаффмана
По кодовому дереву можно найти следующие кодовые слова:
s1 → 110; s2 → 0111;
s3 → 100; s4 → 010;
s5 → 00; s6 → 0110;
s7 → 111; s8 → 101.
Средняя длина
кодовых слов по формуле (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.1) найдем по формуле (4.4):
E = 2,885 / 2,9 = 0,995,
что совпадает с результатом из примера 4.1.
Таким образом, для заданной модели источника сообщений эффективность кодов, полученных по методам Шеннона-Фано и Хаффмана, одинакова. ❒
4.3. Порядок выполнения работы
Данная лабораторная работа предполагает выполнение следующих этапов:
Изучить методические указания к лабораторной работе.
Определить энтропию, эффективность и избыточность для дискретного источника без памяти с алфавитом S = {s1, s2, … , s12}. Вероятности появления символов источника сообщений приведены в табл. 4.3.
Получить в форме таблицы двоичный код Шеннона-Фано. Построить кодовое дерево для кода Шеннона-Фано и определить эффективность кода.
Получить эффективный код для заданного распределения вероятностей символов (табл. 4.3) с помощью метода Хаффмана.
Сравнить эффективности метода Шеннона-Фано и метода Хаффмана. Сделать выводы о полученных результатах.
Оформить и защитить отчет по лабораторной работе.
Таблица 4.3
Вероятности появления символов дискретного источника без памяти
№ вар. |
Алфавит источника сообщений |
|||||||||||
s1 |
s2 |
s3 |
s4 |
s5 |
s6 |
s7 |
s8 |
s9 |
s10 |
s11 |
s12 |
|
1 |
0,14 |
0,06 |
0,05 |
0,08 |
0,13 |
0,04 |
0,01 |
0,09 |
0,15 |
0,02 |
0,11 |
0,12 |
2 |
0,11 |
0,05 |
0,09 |
0,10 |
0,12 |
0,03 |
0,02 |
0,08 |
0,15 |
0,07 |
0,14 |
0,04 |
3 |
0,13 |
0,07 |
0,05 |
0,06 |
0,15 |
0,04 |
0,11 |
0,02 |
0,12 |
0,16 |
0,08 |
0,01 |
4 |
0,02 |
0,11 |
0,12 |
0,01 |
0,09 |
0,15 |
0,08 |
0,13 |
0,04 |
0,14 |
0,06 |
0,05 |
5 |
0,07 |
0,14 |
0,04 |
0,02 |
0,08 |
0,15 |
0,10 |
0,12 |
0,03 |
0,11 |
0,05 |
0,09 |
6 |
0,16 |
0,08 |
0,01 |
0,11 |
0,02 |
0,12 |
0,06 |
0,15 |
0,04 |
0,13 |
0,07 |
0,05 |
7 |
0,01 |
0,09 |
0,15 |
0,02 |
0,11 |
0,12 |
0,14 |
0,06 |
0,05 |
0,08 |
0,13 |
0,04 |
8 |
0,02 |
0,08 |
0,15 |
0,07 |
0,14 |
0,04 |
0,13 |
0,07 |
0,05 |
0,06 |
0,15 |
0,04 |
9 |
0,11 |
0,02 |
0,12 |
0,16 |
0,08 |
0,01 |
0,07 |
0,05 |
0,13 |
0,06 |
0,15 |
0,04 |
10 |
0,06 |
0,05 |
0,14 |
0,13 |
0,04 |
0,08 |
0,15 |
0,01 |
0,09 |
0,12 |
0,02 |
0,11 |
11 |
0,09 |
0,11 |
0,05 |
0,03 |
0,10 |
0,12 |
0,15 |
0,02 |
0,08 |
0,14 |
0,04 |
0,07 |
12 |
0,05 |
0,13 |
0,07 |
0,15 |
0,04 |
0,06 |
0,02 |
0,12 |
0,11 |
0,04 |
0,07 |
0,14 |
13 |
0,12 |
0,02 |
0,11 |
0,09 |
0,15 |
0,01 |
0,13 |
0,04 |
0,08 |
0,06 |
0,05 |
0,14 |
14 |
0,14 |
0,04 |
0,07 |
0,15 |
0,02 |
0,08 |
0,03 |
0,10 |
0,12 |
0,09 |
0,11 |
0,05 |
15 |
0,04 |
0,07 |
0,14 |
0,02 |
0,12 |
0,11 |
0,15 |
0,04 |
0,06 |
0,05 |
0,13 |
0,07 |
16 |
0,05 |
0,07 |
0,13 |
0,04 |
0,15 |
0,06 |
0,12 |
0,02 |
0,11 |
0,01 |
0,08 |
0,16 |
17 |
0,1 |
0,03 |
0,05 |
0,09 |
0,14 |
0,04 |
0,01 |
0,08 |
0,16 |
0,04 |
0,12 |
0,14 |
18 |
0,12 |
0,07 |
0,08 |
0,11 |
0,16 |
0,01 |
0,04 |
0,06 |
0,13 |
0,09 |
0,1 |
0,03 |
19 |
0,11 |
0,08 |
0,07 |
0,04 |
0,14 |
0,05 |
0,13 |
0,02 |
0,1 |
0,15 |
0,09 |
0,02 |
20 |
0,03 |
0,12 |
0,14 |
0,02 |
0,08 |
0,15 |
0,1 |
0,11 |
0,03 |
0,12 |
0,05 |
0,05 |
21 |
0,08 |
0,13 |
0,05 |
0,01 |
0,06 |
0,14 |
0,11 |
0,13 |
0,06 |
0,1 |
0,04 |
0,09 |
22 |
0,15 |
0,09 |
0,02 |
0,13 |
0,02 |
0,1 |
0,08 |
0,16 |
0,01 |
0,12 |
0,06 |
0,06 |
23 |
0,03 |
0,11 |
0,16 |
0,05 |
0,14 |
0,15 |
0,09 |
0,01 |
0,04 |
0,07 |
0,13 |
0,02 |
24 |
0,06 |
0,01 |
0,12 |
0,09 |
0,16 |
0,02 |
0,11 |
0,03 |
0,08 |
0,05 |
0,15 |
0,12 |
