Неравномерное кодирование. Средняя длина кодирования

Нажав на кнопку "Скачать архив", вы скачаете нужный вам файл совершенно бесплатно.
Перед скачиванием данного файла вспомните о тех хороших рефератах, контрольных, курсовых, дипломных работах, статьях и других документах, которые лежат невостребованными в вашем компьютере. Это ваш труд, он должен участвовать в развитии общества и приносить пользу людям. Найдите эти работы и отправьте в базу знаний.
Мы и все студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будем вам очень благодарны.

Чтобы скачать архив с документом, в поле, расположенное ниже, впишите пятизначное число и нажмите кнопку "Скачать архив"


## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ##
####### ## ## ## ## ######## ########
## ## ## ######### ## ## ## ##
## ## ## ## ## ## ## ## ##
####### ##### ## ####### #######

Введите число, изображенное выше:

Подобные документы

    Общее число неповторяющихся сообщений. Вычисление скорости передачи информации и пропускной способности каналов связи. Определение избыточности сообщений и оптимальное кодирование. Процедура построения оптимального кода по методике Шеннона-Фано.

    курсовая работа , добавлен 17.04.2009

    Описание и особенности некоторых алгоритмов архивации. Построение кода Хаффмана. Динамический алгоритм построения кода Хаффмана. Обратное восстановление текста. Способы двухступенчатого кодирования информации. Практическая реализация алгоритма LZ77.

    курсовая работа , добавлен 24.12.2012

    Оценка вычислительной сложности программы. Реализация алгоритма кодирования информации Хаффмана. Кодировка теста двоичным кодом и в дереве Хаффмана. Бинарный код символов. Символ и частота его появления в тексте. Вычисление трудоемкости алгоритма.

    контрольная работа , добавлен 16.12.2012

    Определение среднего количества информации. Зависимость между символами матрицы условных вероятностей. Кодирование методом Шеннона–Фано. Пропускная способность канала связи. Эффективность кодирования сообщений методом Д. Хаффмана, характеристика кода.

    контрольная работа , добавлен 04.05.2015

    Определение понятий кода, кодирования и декодирования, виды, правила и задачи кодирования. Применение теорем Шеннона в теории связи. Классификация, параметры и построение помехоустойчивых кодов. Методы передачи кодов. Пример построения кода Шеннона.

    курсовая работа , добавлен 25.02.2009

    Анализ эффективности способов кодирования. Средний размер одного разряда и средняя длина кодового слова. Кодирование по методу Хаффмена. Кодирование информации по методу Шенона-Фано. Построение кодового дерево для различных методов кодирования.

    контрольная работа , добавлен 15.10.2013

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

    курсовая работа , добавлен 28.11.2014


Пример 16. Закодировать сообщения источника, при­веденные в табл 7, двоичным кодом Хафмана. Оценить эффектив­ность полученного кода.

Решение. В соответствии с алгоритмом построения ко­да Хафмана делаем последовательно следующие шаги:

1) располагаем сообщения источника в порядке убывания ве­роятностей;

2) образуем вспомогательный алфавит, объединяя наиболее маловероятные буквы u 1 и u 4 (m 0 =2), тогда вероят­ность новой буквы равна p 1 =р (u 1)+р (u 4)=0,1+0,05=0,15. Оставляем эту букву на месте, так как p 1 =р (u 6);

3) объединяем первую вспомогательную букву и букву u 6 , тогда вероятность второй вспомогательной буквы равна р 2 =р 1 +р (u 6)=0,15+0,15=0,3; перемещаем ее вверх в соответствии с этой вероятностью;

4) объединение продолжаем до тех пор, пока в ансамбле не останется единственное сообщение с вероятностью единица.

Построение кода Хафмана приведено на рис. 4.

