- •Глава 8. Основы теории кодирования
- •8.2. Согласование источника с каналом по объемам алфавитов. Теоремы кодирования шеннона и потенциальные возможности системы передачи информации
- •8.2.1.Теорема Шеннона для дискретного канала связи без помех
- •8.2.2. Теорема Шеннона для дискретного канала связи с помехами
- •8.2.3. Теорема Шеннона для непрерывного канала связи
- •8.3. Основы экономного кодирования
- •8.3.1 Принципы экономного кодирования. Цель сжатия данных и типы систем сжатия
- •8.3.2. Префиксные коды
- •Избыточность кода Хаффмена
- •8.3.4. Код Шеннона-Фано
- •8.3.5. Неравномерное кодирование для последовательности сообщений
- •8.3.6. Арифметическое кодирование
- •Кодирование
- •Декодирование
- •8.3.7. Словарные методы сжатия
- •Кодирование
- •Декодирование
- •8.4. Основы помехоустойчивого кодирования
- •8.4.1 Принципы обнаружения и исправления ошибок
- •8.4.2. Классификация помехоустойчивых кодов
- •8.4.3. Основные характеристики помехоустойчивых кодов
- •8.4.4. Границы вероятности ошибочного декодирования
- •8.5. Блочные линейные коды
- •8.5.1. Математическое описание процессов кодирования и декодирования
- •8.5.2. Коды с проверкой на четность
- •8.5.3 Коды Хэмминга
- •8.5.4. Коды с постоянным весом
- •8.5.5. Циклические коды
- •1. Способы декодирования с обнаружением ошибок
- •2 Способы декодирования с исправлением ошибок
- •8.6. Непрерывные коды
- •8.6.1 Идея построения непрерывного кода Финка–Хегельбергера
- •8.6.2. Сверточные коды
- •8.6.3. Представление сверточных кодов с помощью многочленов
- •8.6.4. Графическое представление сверточных кодов
- •8.6.5. Методы декодирования сверточных кодов
- •8.6.6. Схемное построение декодера Витерби
- •8.7. Методы борьбы с ошибками
- •8.7.1. Системы с обратной связью
- •8.7.2. Формат кадра протоколов с обнаружением ошибок
- •8.7.3. Методы повторной передачи (arq)
- •8.7.4. Основные характеристики систем с решающей обратной связью
- •8.7.5. Показатели эффективности цифровой системы связи
Глава 8. Основы теории кодирования
8.1. ЗАДАЧИ КОДИРОВАНИЯ. КЛАССИФИКАЦИЯ МЕТОДОВ КОДИРОВАНИЯ
Ранее указывалось, что источник сообщения включает кодирующую систему, формирующую сигналы по известным получателю правилам. Ввиду независимости содержания сообщения от выбранной формы его представления, возможно преобразование одного кода в другой, предоставив правило обратного преобразования получателю сообщения.
Целесообразность такого дополнительного кодирования сообщения на передающей стороне и соответствующего декодирования на приемной стороне возникает из-за избыточности алфавита сообщения и искажения сигналов действующими в канале связи помехами.
Кодирование предшествует хранению и передаче информации. Реализация основных характеристик канала связи помимо разработки технических устройств, требует решения информационных задач – выбор оптимального метода кодирования.
Основными задачами кодирования являются:
согласование источника с каналом по объемам алфавитов;
повышение скорости передачи информации по каналу за счет устранения избыточности в последовательности сигналов, подаваемых на его вход;
повышение помехоустойчивости передачи информации введением, определенным образом, избыточности в последовательность сигналов.
Первые две задачи направлены на преобразование последовательности сигналов, поступающей от источника сообщений на вход канала. Это, так называемая, задача кодирования источника. Кодер, осуществляющий кодирование источника сообщений включается, как правило, в состав оконечной аппаратуры. Третья задача обычно решается кодированием, реализуемым в самом канале. Это задача помехоустойчивого кодирования.
Кодирование источника и помехоустойчивое кодирование – это две самостоятельные задачи. Их раздельное теоретическое и практическое решение обусловлено различием свойств источников, использующих данный канал связи. Необходимо иметь ввиду, что кодирование, обеспечивающее изменение структуры сигналов, ни в какой мере не должно изменять количество информации, заключенной в первоначальном сообщении.
Под кодированием в широком смысле, понимают отображение сообщения в сигнал для передачи его по каналу.
Под кодированием в узком смысле понимают преобразование сообщений дискретного источника для передачи их по дискретному каналу. Если иное не указано, под словом «кодирование» далее будет подразумеваться кодирование в узком смысле.
Рассмотрим модель системы передачи (и хранения) информации, приведенной на рис. 8.1. Нужно отметить, что на самом деле проблемы, возникающие при передаче и хранении информации (на оптических дисках, магнитных носителях и в памяти компьютеров) очень схожи, поэтому методы их решения и структура технических устройств также во многом идентичны.
Рис. 8.1 Модель системы передачи (и хранения) информации
Реализация кодирования на передающей стороне всегда предполагает применение обратной процедуры — декодирования — для восстановления принятого сообщения. Устройства, осуществляющие кодирование и декодирование, называются соответственно кодер и декодер. Вместе их называют кодеком.
Под кодированием в общем случае понимают преобразование алфавита сообщения ,в алфавит некоторым образом выбранных кодовых символов. Обычно (но не обязательно) размер алфавита кодовых символов dim { } меньше или намного меньше размера алфавита источника dim{λi}. Кодирование сообщений может преследовать различные цели - сокращение объема передаваемых данных (сжатие данных), увеличение количества передаваемой за единицу времени информации, повышение верности передачи, обеспечение секретности при передаче и т.д.
Кодер источника. Подавляющая часть исходных сообщений - речь, музыка, изображения и т.д. - предназначена для непосредственного восприятия органами чувств человека и в общем случае плохо приспособлена для их эффективной передачи по каналам связи. Поэтому сообщения (λ(t) или Λ), как правило, подвергаются кодированию. В процедуру кодирования обычно включают и дискретизацию непрерывного сообщения λ(t), то есть его преобразование в последовательность элементарных дискретных сообщений { λi }.
Под кодированием источника будем понимать сокращение объема (сжатие) информации с целью повышения скорости ее передачи или сокращения полосы частот, требуемых для передачи.
Кодирование источника иногда называют экономным, безызбыточным или эффективным кодированием, а также сжатием данных. Под эффективностью в данном случае понимается степень сокращения объема данных, обеспечиваемая кодированием.
Кодер канала. При передаче информации по каналу связи с помехами в принятых данных могут возникать ошибки. Если такие ошибки имеют небольшую величину или возникают достаточно редко, информация может быть использована потребителем. При большом числе ошибок полученной информацией пользоваться нельзя.
Кодирование в канале, или помехоустойчивое кодирование, представляет собой способ обработки передаваемых данных, обеспечивающий уменьшение количества ошибок, возникающих в процессе передачи по каналу с помехами. Существует большое число различных методов помехоустойчивого кодирования информации, но все они основаны на следующем: при помехоустойчивом кодировании в передаваемые сообщения вносится специальным образом организованная избыточность (в передаваемые кодовые последовательности добавляются избыточные символы), позволяющая на приемной стороне обнаруживать и исправлять возникающие ошибки. Таким образом, если при кодировании источника производится устранение естественной избыточности, имеющей место в сообщении, то при кодировании в канале избыточность в передаваемое сообщение сознательно вносится. На выходе кодера канала в результате формируется последовательность кодовых символов X, называемая кодовой последовательностью.
Нужно отметить, что как помехоустойчивое кодирование, так и сжатие данных не являются обязательными операциями при передаче информации. Эти процедуры (и соответствующие им блоки в структурной схеме) могут отсутствовать. Однако это может привести к очень существенным потерям в помехоустойчивости системы, значительному уменьшению скорости передачи и снижению качества передачи информации. Поэтому практически все современные системы (за исключением, быть может, самых простых) должны включать и обязательно включают и эффективное и помехоустойчивое кодирование данных.
Классификация рассматриваемых методов кодирования приведена на рис. 8.2. Эта классификация не является, исчерпывающей. В нее включены лишь некоторые методы, которые широко используются в современных системах связи. По своему назначению кодирование подразделяется на примитивное, экономное и помехоустойчивое.
Примитивное, или безызбыточное, кодирование применяется для согласования алфавита источника и алфавита канала.
Пример, приведённый в таблице 8.1, показывает, как сообщения дискретного источника с объёмом алфавита могут быть преобразованы для передачи по дискретному двоичному каналу. Отличительное свойство примитивного кодирования состоит в том, что избыточность дискретного источника, образованного выходом примитивного кодера, равна избыточности источника на входе кодера.
Таблица 8.1. Пример примитивного кодирования
Сообщения дискретного источника |
Выход кодера |
а0 |
00 |
а1 |
01 |
а2 |
10 |
а3 |
11 |
Экономное кодирование, или сжатие данных, применяется для уменьшения времени передачи информации или требуемого объема памяти при её хранении. Отличительное свойство экономного кодирования состоит в том, что избыточность источника, образованного выходом кодера, меньше, чем избыточность источника на входе кодера. Экономное кодирование применяется в ЭВМ. Так, версии операционных систем обязательно содержат в своём составе программы сжатия данных (динамические компрессоры и архиваторы), а стандарты нa модемы включает сжатие в число процедур обработки данных.
Если сжатие производится так, что по сжатым данным можно абсолютно точно восстановить исходную информацию, кодирование называется неразрушающим. Неразрушающее кодирование используется при передаче (или хранении) текстовой информации, числовых данных, компьютерных файлов и т.п., то есть там, где недопустимы даже малейшие отличия исходных и восстановленных данных.
Во многих случаях нет необходимости в абсолютно точной передаче информации от источника к ее потребителю, тем более что в канале связи всегда присутствуют помехи и абсолютно точная передача в принципе невозможна. В таких случаях может быть использовано разрушающее сжатие, обеспечивающее восстановление исходного сообщения по сжатому, с той или иной степенью приближения. Как правило, разрушающие методы сжатия гораздо более эффективны, нежели неразрушающие.
Таким образом, на выходе кодера источника по передаваемому сообщению λ(t) или Λ формируется последовательность кодовых символов , называемая информационной последовательностью, допускающая абсолютно точное (или приближенное) восстановление исходного сообщения и имеющая, по возможности, как можно меньший размер.
Помехоустойчивое, или избыточное, кодирование применяется для обнаружения и (или) исправления ошибок, возникающих при передаче по дискретному каналу. Отличительное свойство помехоустойчивого кодирования состоит в том, что избыточность источника, образованного выходом кодера, больше, чем избыточность источника на входе кодера. Помехоустойчивое кодирование используется в различных системах связи, при хранении и передаче данных в сетях ЭВМ, в бытовой и профессиональной аудио- и видеотехнике, основанной на цифровой записи.