0001 function d = assembleAlphaStreams(d,selection)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 if strcmp(selection,'CLASSIC')
0012 d = DD(d);
0013 end
0014 if strcmp(selection,'FILTERED')
0015 if d.antenna0.receiver.utc(1) < tstr2mjd('01-oct-2011:00:00:00')
0016 disp('assembleAlphaStreams:: Cannot apply FILTERED option to data before October 2011')
0017 else
0018 d = filtered(d);
0019 end
0020 end
0021 if strcmp(selection,'POLONLY')
0022 d = PolOnly(d);
0023 end
0024
0025 end
0026
0027 function d = DD(d)
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053 if isfield(d.antenna0.receiver,'data')
0054 if size(d.antenna0.receiver.data,2) == 10
0055 disp('assembleAlphaStreams::DD:: Already assembled the alpha streams!')
0056 return;
0057 end
0058 end
0059 swd = d.antenna0.receiver.switchData;
0060 d.antenna0.receiver.data = zeros(size(swd,1),10);
0061
0062
0063 d.antenna0.receiver.data(:,1) = 1/2*(swd(:,2) + swd(:,3));
0064 d.antenna0.receiver.data(:,2) = 1/2*(swd(:,1) + swd(:,4));
0065
0066 d.antenna0.receiver.data(:,9) = 1/2*(swd(:,22) + swd(:,23));
0067 d.antenna0.receiver.data(:,10) = 1/2*(swd(:,21) + swd(:,24));
0068
0069 d.antenna0.receiver.data(:,3) = 1/2*(swd(:,5) -swd(:,6) + swd(:,8)-swd(:,7));
0070 d.antenna0.receiver.data(:,4) = -1/2*(swd(:,10)-swd(:,9) + swd(:,11)-swd(:,12));
0071
0072 d.antenna0.receiver.data(:,5) = 1/2*(swd(:,13)-swd(:,14)+swd(:,16)-swd(:,15));
0073 d.antenna0.receiver.data(:,6) = -1/2*(swd(:,17)-swd(:,18)+swd(:,20)-swd(:,19));
0074
0075 d.antenna0.receiver.data(:,7) = 1/2*(d.antenna0.receiver.data(:,3)+d.antenna0.receiver.data(:,5));
0076 d.antenna0.receiver.data(:,8) = 1/2*(d.antenna0.receiver.data(:,4)+d.antenna0.receiver.data(:,6));
0077
0078 end
0079
0080 function d = filtered(d)
0081
0082
0083
0084
0085
0086
0087
0088 if isfield(d.antenna0.receiver,'data')
0089 if size(d.antenna0.receiver.data,2) == 8
0090 disp('assembleAlphaStreams::filtered:: Already assembled the data streams!')
0091 return;
0092 end
0093 end
0094
0095 data = d.antenna0.receiver.data;
0096 d.antenna0.receiver.data = zeros(size(data,1),8);
0097
0098 d.antenna0.receiver.data(:,1) = data(:,1);
0099
0100 d.antenna0.receiver.data(:,2) = -data(:,2);
0101 d.antenna0.receiver.data(:,3) = -data(:,3);
0102
0103 d.antenna0.receiver.data(:,4) = -data(:,4);
0104 d.antenna0.receiver.data(:,5) = data(:,5);
0105
0106 d.antenna0.receiver.data(:,6) = -(data(:,2)+data(:,4))/2;
0107 d.antenna0.receiver.data(:,7) = (data(:,5)-data(:,3))/2;
0108
0109 d.antenna0.receiver.data(:,8) = data(:,6);
0110
0111 end
0112
0113
0114 function d = PolOnly(d)
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137 if isfield(d.antenna0.receiver,'data')
0138 if size(d.antenna0.receiver.data,2) == 8
0139 disp('assembleAlphaStreams::PolOnly:: Already assembled the alpha streams!')
0140 return;
0141 end
0142 end
0143
0144 swd = d.antenna0.receiver.switchData;
0145 d.antenna0.receiver.data = zeros(size(swd,1),8);
0146
0147
0148 d.antenna0.receiver.data(:,1) = 1/4*(swd(:,1) + swd(:,4) - swd(:,2) - swd(:,3));
0149
0150 d.antenna0.receiver.data(:,8) = 1/4*(swd(:,21) + swd(:,24) - swd(:,22) - swd(:,23));
0151
0152 d.antenna0.receiver.data(:,2) = 1/2*(swd(:,5) -swd(:,6) + swd(:,8)-swd(:,7));
0153 d.antenna0.receiver.data(:,3) = -1/2*(swd(:,10)-swd(:,9) + swd(:,11)-swd(:,12));
0154
0155 d.antenna0.receiver.data(:,4) = 1/2*(swd(:,13)-swd(:,14)+swd(:,16)-swd(:,15));
0156 d.antenna0.receiver.data(:,5) = -1/2*(swd(:,17)-swd(:,18)+swd(:,20)-swd(:,19));
0157
0158 d.antenna0.receiver.data(:,6) = 1/2*(d.antenna0.receiver.data(:,2)+d.antenna0.receiver.data(:,4));
0159 d.antenna0.receiver.data(:,7) = 1/2*(d.antenna0.receiver.data(:,3)+d.antenna0.receiver.data(:,5));
0160
0161 end