Для вычисления коэффициента относительной эффективности, воспользуемся формулой (17):
.
Согласно формуле (22) средняя длина кодового слова составляет:
(22)
где K – число букв первичного алфавита;
nk – длина k-го кодового слова;
p(ak) – вероятность появления k-го кодового слова.
=log2 4 1,79=2 1,79=3,58.
Распределение вероятностей букв первичного алфавита в разделах 8 и 9 одинаковые, поэтому при вычислении значения коэффициента относительной эффективности воспользуемся значением энтропии первичного алфавита, вычисленного в столбце 6 таблицы 2:
Вычислим коэффициент статистического сжатия для построенного недвоичного кода Хаффмена:
Сравним показатели качества недвоичного(m=4) кода методом Хаффмена и двоичного кода методом Шеннона-Фано:
Выводы
В данной контрольной работе были построены два оптимальных неравномерных кода по методу Шеннона-Фано и Хаффмена – это две универсальные методики построения ОНК. Неоднозначность методики Шеннона-Фано тем заметнее, чем выше основание кода m2 и чем меньше m1.
К недостатку методик построения ОНК методом Хаффмена следует отнести громоздкость построения с ростом m1, поэтому надо использовать метод Шеннона-Фано. Преимущество метода Хаффмена сказывается с ростом основания кода m2. Более короткая длина кодовых слов во вторичном алфавите получается за счет оптимального выбора количества вершин на самом низком уровне кодового дерева. Несоблюдение этих условий приводит к кодам с большой средней длиной кодовых слов. Из расчета коэффициентов статистического сжатия для метода Шеннона-Фано видно, что энтропия кодируемого первичного алфавита max =3,3670 бит/символ близка
к средней длине кодового слова =3,41.
Если H= , то код является оптимальным для данного ансамбля.
Коэффициент относительной эффективности показывает насколько используется статистическая избыточность передаваемого сообщения.
Коэффициент статистического сжатия =1,0513 – характеризует уменьшение количества двоичных знаков на символ сообщения при применении ОНК по сравнению с применением методов нестатистического кодирования.
Можно сделать вывод, что для данного случая метод кодирования Шеннона-Фано является более эффективным, чем метод Хаффмана ( =1,0513 > и ).
Одной из причин такого вывода является то обстоятельство, что на первом этапе (метод Хаффмана) объединяются три буквы вместо потенциально возможных четырех (например, при K=7, К=10 или K=13). Вторая причина - в методе Хаффмана используется другая система счисления.
Таким образом, преимущество оптимальных кодов состоит в том, что они позволяют вести передачу информации с оптимальной скоростью. Недостаток состоит в том, что оптимальные коды наиболее беззащитны от влияния помех, т.е. обладают наименьшей помехоустойчивостью.