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

7. Построение эффективных кодов методом Шеннона-Фано и кодирование дискретного сигнала

Задание к работе: выполнить кодирование исходного текста методом Шеннона-Фано. Относительные частоты символов алфавита, из которых состоит исходный текст, рассчитать по исходному тексту.

Решение задачи

  1. для построения эффективного кода выполним следующие шаги:

  • определим размер (в символах) исходного текста (переменная L) – он равен 20,

  • определим относительные частоты fi появления каждого символа в исходном тексте по формуле: fi = mi/L, где mi – число появлений i-го символа в исходном тексте из таблицы 3.2. Имеем графу 3 таблицы 7.1:

Таблица 7.1

Символ

алфавита

Число

появлений mi

Частота символа fi

1

2

3

а

2

0,1

в

4

0,2

е

2

0,1

и

3

0,15

л

1

0,05

н

1

0,05

о

1

0,05

п

1

0,05

р

1

0,05

с

1

0,05

т

1

0,05

ч

1

0,05

ь

1

0,05

  • упорядочим символы алфавита по невозрастанию частот. Получим графы 1 и 2 таблицы 7.2:

  • выполним последовательное деление списка символов в соответствии с алгоритмом Шеннона-Фано (графа 3 таблицы 7.2) и назначим символы 0 или 1 элементам списка символов – кодируем элементы,

  • «соберем» символы 0 и 1 слева направо в графе 3 для каждого символа алфавита. Получим графу 4 таблицы 7.2.

Таблица 7.2

Символ

алфавита

Частота

символа fi

Этапы деления списка символов

Результирующие коды

1

2

3

4

I

II

III

IV

V

в

0,2

0

0

-

00

и

0,15

1

0

-

010

а

0,1

1

-

011

е

0,1

1

0

0

-

100

л

0,05

1

0

-

1010

н

0,05

1

0

10110

о

0,05

1

10111

п

0,05

1

0

0

-

1100

р

0,05

1

0

11010

с

0,05

1

11011

т

0,05

1

0

-

1110

ч

0,05

1

0

11110

ь

0,05

1

11111

  1. для кодирования исходного текста используем таблицу 7.2. Имеем (для простоты закодируем отдельно фамилию, имя и отчество):

петров 1100 100 1110 11010 10111 00

иван 010 00 011 10110

васильевич 00 011 11011 010 1010 11111 100 00 010 11110

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