Сообщения источника являются теперь концевыми узлами ко­дового дерева. Приписав концевым узлам значения символов 1 и 0, записываем кодовые обозначения, пользуясь следующим пра­вилом: чтобы получить кодовое слово, соответствующее сооб­щению u 4 , проследим переход u 4 в группировку с наиболь­шей вероятностью, кодовые символы записываем справа на­лево (от младшего разряда к старшему), получим 1100.

Для сообщения u 1 – 1101 и т.д. (см. рис. 4).

Оценим эффективность полученного кода.

Энтропия источника сообщений:

на одну букву на выходе источника.

Средняя длина кодового слова (формула (4.14) )

Для оценки эффективности кода используем коэффициент эффективности

Для оптимального двоичного кода и .

Полученный нами код имеет избыточность R =0,0109, т.е. код близок к оптимальному.

Пример 17 . Сообщение источника X составляется из статистически независимых букв, извлекаемых из алфавита А, В, С с вероятностями 0,7; 0,2; 0,1. Произвести двоичное кодирование по методу Шенно­на-Фано отдельных букв и двухбуквенных блоков. Сравнить коды по их эффективности.

Решение. Производим побуквенное кодирование ме­тодом Шеннона-Фано.

1) Располагаем буквы алфавита источника в порядке убыва­ния вероятностей.

2) Делим алфавит источника на две (m =2) примерно рав­новероятные группы. Всем сообщениям верхней группы (буква А) приписываем в качестве первого кодового симво­ла 1, всем сообщениям нижней группы приписываем сим­вол 0.

3) Производим второе разбиение на две группы (буквы В и С) и снова букве в верхней группе (В) приписываем сим­вол 1, а в нижней (С) в качестве второго символа кодового слова приписываем 0. Так как в каждой группе оказалось по одной букве, кодирование заканчиваем. Результат приведен в табл. 8.

Оценим эффективность полученного кода. Энтропия источника

Средняя длина кодового слова

Видим, что L >H (X ), и коэффициент эффективности

А избыточность R 1 =0,1102.

Покажем, что кодирование блоками по 2 буквы (k =2) увеличивает эффективность кода. Строим вспомогательный алфавит из N =3 2 блоков. Вероятности блоков находим по формуле (1.8) , считая буквы исходного алфавита независимыми. Располагаем блоки в порядке убывания вероятностей и осуществляем кодирование методом Шеннона-Фано. Все полученные двухбуквенные блоки, вероятности их и соответствующие кодовые обозначения сведены в табл. 9.

При блоковом кодировании средняя длина кодового слова на одну букву

При этом коэффициент эффективности

Избыточность при двухбуквенном кодировании R 2 =0,0045.

Получили γ 2 > γ 1 , R 2 <<R 1 , что и требовалось показать.

Пример 18 . Способ кодирования задан кодовой таблицей

a) составить матрицу расстояний

б) найти кодовое расстояние;

в) определить кратности обнаруживаемых и исправляемых ошибок;

г) определить избыточность кода, полагая буквы источника равновероятными.

Решение . а) Матрицу расстояний записываем в виде таблицы (табл. 10).

б) По табл. 10 находим кодовое расстояние

в) Кратность обнаруживаемых ошибок определяется по формуле (3.5) , откуда q о ≤3.

Кратность исправляемых ошибок находим по формуле (3.6) q и ≤1,5.

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

г) Избыточность кода находим из следующих соображе­ний. Для передачи равновероятных сигналов a 1 , а 2 , а 3 , а 4 достаточно переда­вать кодовые слова 00, 10, 01 и 11 соответственно. Такой код не имеет избыточности, но не позволяет обнаруживать и, тем более, исправлять ошибки. Для обнаружения и исправления ошибок введены пять избыточных символов, т.е. количествен­но избыточность равна .

Пример 19 . Линейный блочный (5,2)-код задан произ­водящей матрицей G в систематической (канонической) форме

Пусть принят вектор b =00110 и известно, что возможны только одиночные ошибки.

Произвести декодирование следующими методами:

