Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Элементы теории информации в защите информации. Учебное пособие для академического бакалавриата
.pdf
8.3. Регулярные коды
значит, построение дерева закончено. Для завершения
описания кода надо указать слово w', состоящее из букв
текста, привязанных к единицам в слове w. В данном примере
w' = (_ W O E D A N S U C L I F T H).
Каждая буква потребует 8 бит, поэтому передача слов
w и w' потребует
l
(x) = 29 + 8 ×15 = 149 бит.
1
Значит, передача всего сообщения потребует l
+ l
(x) = 149 + 178 = 327 бит.
2
(x) +
1
Замечания к примеру 9.1. а) Без кодирования переда-
ча данного текста длины 50 букв потребует 8×50=400 бит,
то есть двухпроходное кодирование более экономичное.
б) Длину кода структуры кодового дерева можно
уменьшить до 124 бит. Тогда для передачи сообщения достаточно
l
(x) + l2(x) = 124 + 178= 302 бит.
1
в) «Вспомогательная»информация (о структуре кодового дерева) составляет более 40% длины кодовой последовательности. С ростом длины сообщения ее относительная доля уменьшается и эффективность кодирования
возрастает.
8.3. Регулярные коды
Затраты на передачу «вспомогательной» информа-
ции можно уменьшить, заметив, что при фиксированном
распределении вероятностей существует несколько различных, но одинаково эффективных кодов Хаффмена.
Так как различные кодовые деревья требуют для передачи различное количество информации, то можно минимизировать затраты на передачу информации о кодовом
дереве за счет выбора одного из деревьев.
— 151 —

Глава 9. Универсальное кодирование
Кроме того, выбор кодового дерева может быть таким,
что передача его точной структуры потребует существенно меньше информации, чем при бинарном кодировании
всех его вершин.
Неравномерный код называется регулярным, если
кодовые слова упорядочены лексикографически по длинам.
Пример 9.2. Закодируем с помощью двухпроходного
кодирования методом Хаффмена следующее сообщение.
«Проблемы арифметического кодирования на практике
преодолимы за счет постепенной обработки входной
последовательности» (2)
Длина текста 116 знаков, в нем встречается 25 различных знаков. Результаты статистического анализа частот знаков и соответствующий код Хаффмена приведены
в таблице 9.2.
Кодовые слова (рисунок 9.2) упорядочены по длинам,
при одинаковой длине по частотам букв и при одинаковых длине и частоте — по порядку встречаемости в тексте
(последнее не обязательно).
Оценим вычислительные затраты. Длина l
(x) равна
2
сумме длин кодовых слов всего текста, она находится
из 2-го и 3-го столбцов таблицы 1:
l
(x) = 6 ×4 + 6 ×4 + 16 ×3 + 3 ×5 + … + 7 + 7 = 495.
2
Кодовое дерево закодировано двоичной последовательностью меток всех вершин, записанных последовательно от 0-го до 7-го яруса, где внутри ярусов порядок
записи меток — сверху вниз.
В нашем случае имеем 49-битовое слово w:
w = (0 00 0000 11000000 111111100000 1111111000
111000 111111).
Кодовое дерево (рисунок 9.2) построено для последовательности букв текста, упорядоченных по частоте
— 152 —

8.3. Регулярные коды
Таблица 9.2
Код Хаффмена для текста (2), n=116
Буква
Частота
буквы
Длина кодового
слова
Кодовое
слово
О 16 3 100
- 11 3 010
Е 10 4 1100
И 8 4 1010
А 7 4 1011
Т 7 4 0010
П 6 4 0000
Р 6 4 0001
Н 6 4 0110
С 5 5 11010
К 5 5 11011
Л 4 5 11100
Д 4 5 00110
Б 3 5 00111
М 3 5 01110
В 3 5 01111
Ы 2 6 111010
Ч 2 6 111011
Й 2 6 111100
Ф 1 7 1111010
Г 1 7 1111011
Я 1 7 1111100
З 1 7 1111101
Х 1 7 1111110
Ь 1 7 1111111
— 153 —

