Скачиваний:
128
Добавлен:
25.12.2019
Размер:
1.23 Mб
Скачать

Листинг программы

classdef App < matlab.apps.AppBase

% Properties that correspond to app components

properties (Access = public)

UIFigure matlab.ui.Figure

UIAxes matlab.ui.control.UIAxes

UIAxes2 matlab.ui.control.UIAxes

UIAxes3 matlab.ui.control.UIAxes

UIAxes4 matlab.ui.control.UIAxes

Button_3 matlab.ui.control.Button

ButtonGroup matlab.ui.container.ButtonGroup

Button_2 matlab.ui.control.RadioButton

Button_5 matlab.ui.control.RadioButton

Button_4 matlab.ui.control.Button

ButtonGroup_2 matlab.ui.container.ButtonGroup

Button_6 matlab.ui.control.RadioButton

Button_7 matlab.ui.control.RadioButton

ButtonGroup_3 matlab.ui.container.ButtonGroup

Button_8 matlab.ui.control.RadioButton

Button_9 matlab.ui.control.RadioButton

Button_10 matlab.ui.control.RadioButton

end

% Callbacks that handle component events

methods (Access = private)

% Code that executes after component creation

function startupFcn(app)

F = load("Signal.txt");

Fs = 250;

K=length(F);

t=1/Fs;

tmax=K*t-t;

T=0:t:tmax;

plot(app.UIAxes,T,F)

L=6;

f=zeros(1,K);

for K=L:K

f(K)=0.968979151360102708423482908983714878559*F(K)-0.598862049930572459821576103422557935119*F(K-1)+0.968979151360102708423482908983714878559*F(K-2)-f(K)+0.598862049930572459821576103422557935119*f(K-1)-0.937958302720205416846965817967429757118*f(K-2);

end

plot(app.UIAxes2,T,f);

end

% Button pushed function: Button_3

function Button_3Pushed(app, event)

nfft=2048;

F=load('Signal.txt');

Fs = 250;

K=length(F);

L=6;

f=zeros(1,K);

for K=L:K

f(K)=0.968979151360102708423482908983714878559*F(K)-0.598862049930572459821576103422557935119*F(K-1)+0.968979151360102708423482908983714878559*F(K-2)-f(K)+0.598862049930572459821576103422557935119*f(K-1)-0.937958302720205416846965817967429757118*f(K-2);

end

TS_1=get(app.Button_6,'Value');

TS_2=get(app.Button_7,'Value');

TO_1=get(app.Button_8,'Value');

TO_2=get(app.Button_9,'Value');

TO_3=get(app.Button_10,'Value');

TM_1=get(app.Button_5,'Value');

TM_2=get(app.Button_2,'Value');

if TS_1==1

if TO_1 == 1

[pxx,SPM] = periodogram(F,rectwin(K),nfft,Fs);

end

if TO_2 == 1

[pxx,SPM] = periodogram(F,tukeywin(K),nfft,Fs);

end

if TO_3 == 1

[pxx,SPM] = periodogram(F,hann(K),nfft,Fs);

end

if TM_1 == 1

set(app.UIAxes3,'yscale','linear')

plot(app.UIAxes3,SPM,pxx);

xlim(app.UIAxes3,[0 125]);

ylim(app.UIAxes3,[0 0.4]);

end

if TM_2 == 1

set(app.UIAxes3,'yscale','log')

plot(app.UIAxes3,SPM,10*log10(pxx));

xlim(app.UIAxes3,[0 125]);

ylim(app.UIAxes3,[-10^2 -10^0]);

end

end

if TS_2==1

if TO_1 == 1

[pxx,SPM] = periodogram(f,rectwin(K),nfft,Fs);

end

if TO_2 == 1

[pxx,SPM] = periodogram(f,tukeywin(K),nfft,Fs);

end

if TO_3 == 1

[pxx,SPM] = periodogram(f,hann(K),nfft,Fs);

end

if TM_1 == 1

set(app.UIAxes3,'yscale','linear')

plot(app.UIAxes3,SPM,pxx);

xlim(app.UIAxes3,[0 15]);

ylim(app.UIAxes3,[0 0.03]);

end

if TM_2 == 1

set(app.UIAxes3,'yscale','log')

plot(app.UIAxes3,SPM,10*log10(pxx));

xlim(app.UIAxes3,[0 125]);

ylim(app.UIAxes3,[-10^2 -10^1]);

end

end

end

% Button pushed function: Button_4

function Button_4Pushed(app, event)

F=load('Signal.txt');

K=length(F);

L=6;

f=zeros(1,K);

for K=L:K

f(K)=0.968979151360102708423482908983714878559*F(K)-0.598862049930572459821576103422557935119*F(K-1)+0.968979151360102708423482908983714878559*F(K-2)-f(K)+0.598862049930572459821576103422557935119*f(K-1)-0.937958302720205416846965817967429757118*f(K-2);

end

TS_1=get(app.Button_6,'Value');

TS_2=get(app.Button_7,'Value');

if TS_1==1

[correlation,lags]=xcorr(F,'coeff',round(K/2));

plot(app.UIAxes4,correlation)

end

if TS_2==1

[correlation,lags]=xcorr(f,'coeff',round(K/2));

