Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика учебное пособие часть 1.doc
Скачиваний:
31
Добавлен:
16.09.2019
Размер:
882.18 Кб
Скачать

4.2 Алфавитное неравномерное двоичное кодирование сигналами равной длительности

Как следует из названия, в способах кодирования, относящихся к этой группе, знаки первичного алфавита кодируются комбинациями символов двоичного алфавита (0,1), причем длина кодов и, соответственно, длительность передачи отдельного кода могут различаться. Длительности элементарных сигналов при этом одинаковы (0 = 1 = ).

Очевидно, для передачи информации, в среднем приходящейся на знак первичного алфавита, необходимо время К(А,2)  .

Таким образом, задачу оптимизации неравномерного кодирования можно сформулировать так:

построить такую схему кодирования, в которой суммарная длительность кодов при передаче (или суммарное число кодов при их хранении) данного сообщения была бы наименьшей.

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

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

Каким образом она может быть декодирована? Если бы код был равномерным, приемное устройство просто считывало бы заданное (фиксированное) число элементарных сигналов и интерпретировало их в соответствии с кодовой таблицей.

При использовании неравномерного кодирования возможны 2 подхода к обеспечению различимости кодов:

  • используется специальная комбинация элементарных сигналов, которая интерпретируется декодером как разделитель знаков;

  • применяются префиксные коды.

4.2.1 Неравномерный код с разделителем

Условимся, например, что разделителем отдельных кодов букв будет последовательность 00 (признак конца знака), а разделителем слов – 000 (признак конца слова – пробел).

Довольно очевидными являются следующие правила построения кодов:

  • код признака конца знака может быть включен в код буквы, поскольку не существует отдельно (то есть коды всех букв будут заканчиваться на 00);

  • коды букв не должны содержать 2-х и более нулей подряд в середине (иначе они будут восприниматься как конец знака);

  • код буквы всегда должен начинаться с 1;

  • разделителю слов 000 всегда предшествует признак конца знака; при этом реализуется последовательность 00000 (то есть, если в конце кода встречается комбинация …000 или …0000, они не воспринимаются как разделитель слов, следовательно, коды букв могут оканчиваться на 0 или 00 до признака конца знака).

В соответствии с перечисленными правилами построим кодовую таблицу для букв русского алфавита (таблица 4.1), основываясь на приведенных ранее в таблице 3.1 вероятностях появления отдельных букв.

Таблица 4.1 Неравномерный код с разделителем

Буква

Код

Частота Pi103

Буква

Код

Частота Pi103

пробел

000

174

я

1011000

18

о

100

90

ы

1100100

16

е

1000

72

з

1101000

16

а

1100

62

ь, ъ

1101100

14

и

10000

62

б

1110000

14

т

10100

53

г

1110100

13

н

11000

53

ч

1111000

12

с

11100

45

й

1111100

10

р

101000

40

х

10101000

9

в

101100

38

ж

10101100

7

л

110000

35

ю

10110000

6

к

110100

28

ш

10110100

6

м

111000

26

ц

10111000

4

д

111100

25

щ

10111100

3

п

1010000

23

э

11010000

3

у

1010100

21

ф

11010100

2

Средняя длина кода К(ru, 2) = .

Поскольку для русского языка I1r = 4,356 бит, избыточность данного кода составляет

Q(ru, 2) = - 1 = 0,14.

Это означает, что при данном способе кодирования будет передаваться приблизительно на 14 % больше информации, чем содержит исходное сообщение.

Аналогичные вычисления для английского языка К(en, 2) = 4,716, что при I1(e) = 4,036 бит приводит к избыточности кода Q(еn, 2) = 0,168.

Пример 1. Провести кодирование неравномерным кодом с разделителем сообщения, предполагая, что набор символов и частоты их появления определяются текстом сообщения.

Сообщение «МАМА МЫЛА РАМУ»

Построим таблицу повторений символов.

Символ

Число повторений

Вероятность

код

пробел

2

2/14

000

М

4

4/14

100

А

4

4/14

1000

Р

1

1/14

1100

Ы

1

1/14

10000

У

1

1/14

10100

Л

1

1/14

11000

Средняя длина кода:

3 + 3 + 4 + 4 + 5 + 5+ 5 = = 3.79.

Среднее количество информации на знак этого первичного алфавита

I =  = 2,518.

Избыточность кода = (50%).