Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Обработка информации средствами MATLAB. Часть 1. Лабораторный практикум по дисциплине «Технологии обработки информации»

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ
Куляс О. Л., Никитин К. А.
Обработка информации средствами MATLAB
Лабораторный практикум
по дисциплине «Технологии обработки информации»
Часть 1
Самара - 2015
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования
«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И
ИНФОРМАТИКИ»
Кафедра информационных систем и технологий
О.Л. Куляс, К.А. Никитин
Обработка информации
средствами MATLAB
Лабораторный практикум по дисциплине
«Технологии обработки информации»
Часть I
Самара
2015
2
УДК 004.9 (076)
К 907
Рекомендовано к изданию методическим советом ПГУТИ,
протокол № 8, от 14.04.2015 г.
Куляс, О.Л.
К 907 Обработка информации средствами MATLAB: лабораторный практикум по
дисциплине «Технологии обработки информации». Часть I [Текст] / О.Л. Куляс, К.А. Никитин. – Самара: ПГУТИ, 2015. – 91 с.
Методические указания предназначены для бакалавров направления 09.03.02 «Информационные системы и технологии», изучающих курс «Технологии обработки информации». Цикл лабораторных работ состоит из 6 работ, которые позволяют освоить основы цифровой обработки изображений средствами MATLAB. Для каждой лабораторной работы сформулирована цель, которая должна быть достигнута при выполнении, изложен теоретический материал, необходимый для ее выполнения, приведены контрольные вопросы для проверки усвоения материала и задания на выполнение работы.
©, Куляс О.Л., 2015
3
Оглавление
Введение .................................................................................. 5
Лабораторная работа №1 ........................................................ 7
Лабораторная работа №2 ...................................................... 20
Лабораторная работа №3 ...................................................... 31
Лабораторная работа №4 ...................................................... 42
Лабораторная работа №5 ...................................................... 55
Лабораторная работа №6 ...................................................... 62
4
Введение
MATLAB (MATrix LABoratory) – интегрированная среда, объединяющая в себе сред-
ства для численных расчетов, моделирования, графические возможности и встроенный язык программирования высокого уровня, разработчиком которого является корпорация MathWorks Inc. (США).
На сегодняшний день MATLAB насчитывает более 1 млн. пользователей. Основными
покупателями пакета являются компании, занятые высокотехнологичными разработками, научно-исследовательские центры, финансовые организации и, конечно же, университеты. Сегодня MATLAB – платформонезависимый высокоуровневый язык для технических вы­числений и интерактивная среда для разработки алгоритмов, численных вычислений, анали­за и визуализации данных. MATLAB находит применение для самого широкого спектра приложений, включая обработки сигналов и изображений, связь, системы управления, тести­рование оборудования, финансовые расчеты и медицинские исследования. Наборы дополни­тельных инструментов (toolboxes) расширяют возможности среды MATLAB и позволяют решать конкретные практические задачи. Кроме того, MATLAB предоставляет возможности по интегрированию разработанных алгоритмов и программ с внешними приложениями и языками программирования (Microsoft Excel, .NET, COM, C/C++, Java).
Базовыми компонентами среды MATLAB являются:
1) интегрированная среда MATLAB, которая включает пять составляющих: – среда разработки (рабочий стол, окно команд, окно истории команд, рабочее про-
странство, редактор, отладчик, система помощи);
– библиотека базовых математических функций (от элементарных, типа сложе-
ния/вычитания, до более сложных, например, вычисление обратной матрицы или реализация быстрого преобразования Фурье);
– язык MATLAB (высокоуровневый язык программирования, ориентированный на об-
работку векторов/матриц и содержащий большинство стандартных конструкций современ­ных языков программирования, в том числе объектно-ориентированных);
– подсистема графики (содержит высокоуровневые функции для отображения двух- и
трехмерных данных, графиков, изображений, видео, анимации, деловой графики и низко­уровневые функции, позволяющие разработать собственный графический интерфейс приложе­ния);
– программный интерфейс MATLAB API (библиотека, позволяющая писать програм-
мы на языках С/С++, которые могут затем взаимодействовать с MATLAB. Библиотека со­держит средства для вызова динамических подпрограмм (dll) из MATLAB, вызова функций MATLAB для выполнения вычислений, чтения/записи данных в рабочем пространстве и файлах данных.
Важная роль в MATLAB отводится наборам специализированных функций
(Toolboxes), которые позволяют решать частные классы задач.
2) пакет моделирования Simulink – интерактивная среда для моделирования, имитации
и анализа динамических систем, которая позволяет проектировать модели на основе блоков, моделировать поведение системы, оценивать ее производительность и уточнять модель по результатам оценок. Основное предназначение Simulink – описание динамических систем, поведение которых можно представить как функцию от времени. Simulink глубоко интегри­рован с MATLAB, что обеспечивает разработчику непосредственный доступ ко всем средст­вам обработки и анализа данных MATLAB.
Особое значение при создании моделей имеет библиотека проблемно-ориентированных
наборов блоков (Blocksets), реализующих специфичные для той или иной области алгоритмы обработки.
3) пакет Stateflow – интерактивный инструмент проектирования для создания и моде-
лирования систем на основе событийного подхода. Используя предоставляемые средства
5
разработчик может описывать поведение исследуемой системы как цепочку правил «если­то». Основой построения и исследования моделей в среде Stateflow является теория конеч­ных автоматов. Совместное использование Simulink и Stateflow позволяет описать логику функционирования и создать виртуальный прототип практически любой системы.
Множество входящих в MATLAB дополнительных средств (всего около 100 пакетов)
по своему назначению можно разбить на следующие категории:
– организация параллельных вычислений на нескольких ЭВМ локальной сети, органи-
зованных в вычислительный кластер, где установлен MATLAB с соответствующими пакета­ми (Parallel Computing Toolbox, MATLAB Distributed Computing Server);
– математические вычисления и решение оптимизационных задач (Optimization Tool-
box, Symbolic Math Toolbox, Partial Differential Equation Toolbox и др.);
– статистическая обработка и анализ данных (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.
6
Лабораторная работа №1
Основы работы в MATLAB.
Интерфейс. Простейшие вычисления
1 Цель работы
Изучение интерфейса системы MATLAB.
Знакомство с основными объектами языка MATLAB, их вводом и визуализацией ре­зультатов вычислений.
Получение практических навыков работы в командном режиме и в среде редактора m­файлов.
2 Теоретический материал
Основные сведения о MATLAB
MATLAB (от англ. MATrix LABoratory) – язык программирования высокого уровня и система инженерных и научных вычислений, разработчиком которого является корпорация MathWorks Inc. (США). В нем интегрированы вычисления, визуализация и программирова­ние в удобной для пользователя среде. Типовой набор действий, которые могут произво­диться в MATLAB, включает:
– математические вычисления;
– разработку алгоритмов;
– моделирование и создание прототипных систем;
– анализ данных, их исследование и визуализацию;
– разработку приложений и пользовательского интерфейса.
MATLAB является интерактивной системой, особенностью которой является представ­ление данных в виде массивов (матриц), а их преобразований в виде матричных операций. Использование такого подхода способствует значительному повышению скорости вычислений.
Не смотря на то, что основы системы MATLAB были заложены в 80-х годах прошлого столетия, система находится в стадии постоянного развития и совершенствования. Это про­является в создании множества наборов специализированных программ – toolboxes (наборы инструментов), которых насчитывается несколько десятков. Интеграция с программной сис­темой Simulink, предназначенной для моделирования блочно заданных динамических сис­тем и устройств, открывает новые возможности для разработчиков в среде визуально­ориентированного программирования.
Интерфейс
После запуска MATLAB на экране появляется основное окно системы, состоящее из 4 частей (рис. 1.1):
1) Command Window (Командное окно);
2) Workspace (Рабочее пространство);
3) Command History (История команд);
4) Current Folder (в некоторых версиях Current Directory – Текущая папка).
7
Рис. 1.1 – Структура основного окна системы MATLAB
Command Window (Командное окно) представляет собой окно, в котором осуществляет- ся непосредственный ввод команд и отображается результат их выполнения.
Окно Workspace (Рабочее пространство) содержит список текущих переменных и их размеры. Для редактирования переменных необходимо дважды щелкнуть мышью на имени необходимой переменной для отображения окна Array Editor (Редактор массива), в котором можно редактировать отдельные элементы векторов и матриц.
Окно Command History (История команд) отображает список ранее введенных команд в окне Command Window.
Current Folder (Текущая папка) представляет собой окно, в котором выводится содер- жимое папки, имя которой отображается в раскрывающемся списке Current Folder на панели инструментов окна MATLAB.
Рабочее пространство Command Window
Посредством этого окна вводятся математические выражения, получаются результаты вычислений, а также выдаются сообщения, формируемые системой. Режим прямых вычис- лений, называемый также командным режимом представляет собой работу системы, при ко­торой вычисления выполняются без составления программы. В режиме прямых вычислений сеанс работы до выхода из MATLAB называется текущей сессией. Объекты языка MATLAB вводятся построчно в командной строке в ходе текущей сессии. Входящие в сессию опреде­ления переменных и функций, расположенные в рабочей области памяти (но не саму сес­сию), можно записать на диск (файлы с расширением .mat), используя команду save (см. да­лее).
В ходе текущей сессии при вводе команд в командную строку должны соблюдаться не­которые правила:
1) ввод осуществляется после символа « >> » в начале строки и завершается нажатием
клавиши ENTER, при этом результаты вычислений выводятся в том же окне, а для рисунков открываются отдельные графические окна;
2) символ « ; » (точка с запятой) в конце строки блокирует автоматический вывод зна-
чений переменных;
3) символ « … » (многоточие) в конце строки признак того, что следующая строка –
продолжение предыдущей;
4) символ « % » означает, что текст после него – комментарий.
Встроенный редактор по мере ввода текста осуществляет синтаксический контроль. Ре­зультаты контроля отображаются цветовыми выделениями (табл. 1.1). Цвета можно изме­нить на любые.
8
Синтаксис
Цвет
Ключевые слова языка
Синий
Операторы, константы, переменные
Чѐрный
Открытая строка
Фиолетовый
Закрытая строка
Пурпурный
Системные команды
Коричневый
Комментарий после знака « % »
Зелѐный
Ошибки
Красный
Цветовые выделения системы MATLAB
Объекты языка MATLAB
Базовыми объектами языка MATLAB являются:
1) команды;
2) операторы;
3) константы;
4) переменные;
5) функции;
6) выражения.
Команда – объект языка MATLAB со стандартным именем, предназначенный для взаимодействия с системой. Команда имеет следующий формат:
Таблица 1.1
<стандартное имя команды> <содержательная часть>,
где содержательная часть уточняется для конкретной команды, также может отсутствовать.
Рассмотрим несколько наиболее полезных команд:
1) Специальная команда help вызывает справку в системе MATLAB. Вызванная без па-
раметров, она выдает оглавление пакетов функций, установленных в вашей системе. Если вы хотите узнать перечень функций конкретного пакета, скажем ELFUN, то нужно набрать:
help elfun.
Система выдаст полный список доступных элементарных функций. Чтобы просмотреть справку по назначению и синтаксису конкретной функции, скажем SIN нужно набрать:
help sin.
Справку по использованию системы MATLAB можно получить и через меню HELP основного окна или нажав клавишу F1.
2) Сохранение и восстановление переменных рабочей среды можно выполнить непо-
средственно из командной строки. Для этого служат команды save и load. Для сохранения необходимо выполнить команду:
save FileName.
Если не указывать расширение, то MATLAB сохранит переменные рабочей среды в файле FileName.mat. В начале следующего сеанса работы для считывания переменных сле­дует ввести команду:
load FileName.
Аналогичными являются действия с меню:
FILE --> SAVE WORKSPACE AS… и FILE --> OPEN…
3) Для очистки командного окна MATLAB используется команда clc, которая оставля-
ет неизменным содержимое буфера команд и рабочего пространства, то есть все переменные остаются сохраненными в памяти.
4) Для отображения имен всех переменных, размещенных в данный момент в рабочем
пространстве, используется команда who.
9
Функция
Название
Оператор
plus
Плюс
+
unplus
Унарный плюс
+
minus
Минус
–
unminus
Унарный минус
–
mtimes
Матричное умножение
*
times
Поэлементное умножение массивов
.*
mpower
Возведение матрицы в степень
^
power
Поэлементное возведение массива в степень
.^
mldivide
Обратное (справа налево) деление матриц
\
mrdivide
Деление матриц справа налево
/
idivide
Поэлементное деление массивов справа налево
.\
rdivide
Поэлементное деление массивов слева направо
./
Функция
Название
Оператор
eq
Плюс
= =
ne
Унарный плюс
~ =
lt
Минус
<
gt
Унарный минус
>
le
Матричное умножение
< =
ge
Поэлементное умножение массивов
> =
Функция
Название
Оператор
and
Операция «И», логическое умножение
&
or
Операция «ИЛИ», логическое сложение
|
not
Операция «НЕ», инверсия
~
xor
Операция «Исключающее ИЛИ», или сложение по модулю два
xor
5) Получить сведения о конкретной переменной можно командой
whos имя1 имя2 … .
6) Для стирания всех переменных в памяти используется команда clear. Для стирания
некоторых переменных необходимо указывать их имена:
clear имя1 имя2 … .
Оператор – это специальное обозначение для определенной операции над данными – операндами. Существует три категории операторов:
1) арифметические операторы используются для составления арифметических выраже-
ний и выполняют числовые вычисления (табл. 1.2);
2) операторы отношения используются для сравнения операндов (табл. 1.3);
3) логические операторы позволяют строить логические выражения (табл. 1.4).
Арифметические операторы
Таблица 1.2
Константа – это предварительно определенное числовое или символьное значение, представленное уникальным именем.
Существует четыре типа констант:
1) символьные константы – последовательность символов, заключенных в апострофы;
Операторы отношение
Логические операторы
Таблица 1.3
Таблица 1.4
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]