Автор: Пользователь скрыл имя, 12 Июня 2013 в 12:45, курсовая работа
С представлением, хранением и передачей информации неразрывно связан термин «кодирование» - процесс преобразования сигнала из формы, удобной для непосредственного использования информации, в форму, удобную для передачи, хранения или автоматической переработки. Этот процесс являет собой представление информации символами, знаками, взятыми из определенного алфавита по определённым правилам.
В данной работе будут кратко рассмотрены наиболее распространённые методы, применяемые для решения поставленных задач, и приведены примеры кодирования информации с использованием рассматриваемых методов.
ВВЕДЕНИЕ 3
ПОСТАНОВКА ЗАДАЧИ 5
РЕШЕНИЕ ПО РАЗДЕЛАМ 7
1. Исходные данные 7
2. Простейшие коды 8
2.1. Двоично-десятичные коды 8
2.2. Код Грея 10
3. Статическое кодирование 14
3.1. Количество информации и энтропия 14
3.2. Код Шеннона-Фано 16
3.3. Код Хаффмана 21
4. Коды, обнаруживающие ошибки 30
4.1. Код с проверкой на чётность 30
4.2. Код с проверкой на нечетность 31
4.3. Инверсный код 32
4.4. Корреляционный код 34
4.5. Код Бергера 35
4.6. Код на одно сочетание 36
4.7. Код с количеством единиц, кратным трем 38
5. Коды, обнаруживающие ошибки 39
5.1. Код Варшамова в матричном представлении 39
5.2. Код Хэмминга 44
5.3. Расширенный код Хэмминга 50
5.4. Итеративный код 52
5.5. Коды-спутники 54
5.6. Циклический код 57
5.7. Код БЧХ 62
5.8. Рекуррентный код 67
6. Канальные коды 71
6.1. Дуобинарный код 71
6.2. Квазитроичный код 72
6.3. Код Манчестер 2 73
6.4. Код 4B3T 74
7. Штриховые коды 77
ЗАКЛЮЧЕНИЕ 80
Приложение А 81
Приложение Б 83
Энтропия этого источника при кодировании его первичного ансамбля сообщений A определенным кодом рассчитывается по формуле:
где lср – средняя длина кодовой комбинации закодированного ансамбля сообщений (см. формулу (5)),
H(B) – энтропия источника вторичного ансамбля сообщений B.
Рассчитаем энтропию источника сообщений вторичного алфавита B - H(B). Для этого необходимо найти вероятность появления символов этого алфавита. Положим, что длина текста
Для данного текста, закодированного
кодом Шеннона-Фано, найдем вероятность
появления в нем двоичных символов
“0” и “1” – элементов
Таблица 3
Подсчет количества “0” и “1” в закодированном тексте (исходный текст длиной L = 10 000 символов)
Символ первичного алфавита |
Вероятность появления символа первичного алфавита |
Закодированный кодом Шеннона-Фано символ |
Количество символов в кодовой комбинации |
Количество символов в тексте | ||
0 |
1 |
0 |
1 | |||
о |
0,1067 |
000 |
3 |
0 |
3201 |
0 |
а |
0,1067 |
001 |
2 |
1 |
2134 |
1067 |
и |
0,0933 |
0100 |
3 |
1 |
2799 |
933 |
в |
0,0933 |
0101 |
2 |
2 |
1866 |
1866 |
к |
0,08 |
0110 |
2 |
2 |
1600 |
1600 |
н |
0,08 |
0111 |
1 |
3 |
800 |
2400 |
с |
0,08 |
1000 |
3 |
1 |
2400 |
800 |
е |
0,08 |
1001 |
2 |
2 |
1600 |
1600 |
л |
0,0667 |
1010 |
2 |
2 |
1334 |
1334 |
я |
0,0667 |
1011 |
1 |
3 |
667 |
2001 |
ч |
0,0533 |
1100 |
2 |
2 |
1066 |
1066 |
й |
0,0267 |
1101 |
1 |
3 |
267 |
801 |
т |
0,0267 |
1110 |
3 |
1 |
801 |
267 |
ь |
0,0133 |
111100 |
4 |
2 |
532 |
266 |
р |
0,0133 |
111101 |
5 |
1 |
665 |
133 |
г |
0,0133 |
11111 |
0 |
5 |
0 |
665 |
Количество каждого из двоичных символов в закодированном тексте |
21732 |
16799 | ||||
Длина закодированного текста |
38 531 |
Зная количество “0” и “1” в тексте, а также длину текста, подсчитаем вероятность появления двоичных символов в закодированном тексте:
По формуле (3) рассчитаем энтропию источника вторичного ансамбля сообщений B - H(B) (количество символов алфавита n = 2):
Теперь по формуле (6) найдем энтропию источника при кодировании его первичного ансамбля сообщений A кодом Шеннона-Фано:
Энтропия источника первичного ансамбля сообщений A:
Следовательно:
Вывод: из двух пунктов доказательства следует, что код Шеннона-Фано является оптимальным.
Все кодируемые сообщения
источника располагаются в
Для образования кодовых сообщений необходимо построить кодовое дерево. Отмечают вершину кодового дерева и приписывают ей вероятность 1,000. Из вершины проводят две ветви, оканчивающиеся узлами. Узлам приписывают вероятности, которые при суммировании дают единицу. Вертикальной ветви (с меньшей вероятностью) приписывают символ "0", а горизонтальной (с большей) – символ "1". Если вероятность при некотором узле равна вероятности какого-либо сообщения, узлу приписывают символ этого сообщения и переходят к анализу следующего узла. Если вероятность при некотором узле образована суммированием двух меньших вероятностей, то из него опять проводят две разнонаправленные ветви, оканчивающиеся узлами. Узлам приписывают вероятности с учетом принятой ориентации. Ветвям приписывают символы: вертикальной – "0", горизонтальной – "1". Процесс построения кодового дерева продолжается, пока все символы сообщений источника не будут приписаны корневым узлам.
Кодовые комбинации, соответствующие сообщениям источника, записываются следующим образом. На полученном кодовом дереве необходимо проследить по ветвям путь от корневого узла (узла с вероятностью 1,000), до узла, соответствующего заданному сообщению, записывая последовательно слева направо символы 1 или 0, соответствующие прослеживаемым ветвям. Полученные кодовые комбинации и представляют собой оптимальный код Хаффмана.
Закодируем полученный в п. 3.3.1. алфавит кодом Шеннона-Фано. Для чего сначала составим таблицу вспомогательных групп.
Таблица 4
Иллюстрация получения
вспомогательных групп для
Буквы |
pi |
Вспомогательные группы | |||||||||||||||||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | |||||||||||||||||
о |
0,1067 |
0,1067 |
0,1067 |
0,1067 |
0,1067 |
0,12 |
0,147 |
0,147 |
0,173 |
0,187 |
0,213 |
0,267 |
0,333 |
0,4 |
0,6 |
1 | |||||||||||||||
а |
0,107 |
0,107 |
0,107 |
0,107 |
0,107 |
0,107 |
0,12 |
0,16 |
0,16 |
0,173 |
0,187 |
0,213 |
0,267 |
0,333 |
0,4 |
||||||||||||||||
и |
0,093 |
0,093 |
0,093 |
0,093 |
0,093 |
0,107 |
0,107 |
0,12 |
0,147 |
0,16 |
0,173 |
0,187 |
0,213 |
0,267 |
|||||||||||||||||
в |
0,093 |
0,093 |
0,093 |
0,093 |
0,093 |
0,093 |
0,107 |
0,107 |
0,12 |
0,147 |
0,16 |
0,173 |
0,187 |
||||||||||||||||||
к |
0,08 |
0,08 |
0,08 |
0,08 |
0,093 |
0,0933 |
0,0933 |
0,1067 |
0,1067 |
0,1201 |
0,147 |
0,16 |
|||||||||||||||||||
н |
0,08 |
0,08 |
0,08 |
0,08 |
0,08 |
0,093 |
0,093 |
0,093 |
0,107 |
0,107 |
0,12 |
||||||||||||||||||||
с |
0,08 |
0,08 |
0,08 |
0,08 |
0,08 |
0,08 |
0,093 |
0,093 |
0,093 |
0,107 |
|||||||||||||||||||||
е |
0,08 |
0,08 |
0,08 |
0,08 |
0,08 |
0,08 |
0,08 |
0,093 |
0,093 |
||||||||||||||||||||||
л |
0,067 |
0,067 |
0,067 |
0,067 |
0,08 |
0,08 |
0,08 |
0,08 |
|||||||||||||||||||||||
я |
0,067 |
0,067 |
0,067 |
0,067 |
0,067 |
0,08 |
0,08 |
||||||||||||||||||||||||
ч |
0,0533 |
0,0533 |
0,0533 |
0,053 |
0,0667 |
0,0667 |
|||||||||||||||||||||||||
й |
0,0267 |
0,0267 |
0,04 |
0,0533 |
0,0534 |
||||||||||||||||||||||||||
т |
0,027 |
0,027 |
0,027 |
0,04 |
|||||||||||||||||||||||||||
Буквы |
pi |
Вспомогательные группы | |||||||||||||||||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | |||||||||||||||||
ь |
0,0133 |
0,027 |
0,0267 |
||||||||||||||||||||||||||||
р |
0,013 |
0,013 |
|||||||||||||||||||||||||||||
г |
0,013 |
По рассчитанной таблице вспомогательных групп построим дерево переходов, наглядно демонстрирующее отображение символов в кодовую информацию.
Рис. 1. Кодовое дерево для кодирования нашего алфавита кодом Хаффмана
С помощью построенного дерева переходов выпишем кодовые комбинации для элементов нашего алфавита.
Таблица 5
Буквы нашего алфавита, закодированные кодом Хаффмана
Буква |
Кодовая комбинация |
о |
010 |
а |
011 |
и |
001 |
в |
000 |
к |
1011 |
н |
1100 |
с |
1110 |
е |
1101 |
л |
1001 |
я |
1010 |
ч |
11111 |
й |
10000 |
т |
10001 |
ь |
111100 |
р |
1111010 |
г |
1111011 |
Кодирование ФИО
Закодируем в данном алфавите мое ФИО кодом Хаффмана.
Исходный текст:
ОИВ;
кодовые комбинации для букв:
О – 010,
И – 001;
В - 000
тогда закодированное ФИО:
010001000.
Кодовая комбинация ФИО, закодированная кодом Хаффмана, имеет длину 9 бит, а закодированная цифровым кодом – длину 24 бита, то есть ФИО в коде Хаффмана в 2,5 раз короче ФИО в цифровом коде.
Докажем, что код Хаффмана является оптимальным кодом. Доказывать будем аналогично доказательству оптимальности кода Шеннона-Фано, поэтому опустим теоретические обоснования и, просто выполнив необходимые расчеты, сделаем вывод.
По формуле (5) найдем среднюю длину кодовой комбинации для нашего алфавита (количество символов алфавита n = 16), закодированного кодом Хаффмана, и получим следующее значение:
то есть в среднем на один символ нашего алфавита приходится 3,8131 двоичных символов.
Длина кодовой комбинации равномерного двоичного кода, которым можно закодировать наш алфавит, будет равняться 4, поскольку таким кодом можно закодировать алфавит, максимальное количество символов которого будет равняться 24 = 16.
Это означает, что необходимая длина кодовой комбинации равномерного двоичного кода больше средней длины кодовой комбинации Хаффмана.
Рассчитаем энтропию источника сообщений вторичного алфавита B - H(B). Для этого необходимо найти вероятность появления символов этого алфавита. Положим, что длина текста
Таблица 6
Подсчет количества “0” и “1” в закодированном тексте (исходный текст длиной L = 10 000 символов)
Символ первичного алфавита |
Вероятность появления символа первичного алфавита |
Закодированный кодом Хаффмена символ |
Количество символов в кодовой комбинации |
Количество символов в тексте | ||
0 |
1 |
0 |
1 | |||
о |
0,1067 |
010 |
2 |
1 |
2134 |
1067 |
а |
0,1067 |
011 |
1 |
2 |
1067 |
2134 |
и |
0,0933 |
001 |
2 |
1 |
1866 |
933 |
в |
0,0933 |
000 |
3 |
0 |
2799 |
0 |
к |
0,08 |
1011 |
1 |
3 |
800 |
2400 |
н |
0,08 |
1100 |
2 |
2 |
1600 |
1600 |
с |
0,08 |
1110 |
1 |
3 |
800 |
2400 |
е |
0,08 |
1101 |
1 |
3 |
800 |
2400 |
л |
0,0667 |
1001 |
2 |
2 |
1334 |
1334 |
я |
0,0667 |
1010 |
2 |
2 |
1334 |
1334 |
ч |
0,0533 |
11111 |
0 |
5 |
0 |
2665 |
й |
0,0267 |
10000 |
4 |
1 |
1068 |
267 |
т |
0,0267 |
10001 |
3 |
2 |
801 |
534 |
ь |
0,0133 |
111100 |
2 |
4 |
266 |
532 |
р |
0,0133 |
1111010 |
2 |
5 |
266 |
665 |
г |
0,0133 |
1111011 |
1 |
6 |
133 |
798 |
Количество каждого из двоичных символов в закодированном тексте |
21732 |
16799 | ||||
Длина закодированного текста |
38131 |
Информация о работе Курсовая работа по «Основам сбора, передачи и обработки информации»