用累试法直接在Z平面设计数字滤波器的研究
2009-03-19谭家杰胡湘娟罗昌由
谭家杰 胡湘娟 罗昌由
摘 要:详细研究了数字滤波器的设计方法,根据数字滤波器的基本原理,提出了设计的新方法——累试法。即用软件直接在Z平面选择零点和极点,然后观察数字滤波器的幅频特性、相频特性,如果满足设计要求,则输出系统函数和数字滤波器的结构,否则继续在Z平面设置重复设置零极点。用Visual Basic 6.0设计出累试法软件,该方法直接、简单,可快速地设计出数字滤波器。
关键词:数字滤波器;计算机辅助设计;Visual Basic软件;累试法
中图分类号:TN713.7文献标识码:A
文章编号:1004-373X(2009)03-085-02
Study on Directly Design of Digital Filter on Z Plane with Many Times Trials
TAN Jiajie1,2,HU Xiangjuan LUO Changyou1
(1.Hengyang Normal University,Hengyang,421008,China;
2.College of Optoelectronic Science and Engineering,Huazhong University of Science and Technology,Wuhan,430074,China)
Abstract:A variety of digital filter design,and a new method called many times trials to construct digital filter according to the basic principles of digital filter are presented.Designing the digital filter on Z plane by choosing of zero and polar directly with software,and then observing the digital filter of the frequency,phase-frequency characteristics,if meeting design requirements,system functions and structure of the digital filter are output,otherwise continue to choose zero and polar in the Z plane.Finally the software of many times trials with Visual Basic 6.0 is designed.The method is direct,simple,able to quickly design a digital filter.
Keywords:digital filter;computer aided design;Visual Basic 6.0 software;many times trials
0 引 言
数字滤波器是数字信号处理的一个重要分支。所谓数字滤波器,是指输入、输出均为数字信号通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件[1]。数字滤波器和模拟滤波器具有同样的滤波功能,但具有不同的实现方式。前者是利用有限精度算法来实现[2],精度高,稳定性强,实现灵活且不要求阻抗匹配,故在很多方面优于模拟滤波器;数字滤波器是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出[1-3]。数字滤波器的分类有很多种,若从实现的网络结构分类,可分为无限脉冲响应滤波器(IIR)和有限脉冲响应滤波器(FIR)两种[1-4]。从结构上看,IIR数字滤波器采用递归结构,FIR数字滤波器主要采用非递归的结构[4]。本文从另外一个角度出发,直接在Z平面上选择零、极点,这里称为累试法[1]。它既可以设计IIR型数字滤波器,也可以设计FIR型滤波器。
1 数字滤波器设计原理与方法
IIR滤波器设计方法通常是借助于模拟滤波器的设计方法进行的,先根据技术指标设计出模拟的低通滤波器,然后将模拟滤波器通过变换来设计数字滤波器,即把s平面映射到Z平面[1-4]。这一类方法相对容易一些,这是因为模拟滤波器设计方法已经很成熟,设计出的滤波器具有运算项数少的优点。而对于FIR数字滤波器的设计方法,其一主要借助于加各种窗函数来实现,其二通过频率采样实现[1,2]。
2 累试法设计数字滤波器的思路及原则
所谓累试法就是直接利用软件,在Z平面上反复多次设置滤波器的零、极点,观察幅频、相位特性是否满足预先设定的技术指标,如果满足技术指标,则软件输出滤波器的系统函数和滤波器的结构,否则还继续在Z平面上设置零、极点,直到满足技术要求为止[1]。这种设计滤波器的思想与成熟的设计方法是一致的,其实质是一个逐步逼近的过程。
根据文献[1,2,5]可知系统函数受系统的零、极点的影响。而零点在相应频率处产生谷值,极点产生峰值。并且零点离单位圆越近陷落越深,极点离单位圆越近,则波峰越陡峭,同样地,在相同位置设置的零点、极点越多,能达到的陡峭效果越好。根据这个思路,可以在Z平面上选择零、极点,当系统幅度特性满足设计指标,由零、极点来确定系统函数,从而确定滤波器的结构。
按照这种方法设计应遵循以下的原则:
(1) 设置零、极点时主要考虑滤波器是何种类型。如果设计FIR类型,不设置极点,只设置零点,这样的滤波器为非递归型。一旦设置了极点有可能使滤波器变成递归型的。
(2) 如果要滤除某一频率,则可以在相应数字频率处设置一零点;相反,则可以设置一极点。
(3) 根据滤波器的稳定条件,极点应该设置在单位圆的内部。
(4) 为了便于实现滤波器的结构,零、极点应该成对设置(零、极点在实轴上除外),所谓成对设置就是一对零点应该是共轭的,对于极点同样如此。
(5) 要使某频率处陷落越深或波峰越陡峭,则可以在相应位置多设置几个零点或极点。
(6) 所谓低频是指在0附近,高频这在π附近,数字频率范围为0~2π。
(7) 零点z与其关于圆周对称点1/具有相同的滤波效应。
(8) 由于系统函数单位圆外的极点zk用1/k代替不影响系统的幅频特性,相频特性有所不同。因此当遇到系统涉及单位圆外部极点时,可以用其单位圆内部镜像极点代替。
(9) 在同点分别选择一个零点和一个极点,存在零极点对消现象,对系统没有影响。
3 软件实现与应用
软件设计要求是便于操作、能够用鼠标、键盘输入零、极点;能显示频谱和相位特性;能够输出传输函数和结构。而Visual Basic 6.0属于可视化编程,编程思路较为简单,易于实现。
3.1 计算机辅助设计界面
计算机辅助设计系统界面参数设置方便直观,便于分析和理解。其界面如图1所示。计算机辅助设计的界面主要由文本框、组合框、图像框组成。其中4个文本框用来设置零、极点的实部、虚部,在文本框中输入相应数据后,按零点输入按钮输入零点,此时会在下面的图像框中相应位置显示一个小圆圈,表示在该处选择了一个零点;也可以按下“选择零点”,直接用鼠标在下面的Z平面单击鼠标左键,也选择了一个零点。对于极点输入同上述,用“+”表示选择了极点。这时可以按下右边按钮控件“频谱特性”,则会在右上边的幅频特性图像框中显示系统的幅频特性,同理按下“相位特性”则会显示相频特性。如果满足设计要求则按下“滤波器的数学模型”,会弹出一个对话框,里面显示了系统的传输函数;如果按下“滤波器结构”,则弹出系统的结构图。
图1 软件的界面图
3.2 应用实例
例1:设置一个带通滤波器,带通中心频率为ω0=π/2,ω=0,π时,幅度衰减为0[1]。
确定极点为z1,2=re±jπ2,零点z3,4=±1,用软件在Z平面上选择零、极点,得到的幅度特性和相位特性如图2,图3所示。其幅频特性与参考文献[1]一致。
图2 例1的幅频特性
图3 例1的相频特性
鼠标单击“滤波器的数学模型”,便得到系统函数H(z)=1-z-21+0.81z-2。
例2:设计一梳状滤波器。
设计过程同上,其幅频特性如图4所示。
图4 梳状滤波器的幅频特性
4 结 语
用累试法直接设计数字滤波器,具有简单、直观、快速的优点,Visual Basic提供了一种可视界面的设计方法,极大地提高了应用程序开发的效率。程序运行结果理想,波形直观。所产生的幅频特性、相频特性满足设
计需要,为设计滤波器提供了一种简单可靠的方法。
参考文献
[1]丁玉美,高西全,彭学愚.数字信号处理[M].2版.西安:西安电子科技大学出版社,2002.
[2]程佩青.数字信号处理教程[M].2版.北京:清华大学出版社,2001.
[3]谭家杰,陈淑芳,张兰英,等.基于Visual Basic 6.0数字滤波器设计[J].四川理工学院学报:自然科学版,2008,21(2):88-91.
[4]严雪萍,韩庆福,马淋军.一种基于VB的虚拟数字滤波器的设计[J].现代电子技术,2007,30(13):46-48.
[5]冯华君,洪淑月,施晓钟.借助Z变换和零极点设计数字陷波器[J].浙江师范大学学报:自然科学版,2004,27(1):26-29.
[6]任菊,蔡光君,刘惠英.直接型FIR滤波器的优化和实现.现代电子技术,2008,31(7):103-104.
作者简介 谭家杰 男,1968年出生,湖南衡阳人,硕士,副教授。主要从事光电检测及信号处理研究。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。