请教用IIR滤波器模拟fir滤波器与iir滤波器的算法的有哪些

基于MATLAB的FIR和IIR数字滤波器的设计--《吉林大学》2012年硕士论文
基于MATLAB的FIR和IIR数字滤波器的设计
【摘要】:本文主要内容是通过MATLAB工具设计两种数字滤波器的基本方法。这两种数字滤波器指无限脉冲响应(IIR, Infinite Impulse Response)滤波器和有限脉冲响应(FIR, Finite Impulse Response)滤波器,输入和输出信号皆为数字信号。以往传统的数字滤波器设计方法步骤繁琐,计算环节繁杂,一旦设计完成,无法便捷修改滤波特性曲线,十分不便,以上缺点极大的限制了数字滤波器的发展与应用。而MATLAB及其附带的工具箱功能十分强大,我们利用该软件设计上述的两种滤波器,可以做到随时把结果曲线与目标滤波特性曲线对比,从而做出改进,节省时间和工作量,优点十分显著。
本论文分为三部分:第一部分为序论,简单介绍数字信号处理中滤波器的作用和前景;第二部分介绍用MATLAB设计FIR数字滤波器的方法,包括窗函数法、频率采样法和最优等波纹法,最后使用MATLAB程序实现了IIR带通和低通滤波器的设计,并总结了上述几种方法各自的优缺点;第三部分介绍用MATLAB设计IIR滤波器的方法,主要介绍了基于两种转换原理的数字——模拟转换法,以及通过MATLAB实现转换法的具体做法,同时也用MATLAB程序直接设计了IIR带通和低通滤波器。
【关键词】:
【学位授予单位】:吉林大学【学位级别】:硕士【学位授予年份】:2012【分类号】:TN713.7【目录】:
摘要4-5abstract5-8第一章 序论8-12 1.1 研究数字滤波器的意义与背景8-9 1.2 MATLAB软件简介9-10 1.3 本文的研究内容10-12第二章 基于MATLAB的数字FIR滤波器设计12-38 2.1 数字FIR滤波器基础简介12-19
2.1.1 数字FIR滤波器的基本特性12-18
2.1.2 主流数字FIR滤波器的硬件实现方法18-19 2.2 MATLAB窗函数法设计FIR滤波器19-24
2.2.1 窗函数法的基本原理19-21
2.2.2 常用的窗函数介绍21-22
2.2.3 运用MATLAB窗函数设计FIR数字滤波器22-24 2.3 MATLAB频率采样法设计FIR滤波器24-27
2.3.1 频率采样法设计FIR滤波器的基本理论24-26
2.3.2 运用MATLAB频率采样函数设计FIR数字滤波器26-27 2.4 MATLAB最优等波纹法设计FIR滤波器27-31
2.4.1 最优等波纹法设计FIR滤波器的基本理论27-29
2.4.2 运用MATLAB最优等波纹法设计FIR数字滤波器29-31 2.5 MATLAB滤波器工具设计FIR滤波器实例31-36
2.5.1 运用MATLAB设计FIR带通滤波器31-33
2.5.2 运用MATLAB设计FIR低通滤波器33-36 2.6 分析与小结36-38第三章 基于MATLAB的数字IIR滤波器设计38-70 3.1 数字IIR滤波器基础简介38-40 3.2 基于MATLAB对IIR滤波器的设计和仿真40-45
3.2.1 FDATool的界面设计40-42
3.2.2 MATLAB程序设计法42-43
3.2.3 对设计成的IIR滤波器的分析43-44
3.2.4 基于Simulink的仿真实例44-45 3.3 设计简单级联型数字IIR滤波器45-55
3.3.1 低通数字滤波器设计45-46
3.3.2 数字滤波器的频带变换46-52
3.3.3 通过频带变换法设计滤波器的实例52-55 3.4 通过双线性变换法设计滤波器55-59
3.4.1 利用双线性变换法设计滤波器的基本原理55-56
3.4.2 双线性变换法的基本原理56-57
3.4.3 运用双线性变化法的滤波器设计实例57-59 3.5 基于脉冲响应法的新型IIR滤波器设计方法59-60 3.6 运用MATLAB程序设计IIR滤波器60-66
3.6.1 运用MATLAB设计IIR带通滤波器60-63
3.6.2 运用MATLAB设计IIR低通滤波器63-66 3.7 分析与小结66-70结论70-72参考文献72-74致谢74
欢迎:、、)
支持CAJ、PDF文件格式
【参考文献】
中国期刊全文数据库
李茂;任学恒;李涛;张怀武;;[J];磁性材料及器件;2007年01期
薛健;陈后金;胡健;;[J];电气电子教学学报;2012年01期
陶国彬;张秀艳;任玉霞;;[J];大庆石油学院学报;2007年06期
姜乃卓;都思丹;;[J];电子测量技术;2010年12期
刘彬;;[J];电子测量技术;2011年04期
李峥嵘,桑怀胜,王飞雪,雍少为;[J];国防科技大学学报;2003年04期
黄吉胜;;[J];哈尔滨科学技术大学学报;1996年05期
赵瑞杰,赖晓平;[J];山东大学学报(工学版);2004年04期
毛青春;徐分亮;;[J];中国水运(学术版);2007年02期
吕绍娟;赵不贿;;[J];微计算机信息;2008年20期
【共引文献】
中国期刊全文数据库
李晶;谷彩连;;[J];安徽电气工程职业技术学院学报;2008年01期
刘凯歌;;[J];安防科技;2011年09期
朱哲;钟伟红;;[J];安徽电子信息职业技术学院学报;2008年06期
高清维,程玉林,明军;[J];安徽大学学报(自然科学版);1999年04期
孙静静;;[J];安徽大学学报(自然科学版);2010年01期
徐辉;;[J];安徽农业科学;2008年31期
胡远东;;[J];安徽科技学院学报;2009年05期
,刘涤尘;[J];安全与电磁兼容;2005年04期
刘全金;张杰;朱永忠;江贵生;;[J];安庆师范学院学报(自然科学版);2005年04期
丁蕾;;[J];安庆师范学院学报(自然科学版);2007年04期
中国重要会议论文全文数据库
王成磊;郭治富;董彦良;赵克定;;[A];第十五届流体动力与机电控制工程学术会议论文集[C];2011年
张军;贾瑞清;;[A];2004“安徽制造业发展”博士科技论坛论文集[C];2004年
章大勇;吴文启;吴美平;;[A];第二十七届中国控制会议论文集[C];2008年
陈丽;吴仁彪;卢丹;;[A];第三届中国卫星导航学术年会电子文集——S07北斗/GNSS用户终端技术[C];2012年
曾朝阳;贾鑫;张晓永;;[A];中国光学学会2010年光学大会论文集[C];2010年
陈晓清;马君国;赵宏钟;付强;;[A];中国光学学会2010年光学大会论文集[C];2010年
汤辰;毕传兴;徐亮;;[A];现代振动与噪声技术(第九卷)[C];2011年
蒋瑜;陈循;陶俊勇;;[A];第九届全国振动理论及应用学术会议论文集[C];2007年
蒋济同;唐世振;;[A];第九届全国振动理论及应用学术会议论文集[C];2007年
李盛林;胡天玉;梅华;;[A];“2010年北京气象学会中青年优秀论文评选”学术研讨会论文集[C];2011年
中国博士学位论文全文数据库
范迪;[D];山东科技大学;2010年
殷复莲;[D];哈尔滨工程大学;2010年
吴冬梅;[D];哈尔滨工程大学;2010年
于志明;[D];哈尔滨工程大学;2010年
邓志鑫;[D];哈尔滨工程大学;2009年
刘友永;[D];哈尔滨工程大学;2009年
朱广平;[D];哈尔滨工程大学;2009年
刘文海;[D];哈尔滨工程大学;2010年
宫宇;[D];大连海事大学;2010年
苏晓宏;[D];大连海事大学;2010年
中国硕士学位论文全文数据库
李锦;[D];南昌航空大学;2010年
黄正荣;[D];南昌航空大学;2010年
张亮;[D];山东科技大学;2010年
刘希花;[D];山东科技大学;2010年
张海社;[D];山东科技大学;2010年
李国伟;[D];山东科技大学;2010年
曹倩;[D];山东科技大学;2010年
陈磊;[D];长春理工大学;2010年
任泉;[D];浙江理工大学;2010年
钟丽辉;[D];郑州大学;2010年
【二级参考文献】
中国期刊全文数据库
周金治;;[J];兵工自动化;2005年06期
余志强;刘建华;何朝峰;刘宁宁;石彦辉;;[J];电测与仪表;2007年05期
赵娜;黄志利;徐宝连;杨楠;;[J];弹箭与制导学报;2008年03期
朱广信;王匡;徐红;;[J];电路与系统学报;2010年02期
顾文奕;;[J];电子测量技术;2008年05期
吴建斌;俞林;李太全;;[J];电子测量技术;2008年07期
姜乃卓;都思丹;;[J];电子测量技术;2010年12期
王华东;鲍景富;吴正德;;[J];电子测量与仪器学报;2008年03期
周砚江;顾焕峰;冯佳良;;[J];电子测量与仪器学报;2008年03期
程亮;童玲;;[J];电子测量与仪器学报;2009年01期
【相似文献】
中国期刊全文数据库
葛仁华;[J];桂林航天工业高等专科学校学报;2000年02期
沈荻帆,许向华;[J];苏州大学学报(自然科学);2000年04期
赵金峰;张文利;吴瑞金;;[J];军事通信技术;2000年01期
谢强,洪嘉祥;[J];南京理工大学学报;2001年01期
肖扬,宋明艳;[J];通信学报;2001年10期
钱进;[J];长江职工大学学报;2001年03期
王光芦,徐明;[J];航空标准化与质量;2001年01期
陈章位,王述成;[J];振动与冲击;2002年03期
杨帮华;[J];测控技术;2002年09期
唐毅谦,赵悦,寇立华,陈鹏,王登新;[J];辽宁工学院学报;2002年04期
中国重要会议论文全文数据库
刘焕淋;何方白;张云麟;庄陵;;[A];第九届全国青年通信学术会议论文集[C];2004年
贾再一;赖晓平;陈仕兵;;[A];第九届全国信号处理学术年会(CCSP-99)论文集[C];1999年
黄建军;谢维信;;[A];第十届全国信号处理学术年会(CCSP-2001)论文集[C];2001年
张培珍;;[A];2011高等职业教育电子信息类专业学术暨教学研讨会论文集[C];2011年
夏惊雷;范建华;王庭昌;;[A];2005通信理论与技术新进展——第十届全国青年通信学术会议论文集[C];2005年
黄凯明;王兆明;林发炳;;[A];2006中国控制与决策学术年会论文集[C];2006年
张涛;蒋静坪;张项安;;[A];2006中国电力系统保护与控制学术研讨会论文集[C];2006年
陈玙;王炳和;江川;;[A];2009年西安-上海声学学术会议论文集[C];2009年
郭清风;王建国;;[A];2006北京地区高校研究生学术交流会——通信与信息技术会议论文集(上)[C];2006年
陈彬;周昀;卢红伟;袁哲;刘云飞;;[A];2008’“先进集成技术”院士论坛暨第二届仪表、自动化与先进集成技术大会论文集[C];2008年
中国重要报纸全文数据库
成都 张华;[N];电子报;2011年
;[N];电子报;2004年
中国博士学位论文全文数据库
黄朝耿;[D];浙江工业大学;2013年
方伟;[D];江南大学;2008年
朱广信;[D];浙江大学;2010年
孔阳;[D];中国科学技术大学;2011年
赵瑞杰;[D];山东大学;2012年
中国硕士学位论文全文数据库
仰继连;[D];湘潭大学;2008年
袁博;[D];杭州电子科技大学;2011年
李彩霞;[D];哈尔滨工程大学;2007年
郝逸轩;[D];长沙理工大学;2012年
吴光清清;[D];西南交通大学;2011年
张翔宇;[D];哈尔滨工业大学;2013年
孟海龙;[D];杭州电子科技大学;2013年
周飞红;[D];湖南师范大学;2009年
高和平;[D];浙江工业大学;2011年
侯秀竹;[D];杭州电子科技大学;2012年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号FIR滤波器的设计应用
FIR滤波器的定义
  F(Finite Impulse Respse)是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
