收藏 分享(赏)

基于FPGA的IIR数字滤波器完美版.doc

上传人:dzzj200808 文档编号:2304288 上传时间:2018-09-10 格式:DOC 页数:32 大小:977KB
下载 相关 举报
基于FPGA的IIR数字滤波器完美版.doc_第1页
第1页 / 共32页
基于FPGA的IIR数字滤波器完美版.doc_第2页
第2页 / 共32页
基于FPGA的IIR数字滤波器完美版.doc_第3页
第3页 / 共32页
基于FPGA的IIR数字滤波器完美版.doc_第4页
第4页 / 共32页
基于FPGA的IIR数字滤波器完美版.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、吉 林 农 业 大 学本 科 毕 业 设 计题目名称:基于 FPGA 的 IIR 数字滤波器 学生姓名: 王伟 (12093223) 院 系:信息技术学院 专业年级:09 级电子信息科学与技术指导教师: 郭颖 职 称: 讲师 2013 年 4 月 24II目 录1 序 言.11.1 课题研究的背景和意义11.2 国内外发展现状11.3 IIR 数字滤波器概念 31.4 IIR 数字滤波器的原理 31.5 IIR 数字滤波器的设计方法 41.5.1 IIR 数字滤波器的模拟转换设计法 .41.5.2 IIR 数字滤波器的零极点累试法 .41.5.3 优化设计法.51.6 IIR 数字滤波器的硬件

2、实现方案 51.6.1.方案一:直接相乘累加式51.6.2.方案二:基于 ROM 查表法的 VHDL 结构化设计 .61.6.3 方案三:基于 ROM 查表法的改进型设计 .72 EDA 技术和可编程逻辑器件 92.1 电子设计自动化 EDA 技术 .92. 2 可编程逻辑器件.92.2.1 可编程逻辑器件简介.92.2.2 使用 FPGA 器件进行开发的优点 92.2.3 FPGA 设计的开发流程 102.3 硬件描述语言 VHDL 及数字系统设计方法 112.3.1 硬件描述语言 VHDL 简介 .112.3.2 利用 VHDL 设计数字系统 .113 IIR 数字 滤波器的设计与仿真结果

3、分析 .113.1 各模块的设计与仿真结果分析113.1.1 时序控制模块的设计与仿真结果分析.123.1.2 延时模块的设计与仿真结果分析.123.1.3 补码乘加模块的设计与仿真结果分析.133.1.4 累加模块的设计与仿真结果分析.153.1.5 顶层模块设计.153.2 IIR 数字滤波器的仿真与结果分析 16III3.2.1 IIR 数字滤波器的系统设计 .163.2.2 IIR 数字滤波器的系统仿真与结果分析 .173.2.3 高阶 IIR 数字滤波器的实现 .19参考文献.21致 谢.22附 录.23IV基于 FPGA的 IIR滤波器设计姓 名:王伟专 业:电子信息科学与技术指导

4、教师:郭颖摘 要:数字信号处理在科学和工程技术许多领域中得到广泛的 应用,与 FIR 数字滤波器相比,IIR 数字滤波器可以用较低的阶数获得较高的选择性,故本课题采用一种基于FPGA 的 IIR 数字滤波器的设计方案,首先分析了 IIR 数字滤波器的原理及设计方法,然后通过 MAX+PLUS的设计平台,采用自顶向下的模块化设计思想将整个 IIR 数字滤波器分为:时序控制、延时、 补码乘加和累加四个功能模块。分 别对各模块采用 VHDL 进行描述后,进行了仿真和综合。仿真 结果表明,本 课题 所设计的 IIR 数字滤波器运算速度较快,系数改变灵活,有较好的参考价值。关键词:电子设计自动化,IIR

5、 数字滤波器, 现场可 编程门阵列,硬件描述 语言The design for IIR digital filter based on FPGAName:WangweiMajor:Electronic information science and technologyTutor:GuoYingAbstract: Digital signal processing is widely used in lots of fields, such as in science and project technique. Compared with FIR digital filter, IIR di

6、gital filter can get high selectivity with low factorial. A kind of IIR digital filter design method was introduced in the paper, which is based on FPGA. By used the design plant of MAX+PLUS, we adopt blocking method named “Top-down ” and divide the entire IIR digital filter into four blocks, which

7、are Clock control, Time delay, Multiply-addition and Progression. After described with VHDL, we do emulate and synthesis to each block. The result shows that, the introduced IIR digital filter runs fast, and the coefficient changes agility. It has high worth for consulting.Keywords: Electronic desig

