Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turchin_D_E_Teoria_informatsii_Praktikum_2013.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.06 Mб
Скачать

Метод Шеннона-Фано.

Для случая отсутствия статистической взаимосвязи между символами методы построения эффективных кодов впервые были предложены Шенноном и Фано. Поскольку эти методы существенно не отличаются, то общий метод получил название метода Шеннона-Фано.

При построении двоичного кода метод Шеннона-Фано сводится к следующему:

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

  2. Алфавит источника разбивается на две группы таким образом, чтобы суммарные вероятности символов обеих групп были по возможности равны. Первой группе присваивается знак «1», второй – «0».

  3. Каждую из образованных групп вновь делят на две части с приблизительно равными суммарными вероятностями и присваивают им 1 и 0. Таким образом, получают вторые цифры кода.

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

Метод Шеннона-Фано не всегда приводит к однозначному построению кода. От указанного недостатка свободен метод Хаффмана.

Пример 4.1. Построение кода Шеннона-Фано.

Требуется получить двоичный код Шеннона-Фано для источника без памяти, который описывается следующим ансамблем:

.

Также для кода необходимо определить эффективность E.

Дополнительно найдем энтропию H(S), эффективность E(S) и избыточность R(S) источника S, которые по формулам (1.3), (2.2) и (2.3) будут:

H(S) = – (0,14·log20,14 + 0,07·log20,07 + 0,12·log20,12 +

+ 0,11·log20,11 + 0,22·log20,22 + 0,05·log20,05 + 0,16·log20,16 +

+ 0,13·log20,13) = 0,397 + 0,269 + 0,367 + 0,350 + 0,481 + 0,216 +

+ 0,423 + 0,383 = 2,885 (бит/символ);

Hmax = log28 = 3 (бит/символ).

E(S) = 2,885 / 3 = 0,962;

R(S) = 1 – 0,962= 0,038.

Для получения кода Шеннона-Фано построим таблицу, в которой по шагам будем производить разбиение символов на группы с близкими суммарными вероятностями (табл. 4.1).

Таблица 4.1.

Получение эффективного кода по методу Шеннона-Фано

si

p(si)

1

2

3

4

Li

s5

0,22

1 0,52

1 0,22

11

2

s7

0,16

0 0,30

1 0,16

101

3

s1

0,14

0 0,14

100

3

s8

0,13

0 0,48

1 0,25

1 0,13

011

3

s3

0,12

0 0,12

010

3

s4

0,11

0 0,23

1 0,11

001

3

s2

0,07

0 0,12

1 0,07

0001

4

s6

0,05

0 0,05

0000

4

Кодовое дерево, соответствующее полученному коду Шеннона-Фано, представлено на рис. 4.1.

Рис. 4.1. Кодовое дерево для кода Шеннона-Фано

Найдем по формуле (4.1) среднюю длину кодовых слов:

0,14·3 + 0,07·4 + 0,12·3 + 0,11·3 + 0,22·2 + 0,05·4 +

+ 0,16·3 + 0,13·3 = 2,9.

Отсюда эффективность кода Шеннона-Фано по формуле (4.4) будет:

E = 2,885 / 2,9 = 0,995. ❒

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]