
- •Работа над ошибками №3
- •Содержание
- •2.3 Построение оптимального неравномерного кода методом Хаффмана…………………...18
- •Контрольное задание № 1 Тема: Вычисление информационных характеристик сложных систем
- •2. Расчет вероятностей
- •2.1 Расчет вероятностей исходной системы
- •2.2 Расчет вероятности сложной системы
- •2.3 Проверка по контрольным соотношениям
- •3. Расчет энтропий
- •3.1 Расчет энтропии системы
- •3.2 Расчет энтропии сложной системы
- •3.3 Расчет частной условной энтропии
- •3.4 Расчет полной условной энтропии
- •3.5 Проверка по контрольным соотношениям
- •4. Расчет количества информации
- •5. Расчет прочих характеристик
- •Контрольное задание № 2 Тема: Оптимальное кодирование
- •2.1. Постановка задачи
- •Выполнение работы:
- •2.3. Для заданного числа качественных признаков вторичного алфавита m построить оптимальный неравномерный код методом Хаффмана.
- •2.4. Для построенных в п.П. 1 и 2 кодов вычислить коэффициенты относительной эффективности и статистического сжатия. Проанализировать результаты.
- •Контрольное задание № 3 Тема : Обнаружение и исправление ошибок в сообщениях
- •3.1. Постановка задачи.
- •3.3. Получена комбинация кода Хемминга, исправляющего одиночные или обнаруживающий двойные ошибки (код 8, 4).
- •Библиографический список
2.3. Для заданного числа качественных признаков вторичного алфавита m построить оптимальный неравномерный код методом Хаффмана.
Для первичных алфавитов с числом качественных признаков m1 построение оптимального кода во вторичном алфавите с числом качественных признаков m2 сводится к процедуре построения префиксного кодового дерева, для чего выполняются следующие операции.
Алгоритм построения недвоичного кода Хаффмена
При выполнении алгоритма удобно строить недвоичное кодовое дерево и помечать дуги, входящие в очередную вершину, символами из множества {0, 1,…,m}.
п.1. Объединить
L=2+Rm-1(K2) (6)
букв с наименьшими вероятностями в некоторую новую букву с вероятностью, равной сумме вероятностей объединяемых букв. Через Rm-1(K2) обозначен остаток от деления (K2) на (m-1).
Полагаем, что последний символ буквы aК-L+1 равен «0», последний символ буквы aК-L+2 – «1», последний символ буквы aК-L+3 – «2» и так далее до «L».
п.2. В редуцированном ансамбле определить m букв с наименьшими вероятностями, объединить их в обобщенную букву и присвоить очередному символу каждой из объединяемых букв значения 1, 2,…, m.
п.3. Повторять п.2. до тех пор, пока не получится редуцированный ансамбль из одной буквы, которой соответствует единичная вероятность.
п.4. Для каждой буквы первичного алфавита строим недвоичное кодовое слово, которому соответствует путь на кодовом дереве от корневой вершины к соответствующей концевой вершине по отметкам дуг из множества {0, 1,…, m}.
Символы алфавита m1 упорядочиваются по вероятностям:
А10 0.2
А8 0.1
А9 0.17
А7 0.14
А1 0.09
А11 0.08
А6 0.06
А4 0.05
А2 0.04
А3 0.03
А5 0.03
А12 0.01
2) В случае упорядочивания по убыванию вероятностей последние n0 символов объединяются в новый символ с вероятностью, равной сумме вероятностей объединяемых символов. При этом n0 должно удовлетворять условиям:
2 ≤ n0 ≤ m2
(m1 –n0 )/(m2 -1)=a,
где а – целое число уровней будущего кодового дерева.
m2 =3;
2 ≤ n0 ≤ 3 → n0 =2.
Найдем целое число уровней будущего кодового дерева:
m1 =12;
n0 = m1 –a*(m2 -1);
2=12-5*2;
a=5.
3) последующие объединения символов в дополнительные символы производятся с соблюдением следующих условий:
а) на всех этапах построение кодового дерева дополнительные символы объединяют n = m2 символов.
б) в дополнительный символ объединяются только символы, имеющие на данном этапе построения кодового дерева наименьшую вероятность с учетом вероятности вновь образованных символов.
4) процедура объединения в новые символы продолжается до тех пор, пока вероятность очередного вновь образованного символа не будет равна 1.
5) ветвям, выходящим из корня узлов , присваиваются качественные признаки алфавита m2 в одном и том же порядке:
а) выбираются буквы aК-L+1, aК-L+2, aК-L+3 с линиями вероятности р(aК-L+1), р(aК-L+2), р(aК-L+3);
б) полагается последний символ aК-L+1 = 0, aК-L+2 = 1, aК-L+3 = 2;
в) редуцируя ансамбль объединяются aК-L+1, aК-L+2, aК-L+3 в одну вспомогательную букву, к которой приписывается суммарная вероятность р(aК-L+1), р(aК-L+2), р(aК-L+3) ;
г) для редуцируемых ансамблей повторяется п. а-в, пока не получится редуцируемый ансамбль из одной буквы с вероятностью 1.
Кодовые комбинации оптимального кода представляют последовательности качественных признаков, которые встречаются по пути от корня к вершинам кодового дерева.
Таким образом, на первом этапе при образовании узла кодового дерева объединяются два символа с наименьшими вероятностями, а на остальных этапах в каждом узле кодового дерева число ветвей равно 3.
На рисунке представлено кодовое дерево.
ОНК
А10 |
00 |
А8 |
01 |
А9 |
02 |
А7 |
10 |
А1 |
11 |
А11 |
200 |
А6 |
201 |
А4 |
202 |
А2 |
21 |
А3 |
220 |
А5 |
221 |
А12 |
222 |

А
8
0.1 1
А9 0.17 2
А
7
0.14 0 0
А
1
0.09 1 0.23
1
А
11
0.08 0 0
1
А6 0.06 1 0.19 2
А
4
0.05 2 1
А2 0.04 0.11
А
3
0.03 0 2
А
5
0.03 1
А12 0.01 2