8、n automation, IIR digital filter, FPGA, the hardware description language 11 序 言随着 EDA 技术的发展和应用领域的扩大和深入, EDA 技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。这些技术的使用使得现代电子产品的体积减小、性能增强、集成化程度提高,与此同 时其可 编程能力也得以提高。在使用 EDA进行电子设计时,设计人员 可按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,采用硬件描述语 言(DHL)完成系统行为级设计 ,最后通过综合器和适配器生成最终的目标器件 1。VHDL 语

9、言是 EDA 设计中常用的一种 IEEE 标准语言,其具有覆盖面广、描述能力强、可读性好、支持大 规模设计及 逻辑单元利用等优点,因此受到越来越多的电子工程师的青睐 2。本次设计采用 EDA 技 术中的模块化设计思想,就 IIR 数字滤波器中的一些关键电路进行设计,主要内容包括:时序控制模块、延时模块、补码乘加模块、累加模块和 IIR 数字滤波器的顶层设计。分 别对 各模块采用 VHDL 进行描述后,进行了仿真和综合,取得了 较好的设计效果。 实验结 果表明,本 课题所设计的 IIR 数字滤波器具有运算速度快,系数改变灵活方便等特点。1.1 课题研究的背景和意义数字滤波器是现代数字信号处理系统

10、的重要组成部分之一,具有模拟滤波器所无法替代的新特性,因此在通信、语音与图像处理、自动 控制等领域有着广泛的应用,它对于降低噪声、提高信噪比及信号的频谱纯度等方面有着重要的意义。数字滤波器根据单位脉冲响应的不同,可分为 FIR(有限长脉冲响应) 滤波器和 IIR(无限长脉冲响应) 滤波器,FIR 优点在于具有良好的相位特性, IIR 优点在于具有良好的幅频特性,可以根据不同的系统性能要求选择不同的滤波器。IIR 滤波器以较少的阶数即可完成 FIR 滤波器需较多阶数的幅频特性;在对线性相位不做特别要求的情况下,IIR 滤波器在相同门级规模和同频率速度下可得到更好的带外衰减特性,因此 IIR 滤波

11、器更广泛地应用于一些特殊场合3。数字滤波器是今后信号处理系统的滤波器主流器件,将在更多的数字信号处理应用领域得到广泛应用。本文研究基于 FPGA 设计稳定的 IIR 数字滤波器的相关理论、 设计方法及仿真。1.2 国内外发展现状目前,数字滤波器的实现可以采用两种方法:软件实现和硬件实现。软件实现即是在通用的微型计算机上用软件来实现。利用计算机的存储器、运算器和控制器把滤波器所要完成的运算编成程序通过计算机来执行,软件可由使用者自己编写,也可使用现成的。国内外的研究机构、公司已 经 推出了不同语言的信号滤波处理软件包,但这种方法速度较慢,难以对信号进行实时处 理, 虽然可以用快速傅立叶变换算法来

12、加快计算速度,但要达到 实时处理要付出很高的代价,因而多用于教学与科研。2硬件实现即是设计专用的数字滤波硬件,目前主要采用 MCU(单片机)、DSP(数字信号处理器) 、ASIC(专用集成 电路)来实现。其中,单片机速度较慢;ASIC 虽然性能良好,但通常是为专门限定的某一或某几个特定功能而设计,灵活性差;软件编程的通用数字信号处理芯片( 如 TMS320CXX)是目前应用较广的一种方法。DSP 处理器实质上是一种适用于数字信号处理的单片微处理器,其主要特点是灵活性大,适应性强,具有可 编程功能且处理速度较高。近年来,由于多媒体技术和无线通信的发展对 DSP 应用的要求不断地增长,这些应用对信

13、号处理要求高,需要采用处理速度高的硬件来实现 DSP,所以,随着 CMOS 工艺的线宽不断缩小,从研制高性能的 DSP 专用芯片一DSP 处理器,直到近年来可以在单片机上集成 DSP 的应用,持续地推动了 LSI DSP 这一领域的发展。但是,采用 DSP 处理器的解决方案日益面临着不断增加的巨大挑战,而自身的技术瓶颈(如:运行速度、吞吐量、总线结 构的可变性、系统的可重构配置性、硬件可升 级性等等)致使这种解决方案在DSP 的许多新的应用领域中的道路越来越窄 4。例如,软件无线电的概念在 10 年前就已经提出,并付诸研究和实现 ,仅其领域中的数字信号 处理的等效速度也需达 50GIPS,然而

14、到目前为止,最快的 DSP 处理器,如 1rI 的 C6X 系列也没能超过 5GIPS,至于现在最常用的 TMS320C54X 系列,也只有 01GIPS。不言而 喻,在 许多应用领域,以 DSP 处理器为核心的 DSP 系统具有很大的局限性。FPGA 在器件密度、处理速度等达到片上系统的要求后,它所具有的系统内可重构的特性成为实现 DSP 应用的 优选方案之一。在许多诸如实时图像处理、联合战术无线电通信系统、 3G 移动通信基站、实时工控系统、卫星导航设备等领域中,FPGA 的 DSP 解决方案为数字信号处理开创了新的领域,使得构造的数字信号处理系统能够保持基于软件解决方案的灵活性又能接近

