0001 function [dataOut]=SouthChannelPowerSpectra(d,varargin)
0002
0003
0004
0005
0006
0007
0008
0009 try
0010 graphics=varargin(1)
0011 catch
0012 graphics =0
0013 end
0014
0015 try
0016 filename=varargin(2)
0017 saveFile=1;
0018 catch
0019 filename=[];
0020 saveFile=0;
0021 end
0022
0023 display('SouthChannelPowerSpectra:: Starting Roach 1')
0024
0025 timeroach=(d.antenna0.roach1.utc-d.antenna0.roach1.utc(1)).*24;
0026 timetemps=d.antenna0.thermal.utc-d.antenna0.thermal.utc(1);
0027 timelsTemps= timetemps([1:5:length(timetemps)]).*24;
0028 timeCryoTemps=timetemps.*24;
0029 lengthvec = length(d.antenna0.roach1.RR)
0030 timeroachshort=timeroach(1:lengthvec-0);
0031
0032
0033 ch1=mean(d.antenna0.roach1.LL((1:lengthvec-0),4:60),2);
0034 ch2 =mean(d.antenna0.roach1.RR((1:lengthvec-0),4:60),2);
0035 ch3=mean(d.antenna0.roach1.load1((1:lengthvec-0),4:60),2);
0036 ch4 =mean(d.antenna0.roach1.load2((1:lengthvec-0),4:60),2);
0037
0038 ch1mean=ch1-mean(ch1);
0039 ch2mean=ch2-mean(ch2);
0040 ch3mean=ch3-mean(ch3);
0041 ch4mean=ch4-mean(ch4);
0042
0043
0044
0045
0046
0047
0048 templs=d.antenna0.thermal.lsTemperatureSensors(:,2);
0049 tempsmean = templs-mean(templs);
0050 tempsCryo=d.antenna0.thermal.ccTemperatureLoad;
0051
0052
0053
0054
0055 Fs=100;
0056 FsTemps = 1;
0057 T = 1/Fs;
0058 L = length(ch1);
0059 t = (0:L-1)*T;
0060 TTemps = 1/FsTemps;
0061 LTemps = length(templs);
0062 tTemps = (0:LTemps-1)*TTemps;
0063 NFFT = 2^nextpow2(L);
0064 NFFTtemps = 2^(nextpow2(LTemps))
0065 f = Fs/2*linspace(0,1,NFFT/2+1);
0066 ftemps = FsTemps/2*linspace(0,1,NFFTtemps/2+1);
0067
0068 YCH1 = fft(ch1mean,NFFT)/L;
0069 YCH2 = fft(ch2mean,NFFT)/L;
0070 YCH3 = fft(ch3mean,NFFT)/L;
0071 YCH4 = fft(ch4mean,NFFT)/L;
0072 Ytemps = fft(tempsmean,NFFTtemps)/LTemps;
0073
0074
0075 YCH1b = 2*abs(YCH1(1:NFFT/2+1));
0076 YCH2b = 2*abs(YCH2(1:NFFT/2+1));
0077 YCH3b = 2*abs(YCH3(1:NFFT/2+1));
0078 YCH4b = 2*abs(YCH4(1:NFFT/2+1));
0079 Ytempsb = 2*abs(Ytemps(1:NFFTtemps/2+1));
0080
0081 bin_size=100;
0082 YCH1bin=bin(YCH1b,bin_size);
0083 YCH2bin=bin(YCH2b,bin_size);
0084 YCH3bin=bin(YCH3b,bin_size);
0085 YCH4bin=bin(YCH4b,bin_size);
0086 Ytempsbin=bin(Ytempsb,bin_size);
0087 fbin = bin(f,bin_size);
0088 ftempsbin = bin(ftemps,bin_size);
0089
0090
0091 dataFreqRoach1=[f' 2.*abs(YCH1(1:NFFT/2+1)) 2*abs(YCH2(1:NFFT/2+1)) 2*abs(YCH3(1:NFFT/2+1)) 2*abs(YCH4(1:NFFT/2+1))];
0092 dataTimeRoach1=[timeroach ];
0093
0094
0095
0096
0097 ch1=mean(d.antenna0.roach2.LL((1:lengthvec-0),4:60),2);
0098 ch2 =mean(d.antenna0.roach2.RR((1:lengthvec-0),4:60),2);
0099 ch3=mean(d.antenna0.roach2.load1((1:lengthvec-0),4:60),2);
0100 ch4 =mean(d.antenna0.roach2.load2((1:lengthvec-0),4:60),2);
0101
0102 ch1mean=ch1-mean(ch1);
0103 ch2mean=ch2-mean(ch2);
0104 ch3mean=ch3-mean(ch3);
0105 ch4mean=ch4-mean(ch4);
0106
0107
0108
0109
0110
0111
0112 templs=d.antenna0.thermal.lsTemperatureSensors(:,2);
0113 tempsmean = templs-mean(templs);
0114 tempsCryo=d.antenna0.thermal.ccTemperatureLoad;
0115
0116
0117
0118
0119 Fs=100;
0120 FsTemps = 1;
0121 T = 1/Fs;
0122 L = length(ch1);
0123 t = (0:L-1)*T;
0124 TTemps = 1/FsTemps;
0125 LTemps = length(templs);
0126 tTemps = (0:LTemps-1)*TTemps;
0127 NFFT = 2^nextpow2(L);
0128 NFFTtemps = 2^(nextpow2(LTemps))
0129 f = Fs/2*linspace(0,1,NFFT/2+1);
0130 ftemps = FsTemps/2*linspace(0,1,NFFTtemps/2+1);
0131
0132 YCH1 = fft(ch1mean,NFFT)/L;
0133 YCH2 = fft(ch2mean,NFFT)/L;
0134 YCH3 = fft(ch3mean,NFFT)/L;
0135 YCH4 = fft(ch4mean,NFFT)/L;
0136 Ytemps = fft(tempsmean,NFFTtemps)/LTemps;
0137
0138
0139 YCH1b = 2*abs(YCH1(1:NFFT/2+1));
0140 YCH2b = 2*abs(YCH2(1:NFFT/2+1));
0141 YCH3b = 2*abs(YCH3(1:NFFT/2+1));
0142 YCH4b = 2*abs(YCH4(1:NFFT/2+1));
0143 Ytempsb = 2*abs(Ytemps(1:NFFTtemps/2+1));
0144
0145 bin_size=100;
0146 YCH1bin=bin(YCH1b,bin_size);
0147 YCH2bin=bin(YCH2b,bin_size);
0148 YCH3bin=bin(YCH3b,bin_size);
0149 YCH4bin=bin(YCH4b,bin_size);
0150 Ytempsbin=bin(Ytempsb,bin_size);
0151 fbin = bin(f,bin_size);
0152 ftempsbin = bin(ftemps,bin_size);
0153
0154 dataFreqRoach2=[f' 2.*abs(YCH1(1:NFFT/2+1)) 2*abs(YCH2(1:NFFT/2+1)) 2*abs(YCH3(1:NFFT/2+1)) 2*abs(YCH4(1:NFFT/2+1))];
0155 dataTimeRoach2=[timeroach ];
0156
0157
0158
0159
0160 titlestring = 'Power Spectrum Roach1'
0161 figure
0162 subplot(411)
0163 loglog(dataFreqRoach1(:,1),dataFreqRoach1(:,2))
0164 grid on
0165 title('Roach1 Ch1')
0166 subplot(412)
0167 loglog(dataFreqRoach1(:,1),dataFreqRoach1(:,3))
0168 title('Roach1 Ch2')
0169 grid on
0170 subplot(413)
0171 loglog(dataFreqRoach1(:,1),dataFreqRoach1(:,4))
0172 title('Roach1 Ch3')
0173 grid on
0174 subplot(414)
0175 loglog(dataFreqRoach1(:,1),dataFreqRoach1(:,5))
0176 title('Roach1 Ch4')
0177 grid on
0178 if(saveFile==1)
0179 print('-depsc',varargin{2})
0180 end
0181 titlestring = 'Power Spectrum Roach2'
0182 figure
0183 subplot(411)
0184 loglog(dataFreqRoach2(:,1),dataFreqRoach2(:,2))
0185 grid on
0186 title('Roach2 Ch1')
0187 subplot(412)
0188 loglog(dataFreqRoach2(:,1),dataFreqRoach2(:,3))
0189 title('Roach2 Ch2')
0190 grid on
0191 subplot(413)
0192 loglog(dataFreqRoach2(:,1),dataFreqRoach2(:,4))
0193 title('Roach2 Ch3')
0194 grid on
0195 subplot(414)
0196 loglog(dataFreqRoach2(:,1),dataFreqRoach2(:,5))
0197 title('Roach2 Ch4')
0198 grid on
0199 if(saveFile==1)
0200 print('-depsc',varargin{2})
0201 end
0202
0203