Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика.doc
Скачиваний:
46
Добавлен:
12.02.2015
Размер:
578.56 Кб
Скачать

Метод Хаффмана

Эта методика гарантирует однозначное построение кода с наименьшим для данного распределения вероятностей средним числом символов на букву.

Для двоичного кода методика сводится к следующему. Буквы алфавита сообщений выписывают в основной столбец в порядке убывания вероятностей. Две последние буквы объединяют в одну вспомогательную букву, которой приписывают суммарную вероятность. Вероятности букв, не участвующих в объединении и полученная суммарная вероятность снова располагаются в порядке убывания вероятностей в дополнительном столбце, а две последние объединяются.

Процесс продолжается до тех пор, пока не получат единственную вспомогательную букву с вероятностью, равной единице.

Пример. Используя методику Хаффмана, осуществим эффективное кодирование ансамбля из восьми знаков.

Знаки

Вероятности

Вспомогательные столбцы

Новая

комбинация

1

2

3

4

5

6

7

x1

0,22

0,22

0,22

0,26

0,32

0,42

0,58

1

01

x2

0,20

0,20

0,20

0,22

0,26

0,32

0,42

00

x3

0,16

0,16

0,16

0,20

0,22

0,26

111

x4

0,16

0,16

0,16

0,16

0,20

110

x5

0,10

0,10

0,10

0,16

100

x6

0,10

0,10

1011

x7

0,04

0,06

10101

x8

0,02

10100

Для наглядности построим кодовое дерево. Из точки, соответствующей вероятности 1, направляем две ветви, причем ветви с большей вероятностью присваиваем символ 1, а с меньшей 0.

Такое последовательное ветвление продолжаем до тех пор, пока не дойдем до вероятности каждой буквы.

Двигаясь по кодовому дереву сверху вниз, можно записать для каждой буквы соответствующую ей кодовую комбинацию.

Кодирование информации для канала с помехами

Коды, которые обеспечивают возможность обнаружения (и исправления) ошибки, называют помехоустойчивыми.

Эти коды используют для:

  1. обнаружения ошибок,

  2. исправления ошибок – корректирующие коды.

Способность кода обнаруживать и исправлять ошибки обусловлена наличием избыточных символов.

На вход кодирующего устройства поступает последовательность из k информационных двоичных символов. На выходе ей соответствует последовательность из n двоичных символов кода, причем n > k. Добавленные n-k символов называются проверочными.