Лабораторная работа №6

advertisement
1
Лабораторная работа №6
по курсу “Теория информации и кодирования”
Тема: Исследование методов помехозащитного кодирования
Цель: Закрепить знания о процедурах кодирования популярных помехозащитных кодов и на
практике оценить их корректирующую способность
Краткие теоретические сведения
Помехозащитные коды широко применяются для обнаружения и исправления ошибок,
которые возникают при передаче сообщений в пространстве и во времени.
Области использования различных помехозащитных кодов определяются их
свойствами. В настоящей работе мы исследуем три наиболее популярных кода, имеющих
разные сферы применения: код с проверкой на четность, код Хэмминга с исправлением
однократных ошибок и циклический код, способный обнаруживать “пачки” ошибок. Полное
описание перечисленных кодов, включая соответствующий математический аппарат,
имеется в электронном конспекте лекций (темы 9-10). Здесь напомним их основные
особенности.
Код с проверкой четности при максимальной простоте позволяет выявить любые
ошибки нечетной кратности. Простейший вариант кода предполагает использование одного
контрольного бита для каждого кодового слова (“проверка четности по строке”). При
объединении нескольких кодовых слов в единый блок возникает возможность контроля
четности для всех разрядов с одинаковым номером (“проверка по столбцу”), а также
проверки одновременно “по строкам и столбцам”. В последнем случае возможно
исправление однократных ошибок.
Код Хэмминга обеспечивает автоматическое исправление однократных ошибок. При
этом любые ошибки большей кратности он может “пропустить”. Процедуры кодирования и
декодирования максимально быстры, но степень избыточности относительно велика. Код
используется в серверной оперативной памяти.
Циклический код способен выявлять пачки ошибок, благодаря чему он широко
используется для защиты данных, передаваемых по линиям связи и записываемых на
внешние носители. Этому не препятствует относительно невысокая скорость кодирования и
декодирования, связанная с последовательной обработкой разрядов кодового слова. При
кодировании больших информационных блоков удельная избыточность невысока.
Содержание работы
В работе исследуются особенности трех перечисленнях выше кодов с точки зрения:
- процедур кодирования и декодирования;
- корректирующей способности (особенностей выявления и исправления ошибок)
Исследование кода Хэмминга и циклического кода выполняется на примере простого кода
7,4 (4 информационных и 3 избыточных разряда в кодовом слове).
Для исследования используется демонстрационная программа, (исполняемый код – в
файле Superfluous.exe). Параллельно с программой предусматривается выполнение процедур
кодирования и декодирования для несложных примеров “вручную”, чтобы закрепить
понимание этих процедур.
Порядок выполнения работы
1. Выполнить исследование кода с проверкой четности по строке
а) Запустить программу correcting_code.exe и перейти в режим Код - Код с проверкой
четности. Выбрать режим “Проверка четности по строке”.
б) В окне “Источник” ввести исходные данные для кодирования в виде пар
шестнадцатиричных цифр (согласно табл.1 в соответствии с номером индивидуального
2
варианта). Нажать кнопку “Кодирование” и убедиться, что контрольные разряды во всех
строках сформированы по правилу четности.
Таблица 1.
Данные для кодирования с проверкой на четность
Вариант
Исходные данные
1
02 8a 49 72 c6 92 0d 8f
2
48 39 ac 60 b5 64 92 fe
3
83 72 49 55 cd 02 ab 9a
4
92 0d 8f 77 8a 49 78 c6
5
55 cd 02 ab 48 39 ac 60
6
0d 8f 60 b5 64 92 fe 89
7
48 39 ac 60 83 72 49 55
8
8f 77 8a 49 b5 64 92 fe
9
60 b5 64 92 55 cd 02 ab
A
83 72 49 55 39 ac 60 72
B
ac 60 b5 64 92 48 39 ac
C
55 cd 02 ab 8a 49 b5 64
в) Имитировать ошибки при передаче, инвертируя отдельные разряды в окне “Канал”
нажатием клавиши “Пробел”. Во всех строках внести ошибки, кратность которых равна
номеру строки. Выполнить декодирование и проанализировать его результаты.
г) Сохранить скриншот 1 экрана с отображением результатов декодирования. Нажать кнопку
“Сброс” и освободить от данных окна “Источник”, “Канал” и “Приемник”.
2. Выполнить исследование кода с проверкой четности по строке и столбцу
а) Выбрать режим “Проверка четности по строке и столбцу” и ввести данные из табл.1.
Нажать кнопку “Кодирование” и убедиться, что контрольные разряды во всех строках и
столбцах сформированы по правилу четности.
б) Имитировать появление при передаче одной ошибки. Убедиться, что однократная
ошибка может быть исправлена кодом. Сохранить скриншот 2. Выполнить сброс.
в) Повторно ввести данные из табл.1, имитровать ошибки во всех строках (как в п.1).
Убедиться, что код с проверкой по строке и столбцу обнаруживает сочетания ошибок,
которые код с проверкой по строке “пропускал». Сохранить скриншот 3.
г) Повторно ввести данные из табл.1, имитировать появление минимального сочетания
ошибок, которое не обнаруживается кодом. Сохранить скриншот 4.
3. Выполнить исследование кода Хэмминга с исправлением однократных ошибок
а) Выбрать режим Код – Код Хэмминга. Использовать в качестве исходных данных для
кодирования одну шестнадцатиричную цифру, соответствующую своему порядковому
номеру в списке подгруппы.
б) Проанализировать механизм кодирования и декодирования, выполнив их “вручную” по
уравнениям Хэмминга для кода 7,4 (отображаются программой), а затем сравнив свои
результаты с результатами программы.
в) Выполнить эксперименты по оценке корректирующей способности кода, имитируя
безошибочную передачу, однократные и двукратные ошибки. Сохранить скриншот 5 с
исправлением однократной ошибки.
3
4. Выполнить исследование циклического кода с обнаружением пачек ошибок
а) Выбрать режим Код – Циклический код. Использовать в качестве исходных данных для
кодирования шестнадцатиричную цифру, соответствующую своему порядковому номеру
в списке подгруппы.
б) Проанализировать механизм кодирования и декодирования, выполнив их “вручную” с
помощью процедуры деления на контрольный полином для кода 7,4. Полином
выбирается из отображаемых программой и указывается преподавателем.
в) Выполнить эксперименты по оценке корректирующей способности кода, имитируя
безошибочную передачу, внося однократные ошибки, “пачки” ошибок разной длины и
“рассеянные” ошибки разной кратности. Сохранить скриншот 6 с обнаружением “пачки”
ошибок длиной 3.
Содержание отчета
1. Тема и цель лабораторной работы.
2. Итоги исследования кода с проверкой четности:
а) Краткая характеристика кода (идея кода, процедуры кодирования и декодирования,
преимущества и недостатки, области практического применения).
б) Результаты экспериментов с кодом проверки на четность (скриншоты 1-4). Резюме
относительно корректирующей способности кода, подтвержденной в экспериментах.
3. Итоги исследования кода Хэмминга:
а) Краткая характеристика кода Хэмминга (по схеме в п.2).
б) Результаты экспериментов с кодом Хэмминга (скриншот 5). Резюме относительно
корректирующей способности кода, подтвержденной в экспериментах.
4. Итоги исследования циклического кода:
а) Краткая характеристика циклического кода (по схеме в п.2).
б) Результаты экспериментов с циклическим кодом (скриншот 6). Резюме относительно
корректирующей способности кода, подтвержденной в экспериментах.
Download