Files
matlab/common/buch/l26.m
T
2022-06-30 13:32:40 +02:00

70 lines
3.8 KiB
Matlab
Executable File

% ##################################################################################
% ## 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 #####