plot(app.UIAxes4,correlation)

end

end

end

% Component initialization

methods (Access = private)

% Create UIFigure and components

function createComponents(app)

% Create UIFigure and hide until all components are created

app.UIFigure = uifigure('Visible', 'off');

app.UIFigure.Position = [100 100 1126 548];

app.UIFigure.Name = 'Курсовой проект (вариант 2_2)';

% Create UIAxes

app.UIAxes = uiaxes(app.UIFigure);

title(app.UIAxes, 'Исходный сигнал')

xlabel(app.UIAxes, 't,с')

ylabel(app.UIAxes, 'ЭКГ, мВ')

app.UIAxes.XLim = [0 2.5];

app.UIAxes.YLim = [-1 1.5];

app.UIAxes.Position = [17 347 533 185];

% Create UIAxes2

app.UIAxes2 = uiaxes(app.UIFigure);

title(app.UIAxes2, 'Отфильтрованный сигнал')

xlabel(app.UIAxes2, 't,с')

ylabel(app.UIAxes2, 'ЭКГ, мВ')

app.UIAxes2.XLim = [0 2.5];

app.UIAxes2.YLim = [-1 1.5];

app.UIAxes2.Position = [17 150 533 185];

% Create UIAxes3

app.UIAxes3 = uiaxes(app.UIFigure);

title(app.UIAxes3, 'СПМ')

xlabel(app.UIAxes3, 'f,Гц')

ylabel(app.UIAxes3, 'Вт*с')

app.UIAxes3.XLim = [0 125];

app.UIAxes3.Position = [565 347 533 185];

% Create UIAxes4

app.UIAxes4 = uiaxes(app.UIFigure);

title(app.UIAxes4, 'АКФ')

xlabel(app.UIAxes4, 'dt,с')

ylabel(app.UIAxes4, '')

app.UIAxes4.Position = [586 150 512 185];

% Create Button_3

app.Button_3 = uibutton(app.UIFigure, 'push');

app.Button_3.ButtonPushedFcn = createCallbackFcn(app, @Button_3Pushed, true);

app.Button_3.Position = [896 112 123 22];

app.Button_3.Text = 'Периодиограмма';

% Create ButtonGroup

app.ButtonGroup = uibuttongroup(app.UIFigure);

app.ButtonGroup.Title = 'Масштаб';

app.ButtonGroup.Position = [44 48 190 89];

% Create Button_2

app.Button_2 = uiradiobutton(app.ButtonGroup);

app.Button_2.Text = 'Логарифмический масштаб';

app.Button_2.Position = [7 21 176 22];

% Create Button_5

app.Button_5 = uiradiobutton(app.ButtonGroup);

app.Button_5.Text = 'Линейный';

app.Button_5.Position = [7 43 79 22];

app.Button_5.Value = true;

% Create Button_4

app.Button_4 = uibutton(app.UIFigure, 'push');

app.Button_4.ButtonPushedFcn = createCallbackFcn(app, @Button_4Pushed, true);

app.Button_4.Position = [716 111 123 22];

app.Button_4.Text = 'АКФ';

% Create ButtonGroup_2

app.ButtonGroup_2 = uibuttongroup(app.UIFigure);

app.ButtonGroup_2.Title = 'Фильтрация';

app.ButtonGroup_2.Position = [252 47 207 90];

% Create Button_6

app.Button_6 = uiradiobutton(app.ButtonGroup_2);

app.Button_6.Text = 'До фильтрации';

app.Button_6.Position = [11 44 108 22];

app.Button_6.Value = true;

% Create Button_7

app.Button_7 = uiradiobutton(app.ButtonGroup_2);

app.Button_7.Text = 'После фильтрации';

app.Button_7.Position = [11 22 128 22];

% Create ButtonGroup_3

app.ButtonGroup_3 = uibuttongroup(app.UIFigure);

app.ButtonGroup_3.Title = 'Сглаживающее окно';

app.ButtonGroup_3.Position = [481 47 201 89];

% Create Button_8

app.Button_8 = uiradiobutton(app.ButtonGroup_3);

app.Button_8.Text = 'Прямоугольное';

app.Button_8.Position = [11 43 108 22];

app.Button_8.Value = true;

% Create Button_9

app.Button_9 = uiradiobutton(app.ButtonGroup_3);

app.Button_9.Text = 'Тьюки';

app.Button_9.Position = [11 21 65 22];

% Create Button_10

app.Button_10 = uiradiobutton(app.ButtonGroup_3);

app.Button_10.Text = 'Ханнинга';

app.Button_10.Position = [11 -1 74 22];

% Show the figure after all components are created

app.UIFigure.Visible = 'on';

end

end

% App creation and deletion

methods (Access = public)

% Construct app

function app = App

% Create UIFigure and components

createComponents(app)

% Register the app with App Designer

registerApp(app, app.UIFigure)

% Execute the startup function

runStartupFcn(app, @startupFcn)

if nargout == 0

clear app

end

end

% Code that executes before app deletion

function delete(app)

% Delete UIFigure when app is deleted

delete(app.UIFigure)

end

end

end

Соседние файлы в папке Курсовая (Вариант 2-2)