- •Часть 1. Кодирование дискретного сигнала 4
- •Часть 2. Измерение дискретного сигнала 23
- •Часть 3. Формы представления чисел 25
- •Часть 4. Правила оформления курсовой работы 29
- •Задание 2. Коды, учитывающие частоту символов
- •Указания по выполнению задания 2
- •Задание 3. Коды Грея
- •Указания к выполнению задания 3
- •1.2. Криптографическое кодирование дискретного сигнала Задание 4. Метод простой подстановки
- •Указания по выполнению задания 4
- •Задание 5. Метод Виженера
- •Указания по выполнению задания 5
- •1.3. Эффективное кодирование дискретного сигнала Задание 6. Метод Шеннона - Фано
- •Указания по выполнению задания 6
- •Задание 7. Метод Хаффмена
- •Указания по выполнению задания 7
- •1.4. Помехозащитное кодирование дискретного сигнала Задание 8. Построение кода для обнаружения ошибок
- •Указания по выполнению задания 8
- •Задание 9. Построение кода для исправления ошибок
- •Указания по выполнению задания 9
- •Часть 2. Измерение дискретного сигнала Задание 10. Анализ эффективности кодирования
- •Указания по выполнению задания 10
- •Часть 3. Формы представления чисел Задание 11. Сложение в обратных кодах
- •Указания по выполнению задания 11
- •Нормализация
- •Размещение в разрядных сетках
- •Часть 4. Правила оформления курсовой работы
- •Курсовая работа по дисциплине «Информационные технологии»
Задание 2. Коды, учитывающие частоту символов
Построить для алфавита А, полученного в задании 1, двоичные коды, учитывающие частоту символов. Расчет частоты выполнить по исходному тексту. Закодировать полученным кодом исходный текст.
Указания по выполнению задания 2
Для построения требуемых кодов выполним следующую последовательность действий:
для расчета частот символов из алфавита А (графа 1 табл. 2) определим число появлений mi каждого i-го символа алфавита А в исходном тексте (графа 2 табл. 2),
Таблица 2
Символ алфавита А |
Число появлений mi |
1 |
2 |
а |
2 |
в |
4 |
е |
2 |
и |
3 |
л |
1 |
н |
1 |
о |
1 |
п |
1 |
р |
1 |
с |
1 |
т |
1 |
ч |
1 |
ь |
1 |
для определения размера кода вновь используем формулу l = [logh N] при N = 13, h = 2. Получаем:
l = [logh 13] = [3,7] = 4, (7)
используя комбинаторный подход к измерению информации, определим, сколько кодовых комбинаций можно получить из 4 двоичных разрядов, заполняя их нулями и единицами теми способами, которые показаны в графе 2 табл. 3. Чтобы решить эту задачу, установим, прежде всего, способ комбинирования символов двоичного алфавита (h = 2). Анализ кодов из табл. 1 показывает, что это перестановки с повторениями, для которых верно соотношение:
(ri)! П(ri!)
Пп(h)
= , (8)
где Пп(h) – число перестановок из h элементов с повторениями ri,
i – символ из множества символов, используемых для кодирования (у нас это множество {0,1}).
Теперь рассчитаем число кодовых комбинаций для каждого способа заполнения кодовых разрядов (графа 4 табл. 3).
Таблица 3
№ п/п |
Способы заполнения кодовых разрядов |
Обозначение в формуле (8) |
Число кодовых комбинаций |
1 |
2 |
3 |
4 |
1 |
1 |
r0 = 4, r1 = 0 |
(4+0)! 4! 4!*0! 4! |
|
4 |
r0 = 3, r1 = 1 |
(1+3)! 4! 2*3*4 1!*3! 2*3 6 |
3 |
6 |
r0 = 2, r1 = 2 |
(2+2)! 4! 2*3*4 2!*2! 2*2 4 |
4 |
3 единицы, 1 ноль |
r0 = 1, r1 = 3 |
аналогично второму способу, т.е. 4 |
5 |
все единицы |
r0 = 0, r1 = 4 |
аналогично первому способу, т.е. 1 |
Суммирование полученного числа кодовых комбинаций (1+4+6+4+1=16) показывает, что для кодирования символов исходного алфавита А с заданной мощностью N достаточно принятых способов заполнения разрядов кода, поскольку 16>(N=13),
упорядочим список символов алфавита А по убыванию частоты. Получим табл. 4 (графы 1,2),
назначим символам коды постоянной длины, число единиц в которых тем больше, чем меньше частота символа (графа 4 табл. 4).
Таблица 4
Символ алфавита А |
Число появлений mi |
Способы заполнения кодовых разрядов |
Код |
Число кодовых комбинаций2 |
1 |
2 |
3 |
4 |
5 |
в |
4 |
все нули |
0000 |
1 |
|
3 |
1 единица, 3 нуля |
0001 |
4 |
а |
2 |
1 единица, 3 нуля |
0010 |
|
е |
2 |
1 единица, 3 нуля |
0100 |
|
л |
1 |
1 единица, 3 нуля |
1000 |
|
|
1 |
2 единицы, 2 нуля |
1010 |
6 |
о |
1 |
2 единицы, 2 нуля |
1001 |
|
п |
1 |
2 единицы, 2 нуля |
0110 |
|
р |
1 |
2 единицы, 2 нуля |
0101 |
|
с |
1 |
2 единицы, 2 нуля |
0011 |
|
т |
1 |
2 единицы, 2 нуля |
1100 |
|
|
1 |
3 единицы, 1 ноль |
1011 |
2 |
ь |
1 |
3 единицы, 1 ноль |
1101 |
Кодирование исходного текста полученным кодом дает результат (отдельно закодированы фамилия, имя и отчество):
петров 0110 0100 1100 0101 1001 0000
иван 0001 0000 0010 1010 (9)
васильевич 0000 0010 0011 0001 1000 1101 0100 0000 0001 1011

2
и
н
ч