- •Основы теории цифровой связи Часть 1 кодирование информации
- •1. Введение
- •1.1. Модель радиотехнической системы связи
- •Контрольные вопросы
- •1.2. Статистическая трактовка процесса передачи информации
- •Контрольные вопросы
- •1.3. Основные понятия и элементы математического аппарата теории связи
- •1.3.1. Сигналы и помехи
- •1.3.2. Разложение сигнала по системе ортогональных функций. Спектр сигнала
- •1.3.3. Cвойства преобразования Фурье
- •1.3.4. Корреляционная функция сигнала
- •1.3.5. Связь между корреляционной функцией и спектром сигнала
- •1.3.6. Случайные сигналы и их характеристики
- •Контрольные вопросы
- •1.4. Источники информации
- •1.5. Теорема дискретизации
- •1.6. Дискретизация изображений
- •Контрольные вопросы
- •1.7. Квантование. Ошибки квантования
- •Контрольные вопросы
- •1.8. Количество информации, содержащейся в сообщении
- •1.8.1. Энтропия сложных сообщений, избыточность источника
- •Контрольные вопросы и задачи
- •2. Основы экономного кодирования информации
- •2.1. Способы представления кодов
- •Контрольные вопросы и задачи
- •2.2. Типы систем сжатия
- •X Квантователь Xq Кодер без потерь информации b (Xq) Декодер X*
- •Методы кодирования без потерь
- •2.3.1. Понятие префиксного множества
- •2.3.2. Алгоритм кодирования Хаффмена
- •2.3.3. Алгоритм Шеннона–Фано
- •2.3.4. Блочные коды
- •2.3.5. Арифметическое кодирование
- •2.3.6. Словарное кодирование. Метод Зива–Лемпеля
- •2.3.7. Кодирование длин повторений (rle)
- •2.3.8. Дифференциальное кодирование
- •Контрольные вопросы и задачи
- •2.4. Методы сжатия с потерей информации
- •2.4.1. Функции “скорость–искажение” и “искажение–скорость”
- •2.5. Сжатие речевых сигналов
- •2.5.1. Кодирование формы сигнала, икм
- •2.5.2. Дифференциальная икм
- •2.5.3. Адаптивная дифференциальная икм (адикм)
- •2.5.4. Дельта-модуляция
- •2.5.5. Другие методы кодирования формы сигнала
- •2.5.6. Кодирование источника
- •2.5.7. Гибридные методы кодирования речи
- •2.5.8. Полноскоростной кодер rpe-ltp (стандарт gsm 06.10)
- •2.5.9. Кодер vselp (стандарт d-amps)
- •Контрольные вопросы и задачи
- •2.6. Кодирование изображений. Стандарт сжатия jpeg
- •Процедуру дкп можно записать в матричной форме:
- •2.6.1. Рекурсивный (вэйвлет) алгоритм
- •2.7. Сжатие подвижных изображений (видео)
- •3. Основы помехоустойчивого кодирования
- •3.1. Основные принципы. Типы кодов
- •3.2. Линейные блочные коды
- •3.2.1. Код с проверкой на четность
- •3.2.2. Итеративный код
- •3.2.3. Порождающая матрица линейного блочного кода
- •3.2.4. Проверочная матрица
- •3.2.5. Дуальные коды
- •3.2.6. Синдром и обнаружение ошибок
- •3.2.7. Синдромное декодирование линейных блочных кодов
- •3.2.8. Мажоритарное декодирование линейных блочных кодов
- •3.2.9. Декодирование методом максимального правдоподобия
- •Поскольку
- •Если принятый сигнал дискретизован и Si – I-й отсчет принятого сигнала.
- •3.2.10. Вес и расстояние Хемминга. Способность кодов обнаруживать и исправлять ошибки
- •Контрольные вопросы и задачи
- •3.3. Полиномиальные коды
- •3.3.1. Циклические коды
- •3.3.2. Кодирование с использованием циклических кодов
- •3.3.3. Вычисление синдрома и исправление ошибок в циклических кодах
- •3.3.4. Неалгебраические методы декодирования циклических кодов
- •3.4. Сверточные коды
- •3.4.1. Кодирование с использованием сверточных кодов
- •3.4.2. Синдромное декодирование сверточных кодов
- •3.4.3. Кодовое дерево и решетчатая диаграмма
- •3.4.4. Декодирование сверточных кодов. Алгоритм Витерби
- •3.4.5. Алгоритмы поиска по решетке
- •Контрольные вопросы и задачи
- •3.5. Применение корректирующего кодирования в системах связи
- •3.5.1. Каскадные коды
- •3.5.2. Кодирование с перемежением
- •Библиографический список
- •Часть 1 1
2.1. Способы представления кодов
Самым простым способом представления или задания кодов являются кодовые таблицы, ставящие в соответствие кодируемым сообщениям i соответствующие им коды (табл. 2.1).
Буква li |
Число li |
Код с основанием 4 |
Код 1 с основанием 2 |
Код 2 с основанием 2 |
А |
0 |
00 |
000 |
0 |
Б |
1 |
01 |
001 |
10 |
В |
2 |
02 |
010 |
1100 |
Г |
3 |
03 |
011 |
1101 |
Д |
4 |
10 |
100 |
1110 |
Е |
5 |
11 |
101 |
11110 |
Ж |
6 |
12 |
110 |
111110 |
З |
7 |
13 |
111 |
111111 |
Обратите внимание, что одним и тем же сообщениям i можно ставить в соответствие различные коды (например Код 1 или Код 2). В первом случае сообщения кодируются так называемыми равномерными кодами, когда каждому i соответствует код с одинаковым количеством символов. Во втором случае используются неравномерные коды. О преимуществах тех или иных кодов будет сказано позже.
Еще одним наглядным и удобным способом задания кодов является их представление в виде “кодовых деревьев” (рис. 2.1 и 2.2), состоящих из “корня”, “ветвей”, “узлов” и “вершин”.
Корень
Узлы
0
1
Вершина
0
1 0 1
0 1 0
1 0 1 0 1
А Б В Г
Д Е Ж З
1 2 3 4 5
6 7 8
Рис. 4.
Рис. 2.2
На вершинах кодового дерева находятся буквы алфавита источника, причем каждой букве соответствуют своя вершина и свой путь от корня к вершине. Процедура кодирования с использованием “кодового дерева” состоит в движении от “корня” к соответствующей “вершине” по некоторому пути. При этом движению по дереву вправо соответствует “1”, движению влево – “0” ( или наоборот). Например, при кодировании с использованием кодового дерева (см. рис. 2.1) букве А соответствует код 000, букве В – 010, букве Е – 101 и т.д.
Код, получаемый с использованием кодового дерева, изображенного на рис. 2.1, является равномерным трехразрядным кодом. Равномерные коды широко используются в силу своей простоты и удобства процедур кодирования-декодирования.
Наряду с равномерными могут применяться и неравномерные коды, когда каждая буква из алфавита источника кодируется различным количеством символов, к примеру, А – 10, Б – 110, В – 1110 и т.д. Кодовое дерево для неравномерного кодирования может выглядеть, например, так, как показано на рис. 2.2. При использовании этого кода буква А будет кодироваться как 1, Б – как 0, В – как 11 и т.д. Однако можно отметить следующее.
Закодируем с использованием кодового дерева, изображенного на рис. 2.2, текст АББА. Получим код 1001. Теперь попробуем его декодировать. К сожалению, получить однозначного ответа мы не сможем, потому, что такой же код дают фразы: ЖА = 1001, АЕА = 1001 и ГД = 1001. Такие коды, не обеспечивающие однозначного декодирования, называются приводимыми, или непрефиксными, кодами и не могут на практике применяться без специальных разделяющих символов.
Однако можно построить неравномерные коды, обеспечивающие однозначное декодирование. Для этого необходимо, чтобы всем буквам алфавита соответствовали лишь вершины кодового дерева, например, такого, как показано на рис. 2.3. Здесь ни одна кодовая комбинация не является началом другой, более длинной, поэтому неоднозначности декодирования не будет. Такие неравномерные коды называются неприводимыми, или префиксными.
Рис. 2.3
Может показаться, что использование неравномерных кодов не очень удобно. Действительно, их декодирование выполняется сложнее, нежели равномерных. Так, к примеру, приняв первый 0 (см. рис. 2.3), декодер должен посмотреть в кодовую таблицу и выяснить, какой букве соответствует принятая последовательность. Поскольку такой буквы нет, он должен ждать прихода следующего символа. Если следующим символом будет 1, тогда декодирование первой буквы завершится – это будет Б, если же вторым принятым символом снова будет 0, придется ждать третьего символа и т.д.
Кроме этого, можно заметить, что некоторые кодовые слова неравномерного кода имеют более длинный путь от вершины к корню кодового дерева, то есть большую длину, чем для равномерного кода с тем же алфавитом. Тем не менее, неравномерные коды используются при передаче информации. На вопрос, что дает использование неравномерных кодов, можно получить ответ, рассмотрев следующий пример.
Пусть источник сообщения выдает некоторый текст с алфавитом от А до З (размер алфавита K = 8) и одинаковой вероятностью букв Р(li ) = 1/8.
Закодируем эти буквы равномерным трехразрядным кодом (табл. 2.1, Код 1). Определим основные информационные характеристики источника с таким алфавитом:
энтропия
источника
,
;
избыточность
источника
;
среднее
число символов в коде
;
избыточность
кода
.
Таким образом, при кодировании сообщений с равновероятными буквами избыточность равномерного кода оказалась равной нулю.
Предположим теперь, что буквы в алфавите источника неравновероятны и их вероятности соответствуют табл. 2.2.
Таблица 2.2
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
Ра = 0.6 |
Рб = 0.2 |
Рв = 0.1 |
Рг = 0.04 |
Рд = 0.025 |
Ре = 0.015 |
Рж = 0.01 |
Рз = 0.01 |
Подобное распределение вероятностей означает, что буква А будет встречаться в тексте чаще всего, буква Б – несколько реже, а буквы Ж и З совсем редко. Определим характеристики такого источника:
энтропия
источника
;
избыточность
источника
.
Если закодировать сообщения этого источника прежним равномерным трехразрядным кодом (Код 1), то среднее количество символов на одну букву составит, как и раньше,
,
а избыточность кода
.
Получилась большая избыточность – в среднем 4 символа из 10 не несут информации. Таким образом, видно, что при кодировании неравновероятных сообщений равномерные коды обладают избыточностью.
Если же закодировать сообщение с неравновероятными буквами неравномерным кодом (Код 2), то получим среднюю длину кода
и избыточность кода
.
Таким образом, если закодировать источник, вырабатывающий неравновероятные символы (буквы), неравномерным кодом, причем более вероятные буквы кодировать короткими кодами, а менее вероятные – длинными, то мы получим почти безызбыточный код с меньшей средней длиной по сравнению с кодированием равномерными кодами.
Данный пример показывает, что при использовании неравномерных кодов можно получить более компактное представление данных, нежели в случае кодирования равномерными кодами.