FIR滤波器的特性
&&&&& 数字具有比模拟滤波器更高的精度,甚至能够实现后者在理论上也无法达到的性能。
&&&& &1、数字滤波器相比模拟滤波器有更高的信噪比。这主要是因为数字滤波器是以数字器件执行运算,从而避免了模拟中噪声(如热噪声)的影响。数字滤波器中主要的噪声源是在数字系统之前的模拟电路引入的电路噪声以及在数字系统输入端的模数转换过程中产生的量化噪声。这些噪声在数字系统的运算中可能会被放大,因此在设计数字滤波器时需要采用合适的结构,以降低输入噪声对系统性能的影响。
&&&& 2、数字滤波器还具有模拟滤波器不能比拟的可靠性。组成模拟滤波器的元件的电路特性会随着时间、温度、电压的变化而漂移,而数字电路就没有这种问题。只要在数字电路的工作环境下,数字滤波器就能够稳定可靠的工作。
&&& &3、数字滤波器的处理能力受到系统采样频率的限制。这是因为奈奎斯特采样定理(en:Nyqui sampling theorem),如果输入信号的频率分量包含超过滤波器1/2采样频率的分量时,数字滤波器因为数字系统的“混叠”而不能正常工作。如果超出1/2采样频率的频率分量不占主要地位,通常的解决办法是在模数转换电路之前放置一个(即抗混叠滤波器)将超过的高频成分滤除。否则就必须用模拟滤波器实现要求的功能。
FIR滤波器的分类
目前,F的硬件实现有以下几种方式:
  1.1、数字FIR滤波器
  一种是使用单片通用数字滤波器集成,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。
  1.2、FIR滤波器
  另一种是使用DSP芯片。DSP芯片有专用的数字信号处理函数可调用,实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。而且,就是同一公司的不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。
  1.3、可编程FIR滤波器
  还有一种是使用,/CPLD。FPGA有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。
