Практикум лаб раб. Контрольные вопросы для проверки усвоения материала и задания на выполнение работы
Скачать 1.14 Mb.
|
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ Куляс О. Л, Никитин КА. Обработка информации средствами MATLAB Лабораторный практикум по дисциплине Технологии обработки информации Часть Самара - 2015 2 ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ Кафедра информационных систем и технологий О.Л. Куляс, КА. Никитин Обработка информации средствами MATLAB Лабораторный практикум по дисциплине Технологии обработки информации Часть I Самара 2015 3 УДК 004.9 (076) К 907 Рекомендовано к изданию методическим советом ПГУТИ, протокол № 8, от 14.04.2015 г. Куляс, О.Л. К 907 Обработка информации средствами MATLAB: лабораторный практикум по дисциплине Технологии обработки информации. Часть Текст / О.Л. Куляс, КА. Никитин. – Самара ПГУТИ, 2015. – 91 с. Методические указания предназначены для бакалавров направления 09.03.02 Информационные системы и технологии, изучающих курс Технологии обработки информации. Цикл лабораторных работ состоит из 6 работ, которые позволяют освоить основы цифровой обработки изображений средствами MATLAB. Для каждой лабораторной работы сформулирована цель, которая должна быть достигнута при выполнении, изложен теоретический материал, необходимый для ее выполнения, приведены контрольные вопросы для проверки усвоения материала и задания на выполнение работы. ©, Куляс О.Л., 2015 4 Оглавление Введение .................................................................................. 5 Лабораторная работа №1 ........................................................ 7 Лабораторная работа №2 ...................................................... 20 Лабораторная работа №3 ...................................................... 31 Лабораторная работа №4 ...................................................... 42 Лабораторная работа №5 ...................................................... 55 Лабораторная работа №6 ...................................................... 62 5 Введение MATLAB (MATrix LABoratory) – интегрированная среда, объединяющая в себе средства для численных расчетов, моделирования, графические возможности и встроенный язык программирования высокого уровня, разработчиком которого является корпорация MathWorks Inc. (США. На сегодняшний день MATLAB насчитывает более 1 млн. пользователей. Основными покупателями пакета являются компании, занятые высокотехнологичными разработками, научно-исследовательские центры, финансовые организации и, конечно же, университеты. Сегодня MATLAB – платформонезависимый высокоуровневый язык для технических вычислений и интерактивная среда для разработки алгоритмов, численных вычислений, анализа и визуализации данных. MATLAB находит применение для самого широкого спектра приложений, включая обработки сигналов и изображений, связь, системы управления, тестирование оборудования, финансовые расчеты и медицинские исследования. Наборы дополнительных инструментов (toolboxes) расширяют возможности среды MATLAB и позволяют решать конкретные практические задачи. Кроме того, MATLAB предоставляет возможности по интегрированию разработанных алгоритмов и программ с внешними приложениями и языками программирования (Microsoft Excel, .NET, COM, C/C++, Java). Базовыми компонентами среды MATLAB являются интегрированная среда MATLAB, которая включает пять составляющих среда разработки (рабочий стол, окно команд, окно истории команд, рабочее пространство, редактор, отладчик, система помощи библиотека базовых математических функций (от элементарных, типа сложения вычитания, до более сложных, например, вычисление обратной матрицы или реализация быстрого преобразования Фурье язык MATLAB (высокоуровневый язык программирования, ориентированный на обработку векторов/матриц и содержащий большинство стандартных конструкций современных языков программирования, в том числе объектно-ориентированных); подсистема графики (содержит высокоуровневые функции для отображения двух- и трехмерных данных, графиков, изображений, видео, анимации, деловой графики и низкоуровневые функции, позволяющие разработать собственный графический интерфейс приложения программный интерфейс MATLAB API (библиотека, позволяющая писать программы на языках С/С++, которые могут затем взаимодействовать с MATLAB. Библиотека содержит средства для вызова динамических подпрограмм (dll) из MATLAB, вызова функций MATLAB для выполнения вычислений, чтения/записи данных в рабочем пространстве и файлах данных. Важная роль в MATLAB отводится наборам специализированных функций (Toolboxes), которые позволяют решать частные классы задач. пакет моделирования Simulink – интерактивная среда для моделирования, имитации и анализа динамических систем, которая позволяет проектировать модели на основе блоков, моделировать поведение системы, оценивать ее производительность и уточнять модель по результатам оценок. Основное предназначение Simulink – описание динамических систем, поведение которых можно представить как функцию от времени. Simulink глубоко интегрирован с MATLAB, что обеспечивает разработчику непосредственный доступ ко всем средствам обработки и анализа данных MATLAB. Особое значение при создании моделей имеет библиотека проблемно-ориентированных наборов блоков (Blocksets), реализующих специфичные для той или иной области алгоритмы обработки. пакет Stateflow – интерактивный инструмент проектирования для создания и моделирования систем на основе событийного подхода. Используя предоставляемые средства 6 разработчик может описывать поведение исследуемой системы как цепочку правил если- то. Основой построения и исследования моделей в среде Stateflow является теория конечных автоматов. Совместное использование Simulink и Stateflow позволяет описать логику функционирования и создать виртуальный прототип практически любой системы. Множество входящих в MATLAB дополнительных средств (всего около 100 пакетов) по своему назначению можно разбить наследующие категории организация параллельных вычислений на нескольких ЭВМ локальной сети, организованных в вычислительный кластер, где установлен MATLAB с соответствующими пакетами математические вычисления и решение оптимизационных задачи др статистическая обработка и анализ данных (Statistics Toolbox, Neural Network Tool- box, Spline Toolbox и др проектирование, анализ систем управления, моделирование систем управления (Con- trol System Toolbox, Robust Control Toolbox, Aerospace Toolbox, Simulink Control Design, Si- mulink Parameter Estimation, Aerospace Blockset и др обработка сигналов и моделирование систем связи (Signal Processing Toolbox, Com- munications Toolbox, Filter Design Toolbox, Wavelet Toolbox, Fixed-Point Toolbox, RF Toolbox , Signal Processing Blockset, Communications Blockset, Video and Image Processing Blockset и др обработка изображений (Image Processing Toolbox, Mapping Toolbox и др измерения и тестирование (Data Acquisition Toolbox, Instrument Control Toolbox и др вычислительная биология (Bioinformatics Toolbox, SimBiology); финансовое моделирование и анализ (Financial Toolbox, Fixed-Income Toolbox, Data- feed Toolbox и др компьютерная графика (Virtual Reality Toolbox, Gauges Blockset); моделирование физических процессов (Simscape, SimMechanics, SimPowerSystems, SimElectronics и др разработка приложений (MATLAB Compiler, Spreadsheet Link EX (for Microsoft Excel), MATLAB Builder NE (for Microsoft .NET Framework и др генерация кода для выполнения в других исполнительных средах (Real-Time Work- shop, Real-Time Embedded Coder и др быстрое моделирование на целевой платформе (xPC Target, Real-Time Windows Target, Target Support Package for TC6 (for TI's C6000 DPP), Embedded IDE Link VS (for Ana- log Devices VisualDSP++) и др работа с базами данных и генерация отчетов (Database Toolbox, MATLAB Report Ge- nerator); верификация, валидация и тестирование (Simulink Verification and Validation, Sys- temTest, PolySpace Code Verification Products). Методуказания представляют интерес не только для студентов, но и для инженеров, разработчиков и программистов в области обработки изображений, поскольку вводит обучаемых не только в теоретические основы обработки изображений, но и помогает пошагово и целенаправленно освоить такой мощный инструмент программирования, каким является MATLAB. 7 Лабораторная работа №1 Основы работы в MATLAB. Интерфейс. Простейшие вычисления Цель работы Изучение интерфейса системы MATLAB. Знакомство с основными объектами языка MATLAB, их вводом и визуализацией результатов вычислений. Получение практических навыков работы в командном режиме ив среде редактора m- файлов. Теоретический материал Основные сведения о MATLAB MATLAB от англ. MATrix LABoratory) – язык программирования высокого уровня и система инженерных и научных вычислений, разработчиком которого является корпорация MathWorks Inc. (США. В нем интегрированы вычисления, визуализация и программирование в удобной для пользователя среде. Типовой набор действий, которые могут производиться в MATLAB, включает математические вычисления разработку алгоритмов моделирование и создание прототипных систем анализ данных, их исследование и визуализацию разработку приложений и пользовательского интерфейса. MATLAB является интерактивной системой, особенностью которой является представление данных в виде массивов (матрица их преобразований в виде матричных операций. Использование такого подхода способствует значительному повышению скорости вычислений. Несмотря на то, что основы системы MATLAB были заложены в х годах прошлого столетия, система находится в стадии постоянного развития и совершенствования. Это проявляется в создании множества наборов специализированных программ – toolboxes (наборы инструментов, которых насчитывается несколько десятков. Интеграция с программной системой, предназначенной для моделирования блочно заданных динамических систем и устройств, открывает новые возможности для разработчиков в среде визуально- ориентированного программирования. Интерфейс После запуска MATLAB на экране появляется основное окно системы, состоящее из 4 частей (рис. 1.1): 1) Command Window (Командное окно 2) Workspace (Рабочее пространство 3) Command History (История команд 4) Current Folder (в некоторых версиях Current Directory – Текущая папка. 8 Рис. 1.1 – Структура основного окна системы MATLAB Command Window (Командное окно) представляет собой окно, в котором осуществляется непосредственный ввод команд и отображается результат их выполнения. Окно Workspace (Рабочее пространство) содержит список текущих переменных и их размеры. Для редактирования переменных необходимо дважды щелкнуть мышью на имени необходимой переменной для отображения окна Array Editor Редактор массива, в котором можно редактировать отдельные элементы векторов и матриц. Окно Command History (История команд) отображает список ранее введенных команд в окне Command Window. Current Folder (Текущая папка) представляет собой окно, в котором выводится содержимое папки, имя которой отображается в раскрывающемся списке Current Folder на панели инструментов окна MATLAB. Рабочее пространство Command Window Посредством этого окна вводятся математические выражения, получаются результаты вычислений, а также выдаются сообщения, формируемые системой. Режим прямых вычислений, называемый также командным режимом представляет собой работу системы, при которой вычисления выполняются без составления программы. В режиме прямых вычислений сеанс работы до выхода из MATLAB называется текущей сессией. Объекты языка MATLAB вводятся построчно в командной строке входе текущей сессии. Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти (ноне саму сессию, можно записать на диск (файлы с расширением .mat), используя команду save (см. далее. Входе текущей сессии при вводе команд в командную строку должны соблюдаться некоторые правила ввод осуществляется после символа « >> » вначале строки и завершается нажатием клавиши ENTER, при этом результаты вычислений выводятся в том же окне, а для рисунков открываются отдельные графические окна символ « ; » (точка с запятой) в конце строки блокирует автоматический вывод значений переменных символ « … » (многоточие) в конце строки признак того, что следующая строка – продолжение предыдущей символ « % » означает, что текст после него – комментарий. Встроенный редактор по мере ввода текста осуществляет синтаксический контроль. Результаты контроля отображаются цветовыми выделениями (табл. 1.1). Цвета можно изменить на любые. 9 Таблица 1.1 Цветовые выделения системы MATLAB Синтаксис Цвет Ключевые слова языка Синий Операторы, константы, переменные Чѐрный Открытая строка Фиолетовый Закрытая строка Пурпурный Системные команды Коричневый Комментарий после знака « % » Зелѐный Ошибки Красный Объекты языка MATLAB Базовыми объектами языка MATLAB являются команды операторы константы переменные функции выражения. Команда – объект языка MATLAB со стандартным именем, предназначенный для взаимодействия с системой. Команда имеет следующий формат стандартное имя команды содержательная часть, где содержательная часть уточняется для конкретной команды, также может отсутствовать. Рассмотрим несколько наиболее полезных команд Специальная команда help вызывает справку в системе MATLAB. Вызванная без параметров, она выдает оглавление пакетов функций, установленных в вашей системе. Если вы хотите узнать перечень функций конкретного пакета, скажем ELFUN, то нужно набрать help elfun. Система выдаст полный список доступных элементарных функций. Чтобы просмотреть справку по назначению и синтаксису конкретной функции, скажем SIN нужно набрать help sin. Справку по использованию системы MATLAB можно получить и через меню HELP основного окна или нажав клавишу F1. Сохранение и восстановление переменных рабочей среды можно выполнить непосредственно из командной строки. Для этого служат команды save и load. Для сохранения необходимо выполнить команду save FileName. Если не указывать расширение, то MATLAB сохранит переменные рабочей среды в файле FileName.mat. Вначале следующего сеанса работы для считывания переменных следует ввести команду load FileName. Аналогичными являются действия сменю и FILE --> OPEN… Для очистки командного окна MATLAB используется команда clc, которая оставляет неизменным содержимое буфера команд и рабочего пространства, то есть все переменные остаются сохраненными в памяти. Для отображения имен всех переменных, размещенных в данный момент в рабочем пространстве, используется команда who. 10 Получить сведения о конкретной переменной можно командой whos имя имя … . Для стирания всех переменных в памяти используется команда clear. Для стирания некоторых переменных необходимо указывать их имена clear имя имя … . Оператор – это специальное обозначение для определенной операции над данными – операндами. Существует три категории операторов арифметические операторы используются для составления арифметических выражений и выполняют числовые вычисления (табл. 1.2); операторы отношения используются для сравнения операндов (табл. 1.3); логические операторы позволяют строить логические выражения (табл. 1.4). Таблица 1.2 Арифметические операторы Функция Название Оператор plus Плюс + unplus Унарный плюс + minus Минус – unminus Унарный минус – mtimes Матричное умножение * times Поэлементное умножение массивов .* mpower Возведение матрицы в степень ^ power Поэлементное возведение массива в степень .^ mldivide Обратное (справа налево) деление матриц \ mrdivide Деление матриц справа налево / idivide Поэлементное деление массивов справа налево .\ rdivide Поэлементное деление массивов слева направо ./ Константа – это предварительно определенное числовое или символьное значение, представленное уникальным именем. Существует четыре типа констант символьные константы – последовательность символов, заключенных в апострофы Таблица 1.3 Операторы отношение Функция Название Оператор eq Плюс = = ne Унарный плюс = lt Минус < gt Унарный минус > le Матричное умножение < = ge Поэлементное умножение массивов > = Таблица 1.4 Логические операторы Функция Название Оператор and Операция И, логическое умножение & or Операция ИЛИ, логическое сложение | not Операция НЕ, инверсия xor Операция Исключающее ИЛИ, или сложение по модулю два xor 11 числовые константы – константы, принимающие численные значения. Числа например и 1.23) являются безымянными числовыми константами логические константы – константы, принимающие значения 1 (true) и 0 (false). системные константы. Эти константы в MATLAB принято назвать системными переменными, поскольку, с одной стороны, они задаются системой при ее загрузке, ас другой – могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны ниже в табл. 1.5. Полный список системных констант может быть выведен в результате выполнения команды help elmat. Переменная – объект языка MATLAB, который может изменять свое значение в процессе вычислений. Существует два типа переменных простые переменные массивы. Существует несколько правил для составления имен переменных длина произвольная, но значимы только N символов без пробелов (31 по умолчанию символы имени – латинские буквы, арабские цифры, символ « _ »; начало имени – буква имя переменной должно быть уникальным строчные и заглавные буквы различаются. Таблица 1.5 Основные системные константы Имя константы Назначение Примерили Мнимая единица >> i ans = 0 + 1.0000i |