Пример на однозначность декодирования и трек ошибок

Эффективное (статическое) кодирование

Эффективное кодирование – это процедуры направленные на устранение избыточности.

Основная задача эффективного кодирования – обеспечить, в среднем, минимальное число двоичных элементов на передачу сообщения источника. В этом случае, при заданной скорости модуляции обеспечивается передача максимального числа сообщений, а значит максимальная скорости передачи информации.

Пусть имеется источник дискретных сообщений, алфавит которого .

При кодировании сообщений данного источника двоичным, равномерным кодом, потребуется двоичных элементов на кодирование каждого сообщения.

Если вероятности появления всех сообщений источника равны, то энтропия источника (или среднее количество информации в одном сообщении) максимальна и равна .

В данном случае каждое сообщение источника имеет информационную емкость бит, и очевидно, что для его кодирования (перевозки) требуется двоичная комбинация не менее элементов. Каждый двоичный элемент, в этом случае, будет переносить 1 бит информации.

Если при том же объеме алфавита сообщения не равновероятны, то, как известно, энтропия источника будет меньше

.

Если и в этом случае использовать для перевозки сообщения -разрядные кодовые комбинации, то на каждый двоичный элемент кодовой комбинации будет приходиться меньше чем 1 бит.

Появляется избыточность, которая может быть определена по следующей формуле

.

Среднее количество информации, приходящееся на один двоичный элемент комбинации при кодировании равномерным кодом

.

Пример

Для кодирования 32 букв русского алфавита, при условии равновероятности, нужна 5 разрядная кодовая комбинация. При учете ВСЕХ статистических связей реальная энтропия составляет около 1,5 бит на букву. Нетрудно показать, что избыточность в данном случае составит

,

Если средняя загрузка единичного элемента так мала, встает вопрос, нельзя ли уменьшить среднее количество элементов необходимых для переноса одного сообщения и как наиболее эффективно это сделать?

Для решения этой задачи используются неравномерные коды.

При этом, для передачи сообщения, содержащего большее количество информации, выбирают более длинную кодовую комбинацию, а для передачи сообщения с малым объемом информации используют короткие кодовые комбинации.

Учитывая, что объем информации, содержащейся в сообщении, определяется вероятностью появления

, можно перефразировать данное высказывание.

Для сообщения, имеющего высокую вероятность появления, выбирается более короткая комбинация и наоборот, редко встречающееся сообщение кодируется длинной комбинацией.

Т.о. на одно сообщение будет затрачено в среднем меньшее единичных элементов , чем при равномерном.

Если скорость телеграфирования постоянна, то на передачу одного сообщения будет затрачено в среднем меньше времени

А значит, при той же скорости телеграфирования будет передаваться большее число сообщений в единицу времени, чем при равномерном кодировании, т.е. обеспечивается большая скорость передачи информации.

Каково же в среднем минимальное количество единичных элементов требуется для передачи сообщений данного источника?

Ответ на этот вопрос дал Шеннон.

Шеннон показал, что

1. Нельзя закодировать сообщение двоичным кодом так, что бы средняя длина кодового слова была численно меньше величины энтропии источника сообщений . , где .

2. Существует способ кодирования, при котором средняя длина кодового слова немногим отличается от энтропии источника

Остается выбрать подходящий способ кодирования.

Эффективность применения оптимальных неравномерных кодов может быть оценена:

1. Коэффициентом статистического сжатия, который характеризует уменьшение числа двоичных элементов на сообщение, при применении методов эффективного кодирования в сравнении с равномерным . Учитывая, что , можно записать . Ксс лежит в пределах от 1 - при равномерном коде до , при наилучшем способе кодирования.

2. Коэффициент относительной эффективности

- позволяет сравнить эффективность применения различных методов эффективного кодирования.

В неравномерных кодах возникает проблема разделения кодовых комбинаций. Решение данной проблемы обеспечивается применением префиксных кодов.

Префиксным называют код, для которого никакое более короткое слово не является началом другого более длинного слова кода. Префиксные коды всегда однозначно декодируемы.

Веедем понятие кодового дерева для множества кодовых слов.

Наглядное графическое изображение множества кодовых слов можно получить, установив соответствие между сообщениями и концевыми узлами двоичного дерева. Пример двоичного кодового дерева изображен на рисунке. 1.

Рисунок 1. Пример двоичного кодового дерева

Две ветви, идущие от корня дерева к узлам первого порядка, соответствуют выбору между “0” и “1” в качестве первого символа кодового слова: левая ветвь соответствует “0”, а правая – “1”. Две ветви, идущие из узлов первого порядка, соответствуют второму символу кодовых слов, левая означает “0”, а правая – “1” и т. д. Ясно, что последовательность символов каждого кодового слова определяет необходимые правила продвижения от корня дерева до концевого узла, соответствующего рассматриваемому сообщению.

