38 lines
1.1 KiB
Matlab
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
|
|
|
|
|
|
|