а) по минимуму расстояния;

б) вычислением синдрома.

Решение. Если производящая матрица записана в ка­ноническом виде, это значит, что она состоит из двух блоков: диагональной матрицы размера k k , состоящей из единиц, и прямоугольной матрицы размера r k . В этом случае пер­вые k символов в любом кодовом слове являются информаци­онными.

Проверочная матрица Н также может быть записана в каноническом виде и состоит из двух блоков. Первый блок есть прямоугольная матрица размера k r , полученная транс­понированием второго блока матрицы G . В качестве второго блока матрицы Н записывают диагональную матрицу разме­ра r r , состоящую из единиц.

Для заданного кода получаем

.

Убедимся, что полученная таким образом матрица Н удов­летворяет соотношению (3.18) . Действительно,

т.е. все 6 элементов матрицы GH T равны нулю.

Построим кодовую таблицу, воспользовавшись правилом образования кодовых слов по формуле (3.21) :

a 1 =00000, а 2 =10110, а 3 =01011, а 4 = 11101=a 2 +a 3 .

Всего кодовая таблица содержит 2 k = 4 вектора.

Из кодовой таблицы определяем величину кодового рас­стояния .

Следовательно, рассматриваемый код обнаруживает одно­кратные и двукратные ошибки и исправляет однократные.

Декодируем принятый вектор b = 00110.

а) Метод декодирования по минимуму расстояния заклю­чается в том, что, вычислив расстояния вектора b относитель­но всех векторов а i кодовой таблицы, отождествляем приня­тый вектор с тем, расстояние до которого минимально. Расстояния d ib приведены в табл. 11.

По величине d ib min =1 решаем, что передавался вектор а 2 =10110, следовательно, ошибка в первом символе кодового слова, а информационная последовательность имеет вид х = 10.

б) Метод декодирования с помощью вычисления синдрома включает следующие операции:

1) По формуле (3.17) заранее устанавливаем однознач­ную связь между векторами однократных ошибок е и соот­ветствующими им синдромами. Все возможные векторы приведены в табл. 12.

2) Вычисляем синдром для принятого слова b по формуле (3.16) с =bH T :

c 1 =(00110)(10100)=1, с 2 =(00110)(11010)=1,

с 3 =(00110)(01001)=0,

т.е. вектор с = 110. Синдром не равен нулю, следовательно, есть ошибка.

Вектору с = 110 в табл. 12 соответствует век­тор ошибки в первом символе е =10000. Декодируем, сум­мируя принятый вектор с вектором ошибки

Итак, получили тот же результат: передавался вектор a 2 =10110, соответствующий информационной последователь­ности х =10.

Пример 20. Для кода, заданного в примере 19, со­ставить схему кодирующего устройства.

Решение. Обозначим буквами а 1 ,...,а 5 символы на выходе кодера, причем а 1 и а 2 есть информационные символы, поступающие на его вход, а символы а 3 , а 4 и а 5 образуются в кодере.

Из соотношения (3.22) получаем

Один из вариантов схемы кодера, определяемой этими соот­ношениями, показан на рис. 5.

Кодирующее устройство работает следующим образом. В течение первых двух шагов двухразрядный регистр сдвига за­полняется информационными символами а 1 и а 2 , а в течение следующих трех тактов его состояние сохраняется неизменным. Одновременно с заполнением регистра начинается переклю­чение мультиплексора (переключателя) MUX. Таким образом формируются 5 симво­лов кодового слова, удовлетворяющих требуемым соотноше­ниям.

Пример 21. Построить код Хэмминга, имеющий па­раметры: d код =3, r =3.

Решение. Построение кода начинаем с проверочной матрицы. В качестве семи столбцов проверочной матрицы Н выбираем всевозможные 3-разрядные двоичные числа, исклю­чая число нуль. Проверочная матрица имеет вид

