您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页基于SoPC的FIR滤波器设计与实现

基于SoPC的FIR滤波器设计与实现

来源:华佗小知识
科学计算与信息处理胡紫英等:基于SoPC的FIR滤波器设计与实现

基于SoPC的FIR滤波器设计与实现

胡紫英1,周维龙2,聂 辉2

(1.湖南科技学院,湖南永州 425100;2.湖南工业大学电气与信息工程学院,湖南株洲 412008)

摘 要:分析了FIR滤波器几种常见实现方法的原理与不足;提出一种基于SoPC的FIR滤波器设计;介绍了系统的设计流程及实现方法;结合Matlab给出FIR滤波器的仿真结果。整个设计以Altera公司现场可编程逻辑器芯片

EP3C25E144C8N为核心,具有程序简单,调试方便的特点,有一定的实用价值及应用前景。关键词:FIR滤波器;SoPC;Matlab;现场可编程逻辑器

中图分类号:TP713     文献标识码:A     文章编号:10042373X(2010)1220072203

DesignandRealizationofFIRFilterBasedonSoPC

HUZi2ying1,ZHOUWei2long2,NIEHui2

(1.HunanUniversityofScienceandEngineering,Yongzhou425100,China;

2.ElectricandInformationEngineeringCollege,HunanUniversityofTechnology,Zhuzhou412008,China)

Abstract:AdesignofFIRfilterbasedonSoPCisproposed,andtheprincipleanddeficiencyofseveralcommonrealizationmethodsofFIRfilterareanalyzed.Thedesignflowandrealizationofthesystemisdiscussed,andthesimulationresultofFIRfilterisgivencombinedwithMatlab.ThesystemusestheEP3C25E144C8N(producedbyAltera)asthecore,andithasfea2turesofsimpleprogramandconvenientdebugging.

Keywords:FIRfilter;SoPC;Matlab;FPGA

0 引 言

grammablegatearray),即现场可编程门阵列,有着规

整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器实现,相对于串

行运算主导的通用DSP芯片来说,并行性和可扩展性都更好[2]。

本文介绍一种基于SoPC的FIR滤波器设计方案,设计流程如图1所示。该设计方法程序简单,调试方便,得到的FIR滤波器精确度高。1 FIR滤波器原理

FIR数字滤波器是一种非递归系统,其冲激响应总

M

数字滤波(idgitalfilter)是由数字乘法器、加法器和延时单元组成的一种计算方法。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。数字滤波器根据频域特性可分为低通、高通、带通和带阻4个基本类型;根据时域特性可分为无限脉冲响应(infiniteimpulseresponse,IIR)滤波器和有限脉冲响应(finiteimpulseresponse,FIR)滤波器。FIR滤波器不存在稳定性和是否可实现的问题,容易做到线性相位,故在数据通信、图像处理等领域广泛应用[1]。

