用VHDL设计FIR数字低通滤波器解读.docx
《用VHDL设计FIR数字低通滤波器解读.docx》由会员分享,可在线阅读,更多相关《用VHDL设计FIR数字低通滤波器解读.docx(34页珍藏版)》请在冰豆网上搜索。
用VHDL设计FIR数字低通滤波器解读
安徽大学
本科毕业论文(设计、创作)
题 目:
用VHDL设计FIR低通数字滤波器
学生姓名:
学号:
院(系):
电子信息工程学院专业:
电子信息工程
入学时间:
二〇〇九 年 九 月
导师姓名:
职称/学位:
导师所在单位:
安徽大学电子信息工程学院
完成时间:
二〇一三 年 六 月
用VHDL设计FIR低通数字滤波器
摘要
数字滤波器在语音与图像处理﹑生物医学信号处理﹑通信以及电力系统中有着广泛的应用,它在过滤噪声、提高信噪比等方面有着重要的意义。
本文首先分析了几种主要的FIR滤波器的实现方案,经过比较,最终采用了利用单位冲激响应的对称特性的方案。
然后根据FIR低通数字滤波器的原理与滤波特性,利用MATLAB中的FDATOOL工具设计了一定性能的FIR低通滤波器,获取滤波器的相应系数并且将其进行量化。
最后在MAX+PLUSⅡ环境下运用VHDL语言和原理图混合输入方式实现了18阶FIR低通数字滤波器,利用MAX+PLUSⅡ的仿真器对设计进行仿真得到相应的滤波仿真结果,并与MATLAB计算出来的理论值进行比较。
此外,还对理论值与实际值的误差进行了分析。
关键词:
FIR数字滤波器;MATLAB;VHDL语言;MAX+PLUSⅡ
DesignFIRLow-passDigitalFilterUsingVHDL
Abstract
Digitalfilterhasbeenwidelyusedinspeechandimageprocessing,biomedicalsignalprocessing,communicationsandpowersystem,whichhasimportantsignificanceinfilteringnoiseandimprovingthesignal-noise.Atfirst,thispaperanalyzesseveralmainschemeoftherealizationofFIRfilter,aftercomparing,finallyadoptstheschemeofusingthesymmetricalcharacteristicoftheunitimpulseresponse.andthen,basedontheprincipleofFIRlowpassdigitalfilterandfiltercharacteristics,useFDATOOLofMATLABtoolstodesigncertainpropertiesoftheFIRlowpassfilter,getcorrespondingfiltercoefficientsandquantifyit.Atlast,IuseVHDLlanguageandschematichybridapproachtoachievethe18-orderFIRlow-passdigitalfilterintheenvironmentofMAX+PLUSⅡ,andmakeuseofMAX+PLUSⅡsimulatorstosimulatethedesigntogetthecorrespondingfiltersimulationresultswhichareusedtocomparewiththeMATLABcalculatedtheoreticalvalue.Furthermore,theerrorbetweenthetheoreticalvalueandtheactualvalueareanalyzed.
Keywords:
FIRdigitalfilter;MATLAB;VHDLlanguage;MAX+PLUSⅡ
目 录
1引言
1.1论文背景介绍
数字滤波器是数字信号处理系统中一种基本的处理部件,滤波是指依据噪声与有用信号频谱特性的不同,提取有用的信号,滤除不需要的信号,达到改变输入信号中所含频率分量的相对比例的目的。
数字滤波器是一个离散的系统,该系统应用的对象是离散信号。
若用数字滤波器处理模拟信号,则需要对输入的模拟信号进行限带、抽样、量化和编码等一系列操作。
当离散信号通过特定的数字滤波器时,滤波器可以提取信号所含有的有用信息,这就是数字滤波器的功能。
从结构上看,数字滤波器可由数字乘法器、加法器和延时单元组成。
数字滤波器可以从两个方面来划分,按频率响应特性来分,可分为低通、高通、带通、带阻滤波器;按单位脉冲响应长度来分,可分为有限长单位脉冲响应(FIR)滤波器和无限长单位脉冲响应(IIR)滤波器[1]。
FIR滤波器与IIR滤波器各有特点,在选择时可以从实际应用时的要求出发,从多方面考虑加以选择[2]。
在用FIR滤波器设计和实现某些特定的应用时,会比IIR滤波器更有优势,例如用频率抽样设计法设计理想正交变换器、线性调频器等网络,会很灵活。
在大多数数字信号处理的场合,数字滤波器被要求具有能对输入的信号实时处理并能进行复杂的运算等功能,这些需求越来越普遍,也成为某些数字滤波器的性能指标。
在速度方面,FPGA表现出了特有的优势。
FPGA拥有丰富的连线资源和规范完整的内部逻辑块整列,非常适合用于高并行度结构和细粒度的FIR滤波器的实现,相对于串行运算的通用DSP芯片来说,可扩展性与并行性都更好[3]。
在效率、性价比、功能和使用灵活性方面有优势的FPGA数字信号处理器,正在通信﹑电力系统﹑图像处理等领域发挥着巨大的作用。
运用分布式算法实现的FPGA滤波器具有运算速度与采样数据的宽度成正比的突出优点,适合设计高速高阶的FIR滤波器,在节省硬件资源和提高系统运行速度方面有相当大的优势。
另外,可移植性较好,在设计不同参数的滤波器时,只需改变查找表的内容就可以满足具体的实际需要[4]。
因此,这种方法在高速数字信号处理中将有很广的应用领域。
1.2论文的主要研究内容
本文讨论FIR滤波器的多种实现方案并对其进行比较。
选择利用具有严格线性FIR滤波器的单位冲激响应的对称特性的方案,用MATLAB中的FDATOOL工具设计一定性能的FIR低通数字滤波器,获取滤波器的单位脉冲响应序列,并进行量化。
使用VHDL语言设计滤波器的基本结构,例如:
延时单元、加法器、乘法器、减法器等;在顶层模块中采用原理图输入方式实现各元件的互连。
用MAX+PLUSⅡ对本设计进行编译仿真,并与MATLAB计算出来的理论值进行对比分析。
1.3工作平台介绍
1.3.1MATLAB介绍
MATLAB(MatrixLaboratory的缩写)是美国MathWorks公司推出的面向科学计算、可视化以及交互式程序设计的商业数学软件。
如今,MATLAB的功能不仅是解决矩阵与数值计算,它将数值分析、矩阵计算、科学数据可视化、以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供一个全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平[5]。
由于功能非常强大,很多著作在进行理论验证或说明一些现象时都使用MATLAB作为辅助工具。
在高校的推广和应用下,MATLAB已成为很多大学课程,如信号与系统、数字信号处理等的基本教学工具。
1.3.2MAX+PLUSⅡ
MAX+PLUSⅡ是Altera公司上一代的PLD开发软件,提供FPGA/CPLD开发集成环境。
MAX+PLUSⅡ界面友好,使用方便,被称为业界最易学易用的EDA软件。
MAX+PLUSⅡ支持VHDL、原理图和Verilog语言文本文件,以及波形和EDIF等文件作为设计输入,并支持这些文件的混合设计,提供的设计环境与结构无关,使设计者能方便快速地进行设计输入、迅速处理和器件的编程。
MAX+PLUSⅡ还拥有门级仿真器,可以进行功能和时序仿真,并产生精确的仿真结果。
在适配之后,MAX+PLUSⅡ生成供时序仿真用的VHDL、EDIF和Verilog3种不同格式的网表文件[1]。
MAX+PLUSⅡ具有以下特点:
(1)开放的界面,与结构无关;
(2)完全集成化,丰富的设计库;
(3)设计环境可用户化;
(4)支持各种硬件描述语言(HDL)输入;
(5)具有OpenCore(开放核)特征;
2FIR滤波器
2.1FIR滤波器的基本概念
FIR滤波器是数字信号处理系统中最基本的元器件,主要用来实现信号的预处理、带选、防混叠、抽选/插补、滤波和视频卷积等功能,它可以做成具有严格的线性相位的同时也具有任意的幅频特性。
此外,FIR滤波器能用快速傅里叶算法(FFT)来处理信号从而提高运算效率并且滤波器是稳定的,这些特点与其单位抽样响应是有限长的有关。
因此,FIR滤波器在通信、模式识别、图像处理等领域有着非常广泛的应用[6]。
2.2FIR滤波器的特点
FIR数字滤波器可以是稳定的并且可具有良好的线性相位,这些优点是它能广泛应用于数字信号处理领域的关键。
有限冲激响应(FIR)滤波器的特点[2]:
(1)FIR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;
(2)既可以具有严格的线性相位,又可以具有任意的幅度;
(3)能用因果系统来实现,这是因为任何非因果有限长序列经过一定的延时,都能变成因果有限长序列;
(4)FIR有利于对数字信号的处理,方便编程,计算速度快,便于信号的实时处理;
(5)FIR滤波器比较大的缺点就是要取得良好的衰减特性,H(Z)的阶次比IIR滤波器要高;
(6)IIR滤波器的各种变换方法不适合FIR滤波器的设计,这是其系统函数决定的。
2.3FIR滤波器的结构与原理
FIR数字滤波器是一个线性时不变系统(LTI),其单位冲激响应的z变换为
(1)
式
(1)系统差分方程为
(2)
由式
(2)可知n时刻滤波器的输出值只决定于n时刻滤波器的输入值以及过去N-1个输入值,画出其网络结构,如图1所示,这种结构称为直接型。
对于图1所示的直接型结构,可以知道N+1个系数才能描述N阶FIR滤波器,N阶FIR滤波器得用N+1个乘法器和N个两输入加法器来实现。
图1:
直接型结构
如果FIR滤波器的单位冲激响应h(n)满足式(3)所示的对称条件:
,n=0,1,…,M(3)
则该因果系统具有严格的线性相位。
利用此对称性制作n阶FIR滤波器可减少一半的乘法器:
当n为偶数时,需要n/2个乘法器;当n为奇数时,则需要(n+1)/2个乘法器。
在实际的电路中要尽可能的减少乘法器的使用,这是因为电路的制作成本与乘法器的数目成正相关,电路的运行速度与乘法器的数目成负相关。
当M为偶数时,式
(2)可化为
(4)
把式(3)带入式(4)得到
(5)
对应的偶数型网络结构如图2所示:
图2:
偶数型结构
同理,当M为奇数时,式
(2)可化为
(6)
对应的奇数型网络结构如图3所示:
图3:
奇数型结构
3方案分析与设计
3.1FIR滤波器的设计方案
FIR滤波器的设计方案相当多,一般情况下每个方案都有侧重的地方和适用的范围,设计时会考虑速度、资源、结构、稳定性等问题,有时会做出折中的选择。
下面介绍几种方案并分析比较。
方案一:
此方案是引用图1所示的直接型结构,它没有经过任何化简,