- •1 Кодирование сигналов
- •1.1 Основные понятия
- •1.2 Система передачи дискретных сообщений
- •1.3 Сжатие данных
- •1.4 Кодирование словаря
- •1.5 Неравномерное кодирование
- •2 Помехоустойчивое (корректирующее) кодирование
- •2.1Оосновные понятия
- •2.2 Классификация помехоустойчивых кодов
- •2.3 Код с постоянным весом
- •3 Систематические линейные блочные коды (слбк)
- •3.1 Основные понятия
- •3.2 Кодирование информации
- •3.3 Код с четным числом единиц
- •3.4 Коды хэмминга
- •4 Циклические коды
- •4.1 Основные понятия
- •4.2 Кодирование информации
- •4.3 Кодирующие устройства
- •5 Декодирование линейных кодов
- •5.1 Декодирование по максимуму правдоподобия
- •5.2 Мажоритарное декодирование
- •5.3 Декодирование по синдрому
- •6 Непрерывные (рекуррентные) коды
- •6.1 Общие сведения
- •6.2 Цепной код
- •6.3 Сверточные коды (ск)
- •7 Генераторы с внешним возбуждением
- •7.1 Классификация генераторов
- •7.2 Использование гвв для умножения частоты
- •7.3 Метод отсечки
- •7.4 Импульсный метод
- •7.5 Радиоимпульсный метод
- •8.1 Электрическая структурная схема аг
- •8.2 Процесс возбуждения колебаний в аг
- •8.3 Энергетическое равновесие в аг
- •9 Режимы работы и возбуждения аг
- •9.1 Комплексное уравнение аг
- •9.2 Условие баланса амплитуд
- •9.3 Условие баланса фаз
- •9.4 Режим мягкого самовозбуждения аг
- •9.5 Режим жесткого самовозбуждения
- •10 Устойчивость работы аг
- •10.1 Колебательные характеристики
- •10.2 Линии обратной связи
- •10.3 Определение стационарной амплитуды колебаний
- •10.4 Lc автогенератор с автоматическим смещением
- •11 Трехточечные lc-автогенераторы
- •11.1 Обобщенная трехточечная схема
- •11.2 Генератор с автотрансформаторной обратной связью
- •11.3 Автогенератор с емкостной обратной связью
- •12 Стабилизация частоты lc-генераторов
- •12.1 Общие сведения
- •12.2 Причины нестабильности частоты
- •12.3 Методы стабилизации частоты:
- •12.4 Кварцевая стабилизация частоты
- •13.1 Цепочный rc-автогенератор
- •14 Формирование двухполосных ам сигналов
- •14.1 Общие сведения
- •14.2 Однотактные модуляторы
- •14.2 Балансный (двухтактный) модулятор
- •15 Формирование однополосных ам сигналов
- •15.1 Методы формирования ом сигнала
- •16 Формирование чм и фм сигналов
- •16.1 Прямой метод чм
- •16.2 Прямой метод фм
- •16.3 Косвенный метод чм
- •16.4 Косвенный метод фм
- •17 Преобразование частоты
- •17.1 Применение преобразования частоты
- •17.2 Принцип преобразования частоты
- •17.3 Схемное построение преобразователей частоты и их виды
- •17.4 Транзисторный преобразователь частоты
- •18 Формирование импульсно-модулированных сигналов
- •18.1 Амплитудно-импульсная модуляция
- •18.2 Частотно-импульсная модуляция
- •18.3 Широтно-импульсная и фазо-импульсная модуляция
- •19 Формирование манипулированных сигналов
- •19.1 Общие сведения
- •19.2 Формирование офм
- •20 Некогерентное детектирование ам сигналов
- •20.1 Общие сведения
- •20.2 Квадратичный диодный ад
- •21 Синхронное (когерентное) детектирование ам сигналов
- •22 Детектирование чм сигналов
- •22.1 Принцип работы частотных детекторов
- •22.2 Частотно-амплитудные детекторы
- •23 Детектирование фм сигналов
- •23.1 Однотактный диодный фд
- •23.2 Балансный диодный фд
- •24 Детектирование манипулированных сигналов
- •25 Детектирование импульсно-модулированных (им) и декодирование цифровых сигналов
- •25.1 Детектирование им сигналов
- •25.2 Декодирование цифровых сигналов
- •26 Помехоустойчивость приема сигналов
- •26.1 Основные понятия
- •26.2 Количественная мера пу
- •26.3 Группы методов повышения пу систем связи
- •27 Оптимальный прием сигналов
- •27.1 Общие сведения
- •27.2 Некогерентный прием
- •27.3 Неоптимальный прием
1.5 Неравномерное кодирование
Позволяет уменьшить избыточность, вызванную неравной вероятностью символов. Идея неравномерного кодирования состоит в использовании коротких кодовых слов для часто встречающихся символов и длинных – для редко возникающих. Данный подход основан на алгоритмах Шеннона-Фано и Хаффмана.
Коды Шеннона-Фано и Хаффмана являются префиксными. Префиксный код – код, обладающий тем свойством, что никакое более короткое слово не является началом (префиксом) другого более длинного слова. Такой код всегда однозначно декодируем. Обратное неверно.
Код Шеннона-Фано строится следующим образом. Символы источника выписываются в порядке убывания вероятностей (частот) их появления. Затем эти символы разбиваются на две части, верхнюю и нижнюю, так, чтобы суммарные вероятности этих частей были по возможности одинаковыми. Для символов верхней части в качестве первого символа кодового слова используется 1, а нижней – 0. Затем каждая из этих частей делится еще раз пополам и записывается второй символ кодового слова. Процесс повторяется до тех пор, пока в каждой из полученных частей не останется по одному символу.
Пример1.1:
Таблица 1.1 – Построение кода Шеннона-Фано.
Символ |
Вероятность |
Этапы разбиения |
Код |
|||
1 |
2 |
3 |
4 |
|||
а1 а2 а3 а4 а5 |
0,40 0,35 0,10 0,10 0,05 |
1 |
|
|
|
1 01 001 0001 0000 |
0 0 0 0 |
1 |
|
|
|||
0 0 0 |
1 |
|
||||
0 0 |
1 |
|||||
0 |
Алгоритм Шеннона-Фано не всегда приводит к построению однозначного кода с наименьшей средней длиной кодового слова. От отмеченных недостатков свободен алгоритм Хаффмана.
Код Хаффмана строится следующим образом. Символы источника располагают в порядке убывания вероятностей (частот) их появления. Два самых последних символа объединяют в один вспомогательный, которому приписывают суммарную вероятность. Полученные символы вновь располагают в порядке убывания вероятностей, а два последних объединяют. Процесс продолжается до тех пор, пока не останется единственный вспомогательный символ с вероятностью 1. Для нахождения кодовых комбинаций строится кодовое дерево. Из точки, соответствующей вероятности 1, направляются две ветви. Ветви с большей вероятностью присваивается символ 1, с меньшей – 0. Такое ветвление продолжается до достижения вероятности каждого символа. Двигаясь по кодовому дереву сверху вниз, записывают для каждого символа кодовую комбинацию.
Пример1.2:
Таблица 1.2 – Построение кода Хаффмана.
Символ |
Вероятность |
Объединение символов |
Код |
|||
а1 а2 а3 а4 а5 |
0,40 0,35 0,10 0,10 0,05 |
0,40 0,35 0,15 0,10 |
0,40 0,35 0,25 |
0,60 0,40 |
1,00 |
0 11 100 1011 1010 |
Рисунок 1.2 – Кодовое дерево для кода Хаффмана.
Домашнее задание:
1. [3.1.2] с.13…16;
[3.1.3] с.174…176;
[3.1.5] с. 109…112, 131…135, 297…299;
[3.1.14] с. 146…155;
[3.1.15] с.11…14.
2. Файл состоит из некоторой символьной строки:
«aaaaaaaaaabbbbbbbbccccccdddddeeeefff».
Закодировать символы кодами Шеннона-Фано и Хаффмана и оценить достигнутую степень сжатия.
РЕШЕНИЕ ЗАДАЧИ ДОМАШНЕГО ЗАДАНИЯ:
Рассчитаем частоты появления символов: υ(а)=10/36=0,28; υ(b)=8/36=0,22; υ(c)=6/36=0,17; υ(d)=5/36=0,14; υ(e)=4/36=0,11; υ(f)=0,08.
Таблица 1.3 – Построение кода Шеннона-Фано.
Символ |
Частота |
Этапы разбиения |
Код |
||
1 |
2 |
3 |
|||
a b c d e f |
0,28 0,22 0,17 0,14 0,11 0,08 |
1 1 |
1 |
|
11 10 011 010 001 000 |
0 |
|
||||
0 0 0 0 |
1 1 |
1 |
|||
0 |
|||||
0 0 |
1 |
||||
0 |
Достигнутая в результате кодирования степень сжатия определяется коэффициентом сжатия:
,
где к0 – первоначальный размер данных;
кm – размер данных в сжатом виде.
При кодировании кодом Шеннона-Фано обеспечивается коэффициент сжатия:
36∙¯|log26|¯/(10∙2+8∙2+6∙3+5∙3+4∙3+3∙3)=108/90=1,2,
где 36 – количество символов в файле;
¯|log26|¯ - минимальная длина кодовой комбинации при кодировании равномерным кодом (¯|.|¯ обозначает ближайшее целое число, большее log26);
10, 8, 6, 5, 4, 3 – число символов a, b, c, d, e, f в файле;
2, 2, 3, 3, 3, 3 – длина кодовых комбинаций кода Шеннона-Фано, соответствующих символам a, b, c, d, e, f (см. таблицу 1.1).
Таблица 1.3 – Построение кода Хаффмана.
Символ |
Частота |
Объединение символов |
Код |
||||
a b c d e f |
0,28 0,22 0,17 0,14 0,11 0,08 |
0,28 0,22 0,19 0,17 1,14 |
0,31 0,28 0,22 0,19 |
0,41 0,31 0,28 |
0,59 0,41 |
1,00 |
10 01 111 110 001 000 |
Рисунок 1.3 – Кодовое дерево для кода Хаффмана.
При кодировании кодом Хаффмана обеспечивается степень сжатия:
Ксж=36∙¯|log26|¯/(10∙2+8∙2+6∙3+5∙3+4∙3+3∙3)=108/90=1,2.