
- •Оглавление
- •1 Теоретическая справка 4
- •2 Ход работы 7
- •Введение
- •1 Теоретическая справка
- •1.1 Принцип кодов Хемминга
- •1.2 Маркировка кодов Хемминга
- •1.3 Алгоритмы кодирования и декодирования
- •2 Ход работы
- •2.1 Выбор среды для реализации программной модели
- •2.2 Описание используемых функций и методов
- •Заключение
- •Ответы на контрольные вопросы
- •Приложение а
Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ. КОД ХЕММИНГА
Отчет по практической работе №1
по дисциплине «Теория электрической связи»
-
____________
Руководитель
Преподаватель каф. КИБЭВС
В.С. Аврамчук
____________
Оглавление
Y
Введение 3
1 Теоретическая справка 4
1.1 Принцип кодов Хемминга 4
1.2 Маркировка кодов Хемминга 4
1.3 Алгоритмы кодирования и декодирования 5
2 Ход работы 7
2.1 Выбор среды для реализации программной модели 7
2.2 Описание используемых функций и методов 7
Заключение 12
Ответы на контрольные вопросы 13
Приложение А 17
Введение
Цель работы: изучение назначения и принципов помехоустойчивого кодирования, ознакомление с некоторыми группами помехоустойчивых кодов, а также моделирование простейшей ситуации передачи данных по ненадежному каналу связи с использованием кода Хемминга.
Задание:
1. Разработать программу со следующими функциями:
1.1. Преобразование произвольной (вводимой пользователем) текстовой строки в последовательность 8-битовых блоков.
1.2. Шифрование исходной последовательности кодом Хемминга.
1.3. Внесение единичной ошибки в один из битов каждого блока «при передаче» (с вероятностью 50%) или «передача» блока без внесения ошибок (с вероятностью 50%)
1.4. Проверка на «принимающей» стороне наличия ошибок в информационных разрядах и их исправление.
1.5. Дешифрование «принятой» последовательности
1.6. Преобразование битовой последовательности в текстовую строку.
1.7. Вывод на экран данных, относящихся к произвольному (выбирается пользователем) элементу строки, на каждом этапе преобразования, в т.ч. двоичного представления символа, избыточного кода, кода после «передачи», кода после исправления ошибок.
2. Реализовать ручную проверку работоспособности программы (на примере передачи двух первых букв фамилии исполнителя)
1 Теоретическая справка
1.1 Принцип кодов Хемминга
В основе кодов Хемминга лежит принцип проверки четности количества единичных битов в информационных разрядах кодового блока. Идею проверки четности можно проиллюстрировать на примере простейшего кода с проверкой четности. Процесс кодирования сводится к добавлению единственного контрольного бита к безызбыточному коду. Контрольный бит является 1, если количество 1 в исходной кодовой комбинации нечетное, иначе в контрольный разряд вписывается 0. Таким образом, правило формирования проверочного символа сводится к следующему:
|
(1.1) |
|
где |
𝑘 – количество информационных разрядов в блоке; |
|
|
|
|
|
|
|
Добавление дополнительного разряда увеличивает общее число комбинаций в два раза, а условие четности разделяет все комбинации на разрешенные и неразрешенные. Следовательно, код с проверкой четности имеет минимальное кодовое расстояние равное двум и позволяет обнаруживать единичные ошибки, так как они нарушают условие четности.
1.2 Маркировка кодов Хемминга
В
настоящее время разработаны и используются
различные коды Хемминга, отличающиеся
числом информационных и проверочных
символов. Обозначение кодов осуществляется
па рой чисел (𝑛,𝑘),
где 𝑛
– общее количество разрядов в блоке,
𝑘
– число ин формационных разрядов.
Классическими кодами Хемминга называются
коды, для которых выполняются соотношения
𝑛
=
− 1 и 𝑘
=
− 1 − 𝑟,
где 𝑟
- количество контрольных разрядов.
Примерами классических кодов являются
коды (7,4), (15,11), (31,26) [3]. При других значениях
числа информационных разрядов получаются,
так называемые усеченные коды Хемминга.
В частности, используется корректирующий
код (9,5), являющийся усеченным от
классического (15,11).