Формально кодовые слова могут быть приписаны также промежуточным узлам. Например, промежуточному узлу второго порядка на рис.1 можно приписать кодовое слово 11, которое соответствует первым двум символам кодовых слов, соответствующих концевым узлам, порождаемых этим узлом. Однако кодовые слова, соответствующие промежуточным узлам, не могут быть использованы для представления сообщений, так как в этом случае нарушается требование префиксности кода.

Требование, чтобы только концевые узлы сопоставлялись сообщениям, эквивалентно условию, чтобы ни одно из кодовых слов не совпало с началом (префиксом) более длинного кодового слова.

Любой код, кодовые слова которого соответствуют различным концевым вершинам некоторого двоичного кодового дерева, является префиксным, т. е. однозначно декодируемым.

Метод Хаффмена

Одним из часто используемых методов эффективного кодирования является так называемый код Хаффмена.

Пусть сообщения входного алфавита имеют соответственно вероятности их появления .

Тогда алгоритм кодирования Хаффмена состоит в следующем:

1. Сообщения располагаются в столбец в порядке убывания вероятности их появления.

2. Два самых маловероятных сообщения объединяем в одно сообщение , которое имеет вероятность, равную сумме вероятностей сообщений , т. е. . В результате получим сообщения , вероятности которых .

3. Повторяем шаги 1 и 2 до тех пор, пока не получим единственное сообщение, вероятность которого равна 1.

4. Проводя линии, объединяющие сообщения и образующие последовательные подмножества, получаем дерево, в котором отдельные сообщения являются концевыми узлами. Соответствующие им кодовые слова можно определить, приписывая правым ветвям объединения символ “1”, а левым - “0”. Впрочем, понятия “правые” и “левые” ветви в данном случае относительны.

На основании полученной таблицы можно построить кодовое дерево

Так как в процессе кодирования сообщениям сопоставляются только концевые узлы, полученный код является префиксным и всегда однозначно декодируем.

При равномерных кодах одиночная ошибка в кодовой комбинации приводит к неправильному декодированию только этой комбинации. Одним из серьёзных недостатков префиксных кодов является появление трека ошибок, т.е. одиночная ошибка в кодовой комбинации, при определенных обстоятельствах, способна привести к неправильному декодированию не только данной, но и нескольких последующих кодовых комбинаций.

Пример на однозначность декодирования и трек ошибок

Пусть передавалась следующая последовательность

1 00 11 1 00 0 1

a b c d

При возникновении ошибки в первом двоичном элементе, получим

0 0 0 11 1 00 0 1

g c d

Т.О. ошибка в одном разряде комбинации первого символа привела к неправильному декодированию двух символов. (Трек ошибок).

Передача информации

Кодирование информации в простейшей форме зародилось при общении людей в виде жестовых кодов, а позднее в виде речи, суть которой кодовые слова для передачи наших мыслей собеседнику, далее наступил новый этап развития такого кодирования – письменность, которая позволяла хранить и передавать информацию с наименьшими потерями от писателя к читателю. Иероглифы – есть конечный алфавит, обозначающий понятия, предметы или действия, элементы которого в каком-то виде заранее оговорены людьми для однозначного «декодирования» записанной информации. Фонетическое письмо использует буквенный алфавит для внутреннего кодирования слов речи и так же служит для однозначного воспроизведения записанной информации. Цифры позволяют использовать кодовое представление вычислений. Но данные типы кодирования служили скорее для непосредственного общения, но людям требовалось так же передавать информацию на расстояние и достаточно быстро, как следствие появились простейшие системы телекоммуникаций.

Важнейшим скачком в истории развития передачи информации стало использование цифровых систем передачи данных. Использование аналоговых сигналов требует большой избыточности информации, передаваемой в системе, а так же обладает таким существенным недостатком как накапливание помех. Различные формы кодирования для преобразования аналоговых сигналов в цифровые, их хранения, передачи и преобразования обратно в аналоговую форму начали своё бурное развитие во второй половине XX века, и к началу XXI практически вытеснили аналоговые системы.

Основная проблема, которую необходимо решить при построении системы коммуникации, была впервые сформулирована Клодом Шенноном в 1948 году:

Главное свойство системы связи заключается в том, что она дольно точно или приближенно воспроизвести в определенной точке пространства и времени некоторое сообщение, выбранное в другой точке. Обычно, это сообщение имеет какой-то смысл, однако это совершенно неважно для решения поставленной инженерной задачи. Самое главное заключается в том, что посылаемое сообщение выбирается из некоторого семейства возможных сообщений.


