% ################################################################################## % ## Loesung: Vergleich versch. Fensterfunktionen ## % ################################################################################## N = 63; NFFT = 2^9; f_re = boxcar(N); aF_re = abs(fft(f_re,NFFT)/sum(f_re)); f_hn = hanning(N); aF_hn = abs(fft(f_hn,NFFT)/sum(f_hn)); f_hm = hamming(N); aF_hm = abs(fft(f_hm,NFFT)/sum(f_hm)); f_bl = blackman(N); aF_bl = abs(fft(f_bl,NFFT)/sum(f_bl)); a_d1=48.6; f_d1=chebwin(N,a_d1); aF_d1 = abs(fft(f_d1,NFFT)/sum(f_d1)); a_d2=76.1; f_d2=chebwin(N,a_d2); aF_d2 = abs(fft(f_d2,NFFT)/sum(f_d2)); kk = 0:N-1; fT = 0:1/NFFT:1-1/NFFT; % Berechnung von a_{min} (fsT:=Omega_s/(2*pi); Sperrber.: n_s+1<=n<=NFFT+1-n_s) fsT=1/N; n_s=round(NFFT*fsT); a_re=20*log10(max(aF_re(n_s+1:NFFT+1-n_s))); fsT=2/N; n_s=round(NFFT*fsT); a_hn=20*log10(max(aF_hn(n_s+1:NFFT+1-n_s))); fsT=2/N; n_s=round(NFFT*fsT); a_hm=20*log10(max(aF_hm(n_s+1:NFFT+1-n_s))); fsT=3/N; n_s=round(NFFT*fsT); a_bl=20*log10(max(aF_bl(n_s+1:NFFT+1-n_s))); figure; % RECHTECK-Fenster bar(kk,f_re); axis([-.5 N-.5 0 1.1]); title('Rechteck-Fenster'); ylabel('f(k)'); xlabel('k'); figure; plot(fT,20*log10(aF_re)); hold on; axis([0 1 -150 10]); text(.3,a_re+13,sprintf('a_{min} = %3.1f dB',-a_re)); plot([0 1.9],[a_re a_re],'--'); title('|Normierte Spektralfunktion|'); ylabel('|F(exp(j*Om.))/F(exp(j*0))| in dB'); xlabel('Omega/2pi = f T'); input('....Zum Fortfahren: RETURN druecken'); figure; % HANNING-Fenster bar(kk,f_hn); axis([-.5 N-.5 0 1.1]); title('Hanning-Fenster'); ylabel('f(k)'); xlabel('k'); figure; plot(fT,20*log10(aF_hn)); hold on; axis([0 1 -150 10]); text(.3,a_hn+15,sprintf('a_{min} = %3.1f dB', -a_hn)); plot([0 1.9],[a_hn a_hn],'--'); title('|Normierte Spektralfunktion|'); ylabel('|F(exp(j*Om.))/F(exp(j*0))| in dB'); xlabel('Omega/2pi = f T'); input('....Zum Fortfahren: RETURN druecken'); figure; % HAMMING-Fenster bar(kk,f_hm); axis([-.5 N-.5 0 1.1]); title('Hamming-Fenster'); ylabel('f(k)'); xlabel('k'); figure; plot(fT,20*log10(aF_hm)); hold on; axis([0 1 -150 10]); text(.3,a_hm+15,sprintf('a_{min} = %3.1f dB', -a_hm)); plot([0 1.9],[a_hm a_hm],'--'); title('|Normierte Spektralfunktion|'); ylabel('|F(exp(j*Om.))/F(exp(j*0))| in dB'); xlabel('Omega/2pi = f T'); input('....Zum Fortfahren: RETURN druecken'); figure; % BLACKMAN-Fenster bar(kk,f_bl); axis([-.5 N-.5 0 1.1]); title('Blackman-Fenster'); ylabel('f(k)'); xlabel('k'); figure; plot(fT,20*log10(aF_bl)); hold on; axis([0 1 -150 10]); text(.3,a_bl+15,sprintf('a_{min} = %3.1f dB', -a_bl)); plot([0 1.9],[a_bl a_bl],'--'); title('|Normierte Spektralfunktion|'); ylabel('|F(exp(j*Om.))/F(exp(j*0))| in dB'); xlabel('Omega/2pi = f T'); input('....Zum Fortfahren: RETURN druecken'); figure; % DOLPH-TSCHEBYSCHEFF-1 bar(kk,f_d1); axis([-.5 N-.5 0 1.1]);title(sprintf('Dolph-Tscheby.,%3.1fdB',a_d1)); ylabel('f(k)'); xlabel('k'); figure; plot(fT,20*log10(aF_d1)); hold on; axis([0 1 -150 10]); text(.3,-a_d1+15,sprintf('a_{min} = %3.1f dB',a_d1)); title('|Normierte Spektralfunktion|'); ylabel('|F(exp(j*Om.))/F(exp(j*0))| in dB'); xlabel('Omega/2pi = f T'); input('....Zum Fortfahren: RETURN druecken'); figure; % DOLPH-TSCHEBYSCHEFF-2 bar(kk,f_d2); axis([-.5 N-.5 0 1.1]);title(sprintf('Dolph-Tscheby.,%3.1fdB',a_d2)); ylabel('f(k)'); xlabel('k'); figure; plot(fT,20*log10(aF_d2)); hold on; axis([0 1 -150 10]); text(.3,-a_d2+15,sprintf('a_{min} = %3.1f dB',a_d2)); title('|Normierte Spektralfunktion|'); ylabel('|F(exp(j*Om.))/F(exp(j*0))| in dB'); xlabel('Omega/2pi = f T'); % ##### EOF #####