КРАТКОЕ ОПИСАНИЕ ПРОГРАММЫ MATLAB



 

       Программа MATLAB представляет собой интерпретатор языка MATLAB, который ориентирован на создание программного обеспечения для численного решения математических задач, анализа данных и систем, разработку алгоритмов, моделирования систем и т.п. Работать с пакетом пользователь может в двух pежимах: непосpедственно выполняя команды с клавиатуpы или запуская свои пpогpаммы.

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

       Для пеpедачи данных (числовых и текстовых) из дpугих пpогpаммных пpодуктов в сpеду MATLAB и обpатно (экспоpт/импоpт файлов) система имеет тpанслятоp данных, котоpый позволяет пpеобpазовывать стандаpтные текстовые файлы, файлы электpонных таблиц, файлы данных языка FORTRAN и дpугие в файлы, непосpедственно загpужаемые в сpеде MATLAB с помощью функции.

 

3.1. Структура и основные элементы языка matlab

 

3.1.1 Стpуктуpа пакета

 

       Пакет MATLAB состоит из пяти основных частей:

-собственно языка MATLAB;

-среды разработки;

-графической системы;

-графического интерфейса пользователя (GUI);

-интерфейса прикладных программ (API).

       Язык MATLAB представляет собой язык высокого уровня, позволяющий управлять потоками утверждений, функций, структурами данных, вводом-выводом, а также обладает возможностью объектно-ориентированного программирования. Использование языка MATLAB дает возможность как для быстрого построения простых оценочных программ, так и для построения сложных приложений с развитым интерфейсом пользователя. Основные элементы языка структурно организованы в шести директориях MATLAB ToolBox.

       Среда разработки дает возможность управлять переменными в рабочем пространстве, экспортировать и импортировать данные, а также включает инструменты для разработки и отладки М-файлов и приложений.* Элементы реализующие среду разработки, расположены в отдельной директории системы MATLAB.

       Графическая система включает в себя высокоуровневые команды для 2-D и 3-D отображения данных, обработки изображений, анимации, построения презентаций. Кроме того, в графическую систему включено значительное число низкоуровневых команд, позволяющих, например, встраивать специальные символы.

       Графический интерфейс пользователя позволяет упростить построение приложения. Графические функции организованы в пяти директориях MATLAB ToolBox.

       Интерфейс прикладных программ дает возможность организовать взаимодействие программ, написанных на C и Fortran с MATLAB.

       Помимо собственно средств, связанных с построением приложений на языке MATLAB, в системе представлены наборы функций, ориентированных на решение специализированных задач. Эти наборы структурно размещаются в отдельных директориях (ToolBox). Например, CONTROL SYSTEM TOOLBOX- набор специализированных процедур и функций для анализа линейных систем; SIMULINK- интерактивная система для моделирования нелинейных динамических систем и т.п.

       Более подробная информация для пользователей пакета MATLAB содержится в файле using_ml.pdf в директории PDF_DOC/MATLAB. Эта информация включает в себя вопросы пользования командным окном, редактирования М-файлов, импорт-экспорт данных и т.д.

 

3.1.2. Редактирование М-файлов

 

       В М-файле содержится, как упоминалось, последовательный набор инструкций, выполняемых интерпретатором MATLAB. Для редактирования существующего файла необходимо его выбрать с помощью команды меню “Open”. При этом автоматически запускается редактор/отладчик и в него загружается выбранный файл. Для создания нового файла необходимо выбрать команду “New”.

       После того как файл создан, его можно запустить на выполнение с помощью команды меню “Run script”. Кроме того, в редакторе/ отладчике можно выполнить пошаговую отладку программы.

 

3.1.3. Элементы языка

 

       Пакет MATLAB содержит ряд встроенных функций, позволяющих реализовать различные операции обработки данных, где данные представляют собой матрицу с произвольными размерами. Например, abs-возвращает абсолютное значение переменной, cos- значение косинуса, plot- отображает данные в виде графика. Полный перечень встроенных функций можно получить набрав команду help или выбрав в меню “Help Window”, описание функции- help функция (help abs выдает на экран описание функции abs).

       Используя встроенные, можно создавать свои собственные функции, которые хранятся в файлах с расширением m (М-файлы). Если набрать имя такого файла в командной строке, то будет выполнена последовательность встроенных функций и функций, определяемых уже существующими М-файлами. Например, если создать файл myfile.m следующего содержания:

