- refactored
This commit is contained in:
Executable
+111
@@ -0,0 +1,111 @@
|
||||
% ##################################################################################
|
||||
% ## Loesung: Fensterfunktionen ##
|
||||
% ## -------------------------------------------------------------------------- ##
|
||||
% ## Benoetigte(s) m-File(s): ldtft.m ##
|
||||
% ##################################################################################
|
||||
|
||||
|
||||
% ##### Teilaufgabe a: Fenstertyp berechnen #####
|
||||
window_length=[21 42];
|
||||
|
||||
for n=window_length %%%Rechteckfenster%%%
|
||||
n_find = find(n==window_length);
|
||||
tltstr = 'Rechteck-Fenster';
|
||||
rw = boxcar(n);
|
||||
[Rw W] = ldtft(rw,512);
|
||||
|
||||
i=find(abs(Rw)==0); % Vermeidung von Werten==0
|
||||
Rw(i)=1e-100*ones(size(i));
|
||||
if n_find==1
|
||||
figure;plot(W/pi,20*log10(abs(Rw/max(Rw))));
|
||||
axis([-1 1 -80 0]);grid;hold on;
|
||||
end;
|
||||
plot(W/pi, 20*log10(abs(Rw/max(Rw))),'--'); xlabel('Omega/pi');
|
||||
ylabel('|F(exp(j*Omega))/F(exp(j*0))| in dB');title([tltstr,' m: - 21 -- 42']);
|
||||
end;
|
||||
hold off;
|
||||
figure; stem(0:n-1,rw);grid; xlabel('k'); ylabel('f(k)'); title(tltstr);
|
||||
|
||||
for n=window_length %%%von Hann%%%
|
||||
n_find = find(n==window_length);
|
||||
tltstr = 'von Hann-Fenster';
|
||||
rh = hanning(n);
|
||||
[Rh W] = ldtft(rh,512);
|
||||
|
||||
i=find(abs(Rh)==0); % Vermeidung von Werten==0
|
||||
Rh(i)=1e-100*ones(size(i));
|
||||
if n_find==1
|
||||
figure;plot(W/pi,20*log10(abs(Rh/max(Rh)))); axis([-1 1 -80 0]);grid;hold on;
|
||||
end;
|
||||
plot(W/pi,20*log10(abs(Rh/max(Rh))),'--'); xlabel('Omega/pi');
|
||||
ylabel('|F(exp(j*Omega))/F(exp(j*0))| in dB');title([tltstr,' m: - 21 -- 42']);
|
||||
end;
|
||||
hold off;
|
||||
figure; stem(0:n-1,rh);grid; xlabel('k'); ylabel('f(k)'); title(tltstr);
|
||||
|
||||
for n=window_length %%%Hamming%%%
|
||||
n_find = find(n==window_length);
|
||||
tltstr = 'Hamming-Fenster';
|
||||
rhm = hamming(n);
|
||||
[Rhm W] = ldtft(rhm,512);
|
||||
|
||||
i=find(abs(Rhm)==0); % Vermeidung von Werten==0
|
||||
Rhm(i)=1e-100*ones(size(i));
|
||||
if n_find==1
|
||||
figure;plot(W/pi,20*log10(abs(Rhm/max(Rhm))));axis([-1 1 -80 0]);grid;hold on;
|
||||
end;
|
||||
plot(W/pi,20*log10(abs(Rhm/max(Rhm))),'--'); xlabel('Omega/pi');
|
||||
ylabel('|F(exp(j*Omega))/F(exp(j*0))| in dB');title([tltstr,' m: - 21 -- 42']);
|
||||
end;
|
||||
hold off;
|
||||
figure; stem(0:n-1,rhm);grid; xlabel('k'); ylabel('f(k)'); title(tltstr);
|
||||
|
||||
for n=window_length %%%Blackman%%%
|
||||
n_find = find(n==window_length);
|
||||
tltstr = 'Blackman-Fenster';
|
||||
rhb = blackman(n);
|
||||
[Rhb W] = ldtft(rhb,512);
|
||||
|
||||
i=find(abs(Rhb)==0); % Vermeidung von Werten==0
|
||||
Rhb(i)=1e-100*ones(size(i));
|
||||
if n_find==1
|
||||
figure;plot(W/pi,20*log10(abs(Rhb/max(Rhb))));axis([-1 1 -80 0]);grid;hold on;
|
||||
end;
|
||||
plot(W/pi,20*log10(abs(Rhb/max(Rhb))),'--'); xlabel('Omega/pi');
|
||||
ylabel('|F(exp(j*Omega))/F(exp(j*0))| in dB');title([tltstr,' m: - 21 -- 42']);
|
||||
end;
|
||||
hold off;
|
||||
figure; stem(0:n-1,rhb);grid; xlabel('k'); ylabel('f(k)'); title(tltstr);
|
||||
|
||||
for n=window_length %%%Bartlett%%%
|
||||
n_find = find(n==window_length);
|
||||
tltstr = 'Bartlett-Fenster';
|
||||
rhbt = bartlett(n);
|
||||
[Rhbt W] = ldtft(rhbt,512);
|
||||
|
||||
i=find(abs(Rhbt)==0); % Vermeidung von Werten==0
|
||||
Rhbt(i)=1e-100*ones(size(i));
|
||||
if n_find==1
|
||||
figure;plot(W/pi,20*log10(abs(Rhbt/max(Rhbt))));axis([-1 1 -80 0]);grid;
|
||||
hold on;
|
||||
end;
|
||||
plot(W/pi,20*log10(abs(Rhbt/max(Rhbt))),'--'); xlabel('Omega/pi');
|
||||
ylabel('|F(exp(j*Omega))/F(exp(j*0))| in dB');title([tltstr,' m: - 21 -- 42']);
|
||||
end;
|
||||
hold off;
|
||||
figure; stem(0:n-1,rhbt);grid; xlabel('k'); ylabel('f(k)'); title(tltstr);
|
||||
|
||||
% ##### Teilaufgabe b: Kaiser-Fenster berechnen #####
|
||||
w0 = kaiser(21,0); [W0 W] = ldtft(w0,512);
|
||||
w3 = kaiser(21,3); W3 = ldtft(w3,512);
|
||||
w6 = kaiser(21,6); W6 = ldtft(w6,512);
|
||||
k=0:20;
|
||||
|
||||
figure; plot(W/pi,20*log10(abs(W0/max(W0)))); xlabel('Omega/pi');axis([-1 1 -80 0]);
|
||||
ylabel('|F(exp(j*Omega))/F(exp(j*0))| in dB'); hold on;
|
||||
plot(W/pi,20*log10(abs(W3/max(W3))),'--');plot(W/pi,20*log10(abs(W6/max(W6))),'-.');
|
||||
hold off; title('Kaiser-Fenster: beta: - 0, -- 3, -. 6'); grid;
|
||||
figure; plot(k,w0); xlabel('k');ylabel('f(k)');hold on; plot(k,w3,'--');
|
||||
plot(k,w6,'-.'); axis([0 20 0 1.2]); hold off;
|
||||
title('Kaiser-Fenster: beta: - 0, -- 3, -. 6 '); grid
|
||||
% ##### EOF #####
|
||||
Reference in New Issue
Block a user