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

Коды Шеннона - Фано.

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

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

 Учет статистики сообщений на основании теоремы Шеннона позволяет строить эффективный код, в котором часто встречающимся сообщением присваиваются более короткие кодовые комбинации, а редко встречающимся – более длинные.

Методы построения таких кодов впервые предложили одновременно в 1948-49 годах Р. Фано и К. Шеннон, поэтому код назвали кодом Шеннона-Фано.

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

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

Порядок построения оптимального кода Шеннона-Фано:

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

  2. Выбирается основание кода K. (При двоичном кодировании K=2)

  3. Все символы алфавита разбиваются на K групп с примерно равными суммарными вероятностями внутри каждой группы. Если равной вероятности в подгруппах достичь нельзя, то желательно чтобы суммарная вероятность нижней подгруппы была больше верхней.

  4. Всем символам первой группы в качестве первого символа вторичного алфавита присваивается «0», символам второй группы – символ «1», а символам K-ой группы – символ (K1). Этим обеспечивается примерно равная вероятность появления всех символов 0, 1,…, K-1 на первой позиции в кодовых словах.

  5. Затем каждая подгруппа аналогичным образом разбивается на подгруппы по возможности с одинаковыми вероятностями. Всем символам первых подгрупп в качестве второго символа присваивается 0, всем сообщениям вторых подгрупп – 1, а сообщениям K-ой группы – символ (K1).

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

В качестве примера рассмотрим алфавит сообщений из 6 символов

Выполним анализ экономичности полученного кода.

Среднее количество символов вторичного алфавита на один символ первичного алфавита сообщений составляет:

Для рассмотренного примера

Если использовать простой двоичный код, то необходимое число символов .

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

Энтропия данного кода устанавливает минимально возможную длину кодовой последовательности

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

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

где - максимальная энтропия кода, достигаемая при равновероятном появлении символов; m – кол-во символов.

Для рассматриваемого примера

Задание

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

Контрольные вопросы

Чем вызвана необходимость кодирования информации?

В чем состоит кодирование?

Что такое первичный алфавит?

Что такое вторичный алфавит?

Какие символы вторичного алфавита использует двоичный код?

Что такое код?

Какую задачу решает кодер?

Какая величина называется основанием кода?

Какой код называется неравномерным?

Как определить необходимую длину кодовой комбинации, если известно количество символов первичного алфавита?

Сколько различных символов можно закодировать в 1 байте?

Каковы основные задачи кодирования?

Что утверждает первая теорема кодирования Шеннона?

Какую задачу кодирования решает код Шеннона-Фано?

Объясните алгоритм построения кода Шеннона-Фано.

В чем заключается анализ кода?