fid=fopen('ecg1.m','r');

F=fread(fid);

S=-F(100:1000);

plot(S);

и ввести в командной строке myfile, то будут выполнены следующие действия. Загружены данные из внешнего файла ecg1.m, перменной F присвоены значения ecg1.m, переменной S значения -F и на экране построен график S.

 

3.2. СИНТАКСИС ЯЗЫКА MATLAB

 

       Программа на языке MATLAB представляет собой последовательность встроенных функций и M-файлов. В качестве примера построения программы на MATLAB приведем фрагмент программы census.m, включенной в демонстрационный раздел (директория MATLAB\TOOLBOX\MATLAB\DEMOS).

 

echo on (включаем отображение последовательности команд)

clc (очистка экрана)

% Этот пример использует данные 1900-1980 г.г. для прогнозирования численности населения США % в 1990 г. Пример иллюстрирует опасность использования полиномов высокой степени для

% экстраполяции.

pause % Нажмите любую клавишу для продолжения.

clc

% Начнем с формирования вектора времени для 1900-1980 г.г. Единица соответствует 10 годам.

t = (0:8)

pause % Нажмите любую клавишу для продолжения.

clc

%    Пусть вектор p - статистические данные ( в млн. )

p = [75.995 91.972 105.711 123.203 131.669 ...

150.697 179.323 203.212 226.505]'

% В этом примере для продолжения работы после выдачи графиков необходимо нажать любую % клавишу !!!!!

pause % Для получения графика нажмите любую клавишу.

echo off

clc

axis([0 10 0 400]);

plot(t,p,'o')

title('Population of the U.S. 1900-1980')

xlabel('1900 - 2000'), ylabel('Millions'), pause

echo on

clc

% Полиномиальное представление этих данных - функция y(t) вида:

%             d  d-1

%    y(t) = c1*t + c2*t + ... + cn ,

% Степень полинома равна d, а кол-во коэффициентов n=d+1. Мы имеем 9 значений численности % населения, поэтому для точного описания данных полиномом возьмем d=8 и n=9. %Коэффициенты c1, c2, ... c9 определим, решив систему 9 линейных уравнений.      A*c = p. %Колонки матрицы A-степени вектора t ( 8, ...,0 ).

pause % Нажмите любую клавишу для продолжения.

clc

% Вот один из способов формирования такой матрицы A:

n = max(size(t));

for j = 1:n

       A(:,j) = t.^(n-j);

end

pause % Нажмите любую клавишу для продолжения.

       Сравнивая действия, выполняемые в данном разделе демонстрации с текстом, можно составить некоторое представление о языке MATLAB и правилах использования функций.

 

       Подробное описание процедур и функций MATLAB приведено в файле ref_book.pdf.

 

ОПИСАНИЕ ИСХОДНЫХ ДАННЫХ

 

       Для исследования заданы два фрагмента записи электрокардиосигнала (ЭКС). Разные фрагменты ЭКС зарегистрированы у различных людей. Запись проводилась в специальной экранированной камере посредством прецизионного усилителя и вводилась в ПЭВМ с помощью 8 разрядного АЦП с динамическим диапазоном -5 - +5 В. Частота дискретизации для ЭКС составляет 200 Гц. Имена файлов данных ЭКС-ecg1.m, ecg2.m.

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ.

       Данная работа состоит из двух частей: первая часть включает в себя знакомство с пакетом MATLAB, а вторая- изучение спектров физиологических сигналов.

1. Ознакомьтесь с некоторыми возможностями пакета MATLAB с помощью режима демонстрации (команда demo).

2. Изучите основные принципы работы с пакетом, используя в качестве примера файл fftdemo.m. После изучения Вы должны ответить на контрольные вопросы.

       Просмотр исходных данных.

3. Загрузите один из файлов ЭКС с помощью команд fopen ( "имя файла") [открытие файла] и fread [чтение]. {fid=fopen('ecg1.m','r');File=fread(fid);}

