0001 function [dataFreqRoach,dataTimeRoach,dataTimeTempLs,dataTimeTempCryo]=generatePowerSpectra(d,varargin)
0002
0003
0004
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 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
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
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 llmean=ll-mean(ll);
0052 rrmean=rr-mean(rr);
0053 qmean=Q-mean(Q);
0054 umean=U-mean(U);
0055
0056
0057
0058 rfactorR=mean(rr)./mean(loadr)
0059 rfactorL=mean(ll)./mean(loadl)
0060
0061
0062 skyminusloadleft = ll-rfactorR.*loadl;
0063 skyminusloadright = rr-rfactorL.*loadr;
0064
0065
0066 skyminusloadleftmean = skyminusloadleft-mean(skyminusloadleft);
0067 skyminusloadrightmean = skyminusloadright-mean(skyminusloadright);
0068
0069
0070
0071
0072 amplifierfnoise = skyminusloadleft-skyminusloadright;
0073 amplifierfnoisemean = amplifierfnoise-mean(amplifierfnoise);
0074
0075
0076
0077
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;
0086 FsTemps = 1;
0087 T = 1/Fs;
0088 L = length(ll);
0089 t = (0:L-1)*T;
0090 TTemps = 1/FsTemps;
0091 LTemps = length(templs);
0092 tTemps = (0:LTemps-1)*TTemps;
0093 NFFT = 2^nextpow2(L);
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
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
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
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
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
0158 xlabel('Time [Hr]')
0159 ylabel('BU')
0160 titlestring=['Time Series: ']
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
0180 title('Intensity')
0181 if(saveFile==1)
0182 print('-depsc',varargin{2})
0183 end
0184
0185 end