Лабораторные работы выполняются на языках высокого уровня (Паскаль, С, С++). Можно использовать любой компилятор. При использовании сред визуального программирования все процедуры и функции для построения кодов необходимо оформлять в отдельном модуле.
Лабораторные работы необходимо выполнять в том порядке, в котором они описаны в электронном конспекте. Контрольная работа выполняется только сдачи всех лабораторных работ.
Для зачета по лабораторной работе студенту необходимо представить
-
Исходные тексты программ с подробными комментариями (в отдельных файлах);
-
Исполняемые файлы;
-
Отчет по лабораторной работе.
Лабораторная работа №1
Вычисление энтропии Шеннона
Порядок выполнения работы
-
Реализовать процедуру вычисления энтропии для текстового файла на английском языке. В процедуре необходимо подсчитывать частоты появления символов (прописные и заглавные буквы не отличаются, знаки препинания рассматриваются как один символ, пробел является самостоятельным символом), которые можно использовать как оценки вероятностей появления символов. Затем вычислить величину энтропии Шеннона. Точность вычисления -- 4 знака после запятой. Обязательно предусмотреть возможность ввода имени файла, для которого будет вычисляться энтропия.
-
Проверить запрограммированную процедуру на нескольких файлах (размер не менее 1 Кб) и заполнить таблицу следующего вида вычисленными значениями энтропии
Используются частоты одиночных символов
|
Энтропия текста на английском языке
|
Макс. значение энтропии текста на английском языке
|
Энтропия разработанной программы для л.р.1
|
Макс. значение энтропии разработанной программы для л.р.1
|
|
|
|
|
4. Вычислить значение энтропии для тех же файлов, но с использованием частот вхождений пар символов.
Используются частоты пар символов
|
Энтропия текста на английском языке
|
Макс. значение энтропии текста на английском языке
|
Энтропия разработанной программы для л.р.1
|
Макс. значение энтропии разработанной программы для л.р.1
|
|
|
|
|
5. Проанализировать полученные результаты.
Лабораторная работа №2
Оптимальный код Хаффмана
Порядок выполнения работы
-
Реализовать процедуру построения оптимального кода Хаффмана.
-
Построить код Хаффмана для текста на английском языке (использовать файл не менее 1 Кб). Распечатать полученную кодовую таблицу в виде:
Символ
|
Частота
|
Кодовое слово
|
Длина кодового слова
|
|
|
|
|
-
Проверить выполнение неравенства Крафта-МакМиллана для полученного кода
-
Вычислить энтропию исходного файла и сравнить со средней длиной кодового слова построенного кода Хаффмана.
-
Закодировать полученным кодом текст на английском языке и подсчитать энтропию закодированного файла.
Энтропия исходного текста
|
Средняя длина кодового слова
|
Энтропия закодированного текста
|
|
|
|
-
Проанализировать полученные результаты
Лабораторная работа №3
Почти оптимальное алфавитное кодирование
Порядок выполнения работы
1. Реализовать процедуры построения кодов Шеннона и Фано.
3. Построить коды Шеннона и Фано для текста на английском языке (использовать файл не менее 1 Кб). Распечатать полученные кодовые таблицы в виде:
Символ
|
Частота
|
Кодовое слово
|
Длина кодового слова
|
|
|
|
|
4. Сравнить средние длины кодового слова с энтропией исходного файла для всех построенных статических кодов. Полученные результаты оформить в виде таблицы:
Энтропия исходного текста
|
Средняя длина кодового слова
|
Код Хаффмана
|
Код Шеннона
|
Код Фано
|
|
|
|
|
5. Проанализировать полученные результаты
Лабораторная работа №4
Адаптивное кодирование
Порядок выполнения работы
-
Закодировать текст на английском языке (использовать файл не менее 1 Кб) с помощью адаптивного кода Хаффмана.
-
Вычислить коэффициенты сжатия данных как процентное отношение длины закодированного файла к длине исходного файла.
-
Сравнить полученные коэффициенты сжатия данных, построить таблицу вида:
Размер исходного
файла
|
Коэффициент сжатия данных
|
Адаптивный код Хаффмана
|
Обычный код Хаффмана
|
|
|
|
5. Проанализировать полученные результаты
Лабораторная работа №5
Словарные коды
Порядок выполнения работы
-
Закодировать словарным кодом с использованием адаптивного словаря текст на английском языке, текст на русском языке и текст программы на языке С (использовать файлы не менее 1 Кб).
-
Вычислить коэффициенты сжатия данных как процентное отношение длины закодированного файла к длине исходного файла, построить таблицу вида:
Размер исходного
файла
|
Коэффициент сжатия данных
|
Текст на английском языке
|
Текст на русском языке
|
Текст программы на языке С
|
|
|
|
|
5. Проанализировать полученные результаты. Сравнить полученные результаты с результатами предыдущих лабораторных работ.