Files
2022-06-30 13:32:40 +02:00

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