15、ASIC 的性能 5。国外有许多院校和科研机构在研究基于 FPGA 的 DSP 应用,比较突出的有Denmark 大学的研究小 组 正在从事 FPGA 实现数字滤波器的研究,由于 FPGA 实现乘法器困难,因此,他 们重点研究开发无乘法的滤波器算法。加州大学洛杉机分校的研究小组采用运行时重构技术开发了一种视频通讯系统,该系统用一片 FPGA 可每帧重构四次完成视频图像压缩和传送的操作。此外,他们还在进 行 Mojave 项目的开发工作,力图采用运行时重构技术来实现自动目标识别应用。我国的 DSP 技术起步较早,产品的研究开发成绩斐然,基本上与国外同步发展,而在 FPGA 信号处理和系统 方面,

16、有了喜人的 进展,正在进行与世界先进国家同样的研究,如西北工业大学和国防科技大学 ATR 实验室采用了 FPGA 可重构计算系统进行机载图像处理和自动目标识别,主要是利用该系统进行复杂的卷积运算,同时利用它的可变性来达到自适应的目的。北京理工大学研究利用 FPGA 提高加解密运算的速度等等。 现在,3可编程逻辑器件在密度、性能和功耗上都有显著的进步,为数字信号处理开创了新的领域,使得构造的数字信号处理系统能够保持基于软件的解决方案的灵活性,又能够接近ASIC 的性能。 FPGA 内部的功能块中的 SRAM 查找表(Look Up Table,LUT)构成函数发生器,这种结构特别适用于并行处理结

17、构,如分布式算法,相 对于串行运算为主导的通用 DSP 芯片来说,其并行度和可扩展性都很好,它逐渐成为构造可编程的高性能算法结构的新的选择。据分析,在未来,数字信号处理器将会主宰需要复杂算法的应用领域,而 FPGA 将会统治更多的应用,如 FIR、IIR 滤波器,CORDIC 算法或 FFT。1.3 IIR数字滤波器概念数字滤波器是完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统。 输入一组数字量,通过运算输出的是另一组 数字量。数字 滤波器具有稳定性好、精度高、灵活性大等突出优 点。随着数字技 术的发展,用数字技术设计滤波器的功能越来越受到人们的注意和广泛的应用。1.4 I

18、IR数字滤波器的原理数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置,其功能是对输入的离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现 6。相比于模拟滤波器来说,数字滤波器具有无漂移,能够处理频率较低的信号,频率响 应可以做到非常接近理想滤波器的特性,精度高,容易集成,易于修改等优点,这使得数字 滤波器在近些年得以迅猛的发展。数字滤波器从实现的网络结构或者从单位脉冲响应的长度不同,可以分为无限脉冲响应(IIR)滤波器和有限脉冲响应(FIR)

