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

TEZ-2012 / 2-й семестр / ПЗ2 / Практическое занятие№4

.doc
Скачиваний:
89
Добавлен:
14.04.2015
Размер:
622.59 Кб
Скачать

Практическое занятие №4

Методы эффективного| кодирования

  1. Источник сообщений выдает символы из ансамбля сообщений А, Б, В, Г, Д, Е, Ж. З, имеющего объем . Записать кодовые комбинации примитивного кода, соответствующие символам данного источника. Построить кодовое дерево и показать корень, узлы, вершины.

.

Буква

Код

А

000

Б

001

В

010

Г

011

Д

100

Е

101

Ж

110

З

111

  1. Дискретный источник выдает символы из ансамбля с объемом . Какое минимальное число разрядов должны иметь кодовые комбинации равномерного двоичного кода, предназначенного для кодирования символов данного ансамбля? Записать кодовые комбинации.

,

Округляем до большего целого

Символ

Код

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

3. Дискретный источник выдает символы «а», «б», «н» с вероятностями появления , , . Закодировать сообщение «банан» кодом Хаффмена.

Символ

Вероятность

а

2/5

0

н

2/5

1

11

б

1/5

0

10

10011011.

4. Закодировать сообщение «аббревиатура» кодом Хаффмена. Рассчитать избыточность кода.

Символ

Вероятность

а

3/12

0

0

00

б

2/12

1

01

р

2/12

0

0

1

100

е

1/12

1

101

в

1/12

0

0

1

1100

и

1/12

1

1101

т

1/12

0

1

1110

у

1/12

1

1111

00 01 01 100 101 1100 1101 00 1110 1111 100 00.

Без кодирования экономным кодом

5. Закодировать сообщение «аббревиатура» кодом Шеннона_Фана. Рассчитать избыточность кода. Сравнить с предыдущим кодом

Символ

Вероятность

а

3/12

0

0

б

2/12

0

1

р

2/12

1

0

0

е

1/12

1

0

1

в

1/12

1

1

0

0

и

1/12

1

1

0

1

т

1/12

1

1

1

0

у

1/12

1

1

1

1

00 01 01 100 101 1100 1101 00 1110 1111 100 00.

Без кодирования экономным кодом

6. Дискретный источник выдает символы «а», «б», «о» с вероятностями появления , , . Каждому из символов выделены интервалы

Символ

б

а

о

Интервал

0 – 0,5

0,5 – 0,8

0,8 – 1

Закодировать сообщение «баобаб» арифметическим кодом. Показать результат кодирования в виде интервала.

Алгоритм кодирования для последовательности произвольной длины может выглядеть примерно следующим образом:

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

2. Составить таблицу соответствия между символом и интервалом.

3. Установить начало интервала .

4. Установить конец интервала .

5. Выполнять до тех пор пока есть еще входные символы

6. Получить входной символ.

7. Выбрать из таблицы соответствия начало и конец интервала для символа.

8. Сузить исходный интеpвал до нового

Конец цикла

9.. Рассчитать конечное значение для передачи

.

1) .

.

2) б

Н2=0+0(1-0)=0;

К2=0+0,5(1-0)=0.

3) а

Н3=0+0,5(0,5-0)=0,25;

К3=0+0,8(0,5-0)=0,4.

4) о

Н4=0,25+0,8(0,4-0,25)=0,37;

К4=0,25+1(0,4-0,25)=0,4.

5) б

Н5=0,37+0(0,4-0,37)=0,37;

К5=0,37+0,5(0,4-0,37)=0,385.

6) а

Н6=0,37+0,5(0,385-0,37)=0,3775;

К4=0,37+0,8(0,385-0,37)=0,3820.

7) б

Н7=0,3775+0(0,3820-0,3775)=0,3775;

К7=0,3775+0,5(0,3820-0,3775)=0,3798.

Х=0,3787.

Начало интервала 0,3775, конец интервала 0,3798;

7. Дискретный источник выдает символы «а», «б», «о». Кодер кодирует сообщение арифметическим кодом. Каждому из символов выделены интервалы

Символ

б

а

о

Интервал

0 – 0,5

0,5 – 0,8

0,8 – 1

Декодировать Х=0,3787.

Алгоритм декодирования выглядит следующим образом:

  1. Получить декодируемое число

  2. Выполнять до тех пор пока декодируемое число не равно «0».

  3. Найти символ, для которого начало интервала , а конец интервала .

  4. Выдать символ.

  5. Определить следующее число

.

6. Конец цикла

1) Х1=0,3787

Попадает в интервал буквы «б».

Исключаем влияние буквы «б»

2) Х2=0,7574

Попадает в интервал буквы «а»

Исключаем влияние буквы «а»

3) Х3=0,858

Попадает в интервал буквы «о»

Исключаем влияние буквы «о»

4) Х4=0,29

Попадает в интервал буквы «б»

Исключаем влияние буквы «б»

5) Х5=0,58

Попадает в интервал буквы «а»

Исключаем влияние буквы «а»

6) Х6=0,2667

Попадает в интервал буквы «б»

Исключаем влияние буквы «б»

.

7) Х7=0,5334

Попадает в интервал буквы «а»

Исключаем влияние буквы «а»

.

8) Х8=0,1113

Попадает в интервал буквы «а»

Исключаем влияние буквы «а»

.

8. Дискретный источник выдает символы «а», «б», «о». Кодер кодирует сообщение арифметическим кодом. Каждому из символов выделены интервалы

Символ

б

а

о

Интервал

0 – 0,5

0,5 – 0,8

0,8 – 1

Декодировать Х=0,3775.

Алгоритм декодирования выглядит следующим образом:

  1. Получить декодируемое число

  2. Выполнять до тех пор пока декодируемое число не равно «0».

  3. Найти символ, для которого начало интервала , а конец интервала .

  4. Выдать символ.

  5. Определить следующее число

.

6. Конец цикла

1) Х1=0,3775

Попадает в интервал буквы «б».

Исключаем влияние буквы «б»

2) Х2=0,755

Попадает в интервал буквы «а»

Исключаем влияние буквы «а»

3) Х3=0,85

Попадает в интервал буквы «о»

Исключаем влияние буквы «о»

4) Х4=0,25

Попадает в интервал буквы «б»

Исключаем влияние буквы «б»

5) Х5=0,5

Попадает в интервал буквы «а»

Исключаем влияние буквы «а»

.

6) Х6=0.

Попадает в интервал буквы «б»

Исключаем влияние буквы «б»

.