end end end
h=hd.*(B)'; %得到FIR数字滤波器
[H,m]=freqz(h,[1],1024,'whole'); %求其频率响应 mag=abs(H); %得到幅值 db=20*log10((mag+eps)/max(mag)); pha=angle(H); %得到相位 i=i+1; figure(i) subplot(2,2,1); n=0:N-1; stem(n,h,'.');
axis([0,N-1,-0.1,0.3]); hold on; n=0:N-1; x=zeros(N); plot(n,x,'-'); xlabel('n'); ylabel('h(n)');
title('实际低通滤波器的h(n)'); text((0.3*N),0.27,string); hold off; subplot(2,2,2); plot(m/pi,db); axis([0,1,-100,0]); xlabel('w/pi'); ylabel('dB');
title('衰减特性(dB)'); grid;
subplot(2,2,3); plot(m,pha); hold on; n=0:7; x=zeros(8); plot(n,x,'-'); title('相频特性'); xlabel('频率(rad)'); ylabel('相位(rad)'); axis([0,3.15,-4,4]); subplot(2,2,4);
plot(m,mag); title('频率特性'); xlabel('频率W(rad)'); ylabel('幅值'); axis([0,3.15,0,1.5]); text(0.9,1.2,string);
b=menu('Do You want To Continue ?','Yes','No'); if b==2 b=0; end end
temp=menu('Close All Figure ?','Yes','No'); if temp==1 close all end
%实验中的子函数:产生理想低通滤波器单位脉冲响应hd(n) function hd=ideal(w,N); alpha=(N-1)/2; n=[0:(N-1)]; m=n-alpha+eps; hd=sin(w*m)./(pi*m);
图像:
矩形窗(N=15)
矩形窗(N=33)
哈明窗(N=15)
哈明窗(N=33)
汉宁窗(N=15)
汉宁窗(N=33)
布莱克曼窗(N=15)
布莱克曼窗(N=33)
六、 思考题
1、如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。
答:① 首先确定模拟带通滤波器的技术指标。
② 确定归一化低通技术要求 ③ 设计归一化低通 ④ 将低通转化为带通
2、如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为w1和w2,试求理想带通的单位脉冲响应hd(n)。
答:可以通过w1和w2求出wc这样便可以利用公式求出hd(n)。

