From b9cb47434e96a3ddf66ed33dbb813fc676775785 Mon Sep 17 00:00:00 2001 From: Lewin Probst <info@emirror.de> Date: Fri, 19 Jul 2019 17:31:27 +0200 Subject: [PATCH] Added function that adds the float offset and signal length to the toa data. --- .../+data/addFloatOffsetAndSignalLength.m | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lib/+artoa/+data/addFloatOffsetAndSignalLength.m diff --git a/lib/+artoa/+data/addFloatOffsetAndSignalLength.m b/lib/+artoa/+data/addFloatOffsetAndSignalLength.m new file mode 100644 index 0000000..87d29af --- /dev/null +++ b/lib/+artoa/+data/addFloatOffsetAndSignalLength.m @@ -0,0 +1,50 @@ +function [ correctedToa ] = addFloatOffsetAndSignalLength(pFloatRfb, pToa) +%ADDFLOATOFFSETANDSIGNALLENGTH Adds the float offset, substracts signal length +% +% Parameters: +% pFloatRfb (struct) The RFB file loaded using artoa.load.rfb function. +% pToa (double) The Toa vector. + +%% Initialize return variables +correctedToa = false; + +%% Parameter check + +parameterError = false; + +if (~isstruct(pFloatRfb)) + warning([mfilename ': Given rfb data is not a struct!']); + parameterError = true; +end +if (~isnumeric(pToa)) + warning([mfilename ': Given TOA data is not numeric!']); + parameterError = true; +end + +if (parameterError) + return; +else + clear parameterError; +end + +%% Add offset and subtract signal length + +signalLength = pFloatRfb.FLOAT.signal_length; +floatOffset = pFloatRfb.FLOAT.offset(:, 6); +schedule = pFloatRfb.FLOAT.schedule; +step = schedule / 24; +cycle = pFloatRfb.FLOAT.cycle; +cycleBegin = artoa.convert.dmy2rd(cycle(6), cycle(5), cycle(4)) ... + + artoa.convert.hms2rd(cycle(7), cycle(8), 0); +cycleEnd = artoa.convert.dmy2rd(cycle(13), cycle(12), cycle(11)) ... + + artoa.convert.hms2rd(cycle(14), cycle(15), 0); +toaDate = repmat([cycleBegin:step:cycleEnd]', 6, 1); + +offsetCorrection = ... + ((floatOffset(2) - floatOffset(1)) / (cycleEnd - cycleBegin)) ... + * (toaDate - min(toaDate)) + floatOffset(1); + +correctedToa = pToa + offsetCorrection - signalLength; + +end + -- GitLab