Дана дискретная информационная система с источником символов s={a,b,c} и вероятностями p(a)=0.5, p(b)=0.3, p(c)=0.2: вычислите энтропию источника, покажите, как строится оптимальный префиксный код (например, код Хаффмана), оцените среднюю длину кода и обсудите, какие ограничения и компромиссы возникают в практической реализации с задержкой и ошибками канала

27 Окт в 13:34
8 +8
0
Ответы
1
Энтропия источника:
H=−∑x∈{a,b,c}p(x)log⁡2p(x)=−(0.5log⁡20.5+0.3log⁡20.3+0.2log⁡20.2) H=-\sum_{x\in\{a,b,c\}} p(x)\log_2 p(x)
= -\big(0.5\log_2 0.5 + 0.3\log_2 0.3 + 0.2\log_2 0.2\big)
H=x{a,b,c} p(x)log2 p(x)=(0.5log2 0.5+0.3log2 0.3+0.2log2 0.2)
=−(0.5⋅(−1)+0.3⋅log⁡20.3+0.2⋅log⁡20.2)≈0.5+0.3⋅1.737+0.2⋅2.322≈1.4855 бит/символ. = -\big(0.5\cdot(-1) + 0.3\cdot\log_2 0.3 + 0.2\cdot\log_2 0.2\big)
\approx 0.5 + 0.3\cdot1.737 + 0.2\cdot2.322
\approx 1.4855\ \text{бит/символ}.
=(0.5(1)+0.3log2 0.3+0.2log2 0.2)0.5+0.31.737+0.22.3221.4855 бит/символ.

Построение оптимального префиксного (Хаффмана) кода:
- Сортируем вероятности: 0.5,0.3,0.20.5,0.3,0.20.5,0.3,0.2.
- Сливаем два наименьших: 0.3+0.2=0.50.3+0.2=0.50.3+0.2=0.5. Осталось две ветви 0.50.50.5 и 0.50.50.5.
- Присваиваем бит для верхнего разветвления; внутри объединённой ветви 0.30.30.3 и 0.20.20.2 — ещё один бит.
Один возможный код (символы и длины):
a:0(ℓ(a)=1),b:10(ℓ(b)=2),c:11(ℓ(c)=2). a:0\quad(\ell(a)=1),\qquad b:10\quad(\ell(b)=2),\qquad c:11\quad(\ell(c)=2).
a:0((a)=1),b:10((b)=2),c:11((c)=2).

Средняя длина кода:
Lˉ=∑xp(x)ℓ(x)=0.5⋅1+0.3⋅2+0.2⋅2=1.5 бит/символ. \bar{L}=\sum_x p(x)\ell(x)=0.5\cdot1+0.3\cdot2+0.2\cdot2=1.5\ \text{бит/символ}.
Lˉ=x p(x)(x)=0.51+0.32+0.22=1.5 бит/символ.
Избыточность относительно энтропии:
Lˉ−H≈1.5−1.4855≈0.0145 бит/символ. \bar{L}-H \approx 1.5-1.4855 \approx 0.0145\ \text{бит/символ}.
LˉH1.51.48550.0145 бит/символ.

Ограничения и компромиссы в практической реализации (задержка и ошибки канала):
- Дискретность длин: префиксные коды дают целочисленные длины бит → небольшая избыточность (здесь мала).
- Задержка: Хаффман — потоковый и мгновенный (минимальная буферизация), но для ещё более близкого к энтропии сжатия используют блочное кодирование или арифметическое кодирование, что увеличивает задержку (нужно накапливать блок).
- Чувствительность к ошибкам: переменная длина приводит к сильной локальной деградации и потере синхронизации при ошибках; фиксированная длина устойчивее. Для надёжности требуется канальное кодирование (FEC) или добавление синхросигналов, что увеличивает нагрузку и задержку.
- Изменчивость статистики: при несоответствии модели (реальные p отличаются) эффективность падает; адаптивный Хаффман исправляет это, но добавляет вычислительную сложность и возможные задержки/накладные расходы.
- Сложность реализации: простые префиксные коды лёгки в декодировании; арифметическое/асимпт. кодирование даёт лучшую эффективность, но сложнее и чувствительнее к ошибкам и точности арифметики.
Краткое резюме: энтропия ≈ 1.48551.48551.4855 бит/символ, оптимальный префиксный код (Хаффман) даёт среднюю длину 1.51.51.5 бит/символ с очень малой избыточностью; выбор между немедленной передачей (малая задержка) и более плотным кодированием (меньше избыточности, больше задержки и чувствительности к ошибкам) — главный практический компромисс.
27 Окт в 14:02
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир