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

5.4.1 Методы эффективного кодирования некоррелированной последовательности знаков [1 и др.].

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

Методика построения кода Шеннона – Фано [1].

Код строят следующим образом: знаки алфавита сообщений выписываются в таблицу в порядке убывания вероятности. Затем их разделяют на две группы так, чтобы суммы вероятностей каждой из групп были по возможности одинаковы. Всем знакам верхней половины в качестве первого символа приписывают 0, а всем нижним – 1. Каждую из полученных групп, в свою очередь, разбивают на две подгруппы с одинаковыми суммарными вероятностями и т.д. Процесс повторяется до тех пор, пока в каждой подгруппе останется по одному знаку.

Пример 5.3 Проведем эффективное кодирование ансамбля из восьми знаков с вероятностями, которые представлены в таблице 5.4.

Знаки

xi

Вероят-

ность

P(xi)

Группы

Комбина-ция

ni

J(xi)

I

II

III

IV

V

VI

VII

x1

1/2

0

0

1

1

x2

1/4

1

0

10

2

2

x3

1/8

1

1

0

110

3

3

x4

1/16

1

1

1

0

1110

4

4

x5

1/32

1

1

1

1

0

11110

5

5

x6

1/64

1

1

1

1

1

0

111110

6

6

x7

1/128

1

1

1

1

1

1

0

1111110

7

7

x8

1/128

1

1

1

1

1

1

1

1111111

7

7

Таблица 5.4.

Ясно, что при обычном (не учитывая статистических характеристик) кодирования для представления каждого знака требуется три двоичных символа. Используя методику Шеннона – Фано, получаем совокупность кодовых комбинаций, приведенных в таблице 5.4.

При заданном распределении вероятностей сообщений код получается неравномерным. Его комбинации имеют различное число элементов ni, причем, как ни трудно заметить, такой способ кодирования обеспечивает выполнения условия (5.12) полностью для всех сообщений.

В неравномерных кодах при декодировании возникает трудность в определении границ между комбинациями. Для устранения возможных ошибок обычно применяются специальные знаки. Так, в коде Морзе между буквами предается разделительный знак в виде паузы длительностью в одно тире. Передача разделительных знаков занимает длительное время, что снижает скорость передачи информации.

Важным свойством кода Шеннона – Фано является то, что ни смотря на его неравномерность, здесь не требуется разделительных знаков. Это обусловлено тем, что короткие комбинации не являются началом наиболее длинных комбинаций. Указанное свойство легко проверить на примере любой последовательности:

Таким образом, все элементы закодированного сообщения несут полезную информацию, что при выполнении условия (5.12) позволяет получить максимальную скорость передачи. Она может быть найдена также путем непосредственного вычисления по формуле (5.10)

(5.13)

Для сравнения рассмотрим кодирование тех же восьми сообщений {x1, x2, …, x8} с применением обычного равномерного двоичного кода. Количество комбинаций при этом определяется выражением M=2n, где n – число элементов в комбинации. Так как M = 8, то n = log(M) = 3, а длительность каждой комбинации 3τ0. Производя вычисления по аналогии с (5.13), получим

(5.14)

Пропускная способность в этом случае используется только частично. Из выражения (5.12) вытекает основной принцип оптимального кодирования. Он сводится к тому, что наиболее вероятным сообщениям должны присваиваться короткие комбинации, а сообщениям с малой вероятностью – более длинные комбинации.

Возможность оптимального кодирования по методу Шеннона – Фано доказывает, что сформулированная выше теорема справедлива, по крайней мере, для источников независимых сообщений. Теорема Шеннона может быть доказана и для общего случая зависимых сообщений.

Рассмотренная методика Шеннона – Фано не всегда приводит к однозначному построению кода. Ведь при разбиении на подгруппы можно сделать большей по вероятности, как верхнюю, так и нижнюю подгруппы. Например, множество вероятностей приведенных в таблице 5.5 можно было бы разбить двумя вариантами.

Таблица 5.5.

Знаки

x1

x2

x3

x4

x5

x6

x7

x8

Вероятности

0.22

0.2

0.16

0.16

0.1

0.1

0.04

0.02

Вариант

I

|-------------------------| |---------------------------------------------------|

II

|----------------| |------------------------------------------------------------|

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