Home > cbassSouthFunctions > CJCThesisFunctions > generatePowerSpectra.m

generatePowerSpectra

PURPOSE ^

first varargin is graphics flag.

SYNOPSIS ^

function [dataFreqRoach,dataTimeRoach,dataTimeTempLs,dataTimeTempCryo]=generatePowerSpectra(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 [dataFreqRoach,dataTimeRoach,dataTimeTempLs,dataTimeTempCryo]=generatePowerSpectra(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 %get time vectors
0019 timeroach=(d.antenna0.roach1.utc-d.antenna0.roach1.utc(1)).*24;
0020 timetemps=d.antenna0.thermal.utc-d.antenna0.thermal.utc(1);
0021 timelsTemps= timetemps([1:5:length(timetemps)]).*24;
0022 timeCryoTemps=timetemps.*24;
0023 lengthvec = length(d.antenna0.roach1.RR)
0024 timeroachshort=timeroach(1:lengthvec-0);
0025 
0026 %%%%%%%%%%%%%%%%%5get the data from the data we've read in
0027 ll=mean(d.antenna0.roach1.LL((1:lengthvec-0),4:60),2);
0028 loadl =mean(d.antenna0.roach1.load2((1:lengthvec-0),4:60),2);
0029 rr=mean(d.antenna0.roach1.RR((1:lengthvec-0),4:60),2);
0030 loadr =mean(d.antenna0.roach1.load1((1:lengthvec-0),4:60),2);
0031 Q=mean(d.antenna0.roach1.Q((1:lengthvec-0),4:60),2);
0032 U=mean(d.antenna0.roach1.U((1:lengthvec-0),4:60),2);
0033 
0034 
0035 
0036 % %get time vectors
0037 % timeroach=(d.antenna0.roach2.utc-d.antenna0.roach2.utc(1)).*24;
0038 % timetemps=d.antenna0.thermal.utc-d.antenna0.thermal.utc(1);
0039 % timelsTemps= timetemps([1:5:length(timetemps)]).*24;
0040 % lengthvec = length(d.antenna0.roach2.RR)
0041 % timeroachshort=timeroach(1:lengthvec-0);
0042 %
0043 % %%%%%%%%%%%%%%%%%5get the data from the data we've read in
0044 % ll=mean(d.antenna0.roach2.LL((1:lengthvec-0),4:60),2);
0045 % loadl =mean(d.antenna0.roach2.load2((1:lengthvec-0),4:60),2);
0046 % rr=mean(d.antenna0.roach2.RR((1:lengthvec-0),4:60),2);
0047 % loadr =mean(d.antenna0.roach2.load1((1:lengthvec-0),4:60),2);
0048 % Q=mean(d.antenna0.roach2.Q((1:lengthvec-0),4:60),2);
0049 % U=mean(d.antenna0.roach2.U((1:lengthvec-0),4:60),2);
0050 
0051 llmean=ll-mean(ll);
0052 rrmean=rr-mean(rr);
0053 qmean=Q-mean(Q);
0054 umean=U-mean(U);
0055 
0056 
0057 %For rfactor use these
0058 rfactorR=mean(rr)./mean(loadr)
0059 rfactorL=mean(ll)./mean(loadl)
0060 
0061 %and calculate the balanced powers
0062 skyminusloadleft = ll-rfactorR.*loadl;
0063 skyminusloadright = rr-rfactorL.*loadr;
0064 %skyminusloadleft = ll./loadl;
0065 %skyminusloadright = rr./loadr;
0066 skyminusloadleftmean = skyminusloadleft-mean(skyminusloadleft);
0067 skyminusloadrightmean = skyminusloadright-mean(skyminusloadright);
0068 
0069 %now to get rid of the effect of the load we subtract the two balanced arms
0070 %from each other. This should only leave the differential gain variations
0071 %in the data and should remove the variations in the cold plate
0072 amplifierfnoise = skyminusloadleft-skyminusloadright;
0073 amplifierfnoisemean = amplifierfnoise-mean(amplifierfnoise);
0074 
0075 
0076 
0077 %%%%%%%% get the temperature data%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0078 templs=d.antenna0.thermal.lsTemperatureSensors(:,2);
0079 tempsmean = templs-mean(templs);
0080 tempsCryo=d.antenna0.thermal.ccTemperatureLoad;
0081 
0082 
0083 
0084 
0085 Fs=100; %sampling rate of the data
0086 FsTemps = 1; %sampling rate of the temps
0087 T = 1/Fs;                     % Sample time
0088 L = length(ll);                     % Length of signal
0089 t = (0:L-1)*T; 
0090 TTemps = 1/FsTemps;                     % Sample time
0091 LTemps = length(templs);                     % Length of signal
0092 tTemps = (0:LTemps-1)*TTemps; 
0093 NFFT = 2^nextpow2(L); % Next power of 2 from length of y
0094 NFFTtemps = 2^(nextpow2(LTemps))
0095 f = Fs/2*linspace(0,1,NFFT/2+1);
0096 ftemps = FsTemps/2*linspace(0,1,NFFTtemps/2+1);
0097 
0098 YRR = fft(rrmean,NFFT)/L;
0099 YLL = fft(llmean,NFFT)/L;
0100 YQ = fft(qmean,NFFT)/L;
0101 YU = fft(umean,NFFT)/L;
0102 YRRBalanced = fft(skyminusloadrightmean,NFFT)/L;
0103 YLLBalanced = fft(skyminusloadleftmean,NFFT)/L;
0104 Ytemps = fft(tempsmean,NFFTtemps)/LTemps;
0105 %r2 = mean(skyminusloadrightmean)./mean(skyminusloadleftmean);
0106 Yamplifier = fft(skyminusloadrightmean-skyminusloadleftmean,NFFT)/L;
0107 YI = fft((skyminusloadrightmean+skyminusloadleftmean)./2,NFFT)/L;
0108 YIUnstabilized = fft((rrmean+llmean)./2,NFFT)/L;
0109 
0110 YRRb = 2*abs(YRR(1:NFFT/2+1));
0111 YLLb = 2*abs(YLL(1:NFFT/2+1));
0112 YQb = 2*abs(YQ(1:NFFT/2+1));
0113 YUb = 2*abs(YU(1:NFFT/2+1));
0114 YRRBalancedb = 2*abs(YRRBalanced(1:NFFT/2+1));
0115 YLLBalancedb = 2*abs(YLLBalanced(1:NFFT/2+1));
0116 Ytempsb = 2*abs(Ytemps(1:NFFTtemps/2+1));
0117 %r2 = mean(skyminusloadrightmean)./mean(skyminusloadleftmean);
0118 Yamplifierb = 2*abs(Yamplifier(1:NFFT/2+1));
0119 
0120 bin_size=100;
0121 YRRbin=bin(YRRb,bin_size);
0122 YLLbin=bin(YLLb,bin_size);
0123 YQbin=bin(YQb,bin_size);
0124 YUbin=bin(YUb,bin_size);
0125 YRRBalancedbin=bin(YRRBalancedb,bin_size);
0126 YLLBalancedbin=bin(YLLBalancedb,bin_size);
0127 Ytempsbin=bin(Ytempsb,bin_size);
0128 Yamplifierbin=bin(Yamplifierb,bin_size);
0129 fbin = bin(f,bin_size);
0130 ftempsbin = bin(ftemps,bin_size);
0131 
0132 
0133 
0134 
0135 %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)) ];
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)) 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))];
0139 dataTimeRoach=[timeroach skyminusloadrightmean skyminusloadleftmean];
0140 dataTimeTempLs=[timelsTemps templs];
0141 dataTimeTempCryo=[timeCryoTemps tempsCryo];
0142 graphics =cell2mat(graphics);
0143 if(graphics==1)
0144     %%% and let's do some plotting
0145     titlestring = 'Power Spectrum'
0146     figure
0147     subplot(414)
0148     loglog(dataFreqRoach(:,1),dataFreqRoach(:,4))
0149     hold all
0150     loglog(dataFreqRoach(:,1),dataFreqRoach(:,5))
0151     grid on
0152     title('Polarisation')
0153     subplot(413)
0154     plot(dataTimeRoach(:,1),dataTimeRoach(:,2))
0155     hold all
0156     plot(dataTimeRoach(:,1),dataTimeRoach(:,3))
0157     %legend('RCP','LCP')
0158     xlabel('Time [Hr]')
0159     ylabel('BU')
0160     titlestring=['Time Series: ']%,scheduleString]
0161     title(titlestring)
0162     ylim('auto')
0163     grid on
0164     subplot(412)
0165     plot(dataTimeTempCryo(:,1),dataTimeTempCryo(:,2))
0166     xlabel('Time [Hr]')
0167     ylabel('Temperature [K]')
0168     title('Load/Sky Temperature')
0169     grid on
0170     ylim('auto')
0171     subplot(411)
0172     loglog(dataFreqRoach(:,1),dataFreqRoach(:,2))
0173     hold all
0174     loglog(dataFreqRoach(:,1),dataFreqRoach(:,3))
0175     grid on
0176     legend('RCP','LCP','Location','SouthWest')
0177     xlabel('Time [Hr]')
0178     ylabel('BU')
0179     %titlestring=['Noise Power Spec: ',tsplit{i,1},'->',tsplit{i,2},' : ',scheduleString]
0180     title('Intensity')
0181     if(saveFile==1)
0182         print('-depsc',varargin{2})
0183     end
0184    % ylim(ylimPow)
0185 end

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