Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Обработка информации средствами MATLAB. Часть 1. Лабораторный практикум по дисциплине «Технологии обработки информации»
.pdf
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ
БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ
Куляс О. Л., Никитин К. А.
Обработка информации средствами 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, Simulink 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 Analog 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
