Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

29-10-2014_11-40-41 / Методические указания к практическому занятию ___3 (ОТС)

.pdf
Скачиваний:
40
Добавлен:
17.03.2015
Размер:
1.68 Mб
Скачать

Методические указания к практическому занятию №3 по дисциплине «Общая теория связи»

Методы эффективного кодирования источников дискретных сообщений

Красноярск

Золотухин, В.В.

Методические указания к практическому занятию №3 «Методы эффективного кодирования источников дискретных сообщений» по дисциплине «Общая теория связи» / В.В. Золотухин. – Красноярск, 2013. – 8 с.

В данных методических указаниях к практическим занятиям по дисциплине «Общая теория связи» студентам предстоит изучить и закрепить такие методы эффективного (статистического) кодирования информации, как методы Шеннона-Фано и Хаффмана.

Предназначено для студентов, обучающихся по направлению 210700.62.

© В.В. Золотухин

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №3

Методы эффективного кодирования источников дискретных сообщений

Задача 3.1: Определите минимально необходимую пропускную способность канала связи, если алфавит источника дискретных сообщений состоит из 6 символов со следующими вероятностями их появления (табл. 3.1):

Таблица 3.1

 

Вариант

1

2

3

4

5

6

7

8

9

10

 

p(a1)

0,26

0,39

0,62

0,55

0,42

0,3

0,46

0,49

0,67

0,72

 

p(a2)

0,49

0,21

0,2

0,14

0,21

0,32

0,35

0,28

0,05

0,16

 

p(a3)

0,02

0,18

0,01

0,09

0,2

0,16

0,01

0,06

0,1

0,02

 

p(a4)

0,13

0,12

0,03

0,14

0,04

0,1

0,03

0,08

0,13

0,04

 

p(a5)

0,09

0,06

0,04

0,05

0,06

0,01

0,12

0,07

0,04

0,03

 

p(a6)

0,01

0,04

0,1

0,03

0,07

0,11

0,03

0,02

0,01

0,03

 

n,

2

9

2

9

1

2

6

4

8

3

 

симв./c

 

 

 

 

 

 

 

 

 

 

 

Определите избыточность источника. Рассчитайте, во сколько раз можно повысить пропускную способность при оптимальном статистическом кодировании методом Шеннона-Фано. Скорость передачи сообщений можно считать равной n симв./c.

Решение:

Решение задачи осуществляется в несколько этапов. На первом этапе следует найти энтропию дискретного источника для неравновероятных символов по формуле:

K

H(A) p(ai )log2 p(ai) .

i 1

Затем следует определить избыточность дискретного источника, предварительно рассчитав при этом максимальное значение энтропии при равновероятных символах алфавита по формуле:

Hmax (A) log2 N .

На следующем этапе необходимо построить эффективный код в соответствии с методом Шеннона-Фано. Рассмотрим пример эффективного кодирования источника дискретных сообщений методом Шеннона-Фано с алфавитом из 6 символов. Алгоритм кодирования источника состоит из следующих трех этапов: сортировки, разделения и кодирования.

Более полно алгоритм кодирования можно описать следующими этапами:

1.Расположить все символы алфавита в порядке убывания вероятностей.

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

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

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

Для примера рассмотрим процесс получения кодовых комбинаций для источника с алфавитом из 6 символов:

В случае равномерного кодирования символов данного алфавита потребуется 3 бита на символ – l = 3 бита.

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

K

lli P(ai) 1 0,5 2 0,2 3 0,1 4 0,1 5 0,05 5 0,05 2,1бит.

i1

При этом энтропия источника равна:

6

H(A) P(ai) log2 P(ai) 2,061бит.

i 1

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

R(A) l H(A) 2,1 2,061 0,039 бит.

После этого можно определить длину каждой кодовой комбинации и рассчитать пропускную способность:

N

Cэфф v pli i ,

i 1

где v – скорость передачи символов;

pi – вероятность появления i-го символа;

li – длина кодовой комбинации, используемой для кодирования i-го символа.

Соответственно, далее можно рассчитать, во сколько раз можно повысить пропускную способность канала связи при оптимальном статистическом кодировании.

Задача 3.2: Постройте эффективный код для алфавита из задачи 3.1 (табл. 3.1) в соответствии с методом Хаффмана. Определите, во сколько раз повысится пропускная способность канала связи по сравнению с равномерным кодированием, а также в сравнении с кодом, полученным методом Шеннона-Фано.

Решение:

Во многом принцип работы алгоритма Хаффмана напоминает алгоритм Шеннона-Фано, но при этом является более сложным, что является его расплатой за оптимальность. Основные этапы работы алгоритма Хаффмана:

1.Расположить все символы алфавита в порядке убывания вероятностей.

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

3.Процесс объединения продолжается до тех пор, пока в новом алфавите не останется всего два символа.

4.Теперь начинается процедура кодирования: двигаясь в обратном направлении, верхнему из объединенных символов в качестве очередного бита кодовой комбинации добавляется 1, нижнему - 0. Процесс создания кодовых комбинаций продолжается до тех пор, пока не дойдет до исходного алфавита.

Таким образом, новым этапом в алгоритме Хаффмана является процедура движения в обратном направлении.

Рассмотрим кодирование методом Хаффмана на примере:

 

 

В данном случае средняя

длина

кодовой

комбинации

составит

 

 

2,1бит. Следует заметить, что

данное

значение

полностью

совпало с

l

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

Задача 3.3: Алфавит источника дискретных сообщений состоит из трех символов со следующими вероятностями появления – p(a1), p(a2) и p(a3) (табл. 3.2). Определите величину избыточности, которая получается при кодировании одиночных символов источника дискретных сообщений методом Шеннона-Фано и при кодировании пар символов. Сравните результаты, полученные при кодировании методом Шеннона-Фано и методом Хаффмана.

Таблица 3.2

Вариант

1

2

3

4

5

6

7

8

9

10

p(a1)

0,6

0,7

0,8

0,5

0,6

0,9

0,8

0,4

0,4

0,5

p(a2)

0,3

0,2

0,1

0,2

0,2

0,05

0,15

0,4

0,3

0,4

p(a3)

0,1

0,1

0,1

0,3

0,2

0,05

0,05

0,2

0,3

0,1

Решение:

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

Например, алфавит источника содержит только два символа А и В, с вероятностями появления Р(А)=0,7 и Р(В)=0,3. Энтропия алфавита такого источника составляет:

H(A) 0,7 log2 0,7 0,3 log2 0,3 0,88 бит.

При обычном равномерном кодировании такой алфавит кодируется простейшим кодом вида:

Символ

Вероятность

Кодовое слово

A

0.7

1

 

 

 

B

0.3

0

 

 

 

Избыточность при этом составляет R(A)=0,12 бит/символ.

Применим метод Шеннона-Фано к кодированию всех возможных двухсимвольных комбинаций на выходе источника.

В этом случае средняя длина кодового слова составляет: l =1,81 бит. На один символ алфавита источника приходится в среднем 1,81/2=0,905 бит/символ. Избыточность составляет R(A) = 0,905 – 0,88 = 0,025 бит/символ.

Если применить этот метод к кодированию трехсимвольных блоков источника, среднее число двоичных символов, приходящихся на один символ источника, будет еще ближе к энтропии алфавита источника.