Глава 9. Универсальное кодирование
Рисунок 2. Построение кодовых слов для текста (2)
встречаемости в тексте, такое дерево соответствует регулярному коду. При прежнем кодировании символами 0
и 1 всех вершин кодового дерева получаем кодовое слово
w, в котором подслово, соответствующее любому ярусу,
состоит из серии единиц, за которой следует серия нулей.
Поэтому для передачи информации о кодовом дереве достаточно передать числа единиц n
, n1, …, n7 в подсловах,
0
соответствующих 0-му, 1-му, …, 7-му ярусам, где разрядность двоичных чисел, достаточная для представления
чисел n
, n1, …, n7, определяется однозначно из числа
0
— 154 —

8.3. Регулярные коды
нулей (также из числа единиц) в кодовом подслове предыдущего яруса.
Таблица 9.3
Количество битов для передачи
структуры кодового дерева
Ярус
Общее
число
вершин
Число
концевых
вершин n
i
Диапазон
значений:
0 ≤ ni ≤…
За-
траты
в битах
0 1 0 1 1
1 2 0 2 2
2 4 0 4 3
3 8 2 8 4
4 12 7 12 4
5 10 7 10 4
6 6 3 6 3
7 6 6 6 3
Всего 24
Из таблицы 9.3 получаем, что для передачи информации о структуре кодового дерева достаточно передать
24 бита.
Выигрыш можно увеличить, если не тратить по 8 бит
на определение соответствия букв и слов регулярного
кода (это потребовало бы 8×25 = 200 бит). Достаточно
указать длину кодового слова для каждой буквы текста.
Кодер и декодер, зная состав множества слов одинаковой
длины, одинаково упорядочат их, например, по порядку
встречаемости в тексте или в алфавите.
При известной структуре дерева сначала передается
номер комбинации (сочетания) 2 букв из 256, которым
— 155 —

Глава 9. Универсальное кодирование
log
log
log
log
R
1
n
в кодовом дереве соответствуют слова длины 3, затем передается номер комбинации 7 букв из оставшихся 254,
которым в кодовом дереве соответствуют слова длины 4,
затем передается номер комбинации 7 букв из оставшихся 247, которым в кодовом дереве соответствуют слова
длины 5, и т.д. Если номера комбинаций задавать двоичными числами, то для передачи соответствия букв и слов
регулярного кода потребуется всего бит:
256
2
+
254
7
+
247
7
+
240
+
Следовательно, для передачи полной информации
о структуре кодового дерева и о соответствии букв и слов
регулярного кода достаточно передать 24+162=186 бит.
Значит, передача всего сообщения потребует
l
(x)+l2(x)=186+495=681 бит.
1
Заметим, что без кодирования для передачи данного
текста длины 116 знаков потребуется 8×116=928 бит.
Следующая теорема характеризует эффективность
двухпроходного кодирования методом Хаффмена.
Теорема 9.1. При двухпроходном кодировании методом Хаффмена ДПИ с порядком алфавита М и с энтропией H для средней скорости кодирования верна оценка
≤ H + 1+
(МlogМ + 3М – 1).
+
3
log
237
6
= 162.
9.4. Задачи и упражнения
9.1. Какой класс методов кодирования называется
универсальным?
9.2. В чем существо двухпроходного кодирования?
— 156 —

9.4. Задачи и упражнения
9.3. С помощью двухпроходного кодирования мето-
дом Хаффмена закодируйте сообщение:
а) «В спорах рождается истина, но страдают спор-
щики»;
б) «Наш футбольный клуб вот уже четыре месяца
отчаянно борется за выживание в третьей лиге».
9.4. Опишите алгоритм двухпроходного кодирования
методом Шеннона (по аналогии с методом Хаффмена).
9.5. С помощью двухпроходного кодирования мето-
дом Шеннона закодируйте сообщение:
а) «Наша цель — решение широкого класса задач
экономного кодирования сообщений дискретных источников»;
б) «На выходе канала декодер анализирует получен-
ный сигнал и выносит решение в пользу одного из сигналов».
9.6. Опишите алгоритм двухпроходного кодирования
методом Гилберта-Мура (по аналогии с методами Хаффмена и Шеннона).
9.7. С помощью двухпроходного кодирования методом Гилберта-Мура закодируйте сообщение:
а) «Положения теории опираются на методы линей-
ной алгебры, комбинаторики и теории конечных полей»;
б) «расстояние Хэмминга между двумя последова-
тельностями равно числу несовпадающих элементов
этих последовательностей, стоящих на соответствующих местах».
— 157 —

