- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
222
2
2
2
基于 MATLAB 设计巴特沃斯低通滤波器
摘 要: 首先分析了巴特沃斯低通滤波器的特性。然后用MATLAB的信号处理工具箱提供的 函
数设计了巴特沃斯低通滤波器,使得巴特沃斯滤波器的设计变得更加简单、快捷、直观。 巴特沃斯(Butterworth)滤波器是一种具有最大平坦幅度响应的低通滤波器,
它在通信领域里已有广应用,在电测中也具有广泛的用途,可以作检测信号的 滤波器。MATLAB语言是一种面向科学与工程计算的语言。它编程效率高,测试 程序手段丰富,扩展能力强,内涵丰富。它的信号处理工具箱(Signal Processing Toolbox)提供了设计巴特沃斯滤波器的函数,本文充分利用这些函 数,进行了巴特沃斯滤波器的程序设计,并将其作为函数文件保存,可方便地 进行调用。
1. 巴特沃斯低通滤波器的特性
巴特沃斯低通滤波器的平方幅度响应为:
H ( j?)
2
?
1 ?(
1
?
?c
)
2 n
其中,n为滤波器的阶数,ωc为低通滤波器的截止频率。该滤波器具有一些特 殊的性质:
① 对所有的n,都有当 ω=0时,|H(j0)|
2
=1;
② 对所有的n,都有当ω=ωc时,|H(jωc)| =0.5 ,即在ωc处有3dB的衰减; ③|H(jω)| 是ω的单调递减函数,即不会出现幅度响应的起伏;
当n→+∞时,巴特沃斯滤波器趋向于理想的低通滤波器;
在ω=0处平方幅度响应的各级导数均存在且等于0,因此|H(jω)| 在该点 上取得最大值,且具有最大平坦特性。
图l展示了2阶、4阶、8阶巴特沃斯低通滤波器的幅频特性。可见阶数n越高, 其幅频特性越好,低频检测信号保真度越高。
巴特沃斯与贝塞尔(Besse1)、切比雪夫(Cheby.shev)滤波器的特性差异如 图2所示。
从图2可以看出,巴特沃斯滤波器在线性相位、衰减斜率和加载特性三个方
面具有特性均衡的优点,因此在实际使用中,巴特沃斯滤波器已被列为首选。
2 .巴特沃斯低通滤波器的MATLAB实现
MATLAB的信号处理工具箱提供了有关巴特沃斯滤波器的函数 buttap、buttord、butter。
2.1 用buttap函数设计归一化的巴特沃斯低通滤波器系数
n ?1n ?1n
n ?1
n ?1
n
n ?1
n
[z,P,k]=bttap(n)可设计出n阶巴特沃斯低通滤波器原型,其传递函数为:
H ( s ) ?
k
( s ?p (1))( s ?p ( 2)) ?( s ?p ( n ))
因此实际上Z为空阵。上述零极点形式可以化为:
H ( s ) ?
s
n
?bn?1s
b0
???b1s?b0
其中
b0 ??0
n
,巴特沃斯滤波器的归一化结果,如表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
阻带区的最小衰
减系数,Rp和Rs的单位都为dB。
[b,a]=butter(n,ωc ,s )可设计截止频率为ωc的n阶低通模拟巴特沃斯滤波器为:
H ( s ) ?
B ( s )
A( s )
?
b (1) s ?b( 2) s ???b(n ?1) s ?a( 2) s ???a(n ?1)
利用buttord函数、buuer函数编制设计巴特沃斯低通滤波器的MATLAB函数文件 butterdesign.m,其清单如下:
32
3
2
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(Wbutt,angle(hbutt));
为了使程序更通用,采用以下命令从键盘上输入巴特沃斯滤波器的性能指标。 Wp=input(’Please input pass
文档评论(0)