36 lines
1.6 KiB
Matlab
Executable File
36 lines
1.6 KiB
Matlab
Executable File
% ##################################################################################
|
|
% ## Loesung: Entwurf nichtrekursiver Filter mittels Fensterung ##
|
|
% ##################################################################################
|
|
|
|
% ##### Teilaufgabe a: Tiefpass entwerfen #####
|
|
bR = fir1(50,0.4,boxcar(51)); [HR W] = freqz(bR,1,512);
|
|
bH = fir1(50,0.4,hanning(51)); [HH W] = freqz(bH,1,512);
|
|
bHm = fir1(50,0.4,hamming(51)); [HHM W] = freqz(bHm,1,512);
|
|
bB = fir1(50,0.4,blackman(51)); [HB W] = freqz(bB,512);
|
|
bK = fir1(50,0.4,kaiser(51,8)); [HK W] = freqz(bK,512);
|
|
|
|
plot(W/pi,20*log10(abs(HR/max(HR)))); hold on;
|
|
plot(W/pi,20*log10(abs(HH/max(HH))),'--');
|
|
plot(W/pi,20*log10(abs(HHM/max(HHM))),'-.'); hold off;
|
|
xlabel('Omega/pi'); ylabel('|H(exp(j*Omega))/H(1)| in dB'); grid
|
|
title(['Tiefpass: - Rechteck -- von Hann -. Hamming']); axis([0 1 -150 0]); figure;
|
|
plot(W/pi,20*log10(abs(HB/max(HB))),'-'); hold on;
|
|
plot(W/pi,20*log10(abs(HK/max(HK))),'--'); hold off;
|
|
xlabel('Omega/pi'); ylabel('|H(exp(j*Omega))/H(1)| in dB'); grid
|
|
title(['Tiefpass: - Blackman -- Kaiser mit beta=8']); axis([0 1 -150 0]);
|
|
|
|
% ##### Teilaufgabe b: Hochpass entwerfen #####
|
|
b = fir1(33,0.4,'high'); [H W] = freqz(b,1,512);
|
|
|
|
figure;
|
|
plot(W/pi,20*log10(abs(H/max(H)))); grid;
|
|
xlabel('Omega/pi'); ylabel('|H(exp(j*Omega))/H(-1)| in dB'); title('Hochpass');
|
|
|
|
% ##### Teilaufgabe c: Gruppenlaufzeit bestimmen #####
|
|
figure;
|
|
b = fir1(50,0.4);
|
|
grpdelay(b,1,256);
|
|
title('Gruppenlaufzeit in Abtastwerten'); ylabel(''); xlabel('Omega/pi');
|
|
axis([0 1 24 26]);
|
|
% ##### EOF #####
|