ГЛАВА 10.
Кодирование в дискретных
каналах с шумом
10.1. Проблема помехоустойчивого
кодирования в дискретных каналах
с шумом
В литературных и деловых текстах, а также в устной
речи проявляется избыточность языка, которая помогает
сохранить смысл текста или речи, даже если имеются помехи и искажения различного рода (плохая слышимость,
несовершенство дикции и др.). Избыточность позволяет
сжимать информацию, например, программы-архиваторы сжимают информацию до 5 раз.
Важной задачей является защита информации при
передаче по каналам связи или при хранении от помех
и искажений. Защита информации обеспечивается за счет
того, что при кодировании в информацию вносится избыточность так, чтобы искажение могло быть обнаружено
и устранено. Таким образом, задача кодирования для
каналов в определенном смысле противоположна задаче
экономного кодирования сообщений источников.
Для построения эффективной системы связи можно
было бы использовать имеющуюся избыточность языка
для помехоустойчивого кодирования. Однако теория информации обоснованно рекомендует решать раздельно
задачи экономного кодирования сообщений источника
и помехоустойчивого кодирования канала.
— 158 —

10.2. Постановка задачи помехоустойчивого кодирования
Заметим, что в рамках данного учебного пособия
алгебраическая теория кодов, исправляющих ошибки,
не рассматривается. Положения этой теории опираются
на методы линейной алгебры, комбинаторики и теории
конечных полей и могут быть найдены в соответствующих учебниках.
10.2. Постановка задачи
помехоустойчивого кодирования
Рассмотрим в качестве примера систему связи,
в которой входом канала являются двоичные сигналы, соответствующие символам из алфавита X={0,1}.
Пусть передаваемая информация представлена в двоичном виде, то есть входные сигналы канала могут быть
использованы для передачи информации. На выходе
канала декодер анализирует полученный сигнал и выносит решение в пользу одного из сигналов: 0 или 1.
Последнее действие осложняется тем, что из-за шума
в канале возможны ошибки при передаче сигнала. Следовательно, возникает задача устранения ошибки или
хотя бы уменьшения доли ошибок в принятой последовательности сообщений.
Приведем примеры кодов, способных исправлять
ошибочные сигналы.
Пример 10.1. Пусть вместо сообщения 0 передается
последовательность 000, а вместо сообщения 1 передается
последовательность 111. Множество передаваемых последовательностей образует код мощности 2. Код содержит
2 слова длины 3.
Предположим, что безошибочная передача сигнала более вероятна, чем передача с ошибкой (то есть
вероятность случайного искажения сигнала меньше
1
/2). Тогда естественно принимать решение о принятом
— 159 —

Глава 10. Кодирование в дискретных каналах с шумом
сигнале по последовательности трех символов методом
«голосования»: если число единиц меньше 2, то решение принимается в пользу 0, в противном случае, если
число единиц не меньше 2, то решение принимается
в пользу 1. Иначе говоря, определяющим для принятия решения является минимум расстояния Хэмминга
от принятой последовательности до последовательностей 000 и 111 (расстояние Хэмминга между двумя
последовательностями равно числу несовпадающих
элементов этих последовательностей, стоящих на соответствующих местах).
Множество последовательностей, декодируемых как
сообщение a, называется решающей областью сообщения a.
Решающие области данного примера приведены в та-
блице 10.1.
Таблица 10.1
Корректирующий код примера 10.1
сообщение кодовое слово решающая область
0 000 {000, 001, 010, 100}
1 111 {011, 101, 110, 111}
Одиночная ошибка в канале при использовании такого кода устраняется, в таких случаях говорят, что код
исправляет все ошибки кратности 1. При двукратной
ошибке в принятом слове ошибка не устраняется.
На передачу одного бита код затрачивает 3 бита. Скорость кода, определяемая как количество бит, используемых для передачи одного символа информации, в данном
случае равна R=3 (бит/символ канала).
Пример 10.2. Усложним предыдущий код. Пусть сообщение образовано парой битов, всего сообщений 2
2
=4.
Один из возможных кодов для этих сообщений приведен
в таблице 10.2.
— 160 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
