Files
Dirigent/matlab/getNumberOfIntersections.m
2017-12-19 20:49:30 +01:00

38 lines
1.1 KiB
Matlab

function count = getNumberOfIntersections(signal, timestamps, value)
is_smaller_value = false;
is_bigger_value = false;
window_poi = [];
window_ts = [];
p_idx = 1;
for j = 1:length(signal)
%is measurement smaller?
if(signal(j) < value)
%was the last measurement bigger and the current smaller?
if(is_bigger_value == true)
window_poi(p_idx) = signal(j);
window_ts(p_idx) = interp1(signal(j-1 : j),timestamps(j-1 : j),value);
p_idx = p_idx + 1;
end
is_smaller_value = true;
is_bigger_value = false;
else
%was the last measurement smaller and the current bigger?
if(is_smaller_value == true)
window_poi(p_idx) = signal(j);
window_ts(p_idx) = interp1(signal(j-1 : j),timestamps(j-1 : j),value);
p_idx = p_idx + 1;
end
is_smaller_value = false;
is_bigger_value = true;
end
end
count = length(window_poi);
end