Чтобы определить места проверочных и информационных символов, матрицу Н представляем в каноническом виде

Где I – единичная матрица.

Для этого достаточно в матрице Н выбрать столбцы, со­держащие по одной единице, и перенести их в правую часть. Тогда получим

Из формулы (4.3.5) получаем следующие соотношения для символов a 1 , ..., а 7 кодового слова:

Пользуясь этими соотношениями, составляем кодовую таблицу

Пример 22 . Для кода Хэмминга, определяемого проверочной матрицей H , построенного в при­мере 21, декодировать принятый вектор 1011001.

Решение. Для принятого вектора b =1011001 по фор­муле (3.16) вычисляем синдром

Синдром с ≠0, т.е. имеет место ошибка. В случае одиноч­ной ошибки (и только лишь) вычисленное значение синдрома всегда совпадает с одним из столбцов матрицы Н , причем номер столбца указыва­ет номер искаженного символа. Видим, что ошибка произошла в первом символе и передавался вектор

Пример 23 . Производится кодирование линейным блочным кодом (15,15-r ). Найти минимальное количество проверочных символов r , при котором код был бы способен исправлять любые однократные, двукратные и трехкратные ошибки.

Таким образом, для исправления всех упомянутых ошибок необходимо, чтобы передаваемые комбинации содержали не менее 10 проверочных символов, т.е. k =5.

Пример 24 . Для кодирования применяется (15,5)-код БЧХ с кодовым расстоянием d код =7, способный исправить все ошибки до трехкратных включительно.

Битовая вероятность ошибки в канале передачи p =10 -4 , ошибки независимы. Определить вероятность ошибки при декодировании кодовой комбинации и битовую вероятность ошибки на выходе декодера.

Решение. Вероятность ошибки при декодировании кодовой комбинации определим по формуле (3.59)

Битовую вероятность ошибки на выходе декодера определим по формуле (3.60) то есть, одна ошибка приходится в среднем на бит.

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

Пример 1.3.1 Код представленный ниже (M =4) не является однозначно декодируемым:

Действительно, если на выходе кодера появится комбинация 00111111, она может быть прочитана как x 1 , x 2 , x 3 , x 4 , или x 1 , x 2 , x 4 , x 3 , или x 1 , x 1 , x 4 , x 4 , или x 1 , x 1 , x 3 , x 3 , x 3 .

Пример 1.3.2 В отличие от предыдущего, код, представленный ниже (M =4) является префиксным, и, следовательно, однозначно декодируемым:

Так, если последовательность на выходе кодера имеет вид 0011010111110, ее можно декодировать единственным образом: x 1 , x 1 , x 3 , x 2 , x 4 , x 3 .

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

Теорема 1.3.1 (Неравенство Крафта). Код, содержащий M кодовых слов, может быть префиксным тогда и только тогда, когда длины его кодовых слов n 1 , n 2 , …, n M подчиняются неравенству

Средняя длина неравномерного кода определяется равенством

Теорема 1.3.2 Средняя длина лучших префиксных кодов лежит в границах

Код Шеннона-Фано

На первом шаге рассматриваемого алгоритма ансамбль источника разбивается на два подмножества, совокупные вероятности которых максимально близки друг к другу, т.е. к 1/2. Всем сообщениям первого из подмножеств присваивается первый символ кодового слова 0, а второго –первый символ 1. На втором шаге каждое из подмножеств вновь разбивается на два с максимально близкими совокупными вероятностями и кодовые слова первого из полученных подмножеств получают в качестве второго символа 0, а второго – 1 и т. д. Как только сообщение оказывается единственным в подмножестве, его кодирование заверено. Процедура повторяется до исчерпания всех сообщений ансамбля.

Нетрудно показать, что средняя длина кода Шеннона-Фано удовлетворяет правому неравенству Теоремы 1.3.2:

Пример 1.3.3 Закодируем дискретный источник M= 8 сообщений, имеющих вероятности, перечисленные в таблице.

