Home > cbassSouthFunctions > CJCThesisFunctions > hartrao > generatePowerSpectraBothRoaches.m

generatePowerSpectraBothRoaches

PURPOSE ^

first varargin is graphics flag.

SYNOPSIS ^

function [dataOut]=generatePowerSpectraBothRoaches(d,varargin)

DESCRIPTION ^

first varargin is graphics flag. 
second is name of file to save graphics ass

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [dataOut]=generatePowerSpectraBothRoaches(d,varargin)
0002 
0003 %first varargin is graphics flag.
0004 %second is name of file to save graphics ass
0005 try
0006     graphics=varargin(1)
0007 catch 
0008     graphics =0
0009 end
0010 
0011 try
0012     filename=varargin(2)
0013     saveFile=1;
0014 catch 
0015     filename=[];
0016     saveFile=0;
0017 end
0018 
0019 display('Starting Roach 1')
0020 %get time vectors
0021 timeroach=(d.antenna0.roach1.utc-d.antenna0.roach1.utc(1)).*24;
0022 timetemps=d.antenna0.thermal.utc-d.antenna0.thermal.utc(1);
0023 timelsTemps= timetemps([1:5:length(timetemps)]).*24;
0024 timeCryoTemps=timetemps.*24;
0025 lengthvec = length(d.antenna0.roach1.RR)
0026 timeroachshort=timeroach(1:lengthvec-0);
0027 
0028 %%%%%%%%%%%%%%%%%5get the data from the data we've read in
0029 ll=mean(d.antenna0.roach1.LL((1:lengthvec-0),4:60),2);
0030 loadl =mean(d.antenna0.roach1.load2((1:lengthvec-0),4:60),2);
0031 rr=mean(d.antenna0.roach1.RR((1:lengthvec-0),4:60),2);
0032 loadr =mean(d.antenna0.roach1.load1((1:lengthvec-0),4:60),2);
0033 Q=mean(d.antenna0.roach1.Q((1:lengthvec-0),4:60),2);
0034 U=mean(d.antenna0.roach1.U((1:lengthvec-0),4:60),2);
0035 
0036 
0037 
0038 % %get time vectors
0039 % timeroach=(d.antenna0.roach2.utc-d.antenna0.roach2.utc(1)).*24;
0040 % timetemps=d.antenna0.thermal.utc-d.antenna0.thermal.utc(1);
0041 % timelsTemps= timetemps([1:5:length(timetemps)]).*24;
0042 % lengthvec = length(d.antenna0.roach2.RR)
0043 % timeroachshort=timeroach(1:lengthvec-0);
0044 %
0045 % %%%%%%%%%%%%%%%%%5get the data from the data we've read in
0046 % ll=mean(d.antenna0.roach2.LL((1:lengthvec-0),4:60),2);
0047 % loadl =mean(d.antenna0.roach2.load2((1:lengthvec-0),4:60),2);
0048 % rr=mean(d.antenna0.roach2.RR((1:lengthvec-0),4:60),2);
0049 % loadr =mean(d.antenna0.roach2.load1((1:lengthvec-0),4:60),2);
0050 % Q=mean(d.antenna0.roach2.Q((1:lengthvec-0),4:60),2);
0051 % U=mean(d.antenna0.roach2.U((1:lengthvec-0),4:60),2);
0052 
0053 llmean=ll-mean(ll);
0054 rrmean=rr-mean(rr);
0055 qmean=Q-mean(Q);
0056 umean=U-mean(U);
0057 
0058 
0059 %For rfactor use these
0060 rfactorR=mean(rr)./mean(loadr)
0061 rfactorL=mean(ll)./mean(loadl)
0062 rfactorR1=rfactorR;
0063 rfactorL1=rfactorL;
0064 %and calculate the balanced powers
0065 skyminusloadleft = ll-rfactorR.*loadl;
0066 skyminusloadright = rr-rfactorL.*loadr;
0067 %skyminusloadleft = ll./loadl;
0068 %skyminusloadright = rr./loadr;
0069 skyminusloadleftmean = skyminusloadleft-mean(skyminusloadleft);
0070 skyminusloadrightmean = skyminusloadright-mean(skyminusloadright);
0071 
0072 %now to get rid of the effect of the load we subtract the two balanced arms
0073 %from each other. This should only leave the differential gain variations
0074 %in the data and should remove the variations in the cold plate
0075 amplifierfnoise = skyminusloadleft-skyminusloadright;
0076 amplifierfnoisemean = amplifierfnoise-mean(amplifierfnoise);
0077 
0078 
0079 
0080 %%%%%%%% get the temperature data%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0081 templs=d.antenna0.thermal.lsTemperatureSensors(:,2);
0082 tempsmean = templs-mean(templs);
0083 tempsCryo=d.antenna0.thermal.ccTemperatureLoad;
0084 
0085 
0086 
0087 
0088 Fs=100; %sampling rate of the data
0089 FsTemps = 1; %sampling rate of the temps
0090 T = 1/Fs;                     % Sample time
0091 L = length(ll);                     % Length of signal
0092 t = (0:L-1)*T; 
0093 TTemps = 1/FsTemps;                     % Sample time
0094 LTemps = length(templs);                     % Length of signal
0095 tTemps = (0:LTemps-1)*TTemps; 
0096 NFFT = 2^nextpow2(L); % Next power of 2 from length of y
0097 NFFTtemps = 2^(nextpow2(LTemps))
0098 f = Fs/2*linspace(0,1,NFFT/2+1);
0099 ftemps = FsTemps/2*linspace(0,1,NFFTtemps/2+1);
0100 
0101 YRR = fft(rrmean,NFFT)/L;
0102 YLL = fft(llmean,NFFT)/L;
0103 YQ = fft(qmean,NFFT)/L;
0104 YU = fft(umean,NFFT)/L;
0105 YRRBalanced = fft(skyminusloadrightmean,NFFT)/L;
0106 YLLBalanced = fft(skyminusloadleftmean,NFFT)/L;
0107 Ytemps = fft(tempsmean,NFFTtemps)/LTemps;
0108 %r2 = mean(skyminusloadrightmean)./mean(skyminusloadleftmean);
0109 Yamplifier = fft(skyminusloadrightmean-skyminusloadleftmean,NFFT)/L;
0110 YI = fft((skyminusloadrightmean+skyminusloadleftmean)./2,NFFT)/L;
0111 YIUnstabilized = fft((rrmean+llmean)./2,NFFT)/L;
0112 
0113 YRRb = 2*abs(YRR(1:NFFT/2+1));
0114 YLLb = 2*abs(YLL(1:NFFT/2+1));
0115 YQb = 2*abs(YQ(1:NFFT/2+1));
0116 YUb = 2*abs(YU(1:NFFT/2+1));
0117 YRRBalancedb = 2*abs(YRRBalanced(1:NFFT/2+1));
0118 YLLBalancedb = 2*abs(YLLBalanced(1:NFFT/2+1));
0119 Ytempsb = 2*abs(Ytemps(1:NFFTtemps/2+1));
0120 %r2 = mean(skyminusloadrightmean)./mean(skyminusloadleftmean);
0121 Yamplifierb = 2*abs(Yamplifier(1:NFFT/2+1));
0122 
0123 bin_size=100;
0124 YRRbin=bin(YRRb,bin_size);
0125 YLLbin=bin(YLLb,bin_size);
0126 YQbin=bin(YQb,bin_size);
0127 YUbin=bin(YUb,bin_size);
0128 YRRBalancedbin=bin(YRRBalancedb,bin_size);
0129 YLLBalancedbin=bin(YLLBalancedb,bin_size);
0130 Ytempsbin=bin(Ytempsb,bin_size);
0131 Yamplifierbin=bin(Yamplifierb,bin_size);
0132 fbin = bin(f,bin_size);
0133 ftempsbin = bin(ftemps,bin_size);
0134 
0135 
0136 
0137 
0138 %dataFreqRoach=[f' 2.*abs(YRRBalanced(1:NFFT/2+1)) 2*abs(YLLBalanced(1:NFFT/2+1)) 2*abs(YQb(1:NFFT/2+1)) 2*abs(YUb(1:NFFT/2+1)) ];
0139 
0140 
0141 dataFreqRoach1=[f' 2.*abs(YRRBalanced(1:NFFT/2+1)) 2*abs(YLLBalanced(1:NFFT/2+1)) 2*abs(YQb(1:NFFT/2+1)) 2*abs(YUb(1:NFFT/2+1)) 2.*abs(YRR(1:NFFT/2+1)) 2*abs(YLL(1:NFFT/2+1)) 2*abs(YI(1:NFFT/2+1)) 2*abs(YIUnstabilized(1:NFFT/2+1))];
0142 dataTimeRoach1=[timeroach skyminusloadrightmean skyminusloadleftmean];
0143 
0144 
0145 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%End ROACH 1
0146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0147 %get time vectors
0148 
0149 display('Starting Roach 2')
0150 timeroach=(d.antenna0.roach1.utc-d.antenna0.roach2.utc(1)).*24;
0151 timetemps=d.antenna0.thermal.utc-d.antenna0.thermal.utc(1);
0152 timelsTemps= timetemps([1:5:length(timetemps)]).*24;
0153 timeCryoTemps=timetemps.*24;
0154 lengthvec = length(d.antenna0.roach2.RR)
0155 timeroachshort=timeroach(1:lengthvec-0);
0156 
0157 %%%%%%%%%%%%%%%%%5get the data from the data we've read in
0158 ll=mean(d.antenna0.roach2.LL((1:lengthvec-0),4:60),2);
0159 loadl =mean(d.antenna0.roach2.load2((1:lengthvec-0),4:60),2);
0160 rr=mean(d.antenna0.roach2.RR((1:lengthvec-0),4:60),2);
0161 loadr =mean(d.antenna0.roach2.load1((1:lengthvec-0),4:60),2);
0162 Q=mean(d.antenna0.roach2.Q((1:lengthvec-0),4:60),2);
0163 U=mean(d.antenna0.roach2.U((1:lengthvec-0),4:60),2);
0164 
0165 
0166 
0167 llmean=ll-mean(ll);
0168 rrmean=rr-mean(rr);
0169 qmean=Q-mean(Q);
0170 umean=U-mean(U);
0171 
0172 
0173 %For rfactor use these
0174 rfactorR=mean(rr)./mean(loadr)
0175 rfactorL=mean(ll)./mean(loadl)
0176 
0177 rfactorR2=rfactorR;
0178 rfactorL2=rfactorL;
0179 %and calculate the balanced powers
0180 skyminusloadleft = ll-rfactorR.*loadl;
0181 skyminusloadright = rr-rfactorL.*loadr;
0182 %skyminusloadleft = ll./loadl;
0183 %skyminusloadright = rr./loadr;
0184 skyminusloadleftmean = skyminusloadleft-mean(skyminusloadleft);
0185 skyminusloadrightmean = skyminusloadright-mean(skyminusloadright);
0186 
0187 %now to get rid of the effect of the load we subtract the two balanced arms
0188 %from each other. This should only leave the differential gain variations
0189 %in the data and should remove the variations in the cold plate
0190 amplifierfnoise = skyminusloadleft-skyminusloadright;
0191 amplifierfnoisemean = amplifierfnoise-mean(amplifierfnoise);
0192 
0193 
0194 
0195 %%%%%%%% get the temperature data%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0196 templs=d.antenna0.thermal.lsTemperatureSensors(:,2);
0197 tempsmean = templs-mean(templs);
0198 tempsCryo=d.antenna0.thermal.ccTemperatureLoad;
0199 
0200 
0201 
0202 
0203 Fs=100; %sampling rate of the data
0204 FsTemps = 1; %sampling rate of the temps
0205 T = 1/Fs;                     % Sample time
0206 L = length(ll);                     % Length of signal
0207 t = (0:L-1)*T; 
0208 TTemps = 1/FsTemps;                     % Sample time
0209 LTemps = length(templs);                     % Length of signal
0210 tTemps = (0:LTemps-1)*TTemps; 
0211 NFFT = 2^nextpow2(L); % Next power of 2 from length of y
0212 NFFTtemps = 2^(nextpow2(LTemps))
0213 f = Fs/2*linspace(0,1,NFFT/2+1);
0214 ftemps = FsTemps/2*linspace(0,1,NFFTtemps/2+1);
0215 
0216 YRR = fft(rrmean,NFFT)/L;
0217 YLL = fft(llmean,NFFT)/L;
0218 YQ = fft(qmean,NFFT)/L;
0219 YU = fft(umean,NFFT)/L;
0220 YRRBalanced = fft(skyminusloadrightmean,NFFT)/L;
0221 YLLBalanced = fft(skyminusloadleftmean,NFFT)/L;
0222 Ytemps = fft(tempsmean,NFFTtemps)/LTemps;
0223 %r2 = mean(skyminusloadrightmean)./mean(skyminusloadleftmean);
0224 Yamplifier = fft(skyminusloadrightmean-skyminusloadleftmean,NFFT)/L;
0225 YI = fft((skyminusloadrightmean+skyminusloadleftmean)./2,NFFT)/L;
0226 YIUnstabilized = fft((rrmean+llmean)./2,NFFT)/L;
0227 
0228 YRRb = 2*abs(YRR(1:NFFT/2+1));
0229 YLLb = 2*abs(YLL(1:NFFT/2+1));
0230 YQb = 2*abs(YQ(1:NFFT/2+1));
0231 YUb = 2*abs(YU(1:NFFT/2+1));
0232 YRRBalancedb = 2*abs(YRRBalanced(1:NFFT/2+1));
0233 YLLBalancedb = 2*abs(YLLBalanced(1:NFFT/2+1));
0234 Ytempsb = 2*abs(Ytemps(1:NFFTtemps/2+1));
0235 %r2 = mean(skyminusloadrightmean)./mean(skyminusloadleftmean);
0236 Yamplifierb = 2*abs(Yamplifier(1:NFFT/2+1));
0237 
0238 bin_size=100;
0239 YRRbin=bin(YRRb,bin_size);
0240 YLLbin=bin(YLLb,bin_size);
0241 YQbin=bin(YQb,bin_size);
0242 YUbin=bin(YUb,bin_size);
0243 YRRBalancedbin=bin(YRRBalancedb,bin_size);
0244 YLLBalancedbin=bin(YLLBalancedb,bin_size);
0245 Ytempsbin=bin(Ytempsb,bin_size);
0246 Yamplifierbin=bin(Yamplifierb,bin_size);
0247 fbin = bin(f,bin_size);
0248 ftempsbin = bin(ftemps,bin_size);
0249 
0250 
0251 
0252 
0253 %dataFreqRoach=[f' 2.*abs(YRRBalanced(1:NFFT/2+1)) 2*abs(YLLBalanced(1:NFFT/2+1)) 2*abs(YQb(1:NFFT/2+1)) 2*abs(YUb(1:NFFT/2+1)) ];
0254 
0255 
0256 dataFreqRoach2=[f' 2.*abs(YRRBalanced(1:NFFT/2+1)) 2*abs(YLLBalanced(1:NFFT/2+1)) 2*abs(YQb(1:NFFT/2+1)) 2*abs(YUb(1:NFFT/2+1)) 2.*abs(YRR(1:NFFT/2+1)) 2*abs(YLL(1:NFFT/2+1)) 2*abs(YI(1:NFFT/2+1)) 2*abs(YIUnstabilized(1:NFFT/2+1))];
0257 dataTimeRoach2=[timeroach skyminusloadrightmean skyminusloadleftmean];
0258 
0259 
0260 
0261 
0262 
0263 
0264 dataTimeTempLs=[timelsTemps templs];
0265 dataTimeTempCryo=[timeCryoTemps tempsCryo];
0266 %graphics =cell2mat(graphics);
0267 
0268 
0269 
0270 dataOut.dataFreqRoach1=dataFreqRoach1;
0271 dataOut.dataFreqRoach2=dataFreqRoach2;
0272 dataOut.dataTimeRoach1=dataTimeRoach1;
0273 dataOut.dataTimeRoach2=dataTimeRoach2;
0274 dataOut.dataTimeTempLs=dataTimeTempLs;
0275 dataOut.dataTimeTempCryo=dataTimeTempCryo;
0276 dataOut.rFactorR1=rfactorR1;
0277 dataOut.rFactorL1=rfactorL1;
0278 dataOut.rFactorR2=rfactorR2;
0279 dataOut.rFactorL2=rfactorL2;
0280 
0281 
0282 if(graphics==1)
0283     %%% and let's do some plotting
0284     titlestring = 'Power Spectrum'
0285     figure
0286     subplot(414)
0287     loglog(dataFreqRoach(:,1),dataFreqRoach(:,4))
0288     hold all
0289     loglog(dataFreqRoach(:,1),dataFreqRoach(:,5))
0290     grid on
0291     title('Polarisation')
0292     subplot(413)
0293     plot(dataTimeRoach(:,1),dataTimeRoach(:,2))
0294     hold all
0295     plot(dataTimeRoach(:,1),dataTimeRoach(:,3))
0296     %legend('RCP','LCP')
0297     xlabel('Time [Hr]')
0298     ylabel('BU')
0299     titlestring=['Time Series: ']%,scheduleString]
0300     title(titlestring)
0301     ylim('auto')
0302     grid on
0303     subplot(412)
0304     plot(dataTimeTempCryo(:,1),dataTimeTempCryo(:,2))
0305     xlabel('Time [Hr]')
0306     ylabel('Temperature [K]')
0307     title('Load/Sky Temperature')
0308     grid on
0309     ylim('auto')
0310     subplot(411)
0311     loglog(dataFreqRoach(:,1),dataFreqRoach(:,2))
0312     hold all
0313     loglog(dataFreqRoach(:,1),dataFreqRoach(:,3))
0314     grid on
0315     legend('RCP','LCP','Location','SouthWest')
0316     xlabel('Time [Hr]')
0317     ylabel('BU')
0318     %titlestring=['Noise Power Spec: ',tsplit{i,1},'->',tsplit{i,2},' : ',scheduleString]
0319     title('Intensity')
0320     if(saveFile==1)
0321         print('-depsc',varargin{2})
0322     end
0323    % ylim(ylimPow)
0324 end

Generated on Sun 14-Jun-2015 17:12:45 by m2html © 2005