-
Notifications
You must be signed in to change notification settings - Fork 0
/
SPO2Detector.m
36 lines (34 loc) · 857 Bytes
/
SPO2Detector.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function [logicSPO]=SPO2Detector(sp)
j=1;
pace=50; %cada medio segundo saco una media de los valores
for i=1:pace:length(sp)
mediasp(j)=mean(sp(i:i+pace-1));
j=j+1;
end
slope=diff(mediasp);
slope2=downsample(slope,2);
slope2=upsample(slope2,2);
k=0;
n=1;
minequivalente=120;
contador=0;
while(k<length(slope2))
signal=slope2(k+1:k+minequivalente);
[PKSSPO,LOCSSPO]=findpeaks(signal,'MinPeakHeight',0.01);
intervalos=diff(LOCSSPO);
for i=1:length(intervalos)
if(intervalos(i)<5)
contador=contador+1;
end
end
if(contador>=3)
logicSPO(n)=1;
else
logicSPO(n)=0;
end
k=k+120;
contador=0;
n=n+1;
intervalos=[];
end
end