Лабораторная работа № 2

advertisement
Лабораторная работа № 2
Построение кода постоянной длины.
Цель работы: Изучить метод построения кода постоянной длины и оценить
эффективность полученного кода.
Теоретическая часть
Для изображения информации часто используются тексты на том или ином языке.
Множество букв алфавита языка конечно и может быть записано в виде двоичных кодов.
Существует стандартная кодировка букв английского алфавита
ASCII (American
Standard Code for Information Interchange - Американский стандартный код для обмена
информацией). Это семибитный код, в котором кроме букв английского алфавита
(строчных и прописных) представлены также цифры, знаки препинания, некоторые
дополнительные знаки и управляющие коды (например, перевод строки).
Для
представления
расширение
кода
букв
ASCII
других
до
алфавитов
8-битового
(кроме
(extended
английского)
ASCII);
при
используется
этом
литеры
дополнительного алфавита кодируются двоичными числами, старший бит которых равен
1, тогда как для исходных кодов ASCII он равен 0.
Код постоянной длины – двоичное кодирование, отображающее каждый кодируемый
знак на двоичное слово одинаковой длины. Пусть объектом кодирования являются
тексты, записанные на некотором (естественном или искусственном) языке, причем
число букв в алфавите этого языка, включая (если есть такая необходимость) некоторые
знаки препинания, знак пробела и т.п., равно n. Далее, пусть L – наименьшее
натуральное число, удовлетворяющее условию:
L ≥ log2n
Тогда можно пользоваться простейшим методом побуквенного кодирования с помощью
кода постоянной длины L. Наиболее компактное кодирование достигается в том случае,
когда число букв в алфавите равняется целой степени двойки. Нарушение этого условия
непременно приводит к некоторой избыточности.
Стохастический источник сообщений генерирует тексты в виде последовательности
символов с заданным алфавитом и стационарными (не зависящими от времени)
статистическими
характеристиками
появления
элементов
алфавита
в
последовательности. В простейшем случае каждый символ aiОA появляется независимо
от других с вероятностью p(i).
Количество информации, приносимое в среднем одним элементом сообщения (текста),
по определению равно энтропии источника:
n
H = – ∑ p(i) log2p(i)
i =1
Энтропия источника H является непрерывной функцией от p(i). При фиксированном n
энтропия максимальна и равна log2n в случае, если все p(i) равны между собой.
Обозначим длину i-го кодового слова как |cod(ai)|.
Средняя длина кодовых слов может быть определена следующим образом:
L = Σ p(i) |cod(ai)|
Теорема кодирования: Для любого двоичного кодирования L≥H. Каждый источник
может быть закодирован так, что разность L–H будет сколь угодно малой.
Эффективность кода: отношение H/L
Избыточность кода:
отношение (L–H)/L
Порядок выполнения лабораторной работы
1.
Определить количество различных символов исходного текста, составить алфавит
сообщения и определить длину кодовых слов.
2.
Составить таблицу кодирования символов кодом постоянной длины.
3.
Закодировать исходное сообщение полученным двоичным кодом и определить
длину сообщения.
4.
Рассчитать эффективность полученного кода постоянной длины для заданного
сообщения.
Варианты заданий
1.
БАРАН КАРАБКАЛСЯ С КАРАБИНОМ
2.
ТАРАКАН ПОПАЛ В КАПКАН
3.
БАРАБАНЩИК БИЛ В ЯЩИК
4.
КОЛОКОЛ ИЗ ВОЛОКОЛАМСКА
5.
ПОЛОТЕНЦЕ ПОПАЛО В БОЛОТО
6.
КОЛОБОК ПОЛОТЕНЦЕ УВОЛОК
7.
ХЕРЕС ПОПАЛ НА ПЕРЕВЯЗЬ
8.
МЕЛ ЕМЕЛЯ МЕЛ В МЕЛЬНИЦЕ
9.
НА ЛАПУ УПАЛА КАПЛЯ ПАКЛИ
10.
НЕ ПЕЙ ПЕНУ У РЕПЕЙНИКА
11.
КОЛЕСИЛ СОКОЛ ОКОЛО ОКОЛИЦЫ
12.
КАК ЛОМ САМ ПОЛОМАЛСЯ ПОПОЛАМ
Содержание отчета о лабораторной работе:
• номер группы, ФИО, дата выполнения работы;
• исходное сообщение и алфавит;
• таблица кодов постоянной длины;
• закодированное сообщение и его длина;
• количество информации в сообщении;
• эффективность кода.
Пример расчета эффективности кода постоянной длины
Исходное сообщение: МАМА_МЫЛА_РАМУ
Пример отчета
Исходное сообщение "МАМА МЫЛА РАМУ"
Алфавит А = { " ", А, Л, М, Р, У, Ы }
Таблица кодов
Символ
Код
""
000
А
001
Л
010
М
011
Р
100
У
101
Ы
110
Сообщение = 011001011001000011110010001100001011101
Длина сообщения 42 бита (14 символов * бита/символ)
Количество информации в сообщении H=2.522 бит/символ
Средняя длина кододвого слова L=3 бит/символ
Эффективность кода H/L=0.841
Download