19、 滤波器,两者的设计方法、性能、 结构等方面都有很大的差别。当系统没有严格的相位要求的时候,IIR 滤波器以较少的阶数即可完成 FIR 滤波器较多阶数的幅频特性,而且成本低,信号延时少。因此工程 实际应用中往往采用 IIR 滤波器。一个数字滤波器的系统函数 可以表示为:)(zH= = (公式)(zXYNjjMiizba101) 直接由 得出表示输入输出关系的常系数线性差分方程为:)(zH4(公式)(nyMiixa0)(Njjnyb1)(2) 式中 、 为滤波系数,当 均为零时,该滤波器 为 FIR 数字滤波器,当 不均ia1jb1jb 1jb为零时, 则为 IIR 数字滤波器。与 FIR 数字

20、滤波器相比,IIR 数字滤波器可以用较低的阶数获得高的选择性,所用的存 储单元少,成本低、信号延 迟小,并且 IIR 数字滤波器可以借助于模拟滤波器的设计成果,设计工作量相对较小,为此,本文就 IIR 数字滤波器进行相关讨论。IIR 数字 滤波器有直接型、级联型和并联型三种基本结构。由 IIR 数字滤波器的阶差分方程( 公式 2)可知,设 = =2,则网络结构如图 1-1 所示。NMN图 1-1 直接型结构 Figure1-1 Direct structure1.5 IIR数字滤波器的设计方法IIR 数字 滤波器的设计方法通常有模拟转换法、零极点累试法和优化设计法 2。1.5.1 IIR数字滤

21、波器的模拟转换设计法利用模拟滤波器成熟的理论和设计方法来设计 IIR 数字滤波器是经常使用的方法。设计过程是:按照技术要求设计一个模拟滤波器,得到滤波器的传输函数 ,再按一)(sHa定的转换关系将 转换成数字滤波器的系统函数 。将传输函数 从 s 平)(sHa )(zH面转移到 z 平面的方法有多种,但工程上常用的是脉冲响 应不变法和双线性变换法。1.5.2 IIR数字滤波器的零极点累试法上述介绍的模拟转换设计法实际上是数字滤波器的一种间接设计方法,而且幅度特性受到所选模拟滤波器特性的限制。例如巴特沃斯低通幅度特性是单调下降,而切比雪夫低通特性带内或带外有上、下波动等, 对于要求任意幅度特性的

22、滤波器, 则不适合采y(n)x(n)a2a1b0b1a0z-1z-15用这种方法。下述介绍的在数字域直接设计 IIR 数字滤波器的设计方法,其特点是适合设计任意幅度特性的滤波器。在 IIR 数字滤波器的直接设计法中零极点累试法较为常用,设单位脉冲响应的零极点表达式为 2:(公式 3) AzH)(NkkMrrzdc11)(按照(公式 3),系统特性取决于系统零极点的分布,通过分析,我 们知道系统极点位置主要影响系统幅度特性峰值位置及其尖锐程度,零点位置主要影响系统幅度特性的谷值位置及其凹下的程度;且通过零极点分析的几何作图法可以定性地画出其幅度特性。上面的结论及方法提供了一种直接设计滤波器的方法

23、。这种设计方法是根据其幅度特性先确定零极点位置,再按照确定的零极点写出其系统函数,画出其幅度特性,并与希望的进行比较,如不满足要求。可通过移动零极点位置或增加(减少)零极点, 进行修正。1.5.3 优化设计法IIR 数字 滤波器除模拟转换设计法和零极点累试法外,还有一种直接在频域或者时域中进行设计,联立方程后需要计算机作辅助运算的方法,即所谓的优化设计法。1.6 IIR数字滤波器的硬件实现方案滤波器的实现主要包括两大类:DSPTMS320 系列芯片的实现和 ISP 器件的实现(主要包括 FPGA 和 CPLD)。其中利用 DSPTMS320 系列芯片实现滤波时速度较慢,而利用 ISP 器件实现

24、时,其运算速度比 DSP 器件要快好多倍。FPGA 的实现包括其自带的核的实现方法和自编程实现方法。核的实现方法虽然好用并且结构缜密,但一般情况下使用的权限都会受到注册购买的限制,因此基于 FPGA 的自编程实现方法成了滤波器实现的首选 3。以下简要介绍 IIR 数字滤波器的设计方案和基于 FPGA 的实现方法 4。1.6.1.方案一:直接相乘累加式对于二阶的 IIR 数字滤波器,其传递函数为:(公式 4) )(zH210zba6滤波器信号流图见图 1-1,在第 n 时刻, 是当时 的输入样本; 是 n 时刻的)(X)(YIIR 滤波器的输出: )2()1()(0dbXnd(公式 5)anaY

25、因此,可以用硬件乘法器和硬件加法器来实现乘法和加法。由式(1.2.2)可以看出,按照这种设计方法,要用到 5 个乘法器和 6 个加法器。对于 FPGA 的设计来说,这种方法的缺点是比较耗费资源。1.6.2.方案二:基于 ROM 查表法的 VHDL 结构化设计采用 ROM 查表的方法,主要是 为了避免使用硬件乘法器。二阶 IIR 的一般表示形式为:(公式 6)210210 nnnnn ybxaxay其中 是输入序列, 是输出序列, 和 是系数。假 设输入序列)(X)(Yij为 位 2 的补码,并以定点表示,并 0);tmpb0);25ta0) when (tmpb=“00000“) else t

26、p2nprocess(clk_reg,clk_regbt)beginif clk_reg=1 then cnt0);elsif (clk_regbtevent and clk_regbt=1) thenif cnt5 then cnt=cnt+1;ytmp=ytmp+p; -完成补码相乘后的相加运算elsif(cnt=5) then if ytmp(8)=1 thentppp=not ytmp(7 downto 0)+1;yout(7 downto 0)=tppp;yout(8)=ytmp(8);else tppp=ytmp(7 downto 0);yout(7 downto 0)=tppp;

27、yout(8)=ytmp(8);end if;end if;end if;end process;end bhv;26累加模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity addyn isport (clk:in std_logic;res:in std_logic;yout:in std_logic_vector(8 downto 0);youtput:out std_logic_vector(8 downto 0);end addyn;architecture bhv of addyn issignal y_out,y_ou:std_logic_vector(8 downto 0);beginprocess(res,clk)begin if res=1 then youtput=“000000000“;elsif (clkevent and clk=1) theny_ou=yout;y_out=y_ou+y_out; -实现累加功能youtput=y_out;end if ;end process;end bhv;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报