0001 function [K_best,sky_res,load_res,d] = load_correct(d)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 for chan=1:6
0016
0017 temp = [d.antenna0.receiver.data(:,chan) d.antenna0.thermal.coldLoad];
0018 temp(d.flags.fast(:,chan)) = [];
0019
0020
0021 load_res = temp(:,2)-mean(temp(:,2));
0022
0023
0024 sky_res = temp(:,1);
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 for i=0:100
0037 load_shift = circshift(load_res,i);
0038 index = i+101;
0039 value(index) = (dot((sky_res - load_shift), load_shift));
0040 ivalue(index) = i;
0041 end
0042
0043
0044 [H,I]=max(value);
0045 required_shift = ivalue(I);
0046
0047 d.antenna0.thermal.coldLoad = circshift(d.antenna0.thermal.coldLoad,required_shift);
0048 load_res = circshift(load_res,required_shift);
0049 test_function = @(x) (std((sky_res - x*load_res)));
0050
0051 [x,f_val] = fminsearch(test_function, 1);
0052
0053 K_best = x;
0054
0055
0056 blah = K_best*(d.antenna0.thermal.coldLoad - mean(d.antenna0.thermal.coldLoad(~d.flags.fast(:,chan))));
0057
0058 corrected = d.antenna0.receiver.data(:,chan) - blah;
0059 original = d.antenna0.receiver.data(:,chan);
0060 d.antenna0.receiver.data(:,chan)=corrected;
0061
0062
0063 corrected(d.flags.fast(:,chan)) = 0;
0064 original(d.flags.fast(:,chan)) = 0;
0065
0066
0067 d.antenna0.thermal.coldLoad = circshift(d.antenna0.thermal.coldLoad,-required_shift);
0068 end
0069
0070 return;
0071