如图2.1所示,图中依次是该FIR数字低通滤波器的幅频特性图、相频特性图、实际脉冲响应图以及海明窗图。由幅频特性图可知,所设计FIR数字低通滤波器的通带截止频率为0.2*pi,阻带截止频率为0.3*pi,且阻带衰减大于50dB,故满足技术指标要求;由相频特性图可知,所设计FIR数字低通滤波器具有严格的线性相位;实际脉冲响应图表示的是理想单位脉冲响应hd(n)经过海明窗的截断后所得到的实际单位脉冲响应h(n);海明窗图表示的是海明窗窗函数的窗谱,可见主瓣较宽,过渡带较缓,但能量主要集中在窗谱的主瓣内。
图2.1 FIR数字低通滤波器的仿真结果图
根据窗函数法设计一个FIR数字高通滤波器,性能指标如下: 阻带截止频率ωs=0.2π,通带截止频率ωp=0.3π; 最大通带波动Rp=0.25dB,最小阻带衰减Rs=70dB。
思路:查表1可知,凯塞窗以及布莱克曼窗都能提供70dB的最小阻带衰减,但是凯塞窗具有较小的过渡带从而具有较小的长度N,故采用凯塞窗设计该高通滤波器。
基于MATLAB对FIR数字高通滤波器设计实现的编程如下: clc; clear; Rs=70; Ws=0.2*pi; Wp=0.3*pi;
11
beta=7.865;
wt=Wp-Ws;%计算过渡带宽
M=10*pi/wt;%按凯塞窗计算滤波器长度 n=[0:1:M-1];
w_kai=(kaiser(M,beta))';%求凯塞窗函数 Wc=(Ws+Wp)/2;
hd=ideal_lp(pi,M)-ideal_lp(Wc,M);%求理想脉冲响应 h=hd.*w_kai;%设计的脉冲响应为理想脉冲响应与窗函数乘积 [db,mag,pha,grd,W]=freqz_m(h,[1]); subplot(1,1,1); subplot(2,2,1); stem(n,hd);
title('理想脉冲响应'); axis([0 M-1 -0.4 0.8]); ylabel('hd(n)'); subplot(2,2,2); stem(n,w_kai); title('凯塞窗'); axis([0 M-1 0 1.1]); ylabel('wd(n)'); subplot(2,2,3);
stem(n,h);title('实际脉冲响应'); axis([0 M-1 -0.4 0.8]); xlabel('n'); ylabel('h(n)'); subplot(2,2,4); plot(W/pi,db); title('幅度响应/dB'); axis([0 1 -100 10]);grid; xlabel('以π为单位的频率'); ylabel('分贝数/dB');
基于MATLAB对FIR数字高通滤波器的仿真结果如下图2.2所示:
如图2.2标注所示,图中依次是该FIR数字高通滤波器的理想脉冲响应图、凯塞窗图、实际脉冲响应图以及幅度响应图。理想脉冲响应图表示的是满足该技术指标的理想FIR数字高通
12
滤波器的理想单位脉冲响应hd(n);凯塞窗图表示的是凯塞窗窗函数的窗谱,结合图2.1可见,凯塞窗与海明窗相比,主瓣较窄,过渡带较陡,但能量相对不太集中在窗谱的主瓣内,由上凯塞窗原理可知,在凯塞窗中,主瓣与旁瓣衰减可自由变化比重;实际脉冲响应图,表示的是理想单位脉冲响应hd(n)经过凯塞窗的截断后所得到的实际单位脉冲响应h(n);由幅频特性图可见,所设计FIR数字高通滤波器的阻带截止频率为0.2*pi,通带截止频率为0.3*pi,且阻带衰减大于70dB,满足技术指标要求。
图2.2 FIR数字高通滤波器的仿真结果图
根据窗函数法设计一个FIR数字带通滤波器,性能指标如下: 低阻带:ws1=0.2π,Rs=60dB;低通带:wp1=0.35π,Rp=1dB 高通带:wp2=0.65π,Rp=1dB;高阻带:ws2=0.8π,Rs=60dB
思路:查表1可知,凯塞窗以及布莱克曼窗都能提供60dB的最小阻带衰减,但是凯塞窗具有较小的过渡带从而具有较小的长度N,故采用凯塞窗设计该带通滤波器。
基于MATLAB对FIR数字带通滤波器设计实现的编程如下: clc; clear;
wp1=0.35*pi;wp2=0.65*pi; ws1=0.2*pi;ws2=0.8*pi; Rp=1;Rs=60;
13
beta=7.865;
delta_w=min((wp1-ws1),(ws2-wp2)); M=10*pi/wt; n=[0:1:M-1];
w_kai=(kaiser(M,beta))'; wc1=(wp1+ws1)/2;wc2=(wp2+ws2)/2; hd=ideal_lp(wc2,M)-ideal_lp(wc1,M); h=hd.*w_kai;
[db,mag,pha,grd,w]=freqz_m(h,[1]); subplot(1,1,1); subplot(2,2,1);
plot(w/pi,db);title('幅频特性图');
xlabel('w/pi');ylabel('dB');axis([0, 1, -150, 50]); subplot(2,2,2);
plot(w/pi,pha);title('相频特性图'); xlabel('w/pi');ylabel('pha'); subplot(2,2,3);
stem(n,h,'.');title('实际脉冲响应'); xlabel('n');ylabel('h(n)'); subplot(2,2,4);
stem(n,w_kai,'.');title('凯塞窗'); xlabel('n');ylabel('凯塞窗');
基于MATLAB对FIR数字带通滤波器的仿真结果如下图2.3所示:
14
图2.3 FIR数字带通滤波器的仿真结果图
如图2.3标注所示,图中依次是该FIR数字带通滤波器的幅频特性图、相频特性图、实际脉冲响应图以及凯塞窗图。由幅频特性图可知,所设计FIR数字带通滤波器的通带截止频率分别为0.35*pi、0.65*pi,阻带截止频率分别为0.2*pi、0.8*pi,且阻带衰减大于60dB,满足技术指标要求;由相频特性图可知,所设计FIR数字带通滤波器具有严格的线性相位;实际脉冲响应图表示的是理想单位脉冲响应hd(n)经过凯塞窗的截断后所得到的实际单位脉冲响应
h(n);凯塞窗图表示的是凯塞窗窗函数的窗谱,可见能量主要集中在窗谱的主瓣内。 MATLAB提供了用窗函数法直接设计线性相位FIR数字滤波器的函数,即fir1()函数,这
2.2.3基于MATLAB的窗函数法直接设计法 样就大大省去了编程而耗费的时间,格式为
hn=fir1(N,Wc,'ftype',window)
其中,返回函数hn为滤波器的单位抽样响应h(n)的N点序列值向量;window为窗函数,默认为hamming窗;Wc为理想滤波器截止频率的归一化值(对于带通、带阻滤波器为2维向量);ftype为滤波器类型,默认低通或带通,当ftype=high时为高通,ftype=stop时为带阻。
根据基于MATLAB的窗函数法直接设计法设计一个FIR数字带通滤波器,技术指标如下: 低阻带:ws1=0.2π,Rs=60dB;低通带:wp1=0.35π,Rp=1dB
15