资源描述:
《Matlab实现数字FIR的高通 、带通、低通、带阻滤波器的程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用汉宁窗设计Ⅰ型数字高通滤波器clearall;Wp=0.6*pi;Ws=0.4*pi;tr_width=Wp-Ws; %过渡带宽度N=ceil(6.2*pi/tr_width) %滤波器长度n=0:1:N-1;Wc=(Ws+Wp)/2; %理想低通滤波器的截止频率hd=ideal_hp1(Wc,N); %理想低通滤波器的单位冲激响应w_han=(hanning(N))';
2、 %汉宁窗h=hd.*w_han; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]); %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(Wp/delta_w+1:1:501))) %实际通带纹波As=-round(max(db(1:1:Ws/delta_w+1))) %实际阻带纹波subplot(221)stem(n,hd)title('理想单位脉冲响应hd(n)')
3、subplot(222)stem(n,w_han)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')subplot(224)plot(w/pi,db)title('幅度响应(dB)')axis([0,1,-100,10])clearall;Wp=0.6*pi;Ws=0.4*pi;tr_width=Wp-Ws; %过渡带宽度N=ceil(6.2*pi/tr_width) %滤波器长度n=0:1:N-1;Wc=(W
4、s+Wp)/2; %理想低通滤波器的截止频率hd=ideal_hp1(Wc,N); %理想低通滤波器的单位冲激响应w_han=(hanning(N))'; %汉宁窗h=hd.*w_han; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]); %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(Wp
5、/delta_w+1:1:501))) %实际通带纹波As=-round(max(db(1:1:Ws/delta_w+1))) %实际阻带纹波subplot(221)stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_han)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')subplot(224)plot(w/pi,db)title('幅度响应(dB)')axis([0,1,-100,10])基于切比雪夫一致逼近法设
6、计FIR数字低通滤波器clearall; f=[00.60.71]; %给定频率轴分点A=[1100]; %给定在这些频率分点上理想的幅频响应weigh=[110]; %给定在这些频率分点上的加权b=remez(32,f,A,weigh); %设计出切比雪夫最佳一致逼近滤波器[h,w]=freqz(b,1,256,1);h=abs(h);h=20*log10(h);subplot(211)stem(b,'.');g
7、rid;title('切比雪夫逼近滤波器的抽样值')subplot(212)plot(w,h);grid;title('滤波器幅频特性(dB)')利用汉宁窗设计Ⅰ型数字带阻滤波器clearall; Wpl=0.2*pi;Wph=0.8*pi;Wsl=0.4*pi;Wsh=0.6*pi;tr_width=min((Wsl-Wpl),(Wph-Wsh)); %过渡带宽度N=ceil(6.2*pi/tr_width)