Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы теории вероятности.doc
Скачиваний:
2
Добавлен:
11.11.2019
Размер:
2.62 Mб
Скачать

5.1 Лабораторная работа № 1

Для выполнения лабораторной работы прежде всего необходимо уяснить ее смысл и содержание. Цели и задачи данной лабораторной работы приведены в пункте 3.1, а исходные данные – в пункте 4.1 данного пособия. Теоретические основы содержатся в пункте 1.3.

Начальные данные, соответствующие заданному преподавателем варианту, можно получить, нажав на кнопку главного меню "Исходные данные". После нажатия на экране возникнет список всех лабораторных работ. Из этого списка необходимо выбрать пункт "Лабораторная работа № 1". Для этого на соответствующую надпись наводится курсор мыши и нажимается ее левая кнопка. При этом на экране возникнет окно, в котором необходимо задать номер варианта. Задание номера варианта осуществляется путем набора с клавиатуры в соответствующее окошко или изменением с помощью кнопки "вверх-вниз" значения номера варианта, заданного по умолчанию. После задания номера варианта необходимо нажать на кнопку "Ok". Появившееся после этого окно (рис. 5.2) будет содержать окошки с двоичным и шестнадцатеричным представлением кодов с именем Q для формирующего фильтра и с именем S для начальных членов последовательности Хаффмена.

Идентификатор кода, его двоичное и шестнадцатеричное представления образуют кодовое информационное поле. Шестнадцатеричное представление удобно при сравнении двух кодов.

Рис 5.2 Окно для исходных данных лабораторной работы № 1

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

О

Рис. 5.3 – Окно операции "Построение последовательности Хаффмена"

кно для операции "Построение последовательности Хаффмена" (рис. 5.3) содержит два кодовых информационных поля с именами Q и S. Поле Q содержит образующий код, а поле S – результат операции. Значение кода в поле Q может быть задано путем прямого набора с клавиатуры в окошки для двоичного или шестнадцатеричного представления. Кроме того, оно может быть скопировано по частям из другого кодового информационного окошка подходящего формата методом "drag and drop" или целиком путем применения метода "drag and drop" к окошку с идентификатором кода. Любое изменение содержимого окна Q приводит к немедленному соответствующему изменению окна S. Первые m значений кодового окна S, где m– длина кода Q, могут быть также изменены описанными способами.

Кодовое информационное поле S, вообще говоря, должно содержать n=2m-1 двоичных символов. Однако, существует ограничение на длину кода в двоичном представлении, которая не должна превышать 219500 000 знаков. Кроме того, уже при m>12 время работы программы становится ощутимым. Поэтому, больших значений m следует избегать.

Вычисления осуществляются по формуле

где  - сложение по модулю 2.

Окно для операции "Получение множества кодов путем циклического сдвига" (рис. 5.4) содержит входное кодовое информационное поле A для задания исходного кода и входное числовое информационное поле n для задания числа максимального сдвига. В результате работы программы образуется множество из n кодовых информационных полей, объединенное общим заголовком B и располагающееся в поле с бегунками прокрутки, позволяющими при необходимости увидеть любое из полей данного множества B. Первое кодовое информационное поле B(1) из множества B содержит код, сдвинутый на единицу по сравнению с кодом в окошке A, поле B(2)– код окошка A, сдвинутый на 2 и т.д. В общем случае код в кодовом информационном окне B(i) в

Рис. 5.4 – Окно операции "Получение множества кодов путем циклического сдвига"

ычисляется по формулам

B(i)(k)=A(i+k), k=1,2,...,m-i;

B(i)(k)=A(i+k-m), i=m-i+1,...,m;

где m – длина кода A.

Задание кода в информационном поле A осуществляется методом прямого набора с клавиатуры или методом " drag and drop" через окошки с аналогичным форматом представления данных. Таким же образом может быть задано число n.

Окно для операции "Вычисление кодовых расстояний" (рис. 5.5) содержит входное множество кодовых информационных полей B, аналогичное описанному для предыдущей операции. Операция производится по формуле

где dij – кодовое расстояние между кодами с номерами i и j;

n – максимум из длин кодов i и j;

 – обычное суммирование;

m – количество элементов-кодов во множестве B.

Результирующая матрица с элементами dij помещается на поле с горизонтальным и вертикальным бегунками прокрутки.

Н

Рис. 5.5 – Окно операции " Вычисление кодовых расстояний "

ачальные данные для программы можно задавать путем набора с клавиатуры, при этом клавиши "new" и "delete" служат для создания новых кодовых информационных полей и удаления существующих. Кроме того, любая часть кода может быть методом " drag and drop" скопирована из другого аналогичного кодового информационного поля. Кодовое информационное поле может быть скопировано целиком через его заголовок, а все множество кодов может быть скопировано как целое из другой программы, имеющей аналогичное множество

Для выполнения лабораторной работы необходимо вызвать на экран монитора окно с исходными данными и три окна с необходимыми программами. Размеры вызванных окон, их положение на экране можно изменять по правилам работы с окнами операционной системы Windows. Начальные данные необходимо, используя метод "drag and drop" и набор с клавиатуры, пропустить через все вызванные программы. Отчет о выполнении лабораторной работы должен содержать:

1) постановку задачи;

2) исходные коды;

3) формулы для вычислений;

4) последовательность Хаффмена;

5) матрицу кодовых расстояний между полученными кодами;

6) коды с минимальным кодовым расстоянием между ними;

7) число ошибок, при которых будет иметь место правильное распознавание кодовых комбинаций;

8) разностные уравнения формирующего фильтра.