- •Федеральное государственное бюджетное образовательное учреждение
- •1. Перевод чисел из одной системы счисления в другую
- •1.1. Правила перевода целых чисел
- •1.2. Правила перевода правильных дробей
- •0,1101 – Результирующее число.
- •1.3. Правило перевода дробных чисел
- •2. Построение прямых кодов и кодирование дискретного сигнала
- •3. Построение кодов с учетом частоты символов и кодирование дискретного сигнала
- •4. Построение кода Грея и кодирование дискретного сигнала
- •5. Криптографическое кодирование дискретного сигнала методом простой подстановки
- •6. Криптографическое кодирование дискретного сигнала методом Виженера
- •7. Построение эффективных кодов методом Шеннона-Фано и кодирование дискретного сигнала
- •8. Построение эффективных кодов методом Хаффмена и кодирование дискретного сигнала
- •9. Измерение дискретного сигнала
- •10. Сложение вещественных чисел в обратных кодах
- •Нормализация
- •Размещение в разрядных сетках
- •Выравнивание порядков
- •Сдвиг мантиссы
- •11. Сложение вещественных чисел в дополнительных кодах
6. Криптографическое кодирование дискретного сигнала методом Виженера
Задание к работе: выполнить криптографическое кодированиеисходного текста методом Виженера. Исходным алфавитом принять множество символов из задания 2. В качестве ключа кодирования использовать имя собственное.
Решение задачи
для построения кода пронумеруем символы исходного алфавита, начиная с 0. Получим таблицу соответствия (таблица 6.1),
Таблица 6.1
символы исходного алфавита |
а |
в |
е |
и |
л |
н |
о |
п |
р |
с |
т |
ч |
ь |
номера символов |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
для кодирования выполняем шаги:
выписываем исходный текст (строка 1 таблицы 6.2),
формируем номера символов исходного текста из таблицы 5.1 (строка 2 таблицы 6.2),
многократно записываем ключ под исходным текстом (строка 3 таблицы 6.2),
заполняем номера символов ключа из таблицы 5.1 (строка 4 таблицы 6.2),
складываем по модулю 13 (это мощность алфавита) номера символов (строка 5 таблицы 6.2),
заменяем полученные числа символами исходного алфавита из таблицы 6.1 (строка 6 таблицы 6.2). Таким образом, получаем строку, соответствующую исходному тексту:
тиоасеиоиовньлллнеии
Таблица 6.2
Номер строки |
Результаты выполнения кодирования | |||||||||||||||||||
1 |
п |
е |
т |
р |
о |
в |
и |
в |
а |
н |
в |
а |
с |
и |
л |
ь |
е |
в |
и |
ч |
2 |
7 |
2 |
10 |
8 |
6 |
1 |
3 |
1 |
0 |
5 |
1 |
0 |
9 |
3 |
4 |
12 |
2 |
1 |
3 |
11 |
3 |
и |
в |
а |
н |
и |
в |
а |
н |
и |
в |
а |
н |
и |
в |
а |
н |
и |
в |
а |
н |
4 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
5 |
10 |
3 |
10 |
0 |
9 |
2 |
3 |
6 |
3 |
6 |
1 |
5 |
12 |
4 |
4 |
4 |
5 |
2 |
3 |
3 |
6 |
т |
и |
о |
а |
с |
е |
и |
о |
и |
о |
в |
н |
ь |
л |
л |
л |
н |
е |
и |
и |
Получаем результат (отдельно закодирована фамилия, имя и отчество):
петров тиоасе
иван иоио
васильевич вньлллнеии
7. Построение эффективных кодов методом Шеннона-Фано и кодирование дискретного сигнала
Задание к работе: выполнить кодированиеисходного текста методом Шеннона-Фано. Относительные частоты символов алфавита, из которых состоитисходный текст, рассчитать поисходному тексту.
Решение задачи
для построения эффективного кода выполним следующие шаги:
определим размер (в символах) исходного текста (переменнаяL) – он равен 20,
определим относительные частоты fiпоявления каждого символа в исходном тексте по формуле:fi = mi/L, гдеmi– число появлений i-го символа в исходном тексте из таблицы 3.2. Имеем графу 3 таблицы 7.1:
Таблица 7.1
Символ алфавита |
Число появлений mi |
Частота символа fi |
1 |
2 |
3 |
а |
2 |
0,1 |
в |
4 |
0,2 |
е |
2 |
0,1 |
и |
3 |
0,15 |
л |
1 |
0,05 |
н |
1 |
0,05 |
о |
1 |
0,05 |
п |
1 |
0,05 |
р |
1 |
0,05 |
с |
1 |
0,05 |
т |
1 |
0,05 |
ч |
1 |
0,05 |
ь |
1 |
0,05 |
упорядочим символы алфавита по невозрастанию частот. Получим графы 1 и 2 таблицы 7.2:
выполним последовательное деление списка символов в соответствии с алгоритмом Шеннона-Фано (графа 3 таблицы 7.2) и назначим символы 0 или 1 элементам списка символов – кодируем элементы,
«соберем» символы 0 и 1 слева направо в графе 3 для каждого символа алфавита. Получим графу 4 таблицы 7.2.
Таблица 7.2
Символ алфавита |
Частота символа fi |
Этапы деления списка символов |
Результирующие коды | ||||
1 |
2 |
3 |
4 | ||||
I |
II |
III |
IV |
V | |||
в |
0,2 |
0 |
0 |
- |
00 | ||
и |
0,15 |
1 |
0 |
- |
010 | ||
а |
0,1 |
1 |
- |
011 | |||
е |
0,1 |
1 |
0 |
0 |
- |
100 | |
л |
0,05 |
1 |
0 |
- |
1010 | ||
н |
0,05 |
1 |
0 |
10110 | |||
о |
0,05 |
1 |
10111 | ||||
п |
0,05 |
1 |
0 |
0 |
- |
1100 | |
р |
0,05 |
1 |
0 |
11010 | |||
с |
0,05 |
1 |
11011 | ||||
т |
0,05 |
1 |
0 |
- |
1110 | ||
ч |
0,05 |
1 |
0 |
11110 | |||
ь |
0,05 |
1 |
11111 |
для кодирования исходного текста используем таблицу 7.2. Имеем (для простоты закодируем отдельно фамилию, имя и отчество):
петров1100 100 1110 11010 10111 00
иван010 00 011 10110
васильевич00 011 11011 010 1010 11111 100 00 010 11110