毕业设计(论文)基于现代DSP技术的IIR滤波器的实现

上传人:仙*** 文档编号:34036456 上传时间:2021-10-20 格式:DOC 页数:23 大小:302.03KB
返回 下载 相关 举报
毕业设计(论文)基于现代DSP技术的IIR滤波器的实现_第1页
第1页 / 共23页
毕业设计(论文)基于现代DSP技术的IIR滤波器的实现_第2页
第2页 / 共23页
毕业设计(论文)基于现代DSP技术的IIR滤波器的实现_第3页
第3页 / 共23页
点击查看更多>>
资源描述
编号:03063023南阳师范学院2003届毕业生毕业论文(设计)题 目: 基于现代DSP技术的IIR滤波器的实现 完 成 人: 班 级: 2003-03 学 制: 4 年 专 业: 电子信息与科学技术 指导教师: 完成日期: 2007-03-31 目 录摘要 1 引言(1)1.1 数字滤波器(1)1.2 DSP Builder软件的简介(2)1.3 课题的主要意义(2)2 设计总体方案.(3)3 数字滤波器的基本概念(3)3.1数字滤波器的基本概念(3)3.2数字滤波器的分类(3)3.3系统的传递函数(4)3.4 基本结构运算单元(5)4 IIR数字滤波器(6)4.1 IIR数字滤波器的基本结构(6)4.1.1 IIR数字滤波器基本结构分类(6)4.1.2 IIR滤波器的结构举例(6)4.2 IIR数字滤波器设计过程(10)4.3 IIR数字滤波器设计方法(10)5 使用DSP_Builder设计IIR滤波器(10)5.1 建立模型(10)5.2 IIR滤波器系数的计算(13)5.3 设置系数(15)5.4 Simulink仿真(15)5.5 由Simulink模型转成VHDL文件(16)5.6 适配下载(16)6 总结及展望(16)参考文献(17)Abstract(18)基于现代DSP技术的IIR数字滤波器的实现作 者:祁媛媛 指导老师:张 帅摘要:基于现代DSP技术的种种优势,该设计选择了以PLD器件为平台,在其上构建IIR滤波器的设计方案。本文介绍了一个以Altera公司可编程逻辑芯片Cyclone1C12为控制核心,利用DSP_Builder软件设计IIR滤波器。关键词:IIR;滤波器;FPGA;DSP_Builder1 引言1.1 数字滤波器数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波器是一个离 散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即12抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用1。数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器.1.2 DSP Builder软件的简介FPGA的应用是EDA技术有机融合软件硬件电子设计技术、SOC和ASIC设计,以及对自动设计与自动实现最典型的诠释。DSP Builder是FPGA制造商Altera推出得一个数字信号处理(DSP)开发工具,它集成在Matlab设计环境的Simulink中。Altera的DSP系统体系解决方案是一项具有开创性的解决方案。以往的MATLAB工具的使用只是作为DSP算法的建模和基于纯数学的仿真,其数学模型无法为硬件DSP应用系统直接产生实用的程序代码,其仿真测试的结果也仅仅是基于数学的算法结果。而以往FPGA所需要传统的基于硬件描述语言(VHDL)的设计由于要考虑FPGA硬件的延时与VHDL递归算法的衔接,以及补码运算和乘积结果截取等问题,相当繁杂。对于DSP Builder而言,顶层的开发工具是MATLAB/SIMULINK,整个的开发流层几乎可以在同一环境中完成。真正实现了自顶向下的设计流程,包括DSP系统的建模、系统级仿真、设计模型向VHDL硬件描述语言代码的转换、RTL(逻辑综合Register Transfer Level)级功能仿真测试、编译适配和布局布线、时序实时仿真直至对DSP目标器件的编程配置。整个设计流程将系统描述和硬件实现有机地融为一体,充分显示了现代电子设计自动化开发的特点与优势23。1.3 设计的主要意义数字滤波在DSP(数字信号处理)中占有重要地位。数字滤波器按实现的网络结构或者从单位脉冲响应,分为IIR(无限脉冲响应)和FIR(有限脉冲响应)滤波器。如果IIR滤波器和FIR滤波器具有相同的性能,那么通常IIR滤波器可以较低阶数获得较高的选择性,执行速度更快,所用的存储单元更少,所以既经济又高效。一般说来,从使用要求上来看,在对象为要求不敏感的场合,如语音通信等,选用IIR滤波器较为合适,这样可以充分发挥其经济、高效的特点。用传统的软件对其进行分析需要很多条件,而运用DSP_Builder软件可以简化很多步骤,整个的开发流层几乎可以在同一环境中完成整个设计流程将系统描述和硬件实现有机地融为一体,充分显示了现代电子设计自动化开发的特点与优势。2 设计总体方案本文主要是利用现代DSP技术来实现IIR滤波器,具体是使用EDA软件DSP_Builder、Quartus、Matlab结合数字信号处理中IIR滤波器的知识来设计IIR滤波器。首先需要熟悉IIR滤波器的基本原理,然后使用DSP_Builder、Matlab软件进行算法模型设计,设计完成后在Simulink工具箱中进行仿真,观察设计是否正确。如果正确,则使用Quartus软件对设计好的模型进行转化,将其转化为VHDL语言,编译、仿真,全部正确后,下载到FPGA芯片上,利用PLD器件的可重构性,在芯片上就构建了IIR滤波器的硬件结构,就可以对输入的信号进行相应的滤波处理。3 数字滤波器的基本概念3.1 数字滤波器的基本概念数字滤波器就是对不同频率的数字信号从频域进行信号分离的时序电路或器件或一段程序。这里所讲的数字滤波器都是一个离散的LTI系统,离散的LTI系统模型189:图1 数字滤波器LTI模型X(n)、y(n)分别是系统的输入输出序列H(E)是系统本身的特性(转移算子)。系统对于输入的离散序列x(n)总有对应的输出y(n)。x(n)是离散的信号,每个x(i)可能有不同的幅值,有了前后不同幅值的变化,就可以引出离散信号的频率这一性质。3.2 数字滤波器的分类数字滤波器按功能分为低通、高通、带通、带阻、全通滤波器。 (1) (2)由序列傅氏变换公式可知,离散信号的傅氏变换是的函数,周期为2。只需研究,不需要在整个轴上分析其信号。所以,数字滤波器的通带分布如下:图2 数字滤波器的通带分布3.3 系统的传递函数对IIR数字滤波器的差分方程的一般形式为 (3)其中两边同时进行双边Z变换得: (4)得IIR数字滤波器得传递函数: (5)3.4 基本结构运算单元加法器:图3 加法器乘法器:图4 乘法器延迟单元:图5 延迟单元4 IIR数字滤波器4.1 IIR数字滤波器的基本结构4.1.1 IIR数字滤波器基本结构分类直接型:是按给出的差分方程直接实现的。级联型:将系统函数的H(Z)因式分解为较低的二节阶的乘积,每个双二阶用一个直接型实现,整个系统用双二阶的级联实现。并联型:将系统函数的H(Z)因式分解为双二阶之和,每个双二阶用一个直接型实现,整个系统函数作为二阶节的并联网络实现1 11。4.1.2 IIR滤波器的结构举例下面举一个4阶差分方程为例,叙述三种结构。设有4阶差分方程: (6) (7)对方程两边同时取双边Z变换得传递函数H(Z),传递函数直接得到信号流图: (8)输出序列的最高差分阶数4即系统的阶数。由梅森公式得信号流图:图6 直接I型信号流程图整个滤波器由两个网络级联,级联系统得总的输入输出和子系统的级联次序无关: (9)从而上述4阶系统的信号流图级联次序可以交换:图7 直接II型信号流程图级联型结构是将系统传递函数H(Z)写成具有实系数的二阶的乘积。将分子和分母多项式分解为各自的根,然后将一对复数共扼根(或者任意两个实数根)组合成二阶多项式。例如H(Z)为N阶方程,N为偶数: (10)式中K=N/2,BK,1,BK,2,AK,1,AK,2都是代表实数的二阶节系数。这些二阶节是: (11)上述4阶系统的级联形式是:图8 级联型信号流程图应该特别指出:级联型结构的灵敏度特性优于直接型和正准型结构。每一级分子的系数确定一对零点,分母的系数确定一对极点,因为子网络的零极点也即整体网络的零极点,所以整个系统的零极点都可以准确的由每一级的系数来调整和控制,这样便于调整滤波器的频率响应性能。级联结构具有最少的存储器。并联结构是将N阶的系统函数H(Z)利用部分分式展开写成二阶节之和: (12)其中每一个二阶节: (13)上述4阶IIR滤波器用并联形式实现:图9 4阶IIR滤波器用并联形式并联支路的极点也是整个网络的极点,而并联支路的零点却不是整个网络的零点,因此并联网络能独立的调整系统的极点的位置,但不能控制零点。并联结构的灵敏度由于直接型和正准型,运算累积误差比级联型小。4.2 IIR数字滤波器设计过程 按设计任务,确定滤波器性能要求,制定技术指标。 用一个因果稳定的离散系统的系统函数H(Z)逼近此性能指标。 利用有限精度算法实现此系统函数:如运算结构、字长的选择等。 实际技术实现:软件法、硬件法或DSP芯片法。4.3 IIR数字滤波器设计方法IIR数字滤波器的系统函数是Z的有理函数,可表示为: (14)系统函数的设计就是要确定系数ai,bi或者零极点ci,di,以使滤波器满足给定的性能要求。这种设计方法一般由3种方法:零极点位置累试法。当滤波器性能未达到要求时,通过多次改变零极点位置来达到要求。此法只适用于简单滤波器。用模拟滤波器理论来设计数字滤波器。在IIR数字滤波器的设计中较多的采用这种方法。5 使用DSP_Builder设计IIR滤波器 5.1 建立模型 使用DSP_Builder设计IIR滤波器;4阶级联型IIR滤波器设计参照下图,图10 4阶级联型IIR滤波器流程图建立一个4阶的级联型IIR滤波器模型,该模型共由两节2阶直接型IIR滤波器构成,见下图。 图11 4阶级联型IIR滤波器模型中各个模块的参数设置如下:X模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type”设为“signed Fractional”(有符号小数)参数“Node Type”设为“Input port”参数“number of bits.”设为“2”参数“.number of bits”设为“8”Y模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type”设为“signed Fractional”参数“Node Type”设为“Output port”参数“number of bits.”设为“4”参数“.number of bits”设为“23”BusConv模块:(BusConversion)库:Altera DSP Builder中Bus Manipulation库参数“Input Bus Type”设为“signed Fractional”参数“Input number of bits.”设为“4”参数“Input .number of bits”设为“18”参数“Output Bus Type”设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output .number of bits”设为“15”BusConv1、BusConv4模块:(BusConversion)库:Altera DSP Builder中Bus Manipulation库参数“Input Bus Type”设为“signed Fractional”参数“Input number of bits.”设为“3”参数“Input .number of bits”设为“15”参数“Output Bus Type”设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output .number of bits”设为“15”BusConv2、BusConv3、BusConv5模块:(BusConversion)库:Altera DSP Builder中Bus Manipulation库参数“Input Bus Type”设为“signed Fractional”参数“Input number of bits.”设为“4”参数“Input .number of bits”设为“25”参数“Output Bus Type”设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output .number of bits”设为“15”FeedBackAdder、FeedBackAdder2模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“2”参数“Add(+)Sub(-)”设为“+-”FeedBackAdder1、FeedBackAdder3模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“2”参数“Add(+)Sub(-)”设为“+”FeedForwardAdder、FeedForwardAdder1模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“3”参数“Add(+)Sub(-)”设为“+”Delay、Delay1、Delay2、Delay3模块:(Delay)库:Altera DSP Builder中Storage库参数“Depth”设为“1”参数“Clock Phase Selection”设为“1” G、A11、A12、A21、A21、B10、B11、B12、B20、B21、B22模块:(Gain)库:Altera DSP Builder中Arithemtic库参数“Map Gain Value to Bus Type”设为“Signed Fraction”参数“Gain value number of bits.”设为“2”参数“.Gain value number of bits”设为“10”参数“Number of Pipeline Levels”设为“0”5.2 IIR滤波器系数的计算假设4阶IIR滤波器的设计指标如下: 采样频率Fs为50MHz; 滤波器类型为高通(HighPass); 滤波器Fc为5MHz; 滤波器设计类型为Butterworth。打开MATLAB中的FDATool进行滤波器系数计算,见下图。图12 计算IIR滤波器系数设置阶数为4,输入相关参数指标,点击“Design Filter”按钮完成IIR滤波器设计,接着打开相关分析。图13显示的是IIR滤波器的相频特性,图14显示了IIR滤波器的阶跃响应。图13 IIR滤波器的相频特性图14 滤波器的阶跃响应5.3 设置系数 选择FDATool的“File”菜单中的“Export”,导出IIR滤波器系数。对于级联型IIR滤波器,导出的系数分成两个部分:SOS矩阵和G增益,其中对于多个级联的IIR滤波器,SOS矩阵为一个二维矩阵。 在此先把SOS矩阵和G导出到Matlab的工作区(Workspace),设置上面级联型IIR滤波器中的各个增益模块的“Gain Value(增益值)”。G模块的“Gain Value”是G;B10模块为SOS(1,1),B11模块为SOS(1,2),B12模块为SOS(1,3);A11模块为SOS(1,5),A12模块为SOS(1,6);B20模块为SOS(2,1),B21模块为SOS(2,2),B22模块为SOS(2,3);A21模块为SOS(2,5),A22模块为SOS(2,6)。设置完增益值后更新一下模型,IIR滤波器模型的系数就全部设置完成了。5.4 Simulink仿真 设置Simulink仿真参数“Stop time(停止时间)”为1e-6,类型为“Fixed-step”。模型中的Simulink仿真模块的参数设置如下:Step模块:(Step)库:Simulink中Sources库参数“Step time”设为“1e-7”参数“Initial value”设为“0”参数“Final value”设为“1”参数“Sample time”设为“2e-8”“Interpret vector parameters as 1-D”设为“”Scope模块:(Scope)库:Simulink中sinks库参数“Number of Axes”为“2”启动仿真。由于Step模块生成了一个阶跃函数,故仿真结果为IIR滤波器的阶跃响应,见图15。图15 仿真 IIR滤波器的阶跃响应5.5 由Simulink模型转成VHDL文件由Simulink模型转成VHDL打开SingalCompiler,选定对应器件,把模型转成VHDL文件,并在SignalCompiler中选择QuartusII进行综合。5.6 适配下载在QuartusII中打开SignalCompiler建立的Quartus项目文件,选择具体器件,锁定管脚,完成适配后下载至FPGA开发板中。在FPGA开发板上加入高频信号源,验证IIR滤波器的高通滤波效果。6 总结及展望经过一个学期的努力,建立了一个IIR数字滤波器模型,得到了初步的分析结果,在毕业设计中,通过接阅图书馆的书籍,利用网络查找并学习了很多与DSP Builder有关的软件, IIR数字滤波器相关的资料、论文和期刊,在一定程度上了解并掌握了IIR数字滤波器的基础知识,对IIR数字滤波器、相关技术以及产业发展方向有了一定的了解;通过计算机的操作,对软件DSP Builder有了一定的了解,.在整个毕业设计中也发现了许多的不足和缺点。特别是对DSP Builder软件的使用上,发现比原来的困难要大的多,很多东西都很难找到现成的答案,很多都要靠自己的摸索,个中辛苦自己是最了解的了。基于DSP技术的IIR数字滤波器设计,是一个涉及面比较广的的课题,不仅仅需要掌握IIR数字滤波器和DSP Builder操作的知识,更需要将这些知识结合起来,综合分析运用。同过对DSP Builder的学习和建立IIR数字滤波器模型的过程,发现实践是非常重要的,往往看了觉的会了在实际应用中还是会发现各种各样的问题,经验是在不断地实际操作中慢慢积累起来的,在实验中勇于探究和积累,才能使设计趋近完美。通过这次毕业设计,将大学四年所学的理论知识和实践应用结合起来,对自己所学的知识有了更为理性的认识,并进一步了解到自身知识水平的局限,从而促使自己更加努力地汲取知识并加以消化。自己的自学与钻研能力有所加强,并充分地体会到了理论和实践之间的差距,理论结合实际的重要性,可谓受益匪浅。参 考 文 献1.程佩青.数字信号处理教程【M】,清华大学出版社1999年2.胡广书.数字信号处理理论、算法与实现【M】,清华大学出版社,20023.潘松,黄继业,王国栋.现代DSP技术【M】,西安电子科技大学出版,20044.TERRELL T J, An introduction to digital filters【M】,New York: Wiley,19805.齐海兵,平冠军,陶文超.无限冲击响应滤波器的设计与实现【J】,微机算计信息2006 ,22 (102):8485。6.倪向东.基于FPGA的四阶IIR数字滤波器【J】,电子技术应用,2003,12:66697.张晓光,徐钊.IIR数字滤波器的优化设计和DSP实现【J】,电子工程师,2006,32(3):37398.王冬,王华.基于MATLAB的IIR数字滤波器的设计技术【J】,应用能源技术,2006,3:47509.闫健,宋立新.改进的直接型IIR数字滤波器的DSP实现【J】,哈尔滨理工大学学报,2006,11(4):6062。10.PRICE M,WATERS M,SANDLER M, Synthesis and Performance of a New Class of lmplementation for High-order Recursive Digital Filter【J】。IEE ProcVis. Image Signal Process ,1998,145(2):817。11.HATAMIAN M, PARHI K A. 85MHz Fourth-order Programmable IIR Digital Filter Chip【J】.IEEE Journal of Solid-State Circuits,1992,27(2):175-183.Realization of IIR Numerical Filter Based on Modern DSP TechnologyAbstract:Bacuse of modern DSP technology advantage, this design build IIR Numerical Filter based on the platform of PLD component chosed. This paper introduced a kind of IIR Numerical Filter designed based on the DSP Builder software and using Cyclone1C12 programmable logic chip produced by Altera company as control core.Key words:IIR filter;FPGA;DSP Builder附录:源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;library dspbuilder;use dspbuilder.dspbuilderblock.all;library lpm;use lpm.lpm_components.all;Entity singt is Port(clock:in std_logic;sclrp :in std_logic:=0;Inputa:in std_logic;Outputb:out std_logic_vector(9 downto 0) );end singt;architecture aDspBuilder of singt issignalSAOutputbO:std_logic_vector(9 downto 0);signal sclr :std_logic:=0;signalA0W:std_logic;signalA1W:std_logic_vector(10 downto 0);signalA2W:std_logic_vector(11 downto 0);signalA3W:std_logic_vector(10 downto 0);signalA4W:std_logic_vector(8 downto 0);Beginassert (10) report altversion severity Note;Outputb=SAOutputbO;- Global reset circuitry for the input global reset sclrpsclr=sclrp;- Input - I/O assignment from Simulink Block InputaA0W = Inputa;A4W(8)12,width_inr=0,width_outl=10,width_outr=0,lpm_signed=BusIsUnsigned,round=0,satur=0)port map (xin=A2W,yout=SAOutputbO);- Delay Element - Simulink Block DelaysDelaysi : SDelaygeneric map (LPM_WIDTH = 11,LPM_DELAY = 3,SequenceLength = 1,SequenceValue = 1)port map (dataa=A3W,clock=clock,ena =1,sclr =sclr,result=A1W);- Product Operator - Simulink Block ProducbtProducbti : AltiMult generic map (LPM_WIDTHA=11,LPM_WIDTHB=1,PIPELINE=1,one_input=0,lpm =1,lpm_hint=UNUSED,cst_val =0,SequenceLength=1,SequenceValue=1,dspb_widthr=12)port map (DATAA=A1W,DATAB(0)=A0W,clock=clock,ena =1,sclr =sclr,result=A2W);- Look-up table - Simulink Block LUTaLUTai : lpm_romgeneric map (LPM_WIDTH = 10,LPM_WIDTHAD = 8,lpm_address_control = REGISTERED,lpm_outdata = UNREGISTERED,lpm_file = singtLUTa.hex)port map (address(7 downto 0)=A4W(7 downto 0),inclock=clock,q=A3W(9 downto 0);A3W(10)8,cst_val=00000000,lpm=0,isunsigned=1,SequenceLength=1,SequenceValue=1,direction=0)port map (clock=clock,sclr=sclr,ena=1,result(7 downto 0)=A4W(7 downto 0);end architecture aDspBuilder;第20页(共19页)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!