Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6231К.ЛЕОНОВА Е.В.ЛАБА 4-5.doc
Скачиваний:
14
Добавлен:
02.04.2015
Размер:
253.44 Кб
Скачать

ГУАП

КАФЕДРА № 62

ОТЧЕТ

ЗАВЕРШЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

старший преподаватель Соколовская М.В.

должность,уч.степень,звание подпись, дата инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ

Кодирование дискретных источников информации методом шеннона-фано

по курсу: ИНФОРМАТИКА

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. 6231К Леонова Е.В.

подпись,дата инициалы,фамилия

Санкт-Петербург, 2012

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

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

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

Если алфавит A состоит из N символов, то для такого кодирования необходимо слово разрядностью n, которая определяется

n = log2 N .

Это справедливо для стандартных кодовых таблиц.

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

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

К.Шеннон и Н.Фано показали, как это можно сделать на практике и то, что получилось, назвали кодом Шеннона-Фано.

Символы

Вероятности P(a)

Кодовые комбинации

1 ступень

2 ступень

3 ступень

4 ступень

5 ступень

а1

0,4

0100

 

а2

0,044

0010100

 

а3

0,019

0010011

 

а4

0,015

001111

 

а5

0,005

000101

 

а6

0,002

00010

 

а7

0,004

000100

 

а8

0,02

0010

Сначала копируются символы из лабораторной работы №3 и значения их вероятностей. Они сортируются от самого большого к самому маленькому. Сумма всех вероятностей равна одному. Вероятности делятся на две группы, чтобы суммы вероятностей в каждой были приблизительно равны. Символам верхней группы приписывается единица, символам нижней – ноль. Всё повторяется нужное количество раз, пока в каждой подгруппе не останется по одному символу.

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

Символ

Вероятность

Код

1

2

3

4

5

6

 

p(a)*log2(p(a))

n(a)

p(a)*n(a)

1

о

0,089388

111111

 

-0,311407682

6

0,536328

2

е

0,084365

111110

 

-0,300947806

5

0,50619

3

и

0,078442

111101

 

-0,288057055

6

0,470652

4

а

0,070907

111100

 

-0,27071783

4

0,425442

5

н

0,067127

111011

 

-0,261591437

6

0,402762

6

т

0,054115

111010

 

-0,227706593

5

0,32469

7

р

0,05198

111001

 

-0,221741459

6

0,31188

8

с

0,044351

111000

 

-0,199352847

3

0,266106

9

в

0,040468

110111

 

-0,187248457

6

0,242808

10

м

0,036336

110110

 

-0,173775342

6

0,218016

11

л

0,034013

11010

 

-0,165907589

4

0,170065

12

.

0,030722

11001

 

-0,154365271

5

0,15361

13

к

0,028965

11000

 

-0,147997986

2

0,144825

14

д

0,028819

101111

 

-0,147462094

6

0,172914

15

п

0,02743

101110

 

-0,142309626

5

0,16458

16

ы

0,020958

10110

 

-0,116869251

4

0,10479

17

у

0,019913

10101

 

-0,112511349

5

0,099565

18

я

0,02

101001

 

-0,112511349

6

0,119478

19

з

0,016021

101000

 

-0,095547514

3

0,096126

20

ч

0,015361

100111

 

-0,092543636

6

0,092166

21

ь

0,013801

100110

 

-0,08527753

5

0,082806

22

,

0,012618

10010

 

-0,07959905

4

0,06309

23

г

0,012044

100011

 

-0,076787023

6

0,072264

24

й

0,010518

100010

 

-0,069113734

5

0,063108

25

б

0,009918

10000

 

-0,06601158

1

0,04959

26

х

0,009121

011111

 

-0,061809298

6

0,054726

27

1

0,007218

011110

 

-0,051350188

5

0,043308

28

3

0,006472

01110

 

-0,047061618

4

0,03236

29

ц

0,006386

011011

 

-0,046559507

6

0,038316

30

2

0,006155

011010

 

-0,045202477

5

0,03693

31

ю

0,005889

01100

 

-0,043624308

3

0,029445

32

ш

0,005717

010111

 

-0,042594657

6

0,034302

33

э

0,004637

010110

 

-0,035948772

5

0,027822

34

ж

0,004389

01010

 

-0,034374174

4

0,021945

35

ф

0,004217

010011

 

-0,033270305

6

0,025302

36

:

0,003369

010010

 

-0,02767116

5

0,020214

37

щ

0,003163

01000

 

-0,026267104

2

0,015815

38

(

0,002477

001111

 

-0,021443861

6

0,014862

39

)

0,002477

001110

 

-0,021443861

5

0,014862

40

4

0,002109

00110

 

-0,018747376

3

0,010545

41

0

0,0018

001011

 

-0,016412017

6

0,0108

42

5

0,001114

001010

 

-0,010928379

5

0,006684

43

;

0,001071

00100

 

-0,01056737

3

0,005355

44

6

0,000994

000111

 

-0,00991462

6

0,005964

45

7

0,000686

000110

 

-0,00720952

5

0,004116

46

8

0,000617

00010

 

-0,006578727

4

0,003085

47

9

0,0006

000011

 

-0,00642165

6

0,0036

48

-

0,000506

000010

 

-0,005539979

5

0,003036

49

ъ

0,000326

000001

 

-0,003776006

6

0,001956

50

ё

0

000000

?

6

0

4,742078021

 

5,819201

H

 

Ncp

50

H=∑p(ai)log2p(ai)= 4,573834146

1

50

Iср =∑p(ai)n(ai)= 4,620954551

1

H – энтропия

p(ai) – вероятность символа

Iср — среднее количество двоичных разрядов, используемых при кодировании символов по алгоритму Шеннона-Фано

n(ai) — число двоичных разрядов в кодовой комбинации, соответствующей символу ai