75 lines
1.5 KiB
Matlab
75 lines
1.5 KiB
Matlab
% script for interpolating data of RTS Hannover
|
|
|
|
function output = recordingtime_sync(input, ref)
|
|
|
|
[input_m, input_n] = size(input);
|
|
[ref_m, ref_n] = size(ref);
|
|
|
|
output = zeros(ref_m, input_n);
|
|
|
|
for i = 1 : ref_m
|
|
upper_index = find(input(:,1) > ref(i,1));
|
|
|
|
upper = input(upper_index(1),:);
|
|
|
|
if(upper_index(1) > 1)
|
|
lower = input((upper_index(1)-1),:);
|
|
else
|
|
lower = upper;
|
|
end
|
|
|
|
diff = upper - lower;
|
|
|
|
% normalise angel sym 0
|
|
if(diff(5) > pi)
|
|
diff(5) = diff(5) - 2*pi;
|
|
end
|
|
if(diff(5) < -pi)
|
|
diff(5) = diff(5) + 2*pi;
|
|
end
|
|
|
|
if(diff(6) > pi)
|
|
diff(6) = diff(6) - 2*pi;
|
|
end
|
|
if(diff(6) < -pi)
|
|
diff(6) = diff(6) + 2*pi;
|
|
end
|
|
|
|
if(diff(7) > pi)
|
|
diff(7) = diff(7) - 2*pi;
|
|
end
|
|
if(diff(7) < -pi)
|
|
diff(7) = diff(7) + 2*pi;
|
|
end
|
|
|
|
if(diff(1) == 0)
|
|
rel_time = 0;
|
|
else
|
|
rel_time = (ref(i,1) - lower(1,1)) / diff(1);
|
|
end
|
|
|
|
output(i,:) = lower + rel_time .* diff;
|
|
|
|
% normalise angel sym 0
|
|
if(output(i,5) > pi)
|
|
output(i,5) = output(i,5) - 2*pi;
|
|
end
|
|
if(output(i,5) < -pi)
|
|
output(i,5) = output(i,5) + 2*pi;
|
|
end
|
|
|
|
if(output(i,6) > pi)
|
|
output(i,6) = output(i,6) - 2*pi;
|
|
end
|
|
if(output(i,6) < -pi)
|
|
output(i,6) = output(i,6) + 2*pi;
|
|
end
|
|
|
|
if(output(i,7) > (2*pi))
|
|
output(i,7) = output(i,7) - 2*pi;
|
|
end
|
|
if(output(i,7) < 0.0)
|
|
output(i,7) = output(i,7) + 2*pi;
|
|
end
|
|
|
|
end
|