[H1,w1]=freqz(b1,1,512); H1_db=20*log10(abs(H1)); b2=fir1(9, 1/3, hamming(10)); [H2,w2]=freqz(b2, 1, 512); H2_db=20*log10(abs(H2)); b3=fir1(9,1/3,hanning(10)); [H3,w3]=freqz(b3, 1, 512); H3_db=20*log10(abs(H3));
plot(w1,H1_db,w2,H2_db,'--g',w3,H3_db,'--r'); title('频率响应')
legend('矩形窗','海明窗','汉宁窗') grid on
(3)
b1=fir1(9,1/3,boxcar(10)); [H1,w1]=freqz(b1,1,512); H1_db=20*log10(abs(H1)); b2=fir1(9, 1/3, hamming(10)); [H2,w2]=freqz(b2, 1, 512); H2_db=20*log10(abs(H2)); b3=fir1(9,1/3,hanning(10));
[H3,w3]=freqz(b3, 1, 512); H3_db=20*log10(abs(H3)); k=0:511;
x=1+2*cos(pi/4.*k)+cos(pi/2.*k); y1=filter(b1,1,x);
Y1=abs(fftshift(fft(y1))); stem(Y1);
title('通过矩形窗得到的输出波形') figure;
y2=filter(b2,1,x);
Y2=abs(fftshift(fft(y2))); stem(Y2);
title('通过哈明窗得到的输出波形') figure;
y3=filter(b3,1,x);
Y3=abs(fftshift(fft(y3))); stem(Y3);
title('通过汉宁窗得到的输出波形')
f =[0 3/7 4/7 5/7 1]; m=[1 1 0.389 0 0]; b=fir2(15,f,m);
[h,w] = freqz(b,1,512); plot(f,m,w/pi,abs(h));
legend('理想滤波器', '实际滤波器')
title('理想滤波器与实际滤波器的频率响应幅值比较') figure; H=20*log10(abs(h)); plot(w,H); title('频率响应'); grid on
将Hd(4)增至0.8,即: f=[0 3/7 4/7 5/7 1]; m=[1 1 0.8 0 0]; b=fir2(15,f,m);
[h,w] = freqz(b,1,512); plot(f,m,w/pi,abs(h));
legend('理想滤波器', '实际滤波器')
title('理想滤波器与实际滤波器的频率响应幅值比较') figure; H=20*log10(abs(h)); plot(w,H); title('频率响应'); grid on