简述基于MATLAB设计巴特沃斯低通滤波器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB 设计巴特沃斯低通滤波器
摘 要: 首先分析了巴特沃斯低通滤波器的特性。然后用MATLAB 的信号处理工具箱提供的函 数设计了巴特沃斯低通滤波器,使得巴特沃斯滤波器的设计变得更加简单、快捷、直观。
巴特沃斯(Butterworth)滤波器是一种具有最大平坦幅度响应的低通滤波器,它在通信领域里已有广应用,在电测中也具有广泛的用途,可以作检测信号的滤波器。MATLAB 语言是一种面向科学与工程计算的语言。它编程效率高,测试程序手段丰富,扩展能力强,内涵丰富。它的信号处理工具箱(Signal Processing Toolbox)提供了设计巴特沃斯滤波器的函数,本文充分利用这些函数,进行了巴特沃斯滤波器的程序设计,并将其作为函数文件保存,可方便地进行调用。
1. 巴特沃斯低通滤波器的特性
巴特沃斯低通滤波器的平方幅度响应为: n c j H 22)(11
)(ωωω+=
其中,n 为滤波器的阶数,ωc 为低通滤波器的截止频率。该滤波器具有一些特殊
的性质:
① 对所有的n ,都有当 ω=0时,|H(j0)|2 =1;
② 对所有的n ,都有当ω=ωc 时,|H(j ωc )|2 =0.5 ,即在ωc 处有3dB 的衰减;
③|H(j ω)|2 是ω的单调递减函数,即不会出现幅度响应的起伏;
④ 当n →+∞时,巴特沃斯滤波器趋向于理想的低通滤波器;
⑤ 在ω=0处平方幅度响应的各级导数均存在且等于0,因此|H(j ω)|2 在该点上取得最大值,且具有最大平坦特性。
图l 展示了2阶、4阶、8阶巴特沃斯低通滤波器的幅频特性。可见阶数n 越高,其幅频特性越好,低频检测信号保真度越高。
巴特沃斯与贝塞尔(Besse1)、切比雪夫(Cheby.shev)滤波器的特性差异如图2所示。
从图2可以看出,巴特沃斯滤波器在线性相位、衰减斜率和加载特性三个方面具有特性均衡的优点,因此在实际使用中,巴特沃斯滤波器已被列为首选。
2 .巴特沃斯低通滤波器的MATLAB实现
MATLAB的信号处理工具箱提供了有关巴特沃斯滤波器的函数buttap、buttord、butter。
2.1 用buttap函数设计归一化的巴特沃斯低通滤波器系数
[z,P,k]=bttap(n)可设计出n阶巴特沃斯低通滤波器原型,其传递函数为:
))(())2())(1(()(n p s p s p s k
s H -∧--=
因此实际上Z 为空阵。上述零极点形式可以化为: 0
1110
)(b s b s b s b s H n n n ++∧++=--
其中n b 00ω=,巴特沃斯滤波器的归一化结果,如表1所示。
2.2 设计巴特沃斯滤波器的程序实现
buttord 函数可在给定滤波器性能的情况下,选择巴特沃斯滤波器的阶数n 和截止频率ωc , 从而可利用butter 函数设计巴特沃斯滤波器的传递函数。
[n,ωc ]=buttord(ωp ,ωs ,R p ,R s ,'s')可得到满足性能的模拟巴特沃斯滤波器的最小阶数n 及截止频率ωc , 其中ωp 为通带的拐角频率,ωs 为阻带的拐角频率,
ωp 和ωs 的单位均为rad/s ;R s 为通带区的最大波动系数,R p 为R s 阻带区的最小衰减系数,R p 和R s 的单位都为dB 。
[b ,a]=butter(n ,ωc ,'s' )可设计截止频率为ωc 的n 阶低通模拟巴特沃斯滤波器为:
)1()2()1()2()1()()()(11++∧++++∧++==--n a s a s n b s b s b s A s B s H n n n n
利用buttord 函数、buuer 函数编制设计巴特沃斯低通滤波器的MATLAB 函数文件butterdesign .m ,其清单如下:
Function[Nbutt ,Wcbutt ,bbutt ,abutt]=butterdesign(Wp ,Rp ,Ws ,As)
[Nbutt ,Wcbutt]=buttord(Wp ,Ws ,Rp ,As ,’S’);
[bbutt ,abutt]=butter(Nbutt ,Wcbutt ,’S’);
[hbutt ,Wbutt]=freqs(bbutt ,abutt);
subplot(2,1,1);plot(WbuR ,abs(hbutt));
subplot(2,1,2);plot(W'butt ,angle(hbutt));
为了使程序更通用,采用以下命令从键盘上输入巴特沃斯滤波器的性能指标。 Wp=input(’Please input passband comer frequencyin rad /s Wp=’)
Rp=input(’Please input passband ripple in dB Rp= ’)
Ws=input(’Please input stopb and comer frequency in rad /s Ws=’)
As=input(’Please input stopband attenuation in dB As=’)
调用butterdesign 函数就可设计出满足性能指标的巴特沃斯滤波器,其主程序文件名为buttermain .m 。下面举例说明巴特沃斯滤波器的计算机辅助设计过程。
设计一模拟巴特沃斯低通滤波器,其通带的拐角频率ωp 为0.2π,通带区的最大波动系数R p 为7dB ,阻带的拐角频率ωs 为0.3π,阻带区的最小衰减系数R s 为16dB 。
在MATLAB 命令窗口中输入buttermain ,根据屏幕上的提示分别输入0.2*pi ,7,0.3*pi ,16,就可得到满足性能指标的巴特沃斯低通滤波器的最小阶数n=3,截止频率ωc =0.5122rad /s ,其传递函数为:
1344.05247.00244.11344
.0)(23+++=s s s s H
同时得到图3所示的巴特沃斯低通滤波器曲线。