Дан источник с алфавитом {A,B,C,D} и вероятностями 0.5, 0.25, 0.125, 0.125: вычислите энтропию H, постройте оптимальный префиксный код (например, Хаффмана), найдите среднюю длину кода и сравните с H; далее обсудите, как появление вероятности битовой ошибки в канале изменит требования к кодированию и какие методы коррекции ошибок и детектирования вы бы применили в практической системе
Дано A={A,B,C,D} \mathcal{A}=\{A,B,C,D\}A={A,B,C,D} с вероятностями p(A)=0.5, p(B)=0.25, p(C)=0.125, p(D)=0.125p(A)=0.5,\; p(B)=0.25,\; p(C)=0.125,\; p(D)=0.125p(A)=0.5,p(B)=0.25,p(C)=0.125,p(D)=0.125. Энтропия: H=−∑xp(x)log2p(x)=−(0.5log20.5+0.25log20.25+0.125log20.125+0.125log20.125)=1.75 бит/символ.
H=-\sum_{x} p(x)\log_2 p(x) = -\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) =1.75\ \text{бит/символ}. H=−x∑p(x)log2p(x)=−(0.5log20.5+0.25log20.25+0.125log20.125+0.125log20.125)=1.75бит/символ. Оптимальный префиксный (Хаффманов) код: объединяем CCC и DDD в узел 0.125+0.125=0.250.125+0.125=0.250.125+0.125=0.25, затем объединяем узлы 0.250.250.25 и 0.250.250.25 и т.д. Один возможный оптимальный код: 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)=3, l(D)=3l(A)=1,\; l(B)=2,\; l(C)=3,\; l(D)=3l(A)=1,l(B)=2,l(C)=3,l(D)=3. Средняя длина: L=∑xp(x)l(x)=0.5⋅1+0.25⋅2+0.125⋅3+0.125⋅3=1.75 бит/символ.
L=\sum_x p(x)l(x)=0.5\cdot1 + 0.25\cdot2 + 0.125\cdot3 + 0.125\cdot3 = 1.75\ \text{бит/символ}. L=x∑p(x)l(x)=0.5⋅1+0.25⋅2+0.125⋅3+0.125⋅3=1.75бит/символ.
Сравнение: L=HL=HL=H — код достигает нижней границы энтропии (возможно, так как вероятности — степени 1/21/21/2). Влияние битовой ошибки в канале и практические методы: - Перемещение от идеального сжатия к надежной передаче требует добавления избыточности; перемычка между источником и каналом: либо отдельное кодирование (source coding) + коррекция ошибок (channel coding), либо совместное кодирование для коротких блоков/малой задержки. - Переменные длины (префиксные) чувствительны к одиночным ошибкам (десинхронизация). Практики: кадрирование/синхронизация (фреймы, маркеры), периодические точки ресинхронизации или пакетизация символов в блоки фиксированной длины перед FEC. - Методы детектирования и коррекции: - Детектирование ошибок: CRC для кадра + ARQ (при наличии канала обратной связи). - Простая коррекция: коды Хэмминга для одиночных ошибок (низкая избыточность). - Блоковые коды мощнее: Reed–Solomon (хороши для ошибок/пучков), BCH. - Современные мощные коды: LDPC и турбокоды — близки к пределу Шеннона при больших блоках. - Сверточные коды + Viterbi для потоковой передачи с умеренной сложностью. - Интерливинг для борьбы с пачками ошибок. - Практические рекомендации: - Для двусторонней связи с возможностью ретрансляции: использовать CRC+ARQ (высокая эффективность при низкой задержке). - Для однонаправленной/реального времени: применить мощный FEC (LDPC/Reed–Solomon) с интерливингом; обеспечить кадрирование и, при необходимости, неравномерную защиту (UEP) — более важные символы получают более сильную защиту. - Если требуется минимизировать уязвимость переменных длин — пакетировать/переформатировать в фиксированные блоки перед FEC или использовать кодирование, устойчивое к рассинхронизации. Это основные выводы и практические методы для системы с заданным источником и наличием битовых ошибок.
Энтропия:
H=−∑xp(x)log2p(x)=−(0.5log20.5+0.25log20.25+0.125log20.125+0.125log20.125)=1.75 бит/символ. H=-\sum_{x} p(x)\log_2 p(x)
= -\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)
=1.75\ \text{бит/символ}.
H=−x∑ p(x)log2 p(x)=−(0.5log2 0.5+0.25log2 0.25+0.125log2 0.125+0.125log2 0.125)=1.75 бит/символ.
Оптимальный префиксный (Хаффманов) код: объединяем CCC и DDD в узел 0.125+0.125=0.250.125+0.125=0.250.125+0.125=0.25, затем объединяем узлы 0.250.250.25 и 0.250.250.25 и т.д. Один возможный оптимальный код:
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)=3, l(D)=3l(A)=1,\; l(B)=2,\; l(C)=3,\; l(D)=3l(A)=1,l(B)=2,l(C)=3,l(D)=3.
Средняя длина:
L=∑xp(x)l(x)=0.5⋅1+0.25⋅2+0.125⋅3+0.125⋅3=1.75 бит/символ. L=\sum_x p(x)l(x)=0.5\cdot1 + 0.25\cdot2 + 0.125\cdot3 + 0.125\cdot3 = 1.75\ \text{бит/символ}.
L=x∑ p(x)l(x)=0.5⋅1+0.25⋅2+0.125⋅3+0.125⋅3=1.75 бит/символ. Сравнение: L=HL=HL=H — код достигает нижней границы энтропии (возможно, так как вероятности — степени 1/21/21/2).
Влияние битовой ошибки в канале и практические методы:
- Перемещение от идеального сжатия к надежной передаче требует добавления избыточности; перемычка между источником и каналом: либо отдельное кодирование (source coding) + коррекция ошибок (channel coding), либо совместное кодирование для коротких блоков/малой задержки.
- Переменные длины (префиксные) чувствительны к одиночным ошибкам (десинхронизация). Практики: кадрирование/синхронизация (фреймы, маркеры), периодические точки ресинхронизации или пакетизация символов в блоки фиксированной длины перед FEC.
- Методы детектирования и коррекции:
- Детектирование ошибок: CRC для кадра + ARQ (при наличии канала обратной связи).
- Простая коррекция: коды Хэмминга для одиночных ошибок (низкая избыточность).
- Блоковые коды мощнее: Reed–Solomon (хороши для ошибок/пучков), BCH.
- Современные мощные коды: LDPC и турбокоды — близки к пределу Шеннона при больших блоках.
- Сверточные коды + Viterbi для потоковой передачи с умеренной сложностью.
- Интерливинг для борьбы с пачками ошибок.
- Практические рекомендации:
- Для двусторонней связи с возможностью ретрансляции: использовать CRC+ARQ (высокая эффективность при низкой задержке).
- Для однонаправленной/реального времени: применить мощный FEC (LDPC/Reed–Solomon) с интерливингом; обеспечить кадрирование и, при необходимости, неравномерную защиту (UEP) — более важные символы получают более сильную защиту.
- Если требуется минимизировать уязвимость переменных длин — пакетировать/переформатировать в фиксированные блоки перед FEC или использовать кодирование, устойчивое к рассинхронизации.
Это основные выводы и практические методы для системы с заданным источником и наличием битовых ошибок.