Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Будылдина Н. В. Помехоустойчивое кодирование в....doc
Скачиваний:
59
Добавлен:
22.11.2018
Размер:
3.02 Mб
Скачать

9.6 Описание лабораторной работы

9.6.1.Первая часть программы предназначена для самостоятельного построения кода Хаффмена для различных сообщений с разными вероятностями. Она включает построение кодовой таблицы, а затем и кодового дерева кода Хаффмена. Студент выполняет эти два этапа построения кода и, если при данном распределении вероятностей сообщений существует возможность построить кодовое дерево по-разному, он может увидеть эти варианты. Затем имеется возможность повторить всю работу заново при других вариантах распределения вероятностей сообщений.

В обеих частях программы работа выполняется в основном манипулятором типа «мышь». В первой части широко используется перетаскивание некоторых объектов из одного места в другое. Программа постоянно ведет контроль за выполненной работой и дает разрешение на переход к следующему этапу или к другим действиям.

Вторая часть программы предназначена для эмуляции системы связи, использующей код Хаффмена и один из равномерных кодов – МТК-2.

Программным путем эмулируются такие устройства как:

  1. блок ввода сообщения:

  2. блок равномерного кодирования:

  3. кодер Хаффмена:

  4. блок определения длины кодовой комбинации;

  5. блок ввода ошибки;

  6. декодер Хаффмена;

  7. блок определения ошибочных сообщений,

  8. блок отображения.

Функциональная схема моделируемой системы связи представлена на рисунке 4.

Рисунок 4 – Функциональная схема моделируемой системы связи

При помощи данной программы возможно наблюдение закодированной исходной последовательности сообщений ко­дером Хаффмена и блоком равномерного кодирования, внесение ошибки в закодированную последовательность сообщений, наблюдение явления размножения ошибок.

В блоке ввода сообщений обеспечивается ввод исходной последовательности сообщений. Вводимая последовательность может состоять из сообщений одного из семи вариантов алфавита (вариант указывается в начале работы) или из букв русского алфавита (набираемых на клавиатуре).

В блоке равномерного кодирования можно наблюдать исходную последовательность сообщений, закодированную равномерным кодом.

В блоке кодера Хаффмена можно наблюдать исходную последовательность сообщений, закодированную с использованием неравномерного префиксного кода Хаффмена.

В блоке определения длины кодовой комбинации производится отображение длины закодированного сообщения и средней длины кодовой комбинации для случаев равномерного кодирования и кодирования кодом Хаффмена.

Блок ввода ошибки позволяет вносить одиночную или групповую ошибку в поток данных, что имитирует ошибки в реальных дискретных каналах и демонстрирует эффект размножения ошибок.

Блок декодера Хаффмена производит декодирование закодированного сообщения, при этом отображается восстановленное сообщение на выходе декодера.

В блоке определения ошибочных сообщений происходит сравнение последовательности двоичных элементов, переданных в линию связи, с принятой последовательностью. Ошибочные элементы отображаются красным цветом.

В блоке отображения происходит отображение принятого сообщения, а также выводятся характеристики качества передачи: количество ошибочно принятых двоичных элементов и сообщений.

9.6.2. Разработанная программа состоит фактически из двух частей:

  1. программа для построения кода Хаффмена в соответствии с заданными вероятностями сообщений;

  2. программа, эмулирующая работу системы связи, использующей равномерный код и неравномерный код Хаффмена;

Кроме того, имеется тестирующая система;

В каждой из разработанных программ имеется главное окно, с которым непосредственно работает пользователь. В нем расположены элементы управления программой. В состав главного окна входят процедуры, обрабатывающие действия пользователя при работе с программой и процедуры, позволяющие пользователю вывести другие окна приложения.

В главном окне первой программы расположены следующие элементы управления:

  1. главное меню, при использовании которого можно активизировать любое прикладное окно программы;

  2. кнопки управления, одни из которых дублируют команды главного меню, другие служат для выполнения определенного действия, связанного с этой кнопкой (переход к другому действию, получение справки);

Все окна первой программы по составу можно разделить на три части:

  1. окно запроса сообщений и их вероятностей или выбора их заранее заданных вариантов;

  2. окно, в котором студент создает кодовую таблицу кода Хаффмена;

  3. окно, в котором создается двоичное кодовое дерево кода Хаффмена.

В процессе создания таблицы и кодового дерева кода Хаффмена студент главным образом пользуется мышью, перетаскивая некоторые объекты из одного поля окна в другое. Программа следит за действиями пользователя и при необходимости дает указания по правильности выполнения тех или иных операций. В начале каждого этапа работы программа проводит обучение и рассказывает о назначении тех или иных элементов окна в данный момент.

В главном окне второй программы расположены следующие элементы управления:

  1. кнопки управления, которые служат для выполнения определенных действий в ходе работы, а также активизации окна инструкции пользователя и окна сведений о программе;

  2. несколько функциональных блоков в соответствии со схемой, приведенной на рисунке 6, с которыми и работает пользователь;

  3. окна с описанием порядка выполнения работы.

В ходе работы студент вводит необходимые данные (последовательность сообщений) и может видеть закодированную последовательность, закодированную равномерным кодом и кодом Хаффмена, а также может внести ошибку в последовательность, закодированную кодом Хаффмена и посмотреть результаты декодирования, а также информацию о кодовой последовательности и ошибках в ней.

Тестовая система содержит сорок вопросов, а также выдает результат тестирования в виде оценки.

Кроме того, имеется краткая теория, активизировать которую пользователь может, нажав соответствующую кнопку в окне программы.

Краткая теория содержит описание метода Хаффмена, а также пример построения кодовых комбинаций, параметры, оценивающие эффективность неравномерных кодов. Материал снабжен необходимыми рисунками и таблицами.