Выполнение работы

Лабораторная работа №5, как и работа №4, выполняется под управлением управляющей программы, написанной на алгоритмическом языке Visual Basic 6. Исполняемый файл программы носит имя Помехоустойчивое кодирование.exe .

Запустите программу Помехоустойчивое кодирование.

На экран будет выведено окно Форма 1. Регистрация (рис. 1):

 

Рис.1. Окно Форма 1. Регистрация

Как и при выполнении лабораторной работы №4 в поле Введите вашу фамилию этого окна студент должен ввести свою фамилию и, возможно, инициалы или имя и отчество (по желанию). Важно, чтобы эти данные иденцифицировали исполнителя работы и были уникальны (единственны) среди студетов данной специальности и курса обучения.

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

По окончании ввода фамилии (и, возможно, инициалов или имени и отчества) следует нажать кнопку Вперед.

В ответ будет высвечено окно Форма2. Определение длины информационной последовательности (рис. 2).

 

Рис. 2. Окно Форма2. Определение длины информационной последовательности и, добавим, количества дополнительных разрядов, а также длины кодового слова.

Предполагается, что буквы первичного алфавита обозначаются своими номерами (буквы пронумерованы) и эти номера записываются в виде двоичных чисел. Каждую букву будем кодировать по-отдельности. Поэтому количество разрядов двоичного числа, необходимых для записи номеров букв и есть длина информационной последовательности. Чтобы узнать длину информационной последовательности нужно записать объем первичного алфавита в виде двоичного числа и найти количество двоичных разрядов в этом числе. В данном примере (рис. 2) 1410=11102 , т.е. требуется 4 двоичных разряда. Значит размер информационной последовательности = 4 (левое поле Формы 2).

Для определения количества дополнительных разрядов кода с корректирующей способностью 1 (исправляющего максимум однократные ошибки) следует воспользоваться неравенством 2m > m+k, где m – количество дополнительных разрядов, а k- количество информационных разрядов в кодовых словах (все кодовые слова имеют одинаковую длину и одинаковое количество информационных и дополнительных разрядов). Простым перебором определяем, что в данном варианте задания неравенство выполняется при минимальном значении m=3 (23=8>4+3=7). Это значение вводится в поле Количество дополнительных разрядов…. (среднее поле окна).

Общее количество разрядов n в кодовых словах находится суммированием количества информационных и дополнительных разрядов, т.е. n=k+m. В данном примере n=4+3=7. Это число вводится в поле Количество разрядов равномерного кода…. (правое поле, см. рис. 3).

 

Рис. 3. Окно Форма2. Определение длины информационной последовательности с заполненными полями.

Проверка правильности введенных данных происходит в результате нажатия кнопки Вперед. При обнаружении ошибки запрашивается повторный ввод. Если ошибок нет, форма 2 заменяется формой 3 (см. рис. 4).

Содержание некоторых окон (формы 3 и 4) управляющей программы 5-й лабораторной работы изменчиво. Изменчивой является и Форма 3. Ввод и проверка образующей и проверочной матриц. Эта форма предназначена для ввода и проверки правильности образующей и проверочной матриц корректирующего кода. Сначала студенту предлагается указать размеры образующей матрицы (ОМ). В данном варианте образующая матрица состоит из 4 строк и 7 столбцов. Эти числа нужно ввести в соответствующие поля и нажать кнопку Проверка размеров ОМ.

 

Рис. 4. Форма 3. Ввод и проверка образующей и проверочной матриц.

При правильном ответе в правой части формы высвечивается таблица с пустыми поля, которые нужно заполнить значениями матрицы, а в нижней части отображаются поля для ввода размеров транспонированной проверочной матрицы (ТПМ, см. рис. 5).

 

Рис. 5. Поля для ввода ОМ и размеров ТПМ на форме 3.

Правильность ОМ и размеров ТПМ проверяется нажатием кнопки Проверка размеров ТПМ. При вводе правильных данных в правом нижней углу формы 3. высвечивается таблица для ввода значений ТПМ (рис. 6).

 

Рис. 6. Таблица для ввода значений ТПМ на форме 3.

Значения ТПМ проверяются нажатием кнопки Вперед. В случае отстствия ошибок форма 3 заменяется формой 4 Нахождение определителей, кодирование (рис. 7).

 

Рис. 7. Результат ввода закодированного и декодированного сообщений.

На правой половине формы высвечиваются ранее введенные матрицы ОМ и ТПМ, а в верхней левой части 2 поля (число строк и число столбцов) для ввода размеров матрицы-опознавателя. После ввода размеров опознавателя нажимается кновка Проверка размеров опознавателя и при правильном ответе в нижней левой части окна высвечивается таблица с возможными номерами искаженных разрядов и таблица для ввода соответствующих этим искажениям опознавателей (рис. 8).

 

Рис. 8. Появление таблицы с возможными номерами искаженных разрядов и таблицы для ввода опознавателей этих искажений.

Сначала таблица для ввода опознавателей пуста. Задача студента – найти эти опознавателя и ввести их в таблицу. Проверка правильности введенных опознавателей производится нажатием кнопки Проверка опознавателей (рис. 9).

 

Рис. 9. Проверка опознавателей

Если ошибок нет, управляющая программа приступает к проверке знаний студента по применению кода для кодирования.

Для этого таблицы Номер искаженного разряда и Опознаватель ошибки в нижней правой части формы 4 заменяются таблицами Информационые последовательности и Кодовые слова (рис. 10).

 

Рис. 10. Появление таблиц Информационные последовательности и Кодовые слова на форме 4.

Таблица Информационные последовательности состоит из 10 строк, каждая из которых содержит последовательность информационных бит, которую нужно кодовым словом кода, способного обнаруживать и исправлять максимум однократные ошибки. Эти кодовые слова нужно вводить в строки таблицы Кодовые слова. Как показано в теоретическом введении, кодовые слова получаются путем перемножения матрицы информационной последовательности на образующую матрицу.

Матрицу кодовых слов можно получить путем умножения матрицы информационных последовательностей на образующую матрицу. Для этого в Excel есть функция умнож, которая относится к классу математических функций. О правилах ее ввода можно ознакомиться в справочной системе Excel. Результирующая матрица будет содержать целые числа. Матрица результатов кодирования получается из результирующей путем замены четных чисел нулями, а нечетных - единицами.

После определения и ввода всех десяти кодовых слов нажимается кнопка Проверка кодовых слов (рис. 11).

Если ошибок кодирования нет, форма 4 сменяется формой 5 Декодирование (рис. 12). Она предназначена для проверки умения студента использовать код для декодирования ранее закодированных и возможно искаженных помехами в канале связи сообщений.

 

Рис. 11. Проверка кодовых слов

 

Рис. 12. Форма 5. Декодирование

Для декодирования используется ТПМ (изображена в центре формы). 10 кодовых слов, предназначенных для декодирования, расположены в 10 строках таблицы слева. Результаты декодирования (информационные последовательности с возможно исправленными в них ошибками) вводятся в строки таблицы справа (рис. 13).

 

Рис. 13. Ввод результатов декодирования.

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

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

При этом используются следующие простые формулы:

Абсолютная избыточность Иабс равномерных помехоустойчивых кодов находится по формуле:

Иабс=n-k,

где n – длины кодовых слов,

k – количество информационных разрядов

Относительная избыточность:

Иотн= Иабс/n=1-k/n.

После ввода правильных значений избыточности на экран выводится список вопрос для самопроверки и на этом работа заканчивается.