Uploaded by xilisoft

Контрольная работа по Теории информации

advertisement
Содержание
Задание 1
Задание 2
3
5
Задание 1. Произвести кодирование по методам Шеннона-Фано и
Хаффмена для алфавита: pА=0,3; рБ=0,12; рС=0,19; рГ=0,22; рд=0,17. Вычислить
среднюю длину и избыточность полученного кода.
Решение
а) метод Шеннона-Фано
1) буквы алфавита сообщений упорядочим в порядке убывания их
вероятностей;
2) последовательность букв разбиваем на две по возможности
равновероятные группы;
3) всем буквам первой группе присваивается символ «1», второй – «0»;
4) каждую из полученных подгрупп, в свою очередь, разбиваем на
подгруппы с одинаковыми суммарными вероятностями с присвоением «1» и
«0».
5) данный процесс продолжаем до тех пор, пока в каждой из подгрупп не
останется по одной букве.
Таблица 1 – построение кода Шеннона-Фано
Буква
Разряды
P
1
А
0,3
Г
0,22
С
0,19
Д
0,17
Б
0,12
1
0
Код
2
3
1
-
11
0
-
10
1
-
01
1
001
0
000
0
Средняя длина полученного кода:
5
𝑘𝑐 = ∑ 𝑘𝑖 𝑝𝑖 = 2 ∗ 0,3 + 2 ∗ 0,22 + 2 ∗ 0,19 + 3 ∗ 0,17 + 3 ∗ 0,12 = 2,29 бит;
𝑖=1
Энтропия 𝐻 = − ∑5𝑖=1 𝑝𝑖 ∗ log 2 𝑝𝑖 = 0,3 ∗ log 2 0,3 + 0,22 ∗ log 2 0,22 +
0,19 ∗ log 2 0,19 + 0,17 ∗ log 2 0,17 + 0,12 ∗ log 2 0,12 = 2,26 бит;
2
Т.о., средняя длина получилась достаточно близкой к предельному
значению 𝑘 = [log 2 5] = 3бит. Код Шеннона-Фано по сравнению с
равномерным кодом позволил сократить среднюю длину кодовых комбинаций
на 24%, т.к. избыточность 𝐷 = 1 −
𝑘𝑐
𝑘
=1−
2.29
3
= 0,24.
б) метод Хаффмена
Код Хаффмена строим в виде кодового дерева следующим образом:
1) буквы алфавита сообщений располагаются в порядке убывания их
вероятностей;
2) значения вероятностей двух последних букв суммируем, при этом
верхней приписываем символ "1", а нижней - "0". Полученное суммарное
значение вероятности располагаем на такой воображаемой горизонтали, чтобы
не нарушился общий порядок убывания вероятностей;
3) младшие значения вероятностей вновь суммируем с приписыванием
"1" и "0". Этот процесс продолжаем до тех пор, пока полученная суммарная
вероятность не станет равной единице;
4) код соответствующей буквы составляем из символов, встречающихся
при прохождении кодового дерева по линиям "направо-вверх-направо...". При
этом кодовую комбинацию записываем справа налево.
Средняя длина полученного кода:
5
𝑘𝑐 = ∑ 𝑘𝑖 𝑝𝑖 = 2 ∗ 0,3 + 2 ∗ 0,22 + 2 ∗ 0,19 + 3 ∗ 0,17 + 3 ∗ 0,12 = 2,29 бит;
𝑖=1
Средняя длина кода, построенного по методике Хаффмена совпала с
длиной, полученной по методике Шеннона-Фано.
3
Задание 2. Для алфавита, приведенного в задании 1, произвести
кодирование двухбуквенных сочетаний по методам Шеннона-Фано и
Хаффмена. Сравнить избыточность полученного кода и кода, полученного в
задании 1.
Решение.
а) метод Шеннона-Фано
Буква
АА
АГ
ГА
АС
СА
АД
ДА
ГГ
ГС
СГ
ГД
ДГ
СС
АБ
БА
СД
ДС
ДД
ГБ
БГ
СБ
БС
ДБ
БД
ББ
P
0,09
0,066
0,066
0,057
0,057
0,051
0,051
0,0484
0,0418
0,0418
0,0374
0,0374
0,0361
0,036
0,036
0,0323
0,0323
0,0289
0,0264
0,0264
0,0228
0,0228
0,0204
0,0204
0,0144
1
Разряды
2
1
3
1
0
1
1
0
0
4
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
5
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
6
1
0
1
0
Код
111
1101
1100
1011
1010
1001
10001
10000
0111
01101
01100
01011
01010
01001
01000
00111
00110
00101
00100
00011
00010
000011
000010
000001
000000
Средняя длина полученного кода:
25
𝑘𝑐 = ∑ 𝑘𝑖 𝑝𝑖 = 4,56 бит;
𝑖=1
Избыточность:
𝑘 = log 2 25 = 4,64бит ≈ 5бит
𝐷 =1−
𝑘𝑐
4,56
=1−
= 0,088.
𝑘
5
4
б) метод Хаффмена
5
Средняя длина полученного кода:
25
𝑘𝑐 = ∑ 𝑘𝑖 𝑝𝑖 = 4,55 бит;
𝑖=1
Избыточность:
𝑘 = log 2 25 = 4,64бит ≈ 5бит
𝐷 =1−
𝑘𝑐
4,55
=1−
= 0,09.
𝑘
5
Вывод: Таким образом, избыточность, полученная в задании 2 (D=0,09), в
2,6 раз меньше чем в задании 1 (D=0,24).
6
Download