4. Просмотрите загруженные данные с помощью команды plot "имя файла" таким образом, чтобы на экране размещалось 5 QRS-комплексов и зарисуйте их. Рекомендуется, если R-зубцы ЭКС направлены вниз, проинвертировать сигнал "имя файла"= -"имя файла". Для того, чтобы обрабатываемые данные не выводились на экран, поставьте в конце строки ";".

5. Присвойте переменной X значения данных с помощью выражения X="имя файла". (MATLAB различает прописные и строчные символы).

6. С помощью команды plot просмотрите X в целом и фрагменты соответствующие характерным элементам ЭКС (QRS-комплекс). Для этого используйте команду plot в следующем виде plot(X(40:200)). По данной команде будет отображаться на весь экран фрагмент с 40 по 200 точку. Для Ваших данных следует выбрать номера точек, между которыми заключен QRS-комплекс. Зарисуйте два различных QRS-комплекса и определите их временные и амплитудные параметры.

       Подготовка данных.

7. Разбейте исходную реализацию на равные фрагменты такой длины, чтобы относительная ошибка оценки спектра (формула 16) не превышала 0,33.

8. С помощью функции detrend удалите из исходных данных тренд. Зарисуйте фрагмент сигнала без удаленного и с удаленным трендом (5 QRS-комплексов).

       Оценка функции спектральной плотности.

9. С помощью процедуры БПФ fft(фрагмент реализации) определите оценку спектральной плотности для каждого из фрагментов с удаленными трендами, полученных в п.7.

10. С помощью функции abs найдите модуль комплексного вектора БПФ.

11. Выполните пп.9 и 10 для одного фрагмента без удаленного тренда. В чем состоит отличие для данных без тренда и с трендом.

12. Усредните полученные данные (формула 21). Постройте оценку спектральной плотности с помощью команды plot.

13. Растяните изображение соответствующим выбором параметров функции plot так, чтобы основная часть энергии спектра занимала половину изображения. Зарисуйте результат.

14. Повторите пункты 6-13 (кроме п.11) для другого файла ЭКС.

15. Для ранее полученных данных найдите максимальную ошибку оценки спектра для отдельных фрагментов реализации путем их сравнения с полученной усредненной оценкой (воспользуйтесь функцией max).

 

 

.                                                (15)

 

СОДЕРЖАНИЕ ОТЧЕТА

 

       Отчет должен содержать наименование и цель работы, графики пп.4, 6, 8, 13 для двух файлов, полученные числовые значения пп.6, 15. Все оси на рисунках должны иметь числовые значения.

ВНИМАНИЕ! При построении спектра рассчитать действительную частоту по оси абсцисс. Числа на оси абсцисс при построении графиков спектров не соответствуют действительной частоте, если не проведено преобразование масштаба.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1. Назначение пакета MATLAB.

2. Запуск пакета и редактирование программ в среде MATLAB.

3. Как получить справку по функциям в среде MATLAB?

4. Представление данных в языке MATLAB.

5. Как ввести данные?

6. Как из произвольного вектора сформировать вектор, содержащий необходимый фрагмент данных?

7. Основные функции обработки сигналов MATLAB.

8. Как вывести полученные данные в виде графика на экран? 

9. Приведите классификацию физических процессов.

10. Дайте определение реализации случайного процесса и ансамбля реализаций. Что является наиболее полной характеристикой случайного процесса.

11. Дайте определение стационарным и эргодическим процессам.

12. Назовите основные характеристики случайных процессов и типичные области применения этих характеристик.

13. Приведите способы определения функций спектральной плотности.

14. Каким образом можно уменьшить ошибку оценки спектральной плотности, полученной финитным преобразованием Фурье?

15. Какие основные операции включает в себя предварительная обработка дискретных исходных данных?

16. Приведите выражение для оценки двусторонней спектральной плотности по дискретным данным.

17. Приведите выражение для оценки односторонней спектральной плотности по дискретным данным.

18. Чем определяются разрешающая способность по частоте и ошибка оценки при оценивании спектральной плотности по дискретным данным.

 


Дата добавления: 2019-02-22; просмотров: 1697; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!