0001
0002 M = 31;
0003 N = 64;
0004 M = 8192;
0005 N = 8192;
0006
0007 pfbTaps=4;
0008
0009 hold all
0010 vec=[];
0011 vecpfb=[];
0012 vecfft=[];
0013 interval=0.01;
0014 steps=10000;
0015 wxT
0016 for i=1:8192
0017
0018 wxT = 2*pi/(4);
0019 wxT=wxT-i./(8.*8192);
0020 A = 1;
0021 phix = 0;
0022
0023
0024 n = [0:N-1];
0025 x = A * exp(j*wxT*n+phix);
0026
0027
0028 nm = [0:M-1];
0029
0030 w=hamming(M)';
0031 wzp = [w,zeros(1,N-M)];
0032 xw = x .* wzp;
0033 pfb1=xw(1:M./pfbTaps);
0034 pfb2=xw(M./pfbTaps+1:2.*M./pfbTaps);
0035 pfb3=xw(2.*M./pfbTaps+1:3.*M./pfbTaps);
0036 pfb4=xw(3.*M./pfbTaps+1:4.*M./pfbTaps);
0037 pfbSum=pfb1+pfb2+pfb3+pfb4;
0038 fft_pfb=fft(pfbSum);
0039 fft_xw=fft(xw);
0040 fft_fft=fft(x);
0041 vec=[vec;wxT abs(fft_xw(1960))];
0042 vecfft=[vecfft;wxT abs(fft_fft(1960))];
0043 vecpfb=[vecpfb; wxT abs(fft_pfb(1960./4))];
0044
0045 vec2=[vec;wxT abs(fft_xw(1964))];
0046 vecfft2=[vecfft;wxT abs(fft_fft(1964))];
0047 vecpfb2=[vecpfb; wxT abs(fft_pfb(1964./4))];
0048
0049
0050 end
0051
0052 subplot(311)
0053 plot(20.*log10(vecpfb(:,2)))
0054 subplot(312)
0055 plot(20.*log10(vecfft(:,2)))
0056 subplot(313)
0057 plot(20.*log10(vec(:,2)))
0058
0059 tophat=rectwin(8192)
0060 samples=[1:8192]
0061 subplot(421)
0062 plot(samples,tophat)
0063 xlim([1 8192])
0064
0065 vecSam=[1:10]
0066 subplot(422)
0067 plot(vecfft(:,1),20.*log10(vecfft(:,2)))
0068 hold all
0069 plot(vecpfb(:,1),20.*log10(vecpfb(:,2)))