Листинг программы
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)
Numerator = [0.968979151360103 -0.598862049930572 0.968979151360103];
Denominator = [1 -0.598862049930572 0.937958302720205];
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)
f=filter(Numerator,Denominator,F);
plot(app.UIAxes2,T,f);
end
% Button pushed function: Button_3
function Button_3Pushed(app, event)
Numerator = [0.968979151360103 -0.598862049930572 0.968979151360103];
Denominator = [1 -0.598862049930572 0.937958302720205];
nfft=2048;
F=load('Signal.txt');
Fs = 250;
K=length(F);
f=filter(Numerator,Denominator,F);
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 70]);
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 70]);
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 70]);
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 70]);
ylim(app.UIAxes3,[-10^2 -10^1]);
end
end
end
% Button pushed function: Button_4
function Button_4Pushed(app, event)
Numerator = [0.968979151360103 -0.598862049930572 0.968979151360103];
Denominator = [1 -0.598862049930572 0.937958302720205];
F=load('Signal.txt');
K=length(F);
f=filter(Numerator,Denominator,F);
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,lags,correlation)
end
if TS_2==1
[correlation,lags]=xcorr(f,'coeff',round(K/2));
plot(app.UIAxes4,lags,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 70];
app.UIAxes3.Position = [565 347 533 185];
% Create UIAxes4
app.UIAxes4 = uiaxes(app.UIFigure);
title(app.UIAxes4, 'АКФ')
xlabel(app.UIAxes4, 'dt,с')
ylabel(app.UIAxes4, '')
% 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