基于DSP Builder的14阶FIR滤波器的设计
数字在数字信号处理的各种应用中发挥着十分重要的作用,他是通过对采样数据信号进行数学运算处理来达到频域滤波的目的。数字滤波器既可以是有限长单脉冲响应(F)滤波器也可以是无限长单脉冲响应(IIR)滤波器。在维纳滤波器理论发明的早期,人们使用IIR滤波器,但现在更多是使用FIR滤波器。本文按照Matlab/Simulink/ Builder/QuartusⅡ流程,设计一个FIR滤波器。 DSP Builder是连接Simulink和QuartusⅡ开发软件的DSP。在DSP Builder的无缝设计流程中,首先在Matlab软件中进行算法设计,然后在Simulink软件中进行系统集成,最后将设计输出为硬件描述语言(HDL)文件,以便在QuartusⅡ软件中使用。
1 FIR滤波器介绍
1.1 FIR滤波器原理
对于一个FIR滤波器系统,他的冲激响应总是有限长的,其系统函数可以记为:
其中:x(n)是输入采样序列;h(n)是滤波器系数;L是滤波器的阶数;y(n)表示滤波器的输出序列。也可以用卷积来表示输出序列y(n)与x(n),h(n)的关系。 y(n)=x(n)*h(n)
典型的直接I型FIR滤波器如图1所示,其输出序列y(n)满足下式:
1.2 设计要求
数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统,他的设计步骤是先根据需要确定其性能指标,设计一个系统函数h(n)逼近所需要的性能指标,滤波器的系数的计算可以借助Matlab强大的计算能力和现成的滤波器设计来完成,最后采用有限的精度算法实现。本系统的设计指标为,设计一个14阶的FIR滤波器。1 MHz和16 MHz的两个正弦波的合成波形,经过这个滤波器,滤除16 MHz的成分。
2 DSP Builder设计流程
使用DSP Builder完成设计时,首先在Matlab/Simulink软件中建立模型文件(.mdl),DSP Builder SignalCom-piler模块读取由DSP Builder和MegaCore模块构建的Simulink建模文件(.mdl),生成VHDL文件和工具命令语言(Tcl)脚本,进行综合、硬件实施和仿真。
3 FIR数字滤波器的DSP Builder设计
3.1 Matlab/Simulink建模
根据FIR数字滤波器的算法,在Matlab的Simulink环境中建立一个MDL模型文件。用图形方式调用Alter-aDSPBuilder和其他的Simulink库中的图形模块。
3.2 在Simulink中仿真并生成VHDL代码
完成模型设计之后,可以先在Simulink中对模型进行仿真,可以通过Simulink中的模块查看各步骤的中间结果。输入信号采用频率为1 MHz和16 MHz的两个正弦波的叠加。仿真结果如图2所示。从仿真波形可以看出,经过FIR滤波器之后,16 MHz的高频信号被很好地滤除了。
3.3 使用Modelsim进行RTL仿真
在Simulink中进行的仿真是属于系统验证性质的,是对mdl文件进行仿真,并没有对生成的VHDL代码进行过仿真。事实上,生成VHDL描述的是RTL级的,是针对具体的硬件结构的,而在Matlab的Simulink中的模型仿真是算法级的,两者之间有可能存在软件理解上的差异。转换后的VHDL代码实现可能与mdl模型描述的情况不完全相符。这就需要针对生成的RTL级VHDL代码进行功能仿真,如图3所示。
仿真结果说明,本滤波器可以较好地起到滤波的效果,由于输入正弦波经过数字化过程之后在Modelsim中还原出的模拟波形出现失真现象。
3.4 使用QuartusⅡ进行时序仿真和综合编译
Modelsim完成的RTL级仿真只是功能仿真,其仿真结果并不能精确地反映的全部硬件特性,进行门级的时序仿真仍然是十分重要的。时序仿真即针对具体硬件,在仿真时加入芯片内部的时间信息包括:建立时间,保持时间,关键路径延时等。综合编译后,tsu=4.622 ns,tco=6.925 ns,th=0.415 ns,时间分析符合实际情况。
4 滤波器设计在上的实现
由于从Simulink建模仿真,到Modelsim RTL仿真和QuartusⅡ时序仿真,使用的输入正弦波都是仿真信号,而不是实际的。在硬件实际运行时,可以从外部信号源接入芯片内部或者在芯片内部存储正弦波的数据。这里采用的是后者,即在顶层文件中引入LPM_ROM宏模块,在其中存入正弦波数据的mif文件(存储初始化文件),FIR滤波器模块直接从ROM中读取数据,经过滤波处理之后数据存入另一ROM中,可以通过In-systemmemory content editor工具从中读出数据,再利用Matlab还原出波形,从而在实际硬件中验证了滤波器的功能。   实现的顶层图如图4所示。
本文采用Matlab/Simulink/DSP Builder/QuartusⅡ的设计流程,实现了14阶FIR滤波器。通过系统仿真,RTL仿真,时序仿真和实际硬件测试(这里采用了一种不需要使用SignaltapⅡ软件逻辑的方法)对滤波器的功能、性能等进行了分析,从而验证了采用DSP,Builder实现滤波器设计的硬件化的独特优势。
于脉动阵列的FIR滤波器设计
  1引 言
  有限长冲激响应(F)在数字信号处理中是一种基本的处理单元。无限长单位冲激响应(IIR)数字滤波器的优点是可以利用模拟滤波器设计的结果,但其缺点是不具有线性相位性。图像处理以及数据传输都要求信道具有线性相位特性,FIR滤波器可以做成严格的线性相位,避免被处理信号产生相位失真,还可以具有任意的幅度特性。此外,FIR滤波器的单位冲激响应是有限长的,因而滤波器一定是稳定的。  在数字滤波器的研究中,已经提出多种FIR滤波器的设计和实现方法,如并行结构、流水线结构、分布式结构等[1-3]。FIR滤波器计算量大,且要求实时实现。如何提高速度以满足信号处理的高效性和实时性一直是人们研究的重点和热点。脉动阵列是一种新型的流水线结构,所有处理单元是相同且全流水的,并且有模块化和规则化的特征,这对于硬件设计是很重要的。脉动阵列结构可以很好地满足高速实时信号处理的需要,提高数据的通过率及的执行速度。该结构结合了并行结构和流水线的优势,使FIR滤波器达到了更高的处理速度。
  数字滤波器现在大多在上实现[4]。随着技术的发展,现在已有多种专用DSP芯片用于实现滤波、FFT等运算。另外,内部的规整的逻辑块阵列,很适合实现脉动阵列这种高度并行的运算。公司新推出的ratix系列FPGA内部有丰富的逻辑阵列资源及高性能嵌入式DSP块,能够高效地实现数字信号处理功能[5]。  本文首先介绍了FIR滤波器和脉动阵列的原理,然后设计了脉动阵列结构的FIR滤波器,画出电路的结构框图,并进行了时序分析,最后在FPGA上进行验证。结果表明,脉动阵列的模块化和高度流水线的结构使FIR滤波器在FPGA上获得了很好的性能,比串行结构的运算速度更快,呵以更好地满足数字信号处理中高效、实时的要求。
  2 FIR滤波器及脉动阵列原理
  2.1 FIR滤波器原理
  数字滤波器用于改变输入信号X(n)的频谱特性以满足某种特定的设计要求。一个因果的数字滤波器可以用它的单位冲激响应h(n)、传输函数H(z)或者差分方程来表达。其中单位冲激响应和传输函数描述了系统的时域和频域性质,差分方程则反映了实现该滤波器所需的运算。
  一个线性时不变因果滤波器可以用式(1)的差分方程描述:
  如果1≤k≤N时,ak=0,则:
  这就是一个M阶的FIR滤波器,是非递归运算。
  2.2 脉动阵列
  脉动阵列结构是1978年由Carneige-Mell大学的H.T.Kung等人发展起来的一种专用设计模型,是一种新的流水线结构,表示一种有节奏地汁算并通过系统传输数据的处理单元网络。这些处理单元规则地泵入泵出数据以维持规则的数据流[6]。由于其数据运算与传送方式类似于心脏或脉搏有节奏地跳动,因此被称为心动阵列或脉动阵列。利用脉动阵列可设计出一系列适合数字信号处理应用的模块化、规则且有效的运算结构。脉动阵列结构的基本特性如下:
  (1)脉动性
  数据在一个全局时钟的精确控制下,有节奏地经过计算和传递过程,最后通过网络。
  (2)模块性和规则性
  阵列由模块化的处理单元组成,各处理单元之间的互连方式均匀一致,并且计算网络可任意扩大。
  (3)空间局部性和时间局部性
  表现在数据从一个计算节点传递到下一个计算节点至少需要一个单元时间。
  (4)有效的流水线结构
  脉动阵列免除了形成数据流所需的控制开销。阵列内处理单元间的局部连接方式使阵列中负载均匀、连线极短,最大限度地减小了系统内部的通信延时,提高了处理单元的利用率,使整个阵列的系统性能得到充分发挥。
  脉动结构是将线性映射技术用于规则依赖图上进行设计的。依赖图的边表示优先约束。脉动阵列设计中的基本矢量有:
  (1)投影矢量:
  (2)处理器矢量:PT=(p1 p2)
  (3)调度矢量:ST=(S1 S2)
  (4)硬件利用率:HUE=1/│STd │
  3 FlR滤波器的脉动结构设计
  3.1 FIR滤波器的脉动阵列结构
  用调度不等式选择可行的调度矢量ST,并根据脉动结构的可行性限制条件选择投影矢量d和处理器空间矢量PT,然后用线性映射技术设计脉动列。
  选择投影矢量、处理器矢量和调度矢量如下:
  于是,节点IT=(i,j)被处理为:
  节点IT=(i,j)的执行时间为:
  硬件利用率:
  以五阶FIR滤波器为例:
  其中,d0,d1,d2和d3作为延时单元,m0,m1,…,m4为固定乘数的乘法器,乘数分别为ω0,ω1,…,ω4。乘法器m0和加法器a0构成处理器P0;乘法器m1和加法器a1构成处理器P1;类似的,m4和a4构成处理器P4。5个处理器同时工作,x(n)输入后同时到达5个处理器,分别和权重ωi相乘后,经不同的延时相加得到结果y(n)。
  该设计框图很好地体现了2.2节提到的脉动阵列的4个基本特性。数据在网络中有节奏的输入、计算、传递并输出。
  该结构由5个相同的模块化处理器构成,容易扩展,可实现任意阶的FIR滤波器。数据的输入、和权重的相乘、中间结果的寄存、数据的输出各需要一个单元时问,但这几种操作可同时进行,不会互相干扰。该脉动阵列结构以高度的流水线方式运行。
  需要注意的是,在乘法器输出的时候需要对输出的数据进行一位扩展,以避免加法器的溢出问题。
  3.2 时序分析
  该结构的空问时间表示如图2所示。横轴为时间轴,纵轴为处理器轴。图中的每一行对应一个处理器。可以看到在时间轴的某一点上,输入数据x(n)在同一时间剑达所有处理器,即输入"广播";在处理器轴的某一点上,权重ωi在各处理器中处于相同的空间坐标,因此权重"保持";而输出数据y(n)在不同的空间和时间得到,所以输出"移动"。该FIR滤波器为输入广播、权重保持、输出移动型的脉动阵列结构。
  借助于脉动阵列技术,输入和输出之间的处理可以同时进行,因此,总的执行时间变得最小。对该结构进行时序分析,如图3所示。在第一个时钟周期x(0)送到各处理器,和权重分别相乘后在第二个时钟周期得到y(0)=ω0x(0),在此同时数据x(1)已经输入;第三个时钟周期输入x(2),在处理器P0得到ω0x(1),此时处理器P1的结果ω1x(0)经一级延时后和P0的结果相加得到y(1)=ω0(1)+ω1x(O)。同理,第四个周期得到y(2)=ω0x(2)+ω1x(1)+ω2x(0),第五个周期得到y(3)=ω0x(3)+ω1x(2)+ω2x(1)+ω3x(O)…。  4 FPGA验证
  以一个输入输出均为8 b的五阶FIR滤波器为例,对该脉动阵列结构的FIR滤波器在FPGA上进行验证。目标器件选用Stratix系列器件,编译软件为QuartusⅡ4.2。
  Stratix系列器件是Altera公司推出的新型FPGA,其内部有丰富的嵌入式、优化的数字信号处理(DSP)块和高性能I/O能力。Stratix器件是设计复杂的高性能系统的理想选择。StratiX器件使用DSP块实现大计算量应用所需的大数据吞吐量。DSP块由硬件乘法器、加法器、减法器、累加器和流水线寄存器组成[6]。从图1中可以看出,每个处理器单元由一个乘法器和一个加法器构成,这种结构很适合用FPGA内部的DSP块实现。
  实验结果如表1所示。为了便于比较,使用相同的器件,还给出了串行结构FIR滤波器的实验结果。在串行结构中,每次计算1个x(n),需要3个时钟周期。脉动阵列结构每次计算5个x(n),需要5个时钟周期。每个x(n)为8 b数据。运算速度可以由下面的公式得出:
  运算速度=(每次处理数据长度/运算耗用的时钟周期数)×系统时钟频率
  从表中可以看出,在占用逻辑单元的数量上二者基本相当,虽然串行结构只占用了一个DSP块,脉动阵列结构占用了5个,但串行结构的最高运算速度只能达到284.93 Mb/s,脉动阵列可以达到1 840.32 Mb/s。显然脉动阵列结构更具优势,可以更好地满足数字信号处理中高效、实时的要求。本文基于脉动阵列技术,设计了高效的FIR滤波器,具有模块化和流水线的结构,并充分利用了FPGA资源,达到了较高的工作频率。
  5 结 语
  FIR滤波器是数字信号处理中的一种基本运算,有着广泛的应用。基于脉动阵列结构,本文设计了高效的FIR滤波器。模块化和高度流水线的结构使得其在FPGA上获得了较好的性能,完全可以满足系统高效、实时处理的要求,提高了系统运算速度并充分合理地利用了FPGA资源。另外,由于脉动阵列自身的特点,各级结构相同,方便扩展,可以实现任意阶的FIR滤波器。
