简述基于MATLAB设计巴特沃斯低通滤波器

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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所示的巴特沃斯低通滤波器曲线。

相关文档
最新文档