Дипломная работа: Портативная система сбора данных о здоровье человека

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

counter=0;

endif

counter=counter+1;

endif

case 3

if (vNewIRed<vIRed)

if(counter<stepCheck)

if (vIRed>errorVIRed)

counter=0;

errorVRed=vRed;

errorVIRed=vIRed;

tK4=k-1;

endif

else

if (v2IRed<errorVIRed)

v4Red=errorVRed;

v4IRed=errorVIRed;

flag=0;

nakR=[nakR v1Red v2Red v3Red v4Red];

nakIR=[nakIR v1IRed v2IRed v3IRed v4IRed];

tK=[tK tK1 tK2 tK3 tK4];

else

v1Red=v3Red;

v1IRed=v3IRed;

v2Red=errorVRed;

v2IRed=errorVIRed;

tK1=tK3;tK2=tK4;flag=2;

endif

counter=0;

endif

counter=counter+1;

endif

endswitch

vRed=vNewRed;

vIRed=vNewIRed;

endfor

%Удаляемпервыйвычесленныйотчет

nakR=nakR(5:end-8);nakIR=nakIR(5:end-8);tK=tK(5:end-8);

RedDc=nakR(1:4:end);

RedAc=nakR(4:4:end)-RedDc;

IRedDc=nakIR(1:4:end);

IRedAc=nakIR(4:4:end)-IRedDc;

Ratio=(RedAc./RedDc)./(IRedAc./IRedDc);

SpO2=104-17*Ratio;

mean_Spo2=sum(SpO2)/length(SpO2);

%Heart rate measurement

HRM_time=tK(8:4:(end-8));

HRM=[];

for m=1:length(HRM_time)-1

HRM=[HRM 60/(HRM_time(m+1)-HRM_time(m))*Fs];

endfor

HRM_mean=mean(HRM);

figure;

plot(0:length(HRM)-1,[HRM],'-ob'),grid,title('HRM')

xlabel('interval,n'),ylabel('HR, beats/min')

legend(['HRM mean=' num2str(HRM_mean)])

figure;

hold on

plot(1:length(ppgIRed30s),fliplr(ppgIRed30s),'-r')

plot(1:length(ppgRed30s),fliplr(ppgRed30s),'-b'),grid

%legend('Red light','IR light')

legend('IR light')

xlabel('t'),ylabel('Light reflection coefficient')

hold off

figure;

hold on

plot(1:length(ppgIRed30s),fliplr(ppgIRed30s),'-r')

plot(length(ppgRed30s)-tK+1,(nakIR),'-ok')

plot(1:length(ppgRed30s),fliplr(ppgRed30s),'-b'),grid

plot(length(ppgRed30s)-tK+1,(nakR),'-ok')

xlabel('t'),ylabel('Light reflection coefficient')

%legend('Red light PPG','Max and Min of func ','IR light PPG')

legend('IR light PPG','Max and Min of func ')

hold off

if 1

figure;

plot(Ratio),grid

endif

if 0

figure;

hold on

plot(nakR),grid

plot(nakIR),grid

title('nakr')

hold off

endif

if 1

figure;

plot(0:length(SpO2)-1,SpO2,'-ob'),grid

xlabel('T,n'),ylabel('Spo2,%')

legend(['mean value Spo2 = ' num2str(mean_Spo2) '%'])

%title('SpO2')

endif

endif

ppgData.ppgRed30s=ppgRed30s;

ppgData.ppgIRed30s=ppgIRed30s;

ppgData.nakR=nakR;

ppgData.nakIR=nakIR;

save -mat7-binary 'ppg_data.mat' 'ppgData';