适合单片机实时处理的简单FIR滤波器设计
  l 引 言
  近年来,心脏病的发病率不断上升,为了使病人能够随时随地得到诊治,科研人员研制了多种便携式移动心电监护设备。在研制便携式心电监护设备时,既要考虑使 用者携带及使用方便,又要保证采集到高质量的心电信号。解决这一矛盾的惟一途径就是用尽量优化的软、硬件资源来完成相应功能。心电信号的频率在0. 05~100 Hz之间,一个正常的心电图由P波、QRS波群、T波等组成。由频谱分析可知,QRS波群的中心频率在17 Hz带宽约为10 Hz,P波、T波等的频带都在此频带的低端以外[1]。心电信号采集过程中的噪声源主要有:50 Hz工频干扰及其各次谐波,呼吸运动和电极移动所产生的频率小于5 Hz的干扰,肌肉收缩产生的O~100 Hz肌电(EMG)噪声,用于信号处理的设备所产生的噪声等[2,3]。其中最明显的是50 Hz工频干扰及其各次谐波和由于呼吸运动所产生的频率小于5 Hz的干扰。要得到清晰、准确的心电信号,必须在不影响正常心电波形的基础上将这些干扰滤除。这就要求具有良好的幅频特性和严格的线性相位特性。本 文借助Matlab 7.0[4],采用窗函数法结合零、极点调整法[1]和试探法设计了一种滤除工频50 Hz干扰的F滤波器。
  2基本原理
  2.1 窗函数设计滤波器[6,7]原理简述
  设滤波器的理想频率响应函数为Hd(ejw),则其对应的单位脉冲响应为:
  窗函数法设计滤波器的基本原理就是用有限长度单位脉冲响应序列h(n)去逼近hd(n)。通常hd(n)是无限长序列,且是非因果的,所以用窗函数w (n)将hd(n)进行截断并作加权处理得到:
  h(n)=hd(n)w(n)
  h(n)就是实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为:
  其中,N为所选窗函数w(n)的长度。同时,如果要求滤波器具有线性相位特性,则h(n)必须满足:
  h(n)=±h(N-1-n)
  2.2方法改进及实现
  设计中选用FIR I型滤波器[8,9],即满足h(n)=+h(N-1-n)且N为奇数。选用Hamming窗对理想滤波器的单位脉冲响应进行截断,窗函数为:
  w(n)=0.54-0.46 cos(2nn/N),N=0,1,2,…,N-1
  按常规设计方法直接设计50 Hz FIR,要达到较好的滤波效果,滤波器的阶数较高且滤波器系数多为小数,不利于通用进行实时处理。设定采样频率Fs=200 Hz,先用窗函数法设计一个低频特性较好的30 Hz,然后利用Matlab FDATOOL箱里的量化工具对滤波器的系数进行量化和调整。
  量化后滤波器的传递函数为:
  Hl(Z)=0.125+0.25 z1+0.375 z2+
  0.25 z-3+0.125 z-4
  3滤波器波形特性比较
  由以上滤波器的幅频特性,结合零、极点调整法和试探法反复对滤波器系数进行调整,使其具有更好的低频特性和50 Hz衰减特性。
  系数调整后滤波器的传递函数为:
  H2(z)=-0.25+z-1-0.5 z-2+z-3-0.25 z-4
  由滤波器幅频特性曲线可以看出,经系数调整后滤波器具有更好的低频特性,-3 dB截止频率为35 Hz,同时对50 Hz工频干扰的衰减达到-38 dB。但是,系数调整也使滤波器的高频特性变差,在68.8 Hz处的增益超过+3 dB。为了滤除心电信号中的高频噪声,必须对50 Hz以上频段范围内的信号进行衰减。
  同样,可以用窗函数法结合试探法设计了一个低频特性较好且具有良好高频衰减特性的40 Hz低通滤波器。利用Matlab FDATOOL工具箱里的量化工具对滤波器的系数进行量化和调整。
  量化后滤波器的传递函数为:
  H3(z)=0.25+0.5 z-1+0.25 z-2
  由幅频特性曲线可以看出,量化后滤波器的一3 dB截止频率为36.3 Hz且具有良好的低频和高频特性。综合以上两种滤波器的幅频特性,将这两种滤波器进行级联。级联后滤波器的传递函数为:
  滤波器的幅、相频率特性由图4可以看出,级联后滤波器的一3 dB截止频率为28.1 Hz,在50 Hz频率处的衰减为-44.2 dB,高频最小衰减为-10 dB,且滤波器在通带内具有严格的线性相位特性。该滤波器的群延时为:
  t=[(N-1)/2]*TS=3*5=15 ms
  由心电信号的功率谱可知,-28 dB的截止频率能够满足心电监护的需要。
  4滤波效果
  将上述设计的滤波器用于实际心电信号滤波取得了良好的滤波效果。
  5 结 语
  由滤波器的幅、相频率特性和实际滤波效果可以看出,该滤波器不但能够很好地滤除工频干扰而且具有良好的低频特性。同时,滤波器的系统函数中分子、分母的各 相系数均为整数,便于乘法运算。并且分母正好是2的4次幂,在进行除法运算时可以直接由一条移位指令完成。这无疑给编程和运算都带来了极大的方便。
  本滤波器结构简单、占用资源少、滤波效果好,非常适用于嵌入式便携设备中的信号滤波。同时,该滤波器的计方法也可以推广到其他相似性能指标的滤波器设计中在科研实践中一定会有较大的发展前途。
