0001 function d = fitNTPOffsetSouth(d,servoPPSFlag)
0002
0003
0004
0005 if(isfield(d.antenna0.roach1, 'ntpUSeconds'))
0006 roachOffset= d.antenna0.roach1.ntpUSeconds([1:100:length(d.antenna0.roach1.ntpUSeconds)]);
0007 servoOffset = d.antenna0.servo.ntpUSecond([1:5:length(d.antenna0.servo.ntpUSecond)]);
0008 else
0009 d.antenna0.roach1.ntpUSeconds=zeros(length(d.antenna0.roach1.utc),1);
0010 d.antenna0.servo.ntpUSecond=zeros(length(d.antenna0.roach1.utc)./20,1);
0011 roachOffset= d.antenna0.roach1.ntpUSeconds([1:100:length(d.antenna0.roach1.ntpUSeconds)]);
0012 servoOffset = d.antenna0.servo.ntpUSecond([1:5:length(d.antenna0.servo.ntpUSecond)]);
0013 end
0014 t0Roach=d.antenna0.roach1.utc(1);
0015 t0Servo=d.antenna0.roach1.utc(1);
0016
0017
0018 tendRoach=d.antenna0.roach1.utc(length(d.antenna0.roach1.ntpUSeconds));
0019 roachArray=[0:length(d.antenna0.roach1.ntpUSeconds)-1]./100;
0020 servoArray=[0:length(d.antenna0.servo.ntpUSecond)-1]./5;
0021
0022
0023 servoIndex=[1:5:5*(length(servoOffset))]';
0024 P=polyfit(servoIndex,servoOffset,2);
0025
0026 servoIndex2=[1:length(servoArray)];
0027
0028 if(servoPPSFlag==1)
0029 servoPPSCorrection=polyval(P,servoIndex2);
0030 else
0031 servoPPSCorrection=0;
0032 end
0033
0034 tRoach=t0Roach+roachArray./(24*60*60);
0035 tServo=t0Servo+servoArray./(24*60*60)+servoPPSCorrection./1e6/(24*60*60);
0036
0037 d.antenna0.roach1.utc=tRoach';
0038 d.antenna0.roach2.utc=tRoach';
0039 d.antenna0.servo.utc=tServo';
0040
0041
0042
0043
0044
0045
0046 return