X p (x )
x 1 0.40
x 2 0.20
x 3 0.15
x 4 0.10
x 5 0.05
x 6 0.04
x 7 0.03
x 8 0.03

В данном случае logM =3, энтропия источника H (X )»2.44 бит, асредняя длина кодового слова:

Код Хаффмена

Этот код оптимален в том смысле, что ни один префиксный код не может обладать меньшей средней длиной слова. На первом шаге кодирования по Хаффмену два наименее вероятных сообщения объединяются в одно суммарное, вероятность которого равна сумме вероятностей исходных. При этом одному из исходных сообщений присваивается кодовый символ 0, а другому – 1. На втором шаге повторяется то же самое с новым ансамблем из M -1 сообщений и вновь два наименее вероятных сообщения объединяются в одно с присвоением символа 0 одному из них и 1 – другому. Процедура повторяется M -1 раз, т. е. вплоть до шага, когда одному из двух оставшихся сообщений присваивается символ 0, а другому - 1. В результате получается кодовое дерево , чтением которого справа налево формируются кодовые слова для всех сообщений кодируемого ансамбля.

Удобнее, приступая к процедуре кодирования, записать все сообщения в порядке убывания их вероятностей. Следует также отметить, что, в противоположность алгоритму Шеннона-Фано, в ходе кодирования по Хаффмену любое кодовое слово появляется в обратном порядке.

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

Пример 1.3.4 Закодируем по Хаффмену ансамбль из Примера 1.3.3:

Средняя длина:

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

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

Различают два типа сигналов (а значит и два типа сообщений ): непрерывные и дискретные.

Для обеспечения простоты и надежности распознавания сигналов дискретного вида (знаков ), их число целесообразно свести до минимума. Как правило, прибегают к операции представления исходных знаков в другом алфавите с меньшим числом знаков, называемых символами . При обозначении этой операции используется тот же термин – «кодирование ».

Собственная информация

Количество информации, которое несет в себе буква x i алфавита, назовемсобственной информацией , содержащаяся вx i и обозначим
.

.

Формула Шеннона

Усредним собственную информацию, т.е. рассчитаем, какое среднее количество информации несет в себе один символ алфавита
:
.

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

- формула Шеннона .

Очевидно, что среднее 1 количество информации в сообщении длины n вычисляется по формуле:

.

Замечание. Количество информации приписывается самому сообщению.

Замечание. Энтропия является характеристикой источника сообщений (алфавита ).

Формула Хартли

При равновероятности знаков алфавита
, из формулы Шеннона получаем: .

- формула Хартли .

Единицы измерения информации

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

Рассмотрим алфавит равновероятных символов, энтропия которого равна 1:
. Так как отсюда следует
, то ясно, что 1 бит - это количество информации, которое содержится в двоичном сообщении (алфавит {0,1}) длины 1.

В дальнейшем в выражениях для I и H всегда будем использовать логарифмы с основанием 2.

Свойства энтропии

1. Энтропия Н - величина

- неотрицательная (Н  0),

- ограниченная , Эти свойства следуют из того, что такими же качествами обладают все ее слагаемые
.

2. Энтропия равна нулю, если вероятность одного из символов равна 1 . В этом случае говорят о полностью детерминированном источнике и об отсутствии неопределенности в нем, так как наблюдатель знает о сообщении источника до момента его наблюдения.

3. Можно также показать, что энтропия максимальна, если все знаки алфавита равновероятны , т.е. Н max = log m . Таким образом, для поиска максимально возможного значения энтропии (для фиксированного числа символов) используется формула Хартли.

4. Особый интерес представляют бинарные сообщения , использующие бинарный алфавит {0,1}. Так как при m = 2 вероятности знаков алфавита p 1  1 и p 2  1, то можно положить p 1 = p и p 2 = 1-p . Тогда энтропия определяется соотношением