Home > cbassSouthFunctions > CJCThesisFunctions > hartrao > generatePowerSpectraBothRoachesTempScaled.m

generatePowerSpectraBothRoachesTempScaled

PURPOSE ^

function to take a strecth of data and generate a temperature scaled power

SYNOPSIS ^

function [dataOut]=generatePowerSpectraBothRoachesTempScaled(d,varargin)

DESCRIPTION ^

function to take a strecth of data and generate a temperature scaled power
spectra. It will use the cold load temperature to scale the data

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

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

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