基于Matlab的巴特沃斯滤波器设计
2012-07-04祝广场李志梅映新
祝广场 李志 梅映新
(中国船舶重工集团公司第七一二研究所,武汉 430064)
1 巴特沃斯滤波器原理
巴特沃斯滤波器具有通带内最大平坦的振幅特性,而且随着频率的增加而单调下降[1]。
其幅度平方函数具有如下形式:
其中,N为整数,称为滤波器阶数,N越大,通带和阻带的近似性越好,过渡性也越陡。如图1所示:
1.1 归一化模拟低通巴特沃斯滤波器的设计
归一化 L(L为偶数)阶巴特沃斯模拟低通滤波器的传递函数为
可见,巴特沃斯滤波器可以写成L/2个2阶级联的形式。
图1 巴特沃斯滤波器的幅值响应曲线
1.2 模拟滤波器到数字滤波器的变换
(1)计算预畸变后模拟滤波器的通带边界频率
(2)模拟滤波器的频率尺度变换:
数字滤波克服了硬件滤波的许多不足,它与硬件滤波相比有以下优点[1]:
(1)数字滤波用软件实现,不需要增加硬件设备因而可靠性高、稳定性好,不存在阻抗匹配问题。
(2)硬件滤波通常是各通道专用,而数字滤波则可多通道共享,从而降低了成本。
(3)数字滤波可以对频率很低的信号进行滤波(如0.01 Hz),而硬件滤波由于受电路元件的限制,频率不可能太低。
(4)数字滤波可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。
2 巴特沃斯滤波器设计
2.1 巴特沃斯数字滤波算法[2]
在单片机系统中常用的数字滤波器算法有程序判断法、中值判断法、算术平均值滤波法、加权滤波法、滑动滤波法、低通滤波法和复合滤波法等,这几种方法原理简单,已广泛应用于控制系统等领域,但是采用上述滤波算法后数据的精度不高。而巴特沃斯数字滤波器属于无限冲击响应数字滤波器IIR的一种,被称为最平的幅频响应滤波器,IIR数字滤波器用系统函数表示为:
当系数{ai;i=1,2,3,…,N}至少有一个是非零时,式(3)描述的系统被称为无限冲击响应(IIR)数字滤波器。对于IIR滤波器,一般情况下满足M≤N,这时系统称为N阶IIR数字滤波器。由式(3)可得出表示输入输出关系的常系数差分方程表达式:
IIR 滤波器的结构分为直接型(包括直接Ⅰ型和直接Ⅱ型)、级联型和并联型三种。在选择滤波器结构时应该本着易于控制滤波性能、适于模块化和编程实现的原则,一般情况下可设计一个二阶滤波器,通过级联可实现可控的高阶IIR 滤波器。也可以设计一个具有良好特性的双二阶滤波器,然后通过控制级联的个数,就可以实现任意阶数的滤波器[3]。本系统根据控制精度和系统内部资源的要求选用直接Ⅱ型滤波器。
2.2 用Matlab 设计巴特沃斯数字滤波器
数字滤波器的一般设计步骤是:首先利用模拟频率和数字频率的关系将数字滤波器的频率指标转换为模拟滤波器的频率指标,然后根据模拟滤波器的技术指标设计模拟滤波器的H(s),最后用脉冲响应不变法,将模拟滤波器H(s)转换为数学滤波器H(z)。这种传统的设计方法繁琐且效率不高。
用Matlab设计巴特沃斯滤波器有两种方法,第一种是用函数设计,Matlab中提供了buttord()和butter()两个函数,在输入通带阻带的截止频率和衰减后可得到欲设计的巴特沃斯滤波器的阶数和截止频率,进而得到滤波器的系数。另一种方法是用Matlab的信号处理工具箱特有的滤波器分析设计工具FDATOOL,它是图形GUI 分析设计工具,可以直接设计滤波器并观察实际效果,随时修改,所见即所得,方便高效快捷。所以我们采用这种方法来设计巴特沃斯滤波器。
(1)在Matlab命令窗口中,输入FDATOOL,回车,即可打开滤波器设计工具箱,其设计界面如图2所示:
图2 Matlab滤波器设计工具界面
(2)在滤波器类型中选择“Lowpass”,设计方法选“IIR-Butterworth”,指定滤波器阶数为5阶,采样频率1000 Hz,截至频率25Hz,然后点“Design Filter”,就完成了低通巴特沃斯滤波器的设计,结果如图3所示。
图3 Butterworth滤波器设计图
(3)导出系数。从图4-8的左上部可以看出,5阶的巴特沃斯滤波器被分成了3节级联的形式。从设计界面的File菜单中,可以将滤波器的增益和系数矩阵导出到Matlab的工作空间中,如图4所示:
图4 导出系数
(4)图5为滤波器传递函数系数,每一行代表一个二阶滤波器的传递函数系数,他们之间的增益是2.341e-006。然后根据滤波器的级联关系,算出5阶巴特沃斯滤波器的系数为:
图5 滤波器系数矩阵
(5)将IIR数字滤波器传递函数写成如下一般形式:
再根据式(5)列出5阶巴特沃斯的差分方程,并作变形如下:
式(6)即为巴特沃斯滤波器的差分方程式,在程序中采用迭代方式来实现。
3 结束语
本文在巴特沃斯滤波器原理的基础上探讨了其特性,根据巴特沃斯滤波器的设计算法,利用Matlab工具箱中的FDATOOL设计工具,设计出了一个5阶的巴特沃斯低通数字滤波器。在GPS的加速度处理中,其滤波性能良好,保证了测量数据的准确性。
[1]李钟镇. 基于Matlab 设计巴特沃斯低通滤波器. 信息技术, 2003, (3).
[2]马杰, 董金明. IIR数字滤波器在定点DSP上的实现.声学与电子工程, 2006, (2):40-44.
[3]公丕波, 郝金明, 朱伟刚. GPS接收机与PC机间串口通信的实现. 海洋测绘, 2005, (5).