Такая точная и ясная постановка проблемы коммуникации оказала огромное воздействие на развитие средств связи. Возникла новая научная отрасль, которая стала называться теорией информации. Главная идея, обоснованная Шенноном, заключается в том, что надежные коммуникации должны быть цифровыми, т.е. задачу связи следует рассматривать как передачу двоичных цифр (битов). Появилась возможность однозначно сравнить переданную и принятую информацию.

Заметим, что любой физический канал передачи сигналов не может быть абсолютно надежным. Например, шум, который портит канал и вносит ошибки в передаваемую цифровую информацию. Шеннон показал, что при выполнении некоторых достаточно общих условий имеется принципиальная возможность использовать ненадежный канал для передачи информации со сколь угодно большой степенью надежности. Поэтому нет необходимости пытаться очистить канал от шумов, например, повышая мощность сигналов (это дорого и зачастую невозможно). Вместо этого следует разрабатывать эффективные схемы кодирования и декодирования цифровых сигналов.

Задача кодирования канала (выбор сигнально-кодовой конструкции) заключается в построении на основе известных характеристик канала кодера, посылающего в канал входные символы, которые будут декодированы приемником с максимальной степенью надежности. Это достигается с помощью добавления в передаваемую цифровую информацию некоторых дополнительных проверочных символов. На практике каналом может служить телефонный кабель, спутниковая антенна, оптический диск, память компьютера или еще что-то. Задачей кодирования источника является создание кодера источника, который производит компактное (укороченное) описание исходного сигнала, который необходимо передать адресату. Источником сигналов может служить текстовый файл, цифровое изображение, оцифрованная музыка или телевизионная передача. Это сжатое описание сигналов источника может быть неточным, тогда следует говорить о расхождении между восстановленным после приема и декодирования сигналом и его оригиналом. Это обычно происходит при преобразовании (квантовании) аналогового сигнала в цифровую форму.

Прямая теорема:

Если скорость передачи сообщений меньше пропускной способности канала связи, то существуют коды и методы декодирования такие, что средняя и максимальная вероятности ошибки декодирования стремятся к нулю, когда длина блока стремится к бесконечности
иными словами: Для канала с помехами всегда можно найти такую систему кодирования, при которой сообщения будут переданы со сколь угодно большой степенью верности, если только производительность источника не превышает пропускной способности канала.

 

Обратная теорема:

Если скорость передачи больше пропускной способности, то есть, то не существует таких способов передачи, при которых вероятность ошибки стремится к нулю при увеличении длины передаваемого блока.

Для аддитивного белого гауссова шума Шеннон получил следующее выражение:
, где
C — пропускная способность канала, бит/с;
W — ширина полосы канала, Гц;
S — мощность сигнала, Вт;
N — мощность шума, Вт.


(График для наглядности, зависимость C(W,P) при N0=const; значения с потолка)
Т.к. мощность АБГШ растёт линейно с шириной полосы канала, имеем, что пропускная способность канала имеет предел Cmax=(S/N0)log(2), при бесконечно широкой частотной полосе (который растёт линейно по мощности).

, где
η — эффективность использования спектра, бит/с/Гц;
TR — скорость передачи информации, бит/с;
W — ширина полосы канала, Гц.

Тогда, , используя значение энергии бита (для сигналов со сложными сигнально кодовыми конструкциями я понимаю среднее значение энергии на бит) и , где
k — количество бит на символ, передаваемый в канал;
T — длительность символа, с;
R — скорость передачи в канале, бит/с;
Eb — энергия на передачу одного бита в канале;
N0 — спектральная плотность мощности шума, Вт/Гц;
получим или .

Предел Шеннона будет иметь вид:

Данный предел имеет смысл для каналов без кодеков (R = TR), для достижения такой эффективности принимаемое слово должно быть бесконечной длины. Для каналов с использованием кодеков помехоустойчивого кодирования под Eb следует понимать энергию на передачу одного информационного, а не канального бита (тут возможны разночтения и я готов выслушать альтернативные версии) => Eb/N0 в канале отлично от этого значения в зависимости от скорости кода (1/2, 3/4, 7/8… )

Таким образом видим, что существует предел отношения сигнал/шум в канале (Eb/N0) такой, что невозможно построить систему передачи данных, в которой можно добиться сколь угодно малой вероятности ошибки, при большем уровне шума (может существовать система с просто малой вероятностью ошибки, при предельном отношении!).

 


Дата добавления: 2021-03-18; просмотров: 113; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!