基于面向对象的数字滤波器设计.doc_第1页
基于面向对象的数字滤波器设计.doc_第2页
基于面向对象的数字滤波器设计.doc_第3页
基于面向对象的数字滤波器设计.doc_第4页
基于面向对象的数字滤波器设计.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于面向对象的数字滤波器设计电子信息科学与技术专业 学生:郑美红 指导老师:谭家杰摘 要:详细研究了在 visual basic 6.0 环境下如何设计对称系数fir (finite impulse response,有限单位脉冲响应)数字滤波器。根据相关理论利用窗函数法和一些典型的窗函数设计fir滤波器。关键词:fir 数字滤波器;窗函数法;计算机辅助设计;visual basic 6.0 软件 1 引言数字滤波器,是指输入、输出均为数字信号,通过数值运算改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序1。它能避免模拟滤波器所无法克服的温度漂移和噪声等问题,同时具有比模拟滤波器精度高、稳定性好、体积小、更灵活等优点,在数字通信、语音图像处理、谱分析、模式识别、自动控制等领域得到了广泛的应用,同时fpga和dsp的在速度和精度上的不断提高也促进了数字滤波器的发展2。从实现的网络结构分类,数字滤波器分为iir(infinite impulse response,无限单位脉冲响应)型和fir(finite impulse response,有限单位脉冲响应)型。fir数字滤波器既可以满足任意幅度特性,又可以保证严格的相位特性,它的单位脉冲响应是有限长且稳定的,是信号处理系统的重要组成部分,因此越来越受到广泛的重视。本文研究基于 visual basic 6.0 环境下的fir 数字滤波器的设计方法,并且分析了滤波器的幅频特性,相频特性以及参数对数字滤波器设计的影响。2 窗函数法设计fir滤波器常用的设计fir数字滤波器的方法主要有窗函数法、频率抽样法和切比雪夫等波纹逼近法1,3,4,5。窗函数法是设计fir数字滤波器最常用、最简单的方法,实质是用截断理想单位脉冲响应的方法来逼近所求的滤波器指标1。2.1窗函数设计原理设希望逼近的滤波器频率响应函数为,其单位脉冲响应为。如果能够由已知的求出,经过变换可得到滤波器的系统函数。但通常以理想滤波器作为,幅度特性逐段恒定,在边界频率处有不连续点,因而是无限时宽的,且是非因果序列1。对于fir滤波器的输出可以认为是输入信号与有限长单位脉冲响应的直接卷积6。所以设计fir滤波器的关键就是根据要求找到个傅里叶级数系数,以项傅氏级数去近似代替无限项傅氏级数。为了获得有限长单位脉冲响应,只有将截取一段,并保证截取的一段关于偶对称。设截取的一段用表示,即: (1)式中,是一个长度为的关于偶对称的序列,称为窗函数。当延时个长度时,截取的一段关于偶对称,保证所设计的滤波器具有线性相位。系统函数由(1)式可得。这种fir滤波器设计方法就是窗函数法1。2.2窗函数法设计思路窗函数法设计简单,有闭合形式的公式,因而很实用。缺点是通带、阻带的截止频率不容易控制1,5,7。数字滤波器的好坏取决于窗函数的选取,窗函数法设计的关键是:选择合适的窗函数,选择合适的阶数,改善数字滤波器的幅频特性,减少gibbs(吉布斯)现象,解决收敛问题1,3。常用的窗函数有矩形窗、bartlett窗、hanning窗(升余弦窗)、hamming窗(改进的升余弦窗)、blackman窗、kaiser窗等,详情可查阅文献1、3、4。窗函数法的设计步骤为:首先给定所要求的频率响应函数;其次,由的傅立叶反变换导出;再次,根据过渡带宽及阻带最小衰减要求,比对上述6种窗函数基本参数选定窗函数及值,求得fir滤波器的单位脉冲响应;最后,求,并检验是否满足要求,不断调节相关参数8。3 软件实现与应用3.1计算机辅助设计界面visual basic (vb)是支持可视化编程的、面向对象的、采用事件驱动方式的结构化程序设计语言。设计中的整个fir计算机辅助设计系统界面主要参照文献9和10,界面上参数设置方便直观,不同参数对应的不同图像之间可以进行比较,便于分析和理解,如图1所示。图1 fir数字滤波器界面计算机辅助设计的界面主要由文本框、组合框、命令按钮、单选钮、复选框、图片框组成。其中文本框主要用来接收各种滤波器的技术参数,显示fir滤波器的系统函数的系数和各种操作的详细说明。当技术参数改变时,便可单击“设计”命令按钮产生触发事件picturebox的相应的单位脉冲响应图、幅频响应图、相频响应图及逼近误差图,显示在新参数下的特性图,并在文本框中显示fir滤波器的系统函数的系数;复选钮用于确定参数可调;组合框用来选择窗函数的类型和频率单位;单选钮用来选择数字滤波器类型(低通、带通、带阻、高通)和设计方法。当数字滤波器参数输入完毕,然后选择组合框中的内容和单选钮,触发“设计”按钮,图像框便会显示相应图形;命令按钮主要完成滤波器设计、图像查看、系统函数系数的导出及退出功能。3.2软件实现软件设计思想是根据 visual basic 6.0 的事件驱动机制设计出所有需要的函数。当在对象上发生事件后,应用程序就要处理这个事件。设计了以下主要函数:常用数学函数、绘图函数、各类窗函数、各类滤波器的单位脉冲响应函数和设计函数、幅频和相频特性函数。在设计fir滤波器时,可先根据滤波器类型和窗函数类型,在对应滤波器设计函数中调用相应窗函数求得所需要的长度为的窗函数结果,然后用对应滤波器单位脉冲响应函数计算得到截断的理想滤波器的单位脉冲响应,最后根据式(1)得到实际设计的滤波器的单位脉冲响应。随后,再将实际设计的滤波器的单位脉冲响应带入幅频、相频特性函数,就可得到相关数据。当然,绘制相关图形时,只需将各结果带入相应绘图模块。将各个功能归纳成一个个函数function或模块sub,整个程序结构清晰明了,易于差错和分析。3.3应用实例不同参数对应的不同的特性图显示在单位脉冲响应、幅频、相频图上,清晰直观。现举例说明本软件的功能,并与matlab设计的滤波器进行比较验证。例1:用hamming窗设计一个低通fir滤波器,通带截止频率,阻带截止频率,通带峰值起伏,阻带最小衰减。编程软件采用hamming窗设计的结果如下图2(a)所示:(a) vb程序设计结果 (b) matlab程序设计结果图2 hamming窗设计低通滤波器的特性曲线()为了对比设计滤波器系数的误差,同时采用matlab设计了实例1的滤波器。将两种设计的滤波器系数进行对比,详见表1。表1 fir低通滤波器系统函数系数表h(n)vb程序计算matlb程序计算误差/%h(0)0.001510.00150.667 h(1)0.00000-0.00000 h(2)-0.00249-0.0025-0.400 h(3)-0.00227-0.0023-1.304 h(4)0.003350.00331.515 h(5)0.007830.00780.385 表1数据表明,采用vb设计的数字滤波器与matlab设计的最大误差为1.515%。说明,采用的设计方法是正确有效的。例2:用kaiser窗设计一个带阻fir滤波器,通带上限截止频率,通带下限截止频率,阻带上限截止频率,阻带下限截止频率,通带峰值起伏,阻带最小衰减。编程软件采用kaiser窗设计的结果如图3所示,并与采用matlab设计的实例2的滤波器进行比较验证,两者设计的系统函数系数如表2所示:图3 kaiser窗设计带阻滤波器的特性曲线(,)表2 fir带阻滤波器系统函数系数表h(n)vb程序计算matlb程序计算误差/%h(31)0.00591 0.0059 0.169 h(32)0.03746 0.0375 -0.107 h(33)-0.12255 -0.1226 -0.041 h(34)-0.07214 -0.0721 0.055 h(35)0.26190 0.2619 0.000 h(36)0.03649 0.0365 -0.027 h(37)0.67500 0.6751 -0.015 vb编程软件中,kaiser窗设计的带阻滤波器的阻带最小衰减,并且当时,幅度衰减为66db,满足技术指标采用。vb设计的数字滤波器与matlab设计的最大误差仅为0.169%。再次说明,本编程软件设计的结果正确有效。例3:用blackman窗和kaiser窗设计一个高通fir滤波器,通带截止频率,阻带截止频率,通带峰值起伏,阻带最小衰减。编程软件采用blackman窗和kaiser窗设计的特性曲线如下图4(a)、(b)所示: 图(a) blackman窗设计的高通滤波器()图(b) kaiser窗设计的高通滤波器(,)图4 高通滤波器的特性曲线从图4中可以看出,这两种方案都可以达到设计指标。可是用kaiser窗可以使滤波器的阶数减少很多,这样在硬件实现时可以节约很多资源,所以kaiser窗是个很优越的窗函数。kaiser窗是一个参数可调的最优窗函数,其中是一个可选参数,一般说来,越大,过渡带越宽,阻带越小衰减也越大。特通过例3来验证的影响。详见图5。 图(a) kaiser 窗(,) 图(b) kaiser 窗(,) 图(c) kaiser 窗(,)图(d) kaiser 窗(,)图5 kaiser 窗设计的例3高通滤波器特性曲线以幅度衰减70db对应的频率为阻带截止频率,通带截止频率,过渡带宽。比较图5(a)、(b)、(c),从图中可以看出当滤波器的参数固定时,过渡带宽随的增加而逐渐增大。比较图5(c)、(d),从图中可以看出当固定时,过渡带宽随滤波器的参数的增加而逐渐减小。4 结论基于visual basic 6.0面向对象的fir数字滤波器设计,体现了visual basic 6.0的可视界面和面向对象的特点,极大的提高了应用程序开发的效率。fir滤波器设计程序运行结果理想,波形直观。所产生的幅频特性、相频特性图形便于分析比较,产生的系统函数系数更是为滤波器的实现提供了很大方便;通过对参数的改变可以掌握各种参数对滤波器设计的影响程度,通过参数调整,可最大达到设计数字滤波器的指标。切比雪夫等波纹逼近法是一种更优的方法,有待进一步研究及实现。【参考文献】1 高西全,丁玉美著.数字信号处理( 第三版) m.西安:西安电子科技大学出版社,2008.149-2302 朱武,张佳民,张智明著.基于并行结构分布式算法的fir滤波器设计j.电子测量与仪器学报,2007,21(4):87-923 a.v.奥尔海姆,r.w.谢弗,j.r.巴克著.离散时间信号处理(第二版)m.刘树棠,黄建国译.西安:西安交通大学出版社,2001.236-252,373-4104 joyec van de vegte.fundamentals of digital signal processingm.北京:电子工业出版社,20035 陈明军,毛樟梅著.改进窗函数在fir数字滤波器设计中的应用j.继电器,2007,35(17):65-676 田丰,牟卫华,陈华明,雍少为著.基于分布式算法的线性相位fir滤波器设计j.舰船电子工程,2010,30(2):57-607 谭家杰,罗昌由,黄三伟,邓小辉著.用改进的窗函数设计fir数字滤波器j.衡阳师范学院学报,2010,31(6):31-348 闫胜利著.fir滤波器原理及设计方法j.长春工程学院学报(自然科学版) ,2003,4(1):63-659 谭家杰,陈淑芳,张兰英,唐建锋著.基于visual basic6.0 iir 数字滤波器设计j.四川理工学院学报(自然科学版),2008,21(3):88-9110 郑有增,亓莱滨著.visual basic可视化程序设计实验指导与实训m.北京:中国水利水电出版社,2004abstract: in this paper, how to design the symmetric coefficient fir (finite impulse response) digital filters has been presented in detail based on visual basic 6.0.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论