Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория передачи сигналов (2 часть)

.pdf
Скачиваний:
18
Добавлен:
17.02.2021
Размер:
4.75 Mб
Скачать

Декодирование сообщения с равномерным двоичным кодом

0001011011010001

Двоичное сообщение

 

Группирование

 

00 01 01 10 11 01 00 01

символов

 

 

Таблица соответствия

00→А; 01→Т; 10→Е; 11→С

символов буквам

 

 

Буквенное сообщение

АТТЕСТАТ

 

 

11

Декодирование сообщения с равномерным двоичным кодом

А

Т

Т

Е

С

Т

А

Т

Исходное буквенное

сообщение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00

01

01

10

11

01

00

01

Двоичный код

 

 

 

 

 

 

 

 

 

 

10

01

01

10

11

01

00

01

Двоичный код с ошибкой при

декодировании

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Е

Т

Т

Е

С

Т

А

Т

Декодированное сообщение

 

 

 

 

 

 

 

 

 

 

Ошибка в одном разряде приводит к неправильному приёму одной буквы.

12

Алгоритм статистического кодирования Шеннона - Фано

1.Элементы сообщений располагают в первом столбце таблицы в порядке убывания их вероятностей.

2.Элементы сообщений разбивают на две группы с примерно равными суммарными вероятностями. Элементам первой группы в качестве первого знака кодовой комбинации присваивают символ «0», а элементам второй группы — «1».

3.Элементы, входящие в каждую из групп, вновь разбивают на две группы с примерно равными суммарными вероятностями. Элементам вновь полученных первых групп в качестве второго знака кодовой комбинации присваивают «0», а элементам вторых групп — «1».

4.Этот процесс продолжают, пока в каждой из групп не останется по одному элементу.

13

Алгоритм статистического кодирования Шеннона - Фано

 

Рассмотрим

на

предыдущем

примере.

Сообщение:

«аттестат».

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ai

p(ai)

 

Разбиения

 

Код

qi

 

 

 

 

 

 

 

 

 

 

 

 

 

т

4/8

0

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

а

2/8

1

 

0

 

 

10

2

 

 

 

 

 

 

 

 

 

 

 

 

 

е

1/8

1

 

1

 

0

110

3

 

 

 

 

 

 

 

 

 

 

 

 

 

с

1/8

1

 

1

 

1

111

3

 

 

 

 

 

 

 

 

 

 

 

 

14

Алгоритм статистического кодирования Шеннона - Фано

Сообщение будет иметь вид:

А

Т

Т

Е

С

Т

А

Т

 

 

 

 

 

 

 

 

10

0

0

110

111

0

10

0

 

 

 

 

 

 

 

 

Длина двоичного сообщения с

шф=14 бит.

неравномерным кодом Шеннона-Фано:

 

Сообщение стало на 12.5 % короче, чем при кодировании равномерным кодом.

рав шф = 16 − 14 = 0.125 → 12.5%рав 16

Ранее вычисленная избыточность =0.125 устранена.

15

Алгоритм статистического кодирования Шеннона - Фано

Средняя длина одной буквы исходного сообщения после кодирования неравномерным кодом:

 

=

бит/букву

ср

 

 

=1

qi – количество разрядов использованных для кодирования i-го символа (т→0→qт=1; а→10→qа=2; е→110→qе=3; с→111→qс=3).

ср = т т + а а + е е + с сср = 48 1 + 28 2 + 18 3 + 18 3 = 1.75 бит/букву

На одну букву алфавита источника, после кодирования неравномерным кодом Шеннона-Фано, приходится в среднем

1,75 двоичных символа.

16

 

Алгоритм статистического кодирования Шеннона - Фано

Остаточная избыточность после кодирования:

 

=

ср

=

1.75 − 1.75

= 0.

 

 

ост

 

ср

1.75

 

 

 

 

С помощью кода Шеннона-Фано удалось полностью устранить избыточность исходного буквенного сообщения.

Таким образом, часто встречающиеся буквы в сообщении должны составлять короткие кодовые комбинации, а реже встречающиеся - более длинные кодовые комбинации.

Коды, полученные по этому правилу, называют

статистическими или эффективными.

17

Алгоритм статистического кодирования Шеннона - Фано

Рассмотренная методика эффективного кодирования

Шеннона-Фано не всегда приводит к однозначному построению

оптимального кода. Т. к. при разбиении на подгруппы можно

сделать большей по вероятности как верхнюю, так и нижнюю

подгруппы.

18

Алгоритм статистического кодирования Хаффмана

Гарантирует однозначное построение кода с наименьшем числом символов на букву. Кодирование по Хаффману выполняется в следующем порядке:

1)Размещают символы алфавита источника в первом столбце таблицы в порядке убывания их вероятностей.

2)Суммируют в полученном столбце две последние (наименьшие) вероятности и размещают в новом столбце.

3)Располагают все вероятности в новом столбце в порядке убывания.

4)Повторяют шаги 2) и 3) до тех пор, пока не получим столбец, состоящий из одной вероятности, равной 1.

19

Алгоритм статистического кодирования Хаффмана

5)По полученным столбцам строится двоичное дерево-граф, начальным узлом которого является последний столбец (вероятность = 1), а выходящие из каждого узла по две ветви отражают процесс объединения вероятностей, выполненный в пунктах 2) и 3).

6)Затем каждой выходящей из любого узла ветви присваивается символ «1», если она обладает большей вероятностью и «0», если её вероятность меньше или равна.

7)Искомые двоичные кодовые комбинации, соответствующие каждому из символов алфавита источника, можно прочесть из графа, двигаясь по ветвям дерева из начального узла к конечным.

20