目前,FIR滤波器的硬件实现有以下几种方式:一种是使用通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要;虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到。另一种是使用DSP芯片,DSP芯片有专用的数字信号处理函数可调用,实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到。而且,就是同一公司不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。还有一种是使用可编程逻辑器件,如FPGA(fieldpro2

收稿日期:2010201222

基金项目:湖南省教育厅科研项目(09C446)

是有限长的,其系统函数可以记为:H(z)=最基本的FIR滤波器可用下式表示

[3]

k=0

bkz

-k

,

N-1

:y(n)=

m=0

∑x(n

-m)h(m)。式中:x(n-m)是输入采样序列;h(m)是滤

波器系数;N是滤波器的阶数;y(n)表示滤波器的输出序列。也可以用卷积来表示输出序列y(n)与x(n),h(n)的关系:

y(n)=x(n)3h(n)

图2显示了一个典型的直接T型3阶FIR滤波器[4],其输出序列y(n)满足下列等式:

h(n)=h(0)x(n)+h(1)x(n-1)+

h(2)x(n-2)+h(3)x(n-3)

72

© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net

《现代电子技术》2010年第12期总第323期

器进行重新配置。

 󰃞计算机应用技术󰃜

图1 设计流程图

  

图2 3阶FIR滤波器结构

在该FIR滤波器中,总共存在3个延时结,4个乘法单元,1个4输入的加法器。如果采用普通的数字信号处理器(DSP)来实现,只能用串行的方式顺序地执行延时、乘加操作,不可能在1个DSP处理器指令周期内完成,必须用多个指令周期来完成。但如果采用FPGA来实现,就可以采用并行结构,在1个时钟周期内得到1个FIR滤波器的输出。不难发现,图2的电路结构是一种流水线结构,这种结构在硬件系统中有利于并行高速运行[5]。2 FIR滤波器的实现

Altera提供的FIRComplier是结合AlteraFPGA

图3 确定FIR滤波器系数2.3 生成VHDL语言完成FIR滤波器核配置后,便可得到设计好的滤

波器,加入输入/输出信号,形成如图4所示电路。点击SignalCompiler,再选择Analyze,选择Siglestepcom2pilation中的ConvertMDLtoVHDL,就可以生成对应

的VHDL语言。

器件的FIRFilterCore,DSPBuilder与FIRCompiler可以紧密结合起来。DSPBuilder提供了FIRCore的应用环境和仿真验证环境。2.1 建立模型文件为了调用FIRIPCore,在Simulink环境中新建模型文件,放置SignalCompiler模块和FIR模块。启动Simulink的方法:打开Matlab,在主命令窗口直接键入Simulink,按回车即可。然后打开AlteraDSPBuilder模块,在MegaCoreFunctions调出fir_compiler_v7_0。2.2 配置FIR滤波器核[6]

图4 FIR滤波器编译电路图

在QuartusⅡ中打开编译后生成的fir.qpf工程文件,可以得到滤波器的VHDL语言,其部分代码如下:

libraryieee;

useieee.std_logic_11.all;useieee.std_logic_signed.all;librarydspbuilder;

usedspbuilder.dspbuilderblock.all;librarylpm;

uselpm.lpm_components.all;Entityfiris Port(  clock: instd_logic;  sclrp: instd_logic:=′0′;    ast_sink_data: instd_logic_vector(31downto0);  ast_sink_error: instd_logic_vector(1downto0);  ast_sink_valid: instd_logic;  ast_source_ready: instd_logic;  reset: instd_logic;  Output: outstd_logic;  Output1: outstd_logic_vector(31downto0);  Output2: outstd_logic_vector(1downto0);  Output3: outstd_logic

);   endfir;

双击模型中的FIR模块,在弹出来的选择窗口中有:关于这个核(aboutthiscore)、程序说明书(docu2mentation)、显示元件(displaysymbol)、步骤1确定参数(Step1:Parameterize)和步骤2生成(Step2:Gener2ate)等4个不同的选项。点击Step1,便打开了FIR滤波器核的参数设置窗口,如图3所示。

由图3可见,滤波器的系数精度为32位,器件为CycloneⅢ,结构为并行滤波器,结构选择了1级流水线,滤波器由LC逻辑宏单元构成,系数数据存于FP2GA的M9K模块中,1个输入通道,32位有符号并行输

入,全精度数据输出。设定后会直接显示滤波器的频率响应(frequencyresponse)或时域响应及系数值(timeresponse&coefficeientvalues)。由其频率响应图可以看出,此FIR滤波器为低通滤波器。如果不符合设计要求,则可以通过对EditCoefficientSet选项,对滤波

编译成功后,可以将其转换成元件。2.4 系统功能仿真

在Matlab中,建立M文件,运用前面设置好参数所生成的FIR滤波器,打开FIR滤波器时域响应与系

73

© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net

科学计算与信息处理胡紫英等:基于SoPC的FIR滤波器设计与实现

的快速处理和控制,实现键盘可设置参数及LCD显示。经实际电路测试验证,达到了设计的要求[8]。4 结 语

数值(timeresponse&coefficeientvalues)。得到该滤波器的时域响应和系数值如图5所示,由该系数表确定

滤波器,并进行算法级仿真,得到如图6所示的波形。图6(a)为滤波前信号,图6(b)为滤波后信号。从仿真波形可以看出,经过FIR滤波器之后,高次谐波信号被很好地滤除了,达到了预定的设计目标[7]。

这种基于SoPC数字滤波器的设计与实现,不仅利用Matlab中的Simulink与AlterlDSPBuilder工具确定FIR滤波器系数,不用编程,只需简单的设置,而且通过VHDL层次化设计方法,同时使FPGA与单片机相结

合,采用C51及VHDL语言模块化设计思想进行优化编程,进一步完善了数据的快速处理和有效控制,提高了设计的灵活性、可靠性,也增强了系统功能的可扩展性。图5 FIR滤波器时域响应与系数值图参 考 文 献

[1]张登奇,李望移.基于Matlab的FIR数字滤波器设计[J].

计算机时代,2007(11):47249.

[2]王静,鱼云岐.基于FPGA的FIR数字滤波器设计与仿真

[J].国外电子元器件,2008(11):90292.

[3]程佩青.数字信号处理教程[M].3版.北京:清华大学出版

社,2006.

图6 FIR的仿真波形

[4]罗韩君,刘明伟,王成.基于DSPBuilder的FIR滤波器设计

与实现[J].微计算机信息,2009,25(2):1482149.

3 基本FPGA片上系统的功能测试

[5]潘松,黄继业.EDA技术与VHDL[M].2版.北京:清华大

设计目标器件选用美国Altera公司Cyclone系列FPGA器件中的EP3C25E144C8N芯片,通过开发工

学出版社,2007.

[6]AlteraCorporation.FIRcompileruserguide[M].[S.l.]:

AlteraCorporation,2006.

[7]张志涌.精通Matlab6.5版[M].北京:北京航空航天大学

具QuartusⅡ对各个模块的VHDL源程序及顶层电

路进行编译、逻辑综合、电路的纠错、验证、自动布局布线及仿真等各种测试,最终将设计编译的数据下载到芯片中,同时与单片机ATC51结合,进一步进行数据

出版社,2003.

[8]杨国庆.基于FPGA的FIR数字滤波器的设计与实现[J].

现代电子技术,2008,31(19):1842186.

作者简介:胡紫英 女,1974年出生,湖南永州人,实验师,硕士。

周维龙 男,1978年出生,湖南邵阳人,讲师。主要研究方向为嵌入系统的设计与应用。聂 辉 男,1978年出生,湖南湘潭人,讲师。主要研究方向为EDA及嵌入系统设计与应用。

  (上接第71页)

参 考 文 献

[1]费兆馥.现代中医脉诊学[M].北京:人民卫生出版社,2003.[2]孙延奎.小波分析及其应用[M].北京:机械工业出版

[5]邱雅竹,冯俊.基于小波变换的心电信号检测新方法[J].四

川师范大学学报:自然科学版,2005,28(3):2702272.

[6]IWATAA,AZENCOTTR.DatacompressionofECGusing

neuralnetworksfordigitalHoltermonitor,IEEETrans.onBME,1992,39(4):1362139.

[7]KOHLERBertUwe,HENNIGCarsten.Theprinciplesof

softwareQRSdetection[J].IEEETrans.onBME,2002(2):42257.

[8]YOSHIZAWAM.Classicalbuteffectivetechniquesfores2

timatingcardiovasculardynamics[J].IEEEEng.inMed.&Bio.,1997,16(1):1062112.

社,2005.

[3]王鹏,魏守水,黄青华.基于小波变换的自适应滤波器消除

脉搏波基线漂移[J].中国医学物理学杂志,2004,21(5):

2962299.

[4]燕海霞,王忆勤,李福凤.脉象信号分析方法的研究与应用

新解[J].中医药学刊,2005,23(1):1292130,190.

作者简介:张 洁 女,1984年出生,浙江杭州人,硕士研究生。研究方向为生物医学信号处理。

74

© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务