巴特沃斯滤波器matlab实现

调谐/滤波

26人已加入

描述

巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。 在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。

一阶巴特沃斯滤波器的衰减率为每倍频6分贝,每十倍频20分贝。二阶巴特沃斯滤波器的衰减率为每倍频12分贝、三阶巴特沃斯滤波器的衰减率为每倍频18分贝、如此类推。巴特沃斯滤波器的振幅对角频率单调下降,并且也是唯一的无论阶数,振幅对角频率曲线都保持同样的形状的滤波器。只不过滤波器阶数越高,在阻频带振幅衰减速度越快。其他滤波器高阶的振幅对角频率图和低级数的振幅对角频率有不同的形状。

设计步骤

如设计一个数字低通滤波器,其技术指标为:

通带临界频率fp ,通带内衰减小于rp;

阻带临界频率fs,阻带内衰减大于αs;采样频率为FS

1、将指标变为角频率 wp=fp*2*pi;ws= fs*2*pi;

2、将数字滤波器的频率指标{Wk}由wk=(2/T)tan(Wk/2)转换为模拟滤波器的频率指标{wk},由于是用双线性不变法设计,故先采取预畸变。

matlab

3、将高通指标转换为低通指标,进而设计高通的s域模型

4、归一化处理

matlab

由以上三式计算出N,查表可得模拟低通滤波器的阶数,从而由下式确定模拟高通滤波器的参数。

matlab

仿真程序的设计与调试

数字域指标变换成模拟域指标

其程序为:

fp = 400 fs= 300;

Rp = 1; Rs = 20;

wp =fp*2*pi;

ws =fs*2*pi;

FS=1000;T=1/FS;

程序执行结果为:wp=2.5133e+003 ws=1.8850e+003 与实际计算结果相符。

数字域频率进行预畸变

其程序为:

wp2=2*tan(Wp/2)/T;

ws2=2*tan(Ws/2)/T;

经过预畸变,可以发现频率变为: wp2= 6.1554e+003

ws2= 2.7528e+003

模拟滤波器的设计

其程序为

%设计模拟滤波器

[N,Wn] = buttord(wp2,ws2,Rp,Rs,‘s’)

武汉理工大学《数字信号处理》报告

9

[z,p,k]=buttap(N); %创建Buttord低通滤波器原型

[Bap,Aap]=zp2tf(z,p,k); %由零极点转换为传递函数的形式

figure(1) freqs(Bap,Aap); %模拟低通滤波器的频率响应

title(‘模拟滤波器(低通原型)的频率响应’)

[Bbs,Abs]=lp2hp(Bap,Aap,Wn); %模拟低通变高通

figure(2)

freqs(Bbs,Abs);

title(‘模拟滤波器的频率响应’)

程序执行后可以发现其频率响应为: N=4,其波形如下图

matlab

模拟滤波器的频率响应

由上图分析可得:其符合高通的一般特征,与预期的效果一样。 而在此条件下,Butterworth滤波器低通原型的波形如下图。

matlab

模拟滤波器(低通原型)的频率响应

在设计的过程中,涉及一个频率变换的问题,即将模拟低通原型变为高通,其函数及用法如下:

[b,a]=lp2hp(Bap,Aap,Wn);

功能:把模拟滤波器原型转换成截至频率为 Wn 的高通滤波器。 其中,Bap,Aap分别为低通传递函数的分子向量和分母向量;

b,a分别为高通传递函数的分子向量和分母向量。

模拟滤波器变成数字滤波器

其程序为:

[Bbz,Abz]=bilinear(Bbs,Abs,FS); %用双线性变换法设计数字滤波器 freqz(Bbz,Abz,512,FS);

程序运行的结果为:如下图

matlab

数字滤波器的频率响应

由于使用的是双线性不变法设计的,其相位为非线性。此处主要是基于要获得严格的频率响应,以及较准确地控制截止频率的位置,故画出了详细的幅频响应。(如下图)

matlab

详细的幅频响应

分析该图可知其在0.6(即300Hz)处的衰减为40dB,而在0.8(即400Hz)处的衰减极小,应小于1dB。由此可见,此设计符合要求设计的参数。

而在调试的过程中发现:通带衰减越小,滤波器的性能越好 阻带衰减越大,滤波器的性能越好 其曲线也越陡峭,选择性越好,当然所用的滤波器阶数也越高。

当阻带衰减变为40dB(之前为20dB),通带不变时,其波形如下图。对比上图可知,其在阻带临界频率处衰减变为了40dB,曲线变陡峭了。

matlab

详细的幅频响应(阻带衰减为40dB)

当通带变为5dB时,阻带不变时,其波形如下图。对比图3-3可知,其在通带处的衰减变为了5dB,曲线平滑了一些。

matlab

详细的幅频响应(通带衰减为5dB)

理论计算数字滤波器的仿真

wp=0.8*pi;

ws=0.6*pi;

OmegaP=2*1000*tan(wp/2);

OmegaS=2*1000*tan(ws/2);

lamdas=OmegaP/OmegaS;

N=0.5*log10((10.^(20/10)-1)/(10.^(1/10)-1))/log10(lamdas);

%笔算的结果为N=3.6947;故取N=4 %

此处为计算高通的传递函数 Wn= 4.8890e+003 az=[0 0 0 0 1];

bz=[1 2.613 3.414,2.613,1]; [Bbs,Abs]=lp2hp(az,bz,Wn) %用双线性不变法处理

[Bbz,Abz]=bilinear(Bbs,Abs,1000); 其运行结果为:N=3.6947;图形如下图

matlab

理论计算的滤波器的幅频响应

综上所述,本滤波器以四阶即实现了预期的设计目标:采样频率为1000Hz,通带临界频率fp =400Hz,通带内衰减小于1dB(αp=1);阻带临界频率fs=300Hz,阻带内衰减大于20dB(αs=25),其在通带内的性能更好。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分