0001 function [d] = GroundRemoval(d,file_name_stub,elevation_list)
0002
0003 disp('GroundRemoval:: Hello from GroundRemoval.');
0004
0005 [home,installeddir]=where_am_i();
0006
0007
0008
0009 ch1 = d.antenna0.receiver.data(:,1);
0010 ch2 = d.antenna0.receiver.data(:,2);
0011 ch3 = d.antenna0.receiver.data(:,3);
0012 ch4 = d.antenna0.receiver.data(:,4);
0013 ch5 = d.antenna0.receiver.data(:,5);
0014 ch6 = d.antenna0.receiver.data(:,6);
0015 ch7 = d.antenna0.receiver.data(:,7);
0016 ch8 = d.antenna0.receiver.data(:,8);
0017
0018 az = d.antenna0.servo.apparent(:,1);
0019 el = round(d.antenna0.servo.apparent(:,2));
0020
0021
0022 for i = 1:length(elevation_list)
0023 elevation_string_list(i) =cellstr(sprintf('%i',elevation_list(i)))
0024 end
0025
0026 for i = 1:length(elevation_list)
0027
0028 data_at_this_el = find(el == elevation_list(i));
0029
0030 az_at_this_el = az(data_at_this_el);
0031
0032
0033
0034 ch1_at_this_el = ch1(data_at_this_el) - nanmedian(ch1(data_at_this_el));
0035 ch2_at_this_el = ch2(data_at_this_el) - nanmedian(ch2(data_at_this_el));
0036 ch3_at_this_el = ch3(data_at_this_el) - nanmedian(ch3(data_at_this_el));
0037 ch4_at_this_el = ch4(data_at_this_el) - nanmedian(ch4(data_at_this_el));
0038 ch5_at_this_el = ch5(data_at_this_el) - nanmedian(ch5(data_at_this_el));
0039 ch6_at_this_el = ch6(data_at_this_el) - nanmedian(ch6(data_at_this_el));
0040 ch7_at_this_el = ch7(data_at_this_el) - nanmedian(ch7(data_at_this_el));
0041 ch8_at_this_el = ch8(data_at_this_el) - nanmedian(ch8(data_at_this_el));
0042
0043
0044
0045
0046 post_fix_stub = [elevation_string_list{i},'gs.txt']
0047
0048 disp('GroundRemoval:: About to open template files, E.g.');
0049 disp(['GroundRemoval:: ',home,'/',installeddir,'/constants/',file_name_stub,'_I',post_fix_stub]);
0050
0051 fid1 = fopen([home,'/',installeddir,'/constants/',file_name_stub,'_I',post_fix_stub]);
0052
0053 data1 = fscanf(fid1, '%f %f', [2 inf]);
0054 fclose(fid1);
0055 data1 = data1';
0056
0057
0058 fid3 = fopen([home,'/',installeddir,'/constants/',file_name_stub,'_Q',post_fix_stub]);
0059 data3 = fscanf(fid3, '%f %f', [2 inf]);
0060 fclose(fid3);
0061 data3 = data3';
0062
0063 fid5 = fopen([home,'/',installeddir,'/constants/',file_name_stub,'_U',post_fix_stub]);
0064 data5 = fscanf(fid5, '%f %f', [2 inf]);
0065 fclose(fid5);
0066 data5 = data5';
0067
0068
0069 disp('GroundRemoval:: template files opened and read.');
0070
0071
0072 I_at_this_el = interp1(data1(:,1), data1(:,2), az_at_this_el, 'spline');
0073 Q_at_this_el = interp1(data3(:,1), data3(:,2), az_at_this_el, 'spline');
0074 U_at_this_el = interp1(data5(:,1), data5(:,2), az_at_this_el, 'spline');
0075
0076 disp('GroundRemoval:: Interpolation complete.');
0077
0078 nd1 = mean(d.antenna0.receiver.noise(:,1));
0079 nd2 = mean(d.antenna0.receiver.noise(:,2));
0080
0081
0082
0083
0084 disp('GroundRemoval:: Removing signal...');
0085
0086 ch1(data_at_this_el) = (ch1_at_this_el - (I_at_this_el/(2*nd1))) + nanmedian(ch1(data_at_this_el));
0087 ch2(data_at_this_el) = (ch2_at_this_el - (Q_at_this_el/(2*nd1))) + nanmedian(ch2(data_at_this_el));
0088 ch3(data_at_this_el) = (ch3_at_this_el - (U_at_this_el/(2*nd1))) + nanmedian(ch3(data_at_this_el));
0089 ch4(data_at_this_el) = (ch4_at_this_el - (Q_at_this_el/(2*nd1))) + nanmedian(ch4(data_at_this_el));
0090 ch5(data_at_this_el) = (ch5_at_this_el - (U_at_this_el/(2*nd2))) + nanmedian(ch5(data_at_this_el));
0091 ch6(data_at_this_el) = (ch6_at_this_el - (Q_at_this_el/(2*nd2))) + nanmedian(ch6(data_at_this_el));
0092 ch7(data_at_this_el) = (ch7_at_this_el - (U_at_this_el/(2*nd2))) + nanmedian(ch7(data_at_this_el));
0093 ch8(data_at_this_el) = (ch8_at_this_el - (I_at_this_el/(2*nd2))) + nanmedian(ch8(data_at_this_el));
0094
0095 disp('GroundRemoval:: Overwriting...');
0096
0097
0098 d.antenna0.receiver.data(:,1) = ch1;
0099 d.antenna0.receiver.data(:,2) = ch2;
0100 d.antenna0.receiver.data(:,3) = ch3;
0101 d.antenna0.receiver.data(:,4) = ch4;
0102 d.antenna0.receiver.data(:,5) = ch5;
0103 d.antenna0.receiver.data(:,6) = ch6;
0104 d.antenna0.receiver.data(:,7) = ch7;
0105 d.antenna0.receiver.data(:,8) = ch8;
0106
0107 end
0108
0109 disp('GroundRemoval:: ... finished');
0110
0111 end