基于DSPBuilder的FIR滤波器的设计与实现
&&&&&& 1 引言
&&&&&& 在信息信号处理过程中,如对信号的过滤、检测、预测等,都要使用,数字滤波器是数字信号处理(,DigitalSignalProcessing)中使用最广泛的一种器件。常用的滤波器有无限长单位脉冲响应(ⅡR)滤波器和有限长单位脉冲响应(F)滤波器两种[1],其中,FIR滤波器能提供理想的线性相位响应,在整个频带上获得常数群时延从而得到零失真输出信号,同时它可以采用十分简单的算法实现,这两个优点使FIR滤波器成为明智的设计工程师的首选,在采用VHDL或VerilogHDL等硬件描述语言设计数字滤波器时,由于程序的编写往往不能达到良好优化而使滤波器性能表现一般。而采用调试好的IPCore需要向公司购买。笔者采用了一种基于DSPBuilder的设计方法,使FIR滤波器设计较为简单易行,并能满足设计要求。
&&&&&& 2 FIR滤波器介绍
&&&&&& 2.1 FIR滤波器设计的原理
&&&&&& FIR滤波器的数学表达式可用差分方程(1)来表示:
&&&&&& 其中:r是FIR的滤波器的抽头数;b(r)是第r级抽头数(单位脉冲响应);x(n-r)是延时r个抽头的输入信号。
&&&&&& 设计滤波器的任务就是寻求一个因果,物理上可实现的系统函数H(z),使其频率响应H(ejw)满足所希望得到的频域指标。
&&&&&& 2.2 设计要求
&&&&&& 数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统,它的设计步骤为先根据需要确定其性能指标,设计一个系统函数H(z)逼近所需要的技术指标,最后采用有限的精度算法实现。本系统的设计指标为;设计一个16阶的,对模拟信号的采样频率fs为48KHz要求信号的截止频率fc=10.8kHz输入序列位宽为9位(最宽位为符号位)。
&&&&&& 3 DSPBuilder介绍
&&&&&& DSPbuilder是Altera推出的一个DSP,它在QuartusⅡFPGA设计环境中集成了Mathworks的Matlab和simulinkDSP开发软件[2]。
&&&&&& 以往Matlab的使用往往作为DSP算法的建模和基于纯数学的仿真,其数学模型无法为硬件DSP应用系统直接产生实用程序代码,仿真测试的结果也仅仅是基于数学算法结构。而以往FPGA所需的传统的基于硬件描述语言(HDL)的设计由于要考虑FPGA的硬件的δ延时与VHDL的递归算法的衔接,以及补码运算和乘积结果截取等问题,相当繁杂。
&&&&&& 对DSP是Builder而言,顶层的开发工具是MatLab/Simulink整个开发流层几乎可以在同一环境中完成,真正实现了自定向下的设计流程,包括DSP系统的建模、系统级仿真、设计模型向VHDL硬件描述语言代码的转换、RTL(逻辑综合RegierTransferLevel)级功能仿真测试、编译适配和布局布线、时序实时仿真直至对DSP目标器件的编程配置,整个设计流程一气呵成地将系统描述和硬件实现有机地融为一体,充分显示了现代设计自动化开发的特点与优势。
&&&&&& 4 FIR数字滤波器的DSPBuilder设计
&&&&&& 4.1 FIR滤波器参数选取
&&&&&& 用Matlab提供的滤波器设计的专门———FDATool仿真设计滤波器,满足要求的FlR滤波器幅频特性如图1,由于浮点小数FPGA中实现比较
困难,且代价太大,因而需要将滤波器的系数和输入数据转化为整数,其中量化后的系数在Matlab主窗口可直接转化,对于输入数据,可乘上一定的增益用Altbus控制位宽转化为整数输入。
&&&&&&&&&&&&&&&&&&&&
&&&&&& 4.2 FIR滤波器模型建立
&&&&&& 根据FIR滤波器原理,可以利用FPGA来实现FIR滤波,DSPBuilder设计流程的第一步是在Matlab/Simulink中进行设计输入,即在Matlab的Simulink环境建立一个MDL模型文件,用图形方式调用AlteraDSPBuilder和其他的Simulink库中的图形模块,构成系统级或算法级设计框图(或称Simulink建模),如图2所示。
&&&&&&&&&&&&&&&&&&&&&
&&&&&& 4.3 基于DSPBuilder的滤波器仿真
&&&&&& 输入信号分别采用频率f1=8KHz和f2=16KHz的两个正弦信号进行叠加。其中的仿真波形如图3所示,从FIR滤波电路的仿真结果看出,输入信号通过滤波器后输出基本上变成单频率的正弦信号,进一步通过可看出f2得到了较大的抑制,与条件规定的fc=10.8kHz低通滤波器相符合,至此完成了模型仿真。
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&& 4.4 运用Modelsim进行功能仿真
&&&&&& 在Simulink中进行的仿真是属于系统验证性质的,是对MDL文件进行的仿真,并没有对生成的VHDL代码进行过仿真。事实上,生成VHDL描述是RTL级的,是针对具体的硬件结构的,而在Matlab的Simulink中的模型仿真是算法级(系统级)的,是针对算法实现的,这二者之间有可能存在软件理解上的差异,转换后的VHDL代码实现可能与MDL模型描述的情况不完全相符,这就是需要针对生成的RTL级VHDL代码进行功能仿真。
&&&&&& 在此,笔者利用Modelsim对生成的VHDL代码进行功能仿真。设置输入输出信号均为模拟形式,出现如图4所示的仿真波形,可以看到这与Simulink里的仿真结果基本一致,即可在QuartusⅡ环境下进行硬件设计。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&& 4.5 在FPGA器件中实现FIR滤波器
&&&&&& 在QuartusⅡ环境中打开DSPBuilder建立的QuartusⅡ项目文件firl.qpf。在QuartusⅡ中进行再一次仿真,由此可以看到符合要求时序波形,然后指定器件引脚并进行编译,最后下载到FPGA器件中,就可以对硬件进行测试,加上CLCOK信号和使能信号,用产生所要求的两个不同频率的正弦信号,就可以在上看到滤波以后的结果,需要设计不同的滤波器电路时,仅修改FIR滤波模型文件就可以实现,这样不仅避免了繁琐的VHDL语言编程,而且便于进行调整。
&&& 5 结束语
&&&&&& 在利用FPGA进行数字滤波器的开发时,采用DSPBuilder作为设计工具能加快进度。当然,在实际应用中,受精度、速度和器件选择方面的影响,可以对其转化的VHDL进行进一步的优化。
基于流水线技术的并行高效FIR滤波器设计
数字可以滤除多余的噪声,扩展信号频带,完成信号预调,改变信号的特定频谱分量,从而得到预期的结果。数字滤波器在DVB、无线通信等数字信号处理中有着广泛的应用。在数字信号处理中,传统滤波器通过高速乘法累加器实现,这种方法在下一个采样周期到来期间,只能进行有限操作,从而限制了带宽。现实中的信号都是以一定的序列进入的,因此处理器在一个时钟周期内只能处理有限的位数,不能完全并行处理。基于并行流水线结构的F滤波器可以使笔者设计的64阶或者128阶滤波器与16阶滤波器的速度一样快,其显著特别是在算法的每一个阶段存取数据。结构使得以采样速率处理数字信号成为常数乘法器的理想载体,提高了整个系统的性能。由于设计要求的差异,如字长、各级输出的保留精度等不同,在整个设计过程中,各个环节也有所不同,这就需要根据不同的要求对数据进行不同的处理,如截断、扩展等,从而设计出既满足设计需要,又节省FPGA资源的。
1 FIR并行滤波器结构&&& 数字滤波器主要通过乘法器、加法器和移位寄存器实现。串行处理方式在阶数较大时,处理速度较慢。而现代数字信号处理要求能够快速、实时处理数据,并行处理数据能够提高信号处理能力,其结构如图1所示。&&&&&&& 从上面的算法可以看出,处理数据的采样时钟对每一个抽头来说都是并行的,并且加法器和移位寄存器采用级联方式,完成了累加器的功能,综合了加法器和移位寄存器的优点,而且这种算法的各级结构相同,方便扩展,实现了任意阶数的滤波器。算法中,真正点用系统资源的是乘法器。如果将系数量化成二进制,就能采用移位寄存器和加法器实现乘法功能。对于一个特定的滤波器,由于它有固定的系数,乘法功能就是一个长数乘法器。下面将讨论乘法器的设计问题。2 FIR并行滤波器的乘法器设计&&& 在并行滤波器的设计中,每一个乘法器的一端输入数据,另一端为固定常数。对于常数乘法器,可以预先将常数的部分乘积结构存储起来,然后通过查表的方式实现两个数据的乘积。以16位输入、常数为14位的乘法器为例,给出其实现结构如图2所示。 &&& 对于无符号数来说,这是一种理想结构。但是在实际使用中,通常使用有符号数且常用补码的形式,因此需要对这种结构进行改进。一种改进方法是将输入的数据分开,即最高的几位作为有符号数处理,其它作为无符号数处理。第二种改进方法是将符号数经过补码/原码变换成原码,然后,将原码作为无符号数处理,通过有符号数的符号位来控制加法器的加减。第三种改进方法是一种优化方法,即要用三个二进制补码变换器,处理输入的有符号数和滤波器的系数,这样可以避免使用有符号数的乘法和加法运算。具体的乘法累加器运算过程及结果如图3所示。其中,对应乘数高位和低位部分积p1(n)和p2(2)可以分别先垂直相加后水平相加,或者先水平相加后垂直相加,最后的结果是一样的。若采用后种方法,由于FIR滤波器的h(n)均为常数,得到部分积的矢量乘法运算就演变成了查表法,其中,S1(n)表示S(n)的最低有效,p1表示最低有效位部分积之和。&&&&&& 同理,得p2,将p2左移一位与p1相加,便得到最后结果。这种查表法就是采用流水线技术进行FIR滤波器算法分解的基础,当字长增加时,相应得到p3、p4等。并相应移位相加即可。&&& 采用流水线技术和加法器的资源共享技术可以更好地提高常数乘法器的优越性。16比特输入、14比特常数的这种方法的常数乘法器的结构如图4所示。 &&& 在这种结构中,时钟是f1,内部操作的时钟是4×f1,其中的4个多路每次可以从16路信号中选出4位用作ROM的地址线。每次4位地址从ROM中读出数据,经过相应的移位相加即可,两位用来控制这些多路复位器的输出。
3 FIR滤波器的FPGA实现&&& 按照第2节所描述的第三种优化方法实现常数乘法器,乘法器输出以后按照图4所示的滤波器结构,通过流水线技术的加法器可以实现高效的滤波器。值得注意的是:在乘法器输出的时候需要对输出的数据进行一位扩展,可以避免加法器的溢出问题。&&& 为了有效地利用资源,先通过将输入的序列复选出来,这样所有常数乘法器可以共用一个多路复用器,然后通过ROM查表方法实现常数乘法器。优化后的原理结构如5所示。
4 FIR滤波器的电路设计与仿真结果&&& 在数字滤波器设计时,首先根据滤波器的频率特性,选定滤波器的长度和每一节的系数。就目前的设计手段而言,对节数和系数的计算可以采用等波动REMEZ逼近算法编程计算。但是,目前最好的方法还是使用使用的软件来完成。在选择了设计方法和设计要求后,计算出各节系数,并以图形的直观形式显示幅频、相频、冲激响应和零极点图。&&& 图6是一个采用等波动设计方法生成的均方根升余弦(RRC)FIR滤波器的频域特性。其中,滚降系数为0.35,输入数据率是2.048MHz。由于在数字滤波器中,各节系数字长有限,所以还要对计算出来的实系数进行量化处理,即浮点数向定点数转换。系数量化后的频域特性如图7所示,量化字长为12。 &&&&&& 比较图6与图7,不难看出,系数在量化前后的频域特性是不同的,量化带来了频域特性的恶化。在验证了量化后的频域特性满足设计要求和系数的有效性之后,就可以进行FPGA电路的设计。&&& 笔者采用流水线技术,根据得到的滤波器系数用VHDL语言编写了滤波器程序。为了充分利用FPGA中四输入查找表的电路结构,一般采用每8节为滤波器的一个基本单元。设计中通过采用流水线技术提高速度,对于更多阶数滤波器的设计,可以采用扩展的方法来实现。仿真结果如图8所示。
&&& 本文介绍了并行高效数字滤波器的设计方法,给出了电路的仿真结果。利用VHDL语言,采用可重复配置的FPGA,降低了设计成本,提高了系统的适用性。由于FIR滤波器的系数是常数,可以保存在ROM中,在运算的通过查找表的方法可很快得到乘法输出,减少了使用的资源和布线延时,节省了运算时间。
现在有5人对本文发表评论
<form onsubmit="if(document.getElementById('content').value.length500){alert('评论不能少于三个字符,大于500个字符!');document.getElementById('content').focus();}" action="/common/comment_post.aspx" method="post">
Copyright & 2007- Corp.All Rights Reserved. 版权所有 经营许可证编号: 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:9-8016 QQ: | MSN: |

我要回帖

更多关于 fir iir 滤波器 的文章

 

随机推荐