Skip to content
Snippets Groups Projects
rawToa2PhaseRefTime.m 1.24 KiB
function [ toaRelativeToPhaseRefTime ] = rawToa2PhaseRefTime(pFloatRfb)
%RAWTOA2PHASEREFTIME Converts the raw toa to travel time relative to phasereftime
%   Takes the raw toa given in the rfb file (travel time relative to window
%   start) and converts it to the travel time relative to the phasereftime.
%   
%   To convert it, it adds the windowstart offset to the raw toa. 
%   Parameters:
%       pFloatRfb (struct) The RFB file loaded using artoa.load.rfb function.

%% Initialize return variables
toaRelativeToPhaseRefTime = false;

%% Parameter check

parameterError = false;


if (~isstruct(pFloatRfb))
    warning([mfilename ': Given rfb data is not a struct!']);
    parameterError = true;
end

if (parameterError)
    return;
else
    clear parameterError;
end

%% Collect required data
% gets the toa converted to a column vector with one column
toa = pFloatRfb.DATA(:, pFloatRfb.VARIABLE_LIST.time_of_arrival);
toa = toa(:);

windowStart = pFloatRfb.FLOAT.windowstart;
windowsPerPhase = pFloatRfb.FLOAT.windowsperphase;
toaPerWindow = pFloatRfb.FLOAT.toaperwindow;
window = ones(length(toa), 1) * [1:1:windowsPerPhase];

for i = 1:length(windowStart)
    toa(window == i) = toa(window == i) + (windowStart(i) * 60);
end

toaRelativeToPhaseRefTime = toa;

end