基于MATLAB的FIR滤波器的实现(3)

2019-08-31 09:01

如图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


基于MATLAB的FIR滤波器的实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:s7-1500网络配置

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: