Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мой Вариант не факт что правильный Малютин.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
152.06 Кб
Скачать

Кодирование сообщений

Задано сообщение, состоящее из букв алфавита {a, b, c, d, e, f, g, h, i}.

Сообщение: adadbbfbabccdfdfaddebiieffbghhi

a-4

b-6

c-2

d-6

e-2

f-5

g-1

h-2

i-3

всего31

Для данного алфавита:

15. Построить равномерный код.

Решение.

0

1

2

3

4

5

6

7

8

a

b

c

d

e

f

g

h

i

0000

0001

0010

0011

0100

0101

0110

0111

1000

16. Построить код Шеннона – Фано.

Решение.

Символ

Частота встречаемости

a

b

c

d

e

f

g

h

i

P(a)=4/31=0,13

P(b)=6/31=0,195

P(c)=2/31=0,065

P(d)=6/31=0,195

P(e)=2/31=0,065

P(f)=5/31=0,16

P(g)=1/31=0,03

P(h)=2/31=0,065

P(i)=3/31=0,95

Сортируем символы по убыванию частоты встречаемости:

b

0,195

0

0

d

0,195

0

1

0

f

0,16

0

1

1

a

0,13

1

0

0

i

0,095

1

0

1

c

0,065

1

1

0

0

e

0,065

1

1

0

1

h

0,065

1

1

1

0

g

0,03

1

1

1

1

17. Построить код Хаффмана.

Решение.

b

d

f

a

i

c

e

h

g

b – 10

d – 000

f – 001

a – 010

i – 110

c– 0110

e– 0111

h – 1110

g – 1111

18. Найти избыточность равномерного кода и кода Хаффмана

Решение.

Символ

Код Хаффмана

p

n

Равномерный код

b

d

f

a

i

c

e

h

g

10

000

001

010

110

0110

0111

1110

1111

0,195

0,195

0,16

0,13

0,095

0,065

0,065

0,065

0,03

2

3

3

3

3

4

4

4

4

a

b

c

d

e

f

g

h

i

0000

0001

0010

0011

0100

0101

0110

0111

1000

Избыточность для равномерного кода

Используем формулу K=(nср – H)/nср, где nср=∑pi * ni

H= - ∑ pi * log2pi

H= - 0,195* log2 0,195- 0,195* log2 0,195- 0,16* log2 0,16- 0,13* log2 0,13- 0,095* log2 0,095- 0,065* log2 0,065- 0,065* log2 0,065- 0,065* log2 0,065- 0,03* log2 0,03 = 0,46+0,46+0,42+0,38+0,06+0,05+0,05+0,05+0,03=1,96

nср= 4

K= (4-1,96)/4 = 0,51 (51%)

Избыточность для кода Хаффмана

Используем формулу K=(nср – H)/nср, где nср=∑pi * ni

H= - ∑ pi * log2pi

H= - 0,195* log2 0,195- 0,195* log2 0,195- 0,16* log2 0,16- 0,13* log2 0,13- 0,095* log2 0,095- 0,065* log2 0,065- 0,065* log2 0,065- 0,065* log2 0,065- 0,03* log2 0,03 = 0,46+0,46+0,42+0,38+0,06+0,05+0,05+0,05+0,03=1,96

nср=0,195*2+0,195*3+0,16*3 +0,13* 3+0,095 *3+0,065*4+0,065*4+0,065*4+0,03 *4=3,03

K=(3,03-1,96)/3,03=0,35 (35 %)

№ 19. Закодировать первые два символа сообщения кодом Хаффмана и построить для полученного двоичного сообщения код Хемминга.

a – 010

b – 000

010000

1) (n=6) n-количество разрядов в коде

2) Находим количество проверочных разрядов по формуле P>=log2(n+p+1)

P=1 P>=log2(6+1+1)= log28=3 – не удовлетворяет условию

P=2 P>=log2(6+2+1)= log29=3,17 – не удовлетворяет условию

P=3 P>=log2(6+3+1)= log210=3,32 – не удовлетворяет условию

P=4 P>=log2(6+4+1)= log211=3,46 – удовлетворяет условию

разряда

Обозначение разрядов

Значение разрядов

Двоичное представление номеров разрядов

1

Y1

1

1

2

Y2

0

1

0

3

X1

0

1

1

4

Y3

1

1

0

0

5

X2

1

1

0

1

6

X3

0

1

1

0

7

X4

0

1

1

1

8

Y4

0

1

0

0

0

9

X5

0

1

0

0

1

10

X6

0

1

0

1

0

Код Хемминга

4

3

2

1

Уравнения для контрольных сумм

1=Y1X1X2X4X5 =0  Y1 0  1  0  0 = 0  Y1=1

2=Y2X1X3X4X6 = 0  Y2 0  0  0  0 = 0  Y2= 0

3=Y3X2X3X4 = 0  Y3 1  0  0 = 0  Y3=1

4=Y4X5X6 = 0  Y4 0  0 = 0  Y4=0

Ответ: 1001100000 – код Хемминга