1.03M
Категория: ИнформатикаИнформатика

Компьютерные технологии. Типовое задание

1.

Балтийский государственный технический университет
«ВОЕНМЕХ» им. Д.Ф. Устинова
КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ
типовое задание
MATLAB
IDM 2.0 company

2.

MATLAB
Цель работы:
Ознакомиться с возможностями системы MATLAB.
Научиться создавать приложения с графическим интерфейсом
пользователя для выполнения конкретных математических
задач.
IDM 2.0 company

3.

Задание 1
Запустите Matlab.
Создадим приложение осуществляющее поиск минимального
и максимального элемента массива.
Приложение должно включать следующие возможности:
1. Интерфейс приложения должен содержать формулировку
задачи
2. Интерфейс приложения должен иметь поле для ввода
имени файла содержащего массив
3. Интерфейс приложения должен иметь кнопку «Старт» для
запуска процесса вычисления
4. Интерфейс приложения должен иметь поле для
отображения загруженного массива
5. Интерфейс приложения должен иметь поле для
отображения результата
Подсказка: Текстовый файл для загрузки матрицы. Для просмотра текстового
файла нажмите на восклицательный знак.
IDM 2.0 company

4.

function varargout = Program(varargin)
Создайтеvarargout
функцию, выберите
в меню New> Function.
function
= Program(varargin)
В открывшемся
окне введите название программы.
%глобальные
параметры
%глобальные
параметры
global
hFig
function
varargout = Program(varargin)
global hFig
hTxt1
Создайте
окно
приложения hFig. Его размер и расположение
global
hTxt1
hTxt2
%глобальные
параметры
global
hTxt2
определяются
hTxt3 значением свойства Position графического окна,
global
hFig
global
post1
global
hTxt1
котороеhTxt3
является вектором [x y width height].
global
But1Start
global post1
hTxt2
Здесь xBut1Start
и y - координаты нижнего левого угла рабочей области окна,
global
hTxt4
global
hTxt3
global
а widthhTxt4
и height - ширина и высота рабочей области, соответственно.
hTxt5
global
post1
global
hTxt5
Viv1
global
But1Startобласть" означают, что берется часть окна, ограниченная
Слова "рабочая
global
Viv2
global Viv1
hTxt4
рамкой
и заголовком.
global
global Viv2
hTxt5
%создание
окна приложения
global Viv1
%создание
окна приложения
hFig=figure('Position',[400
250 550 260],'Resize','off');
global Viv2
hFig=figure('Position',[400 250 550 260],'Resize','off');
Создайте первый
элемент
в окне
– надпись hTxt1 «Типовое задание»
%создание
надписи
"Типовое
задание"
%создание
окна
приложения
%создание
надписи "Типовое
задание"
hTxt1=uicontrol(hFig,
'Style','text',...
%стиль элемента
hFig=figure('Position',[400
250 550 260],'Resize','off');
hTxt1=uicontrol(hFig, 'Style','text',...
%стиль
элемента
'BackgroundColor',[0
0 0],...
%цвет фона
'BackgroundColor',[0
0
0],...
'ForegroundColor',[1
1 1],... %цвет фона
текста
%создание надписи "Типовое
задание"
'ForegroundColor',[1
1
1],...
%цвет
'FontSize',[14],...%стиль
%размер
шрифта текста
hTxt1=uicontrol(hFig, 'Style','text',...
элемента
'FontSize',[14],...
%размер
шрифта
'Position',[0 235 550
%положение
'BackgroundColor',[0
025],...
0],...
%цвет
фона в окне приложения
'Position',[0
235
550
25],...
%положение
в окне приложения
'String','Типовое задание');
надписи
'ForegroundColor',[1
1 1],...%текст
%цвет текста
'String','Типовое
задание');
%текст надписи
'FontSize',[14],...
%размер шрифта
%создание
надписи
"Задача:
нахождение
минимального
и
элемента
массива."
Если запустить программу,
то появиться окно
как 25],...
показаномаксимального
на рисунке.в окне
'Position',[0
235 550
%положение
приложения
%создание
надписи "Задача:
нахождение минимального
и%текст
максимального
hTxt2=uicontrol(hFig,
'Style','text',...
'String','Типовое
задание');
надписи элемента массива."
Для
запуска
программы
щёлкнуть
по
пункту
меню
Run.
hTxt2=uicontrol(hFig, 'Style','text',...
'BackgroundColor',[0.8 0.8 0.8],...
'BackgroundColor',[0.8
0.8],...
'ForegroundColor',[0
0 0.8
0],...
%создание надписи "Задача:
нахождение минимального
и максимального элемента массива."
IDM 2.0 hTxt2=uicontrol(hFig,
company
'ForegroundColor',[0
0
0],...
'FontSize',[9],...
'Style','text',...

5.

%создание надписи "Типовое
задание"
'BackgroundColor',[0
0 0],... %цвет фона
hTxt1=uicontrol(hFig, 'ForegroundColor',[1
'Style','text',... %стиль
элемента
1 1],...
%цвет текста
'BackgroundColor',[0
0
0],...
%цвет фона
'FontSize',[14],... %размер шрифта
'ForegroundColor',[1
1],... %положение
%цвет текста
'Position',[0
235 550 125],...
в окне приложения
'FontSize',[14],...
%размер
шрифта
'String','Типовое
%текст
надписи
Добавьте надписи hTxt2 «Задача:
нахождениезадание');
минимального
и максимального
элемента массива.»,
'Position',[0 235 550 25],... %положение в окне приложения
%создание надписи "Задача:
нахождение минимального
максимального
'String','Типовое
задание');и %текст
надписи элемента массива."
hTxt2=uicontrol(hFig, 'Style','text',...
%создание надписи "Задача:
нахождение минимального
и максимального элемента массива."
'BackgroundColor',[0.8
0.8 0.8],...
hTxt2=uicontrol(hFig, 'ForegroundColor',[0
'Style','text',...
0 0],...
'BackgroundColor',[0.8
0.8 0.8],...
'FontSize',[9],...
'ForegroundColor',[0
0],...
'Position',[0
210 550 025],...
'FontSize',[9],...нахождение минимального и максимального элемента массива.');
'String','Задача:
'Position',[0 210 550 25],...
hTxt3 «Введите имя текстового
файла:»
'String','Задача:
нахождение минимального и максимального элемента массива.');
%создание надписи "Введите имя текстового файла:"
hTxt3=uicontrol(hFig, 'Style','text',...
%создание надписи "Введите
имя текстового файла:"
'BackgroundColor',[0
0.9 0],...
hTxt3=uicontrol(hFig, 'ForegroundColor',[1
'Style','text',...
1 1],...
'BackgroundColor',[0
'FontSize',[10],... 0.9 0],...
'ForegroundColor',[1
1],...
'Position',[0
180 273 120],...
'FontSize',[10],...
'String','Введите
имя текстового файла:');
'Position',[0 180 273 20],...
%создание окна ввода имени
файла
'String','Введите
имя текстового файла:');
и
поле
post1
для
ввода
имени
файла.
post1=uicontrol(hFig, 'Style','edit',...
%создание окна ввода имени
файла
'BackgroundColor',[1
1 1],...
post1=uicontrol(hFig, 'FontSize',[10],...
'Style','edit',...
'BackgroundColor',[1
1],...
'Position',[0
160 273 120],...
'FontSize',[10],...
'HorizontalAlignment','left',...
'Position',[0 160 273 20],...
'String','V_A.txt');
'HorizontalAlignment','left',...
%создание кнопки "Старт"
'String','V_A.txt');
But1Start=uicontrol(hFig, 'Style','pushbutton',...
IDM 2.0 company
%создание кнопки "Старт" 'BackgroundColor',[0 0.9 0],...

6.

'ForegroundColor',[1 0.9
1 1],...
'BackgroundColor',[0
0],...
'FontSize',[14],...
'ForegroundColor',[1 1 1],...
'String','Старт',...
'FontSize',[14],...
'Position',[277 160 275 40],...
'String','Старт',...
'Callback','Start');
'Position',[277
Добавьте надписи hTxt4 «Входной
массив A:», 160 275 40],...
'Callback','Start');
%создание надписи "Входной массив A:"
hTxt4=uicontrol(hFig,
'Style','text',...
%создание
надписи "Входной
массив A:"
'BackgroundColor',[1
0 0],...
hTxt4=uicontrol(hFig, 'Style','text',...
'ForegroundColor',[1 0
1 0],...
1],...
'BackgroundColor',[1
'FontSize',[10],... 1 1],...
'ForegroundColor',[1
'Position',[0 134 273 20],...
'FontSize',[10],...
'String','Входной
массив
A:');
'Position',[0
134 273
20],...
'String','Входной массив A:');
%создание
надписи "Результат:"
hTxt5 «Результат:».
hTxt5=uicontrol(hFig,
'Style','text',...
%создание
надписи "Результат:"
'BackgroundColor',[0 0 1],...
hTxt5=uicontrol(hFig, 'Style','text',...
'ForegroundColor',[1 0
1 1],...
1],...
'BackgroundColor',[0
'FontSize',[10],... 1 1],...
'ForegroundColor',[1
'Position',[277 134 275 20],...
'FontSize',[10],...
'String','Результат:');
'Position',[277
134 275 20],...
'String','Результат:');
%создание поля вывода массива A
Viv1=uicontrol(hFig,
'Style','text',...
%создание
поля вывода массива
A
Свойства BackgroundColor
определяет
цвет заднего
фона элемента и задаётся тремя числами
'BackgroundColor',[1
1 1],...
Viv1=uicontrol(hFig,
'Style','text',...
[r(k) g(k) b(k)], которые указывают
интенсивность10красного,
'ForegroundColor',[0
0],... зеленого и синего цветов.
'BackgroundColor',[1
1],...
'FontSize',[10],... 0 0],...
'ForegroundColor',[0
'Position',[0 0 273 134],...
Подсказка: Для'FontSize',[10],...
просмотра предопределенных цветов MATLAB и их
'String','Пусто');
0 273 134],...
представления 'Position',[0
в
формате
RGB
нажмите
на восклицательный знак.
'String','Пусто');
%создание поля вывода результата
Viv2=uicontrol(hFig,
'Style','text',...
%создание
поля вывода результата
'BackgroundColor',[1 1 1],...
'Style','text',...
IDM 2.0 Viv2=uicontrol(hFig,
company
'ForegroundColor',[0 0 0],...

7.

'BackgroundColor',[0 0 1],...
'Style','text',...
'ForegroundColor',[1 0
1 1],...
1],...
'BackgroundColor',[0
'FontSize',[10],... 1 1],...
'ForegroundColor',[1
0 1],...
'Position',[277 134 275 20],...
'FontSize',[10],...
1 1],...
'String','Результат:');
'Position',[277
134
275 20],...
Добавьте поле для вывода
входного массива
Viv1,
'String','Результат:');
75 20],... %создание поля вывода массива
A
);
Viv1=uicontrol(hFig,
'Style','text',...
%создание
поля вывода массива
A
'BackgroundColor',[1
1 1],...
Viv1=uicontrol(hFig,
'Style','text',...
'ForegroundColor',[0 1
0 1],...
0],...
'BackgroundColor',[1
'FontSize',[10],... 0 0],...
'ForegroundColor',[0
1 1],...
'Position',[0 0 273 134],...
'FontSize',[10],...
0 0],...
'String','Пусто');
'Position',[0
0 273 134],...
'String','Пусто');
34],...
%создание
поля
а также поле
длявывода
выводарезультата
результата работы программы Viv2.
Viv2=uicontrol(hFig,
'Style','text',...
%создание
поля вывода результата
'BackgroundColor',[1 1 1],...
Viv2=uicontrol(hFig,
'Style','text',...
'ForegroundColor',[0 1
0 1],...
0],...
'BackgroundColor',[1
'FontSize',[10],... 0 0],...
'ForegroundColor',[0
1 1],...
'Position',[277 0 273 134],...
'FontSize',[10],...
0 0],...
'String',[{'Минимальный
элемент массива А:'} {'Пусто'} {'Максимальный элемент
'Position',[277
0 273 134],...
'String',[{'Минимальный элемент массива А:'} {'Пусто'} {'Максимальный элемент м
134],... end
ый элемент массива А:'} {'Пусто'} {'Максимальный элемент массива А:'} {'Пусто'}]);
end
hTxt5=uicontrol(hFig,
Подсказка: рекомендуется использовать имена переменных используемых в
задании. Соблюдайте стиль элементов в соответствии с заданием.
IDM 2.0 company

8.

%создание окна ввода имени файла
post1=uicontrol(hFig, 'Style','edit',...
'BackgroundColor',[1 1 1],...
'FontSize',[10],...
160
273 20],...
Пришло время добавить'Position',[0
кнопку But1Start
«Старт»
по нажатии на которую должно происходить чтение
'HorizontalAlignment','left',...
массива из файла указанного
в поле post1, вывод считанного массива в поле Viv1, выполнение
'String','V_A.txt');
процедуры поиска минимального и максимального и вывод получившегося результата в поле Viv2.
%создание кнопки "Старт"
But1Start=uicontrol(hFig, 'Style','pushbutton',...
'BackgroundColor',[0 0.9 0],...
'ForegroundColor',[1 1 1],...
'FontSize',[14],...
'String','Старт',...
'Position',[277 160 275 40],...
'Callback','Start');
Таким образом при запуске приложения должно открываться окно представленное на рисунке
%создание надписи "Входной массив A:"
hTxt4=uicontrol(hFig, 'Style','text',...
'BackgroundColor',[1 0 0],...
'ForegroundColor',[1 1 1],...
'FontSize',[10],...
'Position',[0 134 273 20],...
'String','Входной массив A:');
%создание надписи "Результат:"
hTxt5=uicontrol(hFig, 'Style','text',...
'BackgroundColor',[0 0 1],...
1 1],...
Но при нажатии на кнопку'ForegroundColor',[1
«Старт»
ничего
не
происходит,
потому что не описана функция события
'FontSize',[10],...
Callback, которая должна 'Position',[277
выполняться при нажатии.
134 275 20],...
'String','Результат:');
IDM 2.0 company

9.

Перед тем как приступим к описанию функции необходимо объявить глобальные параметры
программы. В самом начале после названия программы добавить строчки:
function varargout = Program(varargin)
%глобальные параметры
global hFig
global hTxt1
global hTxt2
global hTxt3
global post1
global But1Start
global hTxt4
global hTxt5
global Viv1
global Viv2
%создание
приложения
Приступимокна
к программированию
события Callback кнопки «Старт».
hFig=figure('Position',[400 250 550 260],'Resize','off');
Создайте новую функцию Start и опишите глобальные параметры, которые будут использованы в ней,
%создание
надписи
"Типовое
задание"
это поле ввода
имени
файла post1,
поле вывода считанного массива Viv1 и поле вывода результата Viv2.
hTxt1=uicontrol(hFig,
function Start
'Style','text',... %стиль элемента
'BackgroundColor',[0 0 0],... %цвет фона
'ForegroundColor',[1 1 1],... %цвет текста
'FontSize',[14],... %размер шрифта
'Position',[0 235 550 25],... %положение в окне приложения
'String','Типовое задание'); %текст надписи
%глобальные параметры
global post1
global Viv1
global Viv2
%создание надписи "Задача: нахождение минимального и максимального элемента массива."
%считываем
имя документа'Style','text',...
в переменную Doc
hTxt2=uicontrol(hFig,
Doc=get(post1,'String');'BackgroundColor',[0.8 0.8 0.8],...
IDM 2.0 company
'ForegroundColor',[0 0 0],...

10.

function Start
function Start
%глобальные параметры
global post1параметры
%глобальные
function
Start
global
Viv1
post1
Создайте
переменную Doc в которую будет записываться строка символов, (имя входного файла)
global Viv1
Viv2
%глобальные
введённых
в параметры
поле post1.
global
Viv2
global
post1имя документа в переменную Doc
%считываем
global
Viv1
Doc=get(post1,'String');
%считываем
имя документа в переменную Doc
global Viv2
Doc=get(post1,'String');
В переменную
%чтение
файла A запишем массив из файла с именем хранящемся в переменной Doc.
%считываем
имя документа в переменную Doc
A=load(Doc);
%чтение
файла
Doc=get(post1,'String');
A=load(Doc);
%отображение в поле вывода массива A
%чтение
Выведемфайла
считанный
в поле вывода
Viv1. Для этого необходимо преобразовать массив А в
set(Viv1,'String',num2str(A));
%отображение
в полемассив
выводаA массива
A
A=load(Doc);
строку символов str с помощью функции num2str.
set(Viv1,'String',num2str(A));
%алгоритм поиска минимального и максимального элементов массива A
%отображение
в поле вывода массива A
min=A(1); поиска
%алгоритм
минимального и максимального элементов массива A
set(Viv1,'String',num2str(A));
max=A(1);
min=A(1);
for k=1:length(A)
max=A(1);
%алгоритм
поиска минимального и максимального элементов массива A
if A(k)<min
for
k=1:length(A)
min=A(1);
min=A(k);
if A(k)<min
max=A(1);
end min=A(k);
for k=1:length(A)
if A(k)>max
end
if
A(k)<min
max=A(k);
if A(k)>max
min=A(k);
end
end max=A(k);
end end
if A(k)>max
end
max=A(k);
%формирование
текста результата
end
TEXT=[{'Минимальный
массива А:'} {min} {'Максимальный элемент
%формирование
текста элемент
результата
end
массива А:'} {max}];элемент массива А:'} {min} {'Максимальный элемент
TEXT=[{'Минимальный
массива А:'} {max}];
текста результата
%вывод результата
IDM 2.0 %формирование
company

11.

%чтение
файла
Doc=get(post1,'String');
A=load(Doc);
%чтение файла
%отображение
A=load(Doc); в поле вывода массива A
set(Viv1,'String',num2str(A));
Теперь введите алгоритм выполняющий поиск минимального и максимального элементов массива A.
%отображение в поле вывода массива A
%алгоритм
поиска минимального и максимального элементов массива A
set(Viv1,'String',num2str(A));
min=A(1);
%алгоритм поиска минимального и максимального элементов массива A
max=A(1);
min=A(1);
for
k=1:length(A)
max=A(1);
if A(k)<min
for k=1:length(A)
min=A(k);
if A(k)<min
end
min=A(k);
if A(k)>max
end max=A(k);
if A(k)>max
end
max=A(k);
end
end
Выведем
записанные
переменные min и max значения в поле вывода результата Viv2 следующим
%формирование
текста врезультата
end
TEXT=[{'Минимальный
элемент массива А:'} {min} {'Максимальный элемент
образом
%формирование
текста результата
массива
А:'} {max}];
TEXT=[{'Минимальный элемент массива А:'} {min} {'Максимальный элемент
%вывод
массиварезультата
А:'} {max}];
set(Viv2,'String',TEXT);
%вывод результата
end
set(Viv2,'String',TEXT);
end
IDM 2.0 company
Подсказка: Напомним, что алгоритм нахождения минимального и
максимального элементов массива был рассмотрен при изучении Mathcad.

12.

В результате имеем приложение решающее поставленную задачу.
Пример работы приложения представлен на рисунке
IDM 2.0 company

13.

Задание 2
Создадим приложение осуществляющее
построение АКФ, АЧХ и ФЧХ выбранного сигнала.
Приложение должно включать следующие
возможности:
1. Интерфейс приложения должен иметь кнопку
«Старт» для запуска процесса вычисления
2. Интерфейс приложения должен иметь поля
для ввода амплитуды и длительности сигнала
3. Интерфейс приложения должен
предусматривать возможность выбора вида
сигнала
IDM 2.0 company

14.

Листинг программы Program2:
function varargout = Program2(varargin)
%глобальные параметры
global hFig
global hTxt1
global hpanel
global hTxt2
global post1
global hTxt3
global post2
global Check1
global Check2
global Check3
global Check4
global hA1
global hA2
global hA3
global hA4
global But1Start
IDM 2.0 company

15.

global But1Start
hFig=figure('Position',[400 100 550 450],'Resize','off');
hTxt1=uicontrol(hFig,
'Style','text',... %стиль элемента
'BackgroundColor',[0 0 0],... %цвет фона
'ForegroundColor',[1 1 1],... %цвет текста
'FontSize',[14],... %размер шрифта
'Position',[0 425 550 25],... %положение в окне приложения
'String','Типовое задание'); %текст надписи
hpanel=uibuttongroup('Units','pixels',...
'FontSize',[12],...
'Position', [400 12 150 408],...
'BackgroundColor',[0.8 0.8 0.8],...
'Title', 'Сигналы');
hTxt2=uicontrol(hFig,
'Style','text',... %стиль элемента
'BackgroundColor',[0.8 0.8 0.8],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[410 357 130 40],... %положение в окне приложения
'String','Амплитуда'); %текст надписи
post1=uicontrol(hFig,
'Style','edit',... %стиль элемента
'BackgroundColor',[1 1 1],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[410 337 130 40],... %положение в окне приложения
'String','2'); %текст надписи
hTxt3=uicontrol(hFig,
'Style','text',... %стиль элемента
'BackgroundColor',[0.8 0.8 0.8],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[410 297 130 40],... %положение в окне приложения
IDM 2.0 company

16.

'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[410 357 130 40],... %положение в окне приложения
'String','Амплитуда'); %текст надписи
post1=uicontrol(hFig,
'Style','edit',... %стиль элемента
'BackgroundColor',[1 1 1],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[410 337 130 40],... %положение в окне приложения
'String','2'); %текст надписи
hTxt3=uicontrol(hFig,
'Style','text',... %стиль элемента
'BackgroundColor',[0.8 0.8 0.8],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[410 297 130 40],... %положение в окне приложения
'String','Длительность'); %текст надписи
post2=uicontrol(hFig,
'Style','edit',... %стиль элемента
'BackgroundColor',[1 1 1],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[410 277 130 40],... %положение в окне приложения
'String','0.5'); %текст надписи
Check1=uicontrol(hFig,
'Style','radio',... %стиль элемента
'Parent', hpanel,... %внутри группы работает только один
'BackgroundColor',['r'],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[10 65 130 40],... %положение в окне приложения
'String','Прям. имп.'); %текст надписи
Check2=uicontrol(hFig,
'Style','radio',... %стиль элемента
'Parent', hpanel,... %внутри группы работает только один
'BackgroundColor',['y'],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[10 115 130 40],... %положение в окне приложения
IDM 2.0 company

17.

Check2=uicontrol(hFig,
'Style','radio',... %стиль элемента
'Parent', hpanel,... %внутри группы работает только один
'BackgroundColor',['y'],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[10 115 130 40],... %положение в окне приложения
'String','Треуг. имп.'); %текст надписи
Check3=uicontrol(hFig,
'Style','radio',... %стиль элемента
'Parent', hpanel,... %внутри группы работает только один
'BackgroundColor',['b'],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[10 165 130 40],... %положение в окне приложения
'String','Пилооб. имп.+'); %текст надписи
Check4=uicontrol(hFig,
'Style','radio',... %стиль элемента
'Parent', hpanel,... %внутри группы работает только один
'BackgroundColor',['c'],... %цвет фона
'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[10 215 130 40],... %положение в окне приложения
'String','Пилооб. имп.-'); %текст надписи
hA1 = axes('Position', [0.09 0.08 0.6 0.15]);
hA2 = axes('Position', [0.09 0.31 0.6 0.15]);
hA3 = axes('Position', [0.09 0.54 0.6 0.15]);
hA4 = axes('Position', [0.09 0.77 0.6 0.15]);
%создание кнопки "Старт"
But1Start=uicontrol(hFig, 'Style','pushbutton',...
'BackgroundColor',[0 0.9 0],...
'ForegroundColor',[1 1 1],...
IDM 2.0 company
'FontSize',[14],...

18.

'ForegroundColor',[0 0 0],... %цвет текста
'FontSize',[12],... %размер шрифта
'Position',[10 215 130 40],... %положение в окне приложения
'String','Пилооб. имп.-'); %текст надписи
hA1 = axes('Position', [0.09 0.08 0.6 0.15]);
hA2 = axes('Position', [0.09 0.31 0.6 0.15]);
hA3 = axes('Position', [0.09 0.54 0.6 0.15]);
hA4 = axes('Position', [0.09 0.77 0.6 0.15]);
%создание кнопки "Старт"
But1Start=uicontrol(hFig, 'Style','pushbutton',...
'BackgroundColor',[0 0.9 0],...
'ForegroundColor',[1 1 1],...
'FontSize',[14],...
'String','Старт',...
'Position',[410 27 130 40],...
'Callback','Start2');
end
IDM 2.0 company

19.

Листинг программы Start2:
function Start2
global post1
global post2
global Check1
global Check2
global Check3
global Check4
global hA1
global hA2
global hA3
global hA4
Am=str2num(get(post1,'String')); %амплитуда сигнала
D=str2num(get(post2,'String')); %длительность сигнала
dt=0.01; %шаг
t=-D*2:dt:D*2; %интервал построения по оси OX с шагом dt
f=5000*(0:4096)/8192; %частота дискретизации
w=2*pi*f;
ch1=get(Check1, 'value');
ch2=get(Check2, 'value');
ch3=get(Check3, 'value');
ch4=get(Check4, 'value');
if ch1==1
y=Am*rectpuls(t-D/2,D); %одиночный прямоугольный импульс
color='r';
end
if ch2==1
y=Am*tripuls(t-D/2,D,0); %одиночный треугольный импульс
IDM 2.0 company
color='y';

20.

ch1=get(Check1, 'value');
ch2=get(Check2, 'value');
ch3=get(Check3, 'value');
ch4=get(Check4, 'value');
if ch1==1
y=Am*rectpuls(t-D/2,D); %одиночный прямоугольный импульс
color='r';
end
if ch2==1
y=Am*tripuls(t-D/2,D,0); %одиночный треугольный импульс
color='y';
end
if ch3==1
y=Am*tripuls(t-D/2,D,1); %одиночный пилообразный импульс+
color='b';
end
if ch4==1
y=Am*tripuls(t-D/2,D,-1); %одиночный пилообразный импульсcolor='c';
end
[Rss,b]=xcorr(y,'unbiased'); %автокорреляционная функция
Y=fft(y,8192); %преобразование Фурье
AY=abs(Y); %модуль комплексного спектра
PY=phase(Y); %фаза комплексного спектра
axes(hA1);
plot(w,PY(1:4097),color);
xlabel('\omega (фазо-частотная характеристика)'), ylabel('\psi(\omega)');
axes(hA2);
plot(w,AY(1:4097),color);
xlabel('\omega (амплитудно-частотная характеристика)'), ylabel('K(\omega)');
axes(hA3);
plot(b*dt,Rss,color);
IDM 2.0 company
xlabel('\tau (автокорреляционная функция)'),ylabel('S(\tau)');

21.

[Rss,b]=xcorr(y,'unbiased'); %автокорреляционная функция
Y=fft(y,8192); %преобразование Фурье
AY=abs(Y); %модуль комплексного спектра
PY=phase(Y); %фаза комплексного спектра
axes(hA1);
plot(w,PY(1:4097),color);
xlabel('\omega (фазо-частотная характеристика)'), ylabel('\psi(\omega)');
axes(hA2);
plot(w,AY(1:4097),color);
xlabel('\omega (амплитудно-частотная характеристика)'), ylabel('K(\omega)');
axes(hA3);
plot(b*dt,Rss,color);
xlabel('\tau (автокорреляционная функция)'),ylabel('S(\tau)');
axes(hA4);
plot(t,y,color);
xlabel('t (сигнал)'),ylabel('y(t)');
end
IDM 2.0 company
English     Русский Правила