Дан набор символов с частотами: {A:0.5, B:0.25, C:0.125, D:0.125} — вычислите энтропию источника, предложите эффективное кодирование (например, код Хаффмана) и оцените среднюю длину кода относительно энтропии

17 Ноя в 10:02
2 +1
0
Ответы
1
Энтропия источника:
H=−∑pilog⁡2pi=−(0.5log⁡20.5+0.25log⁡20.25+0.125log⁡20.125+0.125log⁡20.125) H=-\sum p_i\log_2 p_i=-\big(0.5\log_2 0.5+0.25\log_2 0.25+0.125\log_2 0.125+0.125\log_2 0.125\big)
H=pi log2 pi =(0.5log2 0.5+0.25log2 0.25+0.125log2 0.125+0.125log2 0.125)
H=−(0.5⋅(−1)+0.25⋅(−2)+0.125⋅(−3)+0.125⋅(−3))=0.5+0.5+0.375+0.375=1.75 бит/символ H=-(0.5\cdot(-1)+0.25\cdot(-2)+0.125\cdot(-3)+0.125\cdot(-3))=0.5+0.5+0.375+0.375=1.75\ \text{бит/символ}
H=(0.5(1)+0.25(2)+0.125(3)+0.125(3))=0.5+0.5+0.375+0.375=1.75 бит/символ

Один из оптимальных кодов Хаффмана (строится: объединяем CCC и DDD в узел 0.250.250.25, затем объединяем с BBB, затем с AAA):
A:0,B:10,C:110,D:111 A:0,\quad B:10,\quad C:110,\quad D:111
A:0,B:10,C:110,D:111
Длины кодовых слов: l(A)=1, l(B)=2, l(C)=l(D)=3l(A)=1,\; l(B)=2,\; l(C)=l(D)=3l(A)=1,l(B)=2,l(C)=l(D)=3.
Средняя длина кода:
L=∑pili=0.5⋅1+0.25⋅2+0.125⋅3+0.125⋅3=1.75 бит/символ L=\sum p_i l_i=0.5\cdot1+0.25\cdot2+0.125\cdot3+0.125\cdot3=1.75\ \text{бит/символ}
L=pi li =0.51+0.252+0.1253+0.1253=1.75 бит/символ

Оценка относительно энтропии:
η=HL=1.751.75=1 (100%),R=L−H=0 бит \eta=\frac{H}{L}=\frac{1.75}{1.75}=1\ (100\%),\qquad R=L-H=0\ \text{бит}
η=LH =1.751.75 =1 (100%),R=LH=0 бит
(такая точность возможна, поскольку вероятности диадичны, т.е. кратны степеням 2−k2^{-k}2k).
17 Ноя в 10:51
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир