МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра БТС
отчет
по лабораторной работе №11
по дисциплине «ПСОБМД»
Тема: Вариабельность сердечного ритма
Вариант 4
Студентка гр. 7501 |
|
Фалевская А.А. |
Студент гр. 7501 |
|
Исаков А.О. |
Преподаватель |
|
Ровша М.В. |
Санкт-Петербург
2020
Цель работы: ознакомление с частотными методами анализа ритмов вариабельности сердечного ритма, сравнительная оценка параметрических и непараметрических методов спектрального анализа.
Основные теоретические положения:
Анализ вариабельности сердечного ритма (ВСР) основан на расчете оценок статистических и частотных характеристик последовательностей интервалов между сокращениями сердца (кардиоинтервалов). Одним из наиболее распространенных подходов является частотный анализ ВСР, суть которого заключается в расчете спектральных оценок сигнала и определении по ним суммарных мощностей в трех диапазонах частот:
• VLF (Very Low Frequency) с частотой 0,003..0,04 Гц;
• LF (Low Frequency) с частотой 0,04..0,15 Гц;
• HF (High Frequency) с частотой 0,15..0,4 Гц.
Перед расчетом спектра последовательность кардиоинтервалов преобразуется в равномерно дискретизированный сигнал с частотой отсчетов 4 Гц, для чего используют кусочно-полиномиальную сплайн-интерполяцию.
Известны два основных подхода к получению спектральных оценок:
• непараметрические методы, основанные на преобразовании Фурье;
• параметрические методы, основанные на модели авторегрессии (АР).
Код разработанной программы
% головная программа как функция
function R11_P1()
global hAxes3 hAxes5 RR4Hz Fs rb1 hSlider6 hEdit7
% создание рабочего окна
figure('Position',[200,50,1000,700])
% создание полей для вывода графиков
hAxes3=axes('Units','pixels','Position',[50,50,250,250]);
hAxes5=axes('Units','pixels','Position',[500,50,250,250]);
hAxes2=axes('Units','pixels','Position',[50,330,900,150]);
hAxes1=axes('Units','pixels','Position',[50,510,900,150]);
% создание группы "радиокнопок"
hGroup4=uibuttongroup('Units','pixels','Position',[330 240 95 60]);
rb1=uicontrol('Style','Radio','String','Periodogram',...
'Position',[5 10 90 20],'parent',hGroup4);
rb2=uicontrol('Style','Radio','String','Welch method',...
'Position',[5 30 90 20],'parent',hGroup4);
hR11_P2=@R11_P2;
set(hGroup4,'SelectionChangeFcn',hR11_P2);
set(hGroup4,'SelectedObject',[]);
% создание ползунка
hSlider6=uicontrol('Style','Slider','Position',[780 280 100 20]);
hR11_P3=@R11_P3;
set(hSlider6,'Callback',hR11_P3);
set(hSlider6,'Min',0,'Max',20);
% создание поля редактирования
hEdit7=uicontrol('Style','edit','Position',[810 250 70 20],...
'Backgroundcolor',[1 1 1],'HorizontalAlignment','left');
hTxt8=uicontrol('Style','text','String','P =',...
'Position',[780 245 30 20],'Backgroundcolor',[1 1 1]);
% построение ритмограммы в 1 поле
RR=load('R11-04.txt');
NRR=length(RR);
axes(hAxes1)
RRmax=max(RR)*1.2;
set(hAxes1,'XLim',[0 NRR],'YLim',[0 RRmax]);
hold on
for i=1:NRR
x(1)=i;
x(2)=i;
R(1)=0;
R(2)=RR(i);
plot(x,R);
end
% расчет графика равномерно дисректизированного сигнала
t=0;
for i=1:NRR
t=t+RR(i);
tRR(i)=t;
end
sRR=csaps(tRR,RR,1);
% вывод графика равномерно дисректизированного сигнала во 2 поле
axes(hAxes2)
Fs=4;
T=1/Fs;
tsRR=0:T:tRR(NRR);
RR4Hz=ppval(sRR,tsRR);
set(hAxes2,'XLim',[0 tRR(NRR)],'YLim',[0 RRmax]);
hold on
plot(tsRR,RR4Hz);
end
% функция для расчета спектра и показателей ВСР
function R11_P2(h,Sel)
global hAxes3 RR4Hz Fs rb1
nfft=2048;
RR0=detrend(RR4Hz)*1000;
df=Fs/nfft;
Fmax=0.5;
Nf=fix(Fmax/df);
% расчет спектра и построение СПМ в 3 поле
axes(hAxes3)
if Sel.NewValue==rb1
window=hamming(length(RR4Hz));
[Pxx,f]=periodogram(RR0,window,nfft,Fs);
plot(f(1:Nf),Pxx(1:Nf))
else
Nw=1000;
noverlap=100;
window=hamming(Nw);
[Pxx,f]=pwelch(RR0,window,noverlap,nfft,Fs);
plot(f(1:Nf),Pxx(1:Nf))
end
Ymax=max(Pxx(1:Nf))*1.3;
set(hAxes3,'YLim',[0 Ymax]);
% расчет показателей VLF, LF, HF
flim=[0.003 0.04 0.15 0.4];
VLF=0, LF=0, HF=0;
i=0, f=0;
while f<=flim(4)
f=df*i;
i=i+1;
if f>=flim(1) && f<flim(2)
VLF=VLF+Pxx(i)*df;
elseif f>=flim(2) && f<flim(3)
LF=LF+Pxx(i)*df;
elseif f>=flim(3)
HF=HF+Pxx(i)*df;
end
end
% вывод показателей VLF, LF, HF
VLF=round(VLF);
dy=Ymax/10;
text(0.3,Ymax-dy,['VLF=' num2str(VLF) 'ms^2']);
LF=round(LF);
dy=Ymax/10;
text(0.3,Ymax-2*dy,['LF=' num2str(LF) 'ms^2']);
HF=round(HF);
dy=Ymax/10;
text(0.3,Ymax-3*dy,['LF=' num2str(HF) 'ms^2']);
end
% расчет спектра АР с помощью ползунка
function R11_P3(h,Sel)
global hSlider6 hEdit7 RR4Hz Fs hAxes5
P=round(get(hSlider6,'Value'));
if P==0
P=1;
end
set(hEdit7,'String',num2str(P));
nfft=2048;
RR0=detrend(RR4Hz)*1000;
df=Fs/nfft;
Fmax=0.5;
Nf=fix(Fmax/df);
% расчет и вывод СПМ по методу Берга в 5 поле
axes(hAxes5)
[Pxx,f]=pburg(RR0,P,nfft,Fs);
plot(f(1:Nf),Pxx(1:Nf))
Ymax=max(Pxx(1:Nf))*1.3;
set(hAxes5,'YLim',[0 Ymax]);
% расчет показателей VLF, LF, HF
flim=[0.003 0.04 0.15 0.4];
VLF=0, LF=0, HF=0;
i=0, f=0;
while f<=flim(4)
f=df*i;
i=i+1;
if f>=flim(1) && f<flim(2)
VLF=VLF+Pxx(i)*df;
elseif f>=flim(2) && f<flim(3)
LF=LF+Pxx(i)*df;
elseif f>=flim(3)
HF=HF+Pxx(i)*df;
end
end
% вывод показателей VLF, LF, HF
VLF=round(VLF);
dy=Ymax/10;
text(0.3,Ymax-dy,['VLF=' num2str(VLF) 'ms^2']);
LF=round(LF);
dy=Ymax/10;
text(0.3,Ymax-2*dy,['LF=' num2str(LF) 'ms^2']);
HF=round(HF);
dy=Ymax/10;
text(0.3,Ymax-3*dy,['LF=' num2str(HF) 'ms^2']);
end
Результат отображения программы
Рисунок 1 – СПМ по периодограммному методу
Рисунок 2 – СПМ по методу Уэлча при размере сегмента Nw = 200
Рисунок 3 – СПМ по методу Уэлча при размере сегмента Nw = 500
Рисунок 4 – СПМ по методу Уэлча при размере сегмента Nw = 1000
Рисунок 5 – СПМ по АР-модели при порядке модели P = 5
Рисунок 6 – СПМ по АР-модели при порядке модели P = 10
Рисунок 7 – СПМ по АР-модели при порядке модели P = 20
Выводы:
Известны два основных подхода к получению спектральных оценок при анализе вариабельности ВСР: непараметрические, основанные на преобразовании Фурье, и параметрические, основанные на модели авторегрессии (АР). В лабораторной работе были использованы оба метода, получение спектральных оценок по периодограммному методу, методу Уэлча и методу авторегрессии.
Можно сказать, что СПМ, полученная по методу Уэлча, наиболее повторяет СПМ по периодограммному методу при размере сегмента Nw = 500. В модели авторегрессии СПМ рассчитывается по методу Берга, одним из параметров которого является порядок модели АР. Меняя этот параметр с помощью ползунка, получаем разные значения показателей VLF, LF, HF. Наиболее оптимальным оказался также порядок модели P = 10.