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

Элементы теории информации в защите информации. Учебное пособие для академического бакалавриата

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
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 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]