
- •Глава 8. Основы теории кодирования
- •8.2. Согласование источника с каналом по объемам алфавитов. Теоремы кодирования шеннона и потенциальные возможности системы передачи информации
- •8.2.1.Теорема Шеннона для дискретного канала связи без помех
- •8.2.2. Теорема Шеннона для дискретного канала связи с помехами
- •8.2.3. Теорема Шеннона для непрерывного канала связи
- •8.3. Основы экономного кодирования
- •8.3.1 Принципы экономного кодирования. Цель сжатия данных и типы систем сжатия
- •8.3.2. Префиксные коды
- •Избыточность кода Хаффмена
- •8.3.4. Код Шеннона-Фано
- •8.3.5. Неравномерное кодирование для последовательности сообщений
- •8.3.6. Арифметическое кодирование
- •Кодирование
- •Декодирование
- •8.3.7. Словарные методы сжатия
- •Кодирование
- •Декодирование
- •8.4. Основы помехоустойчивого кодирования
- •8.4.1 Принципы обнаружения и исправления ошибок
- •8.4.2. Классификация помехоустойчивых кодов
- •8.4.3. Основные характеристики помехоустойчивых кодов
- •8.4.4. Границы вероятности ошибочного декодирования
- •8.5. Блочные линейные коды
- •8.5.1. Математическое описание процессов кодирования и декодирования
- •8.5.2. Коды с проверкой на четность
- •8.5.3 Коды Хэмминга
- •8.5.4. Коды с постоянным весом
- •8.5.5. Циклические коды
- •1. Способы декодирования с обнаружением ошибок
- •2 Способы декодирования с исправлением ошибок
- •8.6. Непрерывные коды
- •8.6.1 Идея построения непрерывного кода Финка–Хегельбергера
- •8.6.2. Сверточные коды
- •8.6.3. Представление сверточных кодов с помощью многочленов
- •8.6.4. Графическое представление сверточных кодов
- •8.6.5. Методы декодирования сверточных кодов
- •8.6.6. Схемное построение декодера Витерби
- •8.7. Методы борьбы с ошибками
- •8.7.1. Системы с обратной связью
- •8.7.2. Формат кадра протоколов с обнаружением ошибок
- •8.7.3. Методы повторной передачи (arq)
- •8.7.4. Основные характеристики систем с решающей обратной связью
- •8.7.5. Показатели эффективности цифровой системы связи
Избыточность кода Хаффмена
Из теоремы 8.1 следует, что для построенных по алгоритму Хаффмана кодов средняя длина кодовых слов удовлетворяет неравенству
,
(8.16)
где
— энтропия
ансамбля.
Разность
называется
избыточностью
неравномерного кода.
При кодировании
с избыточностью
на каждое
сообщение затрачивается на
бит больше,
чем в принципе можно было бы потратить,
если использовать теоретически
наилучший (возможно, нереализуемый)
способ кодирования.
Итак, из (8.16) следует, что для кода Хаффмана избыточность г < 1. Хотелось бы получить более точную оценку средней длины кодовых слов. Гораздо более точную оценку избыточности получил Р. Галлагер, наложив ограничение на максимальную из вероятностей сообщений.
Теорема 8.3. Пусть
— наибольшая
из вероятностей сообщений конечного
дискретного ансамбля. Тогда избыточность
кода Хаффмана для этого ансамбля
удовлетворяет неравенствам:
где
— энтропия
двоичного ансамбля;
.
8.3.4. Код Шеннона-Фано
Алгоритм Шеннона-Фано заключается в следующем.
Символы алфавита источника записываются в порядке не возрастающих вероятностей.
Затем они разделяются на две части так, чтобы суммы вероятностей символов, входящих в каждую из таких частей, были примерно одинаковыми. Всем символам первой части приписывается в качестве первого символа комбинации неравномерного кода ноль, а символам второй части — единица.
Затем каждая из этих частей (если она содержит более одного символа) делится в свою очередь на две, по возможности равновероятные части и к ним применяется то же самое правило кодирования.
Этот процесс повторяется до тех пор, пока в каждой из полученных частей не останется по одному сообщению.
Пример. Пусть алфавит А источника состоит из 8 символов А, Б, В, Г, Д, Е, Ж, З с вероятностями р(А) = 0,6; р(Б) = 0,2; р(В) = 0,1; р(Г) = 0,04; р(Д)=0,025; р(Е) = 0,015, р(Ж)=0,01; р(З) = 0,01. Процедура построения неравномерного кода Шеннона-Фано задается в таблице 8.9.
Таблица 8.9. Процедура построения неравномерного кода Шеннона-Фано
Буква |
рi |
I |
II |
III |
IV |
V |
VI |
Kод |
mi |
mi pi |
А |
0.6 |
1 |
|
|
|
|
|
1 |
1 |
0.6 |
Б |
0.2 |
0 |
1 |
1 |
|
|
|
011 |
3 |
0.6 |
В |
0.1 |
0 |
|
|
|
010 |
3 |
0.3 | ||
Г |
0.04 |
0 |
1 |
|
|
|
001 |
3 |
0.12 | |
Д |
0.025 |
0 |
1 |
|
|
0001 |
4 |
0.1 | ||
Е |
0.015 |
0 |
1 |
|
00001 |
5 |
0.075 | |||
Ж |
0.01 |
0 |
1 |
000001 |
6 |
0.06 | ||||
З |
0.01 |
0 |
000000 |
6 |
0.06 |
На первом этапе
производится деление на два множества
А, и
Б, В, Г, Д,
Е,
Ж, З,
так как вероятность р(А)=0,6 и сумма
вероятностей
примерно одинаковы. При этом символу А присваивается «1», а всем остальным Б, В, Г, Д, Е, Ж, З присваивается «0».
На втором этапе производится деление второго множества на два множества Б, В, и Г, Д, Е, Ж, З. Множеству Б, В присваивается «1», а множеству Г, Д, Е, Ж, З присваивается «0».
Hа третьем этапе производится деление множества Б, В, на два множества (уже символа) Б и В. Символу Б присваивается «1», а символу В присваивается «0». Множество Г, Д, Е, Ж, З делится на множества Г и Д, Е, Ж, З. Символу Г присваивается «1», а множеству Д, Е, Ж, З присваивается «0».
На четвёртом этапе производится деление множества Д, Е, Ж, З на два множества Д и Е, Ж, З. Символу Д присваивается «1», а множеству Е, Ж, З присваивается «0».
На пятом этапе производится деление множества Е, Ж, З на два множества Е и Ж, З. Символу Е присваивается «1», а множеству Ж, З присваивается «0».
На шестом этапе производится деление множества Ж, З на два множества Ж и З. Символу Ж присваивается «1», а символу З присваивается «0».
Легко
проверить, что данный код оказывается
префиксным и средняя длина кодовой
комбинации
1,915, что менее чем на 7 % превышает энтропию
данного источника, равную 1,7813.
A
избыточность кода составит
.
Отметим, что хотя,
деление на части с "примерно равными
вероятностями" не является однозначной
процедурой, но при увеличении длин
блоков m
укрупнённого источника сообщений эти
погрешности будут сглаживаться, а
средняя длина
приближаться к предельному значению.