Файл: Лабораторная работа № 5.doc

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ЛАБОРАТОРНАЯ РАБОТА № 5.

ТЕМА: РАСПОЗНАВАНИЕ ОБРАЗОВ ПО МИНИМАЛЬНОМУ РАССТОЯНИЮ МЕЖДУ НИМИ.


Если заданы два многомерных вектора v и w (см. рис.1), то расстояние R между ними будет определяться в скалярной или матричной форме по формулам:




Рис.1

Условие задачи.

Даны три группы частотных спектров по четыре спектра в каждой группе бензинов: бензина А-76, бензина АИ-95 и бензина АИ-98.

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

Решение.

Перед началом решения командой ФАЙЛ – НАСТРОЙКА СТРАНИЦЫ зададим альбомный формат (LANDSCAPE).

Все спектры расположены в папке МАТКАД – ДАННЫЕ ДЛЯ ЛАБ. РАБОТЫ. В ней созданы три папки для известных марок бензина и папка « неизвестных» спектров.

1. Для начала счета с единицы введем ORIGIN: =1

2.Сначала необходимо ввести все известные ( опорные) спектры в маткад. Это производится с помощью команд меню ВСТАВИТЬ- ДАННЫЕ – ВВОД ФАЙЛА. После ввода этих команд открывается окно FILE OPTIONS ( опции файла), в котором имеется кнопка « BROWSE» ( искать).Нажав на эту кнопку, откроем окно READ FROM FILE ( читай из файла) и укажем путь: МАТКАД –ДАННЫЕ ДЛЯ ЛАБ.РАБОТЫ – БЕНЗИН А- 76- А-76спектр1.Потом нажмем кнопку ОТКРЫТЬ.

Затем нажмем два раза кнопку ГОТОВО в окне FILE OPTIONS. В маткаде появится рамка с надписью А-76 …….txt. Присвоим ему имя F11.

Аналогично введем остальные спектры бензина А76, присвоив им имена F12, F13, F14, и все спектры бензинов АИ-95, присвоив им имена F2i, и все спектры бензина АИ-98, присвоив им имена F3i.Здесь индексы i меняются от 1 до 4.

Ввод данных закончен.

3 . Введенные спектры представляют собой матрицу из 7462 строк и 3 столбцов: первый столбец – порядковый номер, второй – частота и третий – амплитуда спектра ( см.рис.1)

1: 399.95 -0.000131

2: 400.44 0.001253

3: 400.92 0.001301

4: 401.40 0.000805

5: 401.88 0.000681

6: 402.37 0.001579

7: 402.85 0.003724

8: 403.33 0.006809

9: 403.81 0.010327

Рис.2 Вид введенного спектра.

Нас интересует только амплитуда. Поэтому сформируем из амплитуд всех введенных спектров три матрицы из четырех столбцов каждая: для бензина А-76 матрицу S1, для бензина АИ-95 матрицу S2 и для бензина АИ-98 матрицу S3.

Cначала введем заголовок «Формирование матриц». Для этого нажав одновременно SHIFT и Э ( в английском шрифте), откроем окно надписей. Перейдя на русский и введя в меню ARIAL CYR, запишем этот заголовок.

Затем сформируем сами матрицы как показано на рис.2


Формирование матриц








Рис.3 Формирование матриц.



4.Спектры введены в формате текстов. Их следует перевести в цифровой формат с помощью встроенной функции str2num. (string – строка, num- число). Перевод показан на рис.3




Рис.4. Перевод текстовых файлов в цифровые.

5. Подготовим «неизвестные» спектры. На самом деле спектры, которые мы называем «неизвестными» нам известны. Первый из этих спектров принадлежит бензину А-76, второй – бензину АИ-95, третий – бензину АИ-98. Мы должны проверить, правильно ли распознает их формируемая нами программа.

Введем «неизвестные» спектры, как мы это делали для известных спектров, дав им имена X1, X2, X3,выделим третьи столбцы и переведем их в цифровую форму ( см.рис.4).





Рис.5 Ввод исследуемых спектров.


6. Составим программу поиска минимального расстояния между каждым из «неизвестных» и всеми известными спектрами ( см рис.6 на следующей странице).

7.Так как у нас три «неизвестных» спектра, то мы организуем цикл по j от 1 до 3.

8. Переменными min1,min2,min3 мы обозначим минимальные расстояния до спектров бензинов А-76, АИ-95 и АИ-98, соответственно. В начале мы присвоим им значения расстояний от «неизвестных» спектров до первого из спектров каждой группы.

9. В каждой марке бензинов мы имеем четыре известных спектра. Поэтому организуем цикл по «к» от 1 до 4-х. В этом цикле мы ищем минимальные расстояния от каждого из «неизвестных» спектров до спектров каждой марки.

10. Вычисленные минимальные расстояния циклом по «i» мы помещаем в вектор MIN. 11.Следующим циклом по «i» мы помещаем в вектор «К» условный номер марки бензина. Группа 1 – бензин А-76, группа 2 – бензин АИ-95, группа 3 – бензин АИ-98.


12.Наконец, для большей наглядности присваиваем группе 1 имя «76», а остальным, соответственно, имена «95», «98».

13. ниже приведен вектор ответа. Видим, что распознавание произведено правильно.