基于FPGA实现线性FIR数字滤波器.docx
- 文档编号:11273212
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:36
- 大小:348.78KB
基于FPGA实现线性FIR数字滤波器.docx
《基于FPGA实现线性FIR数字滤波器.docx》由会员分享,可在线阅读,更多相关《基于FPGA实现线性FIR数字滤波器.docx(36页珍藏版)》请在冰豆网上搜索。
基于FPGA实现线性FIR数字滤波器
摘要
在宽带信号处理中,常常利用目标回波的频谱特性进行目标检测和分类,为了保证其准确性,对接收到的回波必须进行频谱分析。
实际上常用的方法是通过滤波器组进行处理的。
因此在设计上采用同一结构的FIR滤波器,通过调整参数实现不同频率段的滤波。
根据FIR滤波器可以很方便地实现线性相位的特性和稳定性在设计中提出了一种采用现场可编程门阵列器件(FPGA)实现线性FIR数字滤波器,利用分布式算法的并行处理的高效的特点,对于在FPGA中实现FIR滤波器的关键——乘加运算,给出将乘加转化为查找表结构实现乘法器,并利用多级流水线方式实现运算。
降低了对查找表的存储容量的需求,并且不影响系统的速度。
用VHDL语言编写了程序。
关键词:
有限冲击响应滤波器,现场可编程门阵列器件,查找表,分布式,流水线
目录
一.绪言-------------------------------------------------------------1
1.1课题背景-------------------------------------------------------1
1.2课题研究的目的和意义-------------------------------------------2
二.滤波器设计原理---------------------------------------------------3
2.1滤波器的基本概念-----------------------------------------------3
2.1.1滤波原理--------------------------------------------------3
2.1.2滤波器的分类-----------------------------------------------4
2.1.3数字滤波器结构的表示方法-----------------------------------5
2.2有限冲击响应(FIR)滤波器的基本概念-----------------------------6
2.2.1有限冲击响应(FIR)滤波器的特点------------------------------6
三.FIR数字滤波器的设计思路------------------------------------------8
3.1线性相位FIR滤波器特点----------------------------------------8
3.1.1单位冲击响应h(n)的特点------------------------------------8
3.1.2线形相位的条件--------------------------------------------8
3.2.线性相位FIR滤波器的设计--------------------------------------9
3.2.1设计基础--------------------------------------------------9
3.2.2流水线技术的应用-------------------------------------------9
3.2.3分布式算法的运用------------------------------------------10
3.2.4采用查找表结构--------------------------------------------11
3.2.5采用FPGA来实现-------------------------------------------13
四.系统的设计与实现------------------------------------------------15
4.1滤波器的设计指标----------------------------------------------15
4.2系统具体实现步骤---------------------------------------------15
4.2.1计算FIR数字滤波器的滤波系数------------------------------15
4.2.2FIR数字滤波器的VHDL实现---------------------------------18
4.2.2.1概要-------------------------------------------------19
4.2.2.2详细说明----------------------------------------------20
4.2.2.3输出数据分析------------------------------------------28
五.总结------------------------------------------------------------29
六.参考文献--------------------------------------------------------29
一.绪言
1.1课题背景
信号处理的内容含滤波、均衡、放大、噪声消除、信号产生、检测、运算和参量提取等许多方面。
数字信号处理是采用数值计算的方法,完成对信号的处理,而模拟信号处理则是通过一些模拟器件,例如晶体管、电阻、电容、电感等,完成对信号的处理。
当然可以在系统中增加数模转换器和模数转换器,这样数字信号处理系统也可以处理模拟信号模拟系统也可以处理数字信号。
但是随着计算机的普及,有人认为目前已成为数字万能的时代了。
我们知道,作为一次信息源,或称原始信号源,多半产生如语音、图像等模拟信号。
它的重要性今后也不会改变。
考虑到这一事实,以及由于数字计算机和大规模集成电路(LSI)的发展,就产生了模拟信号的数字处理的设想,从而形成了一套完整的数字信号处理技术理论,开发出各种系统,这在技术发展史上也可以说是必然的。
数字信号处理技术是以数字滤波器和快速傅立叶变换(FFT)为核心的。
数字信号处理技术的应用涉及到很广的范围。
20世纪60年代主要是用于研究语言信号,当时只是按照语言信号分析与合成的需要来制作模拟滤波器,在规模上和灵活性方面都存在着缺点。
为此,广泛采用计算机模拟的方法作为语言信号处理的研究手段。
与此同时,像研究如何用离散系统来代替人们所熟悉滤波器传递函数那样,对数字信号处理的理论进行研究也很活跃。
1965年FFT算法的发展对促进数字信号处理的发展起了决定性的作用。
20世纪60年代末,有关数字信号处理的论文数量达到了高峰,但处理方法并不像模拟滤波器那样以硬件形式出现,而是以软件形式出现的。
并不是研究人员不想用硬件实现数字滤波器只是直到20世纪70年代LSI技术得到了发展,才使得用硬件实现数字滤波器成为可能。
数字滤波器是语音与图像处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。
有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特征。
1.2课题研究的目的和意义
目前FIR滤波器的实现方法有三种:
利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。
单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。
使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。
FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。
但长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。
现在这个问题得到了解决,使FPGA在数字信号处理方面有了长足的发展。
,它们可以用较小的代价和与加法器级数无关的处理速度实现整数乘法运算,能比单纯地用查找表(DA)方法用更少的逻辑资源实现FIR滤波器。
这种算法都不同于传统的设计观念,为基于FPGA的DSP设计提出了新的思路,必将在高速FIR滤波器设计、高速FFT设计中得到广泛的应用。
随着FPCA集成规模的不断提高,许多复杂的数学运算已经可以用FPCA来实现,利用单片FPGA实现系统的设想即将变为现实。
二.滤波器设计原理
2.1滤波器的基本概念
2.1.1滤波原理
滤波器,顾名思义,其作用是对输入信号起到滤波的作用。
对图(2.1)所示的LSL系统其时域输入输出关系是
….(2.1)
若x(n),y(n)的傅立叶变换存在,则输出输入的频域关系是
,(2.2)
如图2.2(a),(b)所示,
那么由(2.2)式,
将如图2.2(c)所示。
这样,x(n)通过系统h(n)的结果是使输出y(n)中不再含有
的频率成分,而使
的成分“不失真”的给以通过。
因此,设计出不同的形状的
可以得到不同的滤波结
。
若滤波器的输入,输出都是离散时间信号,那么,该滤波器的冲击响应也必然是离散的,即单位抽样响应h(n)。
我们称这样的滤波器为数字滤波器(DigitalFilter,DF)。
当用硬件实现一个DF时,所需的元件是延迟器,乘法器和加法器。
当在通用机上用软件实现时,它即是一段线性卷积的程序。
我们知道,模拟滤波器(AnalogFilter,AF)只能用硬件来实现,其元件是R,L,C及运算放大器或开关电容等。
因此,DF的实现要比AF容易得多,且易获得较理想的滤波性能。
2.1.2滤波器的分类
滤波器的种类很多,分类的方法也不同,如可以从功能上分,也可以从实现方法上分,或从设计方法上来分等。
但总的来说,滤波器可分为两大类,即经典滤波器和现代滤波器。
经典滤波器是假定输入信号x(n)中的有用成分和希望去除的成分各自占有不同的频带,如图(2.2)所示,这样,当x(n)通过一个线性系统(即滤波器)后可将欲去除的成分有效的去除。
如果信号和噪声的频谱相互重叠,那么经典滤波器将无能为力。
现代滤波器理论研究的主要内容是从有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。
一旦信号被估计出,那么估计出的信号将比原信号会有高的信噪比。
现代滤波器把信号和噪声都视为随机信号,利用它们的统计特征(如自相关函数,功率谱等)导出一套最佳的估值算法,然后用硬件或软件予以实现。
现代滤波器理论源于维纳在40年代及其以后的工作,因此维纳滤波器便是这一类滤波器的典型代表。
此外还有卡尔曼滤波器、线性预测器、自适应滤波器等。
经典滤波器从功能上总的可分为四种,即低通(LP),高通(HP),带通(BP),带阻(BS)滤波器,当然,每一种又有模拟滤波器(AF)和数字滤波器(DF)两种型式。
分别给出了AF及DF的四种滤波器的理想幅频响应。
图中所给的滤波器的幅频特征都是理想情况,在实际上是不可能实现的。
例如,对低通滤波器,它们的抽样响应h(n)(或冲激响应h(t))是sinc函数,从-
至+
有值,一是无限长,二是非因果。
在实际工作中。
我们设计出的滤波器都是在某些准则下对理想滤波器的近似,但这保证了滤波器是物理可实现的,且是稳定的。
2.1.3数字滤波器结构的表示方法
一个数字滤波器可以用系统函数表示为:
(2.3)
则系统的输入和输出满足差分方程:
(2.4)
可以看出,数字滤波器的功能,就是把输入信号列序通过一定的运算,如(2.3)式所示,变换成输出序列。
数字滤波器一般可以用两种方式实现:
一是根据描述数字滤波器的数学模型或信号流图,用数字硬件装配成一台装门的设备,构成专用的信号处理机;另一种方法就是直接利用通用计算机,将所需要的运算编成程序让计算机来执行,这也就是用软件来实现数字滤波器。
为了用专用硬件或软件来实现输入信号处理,需要把式(2.3)或式(2.4)变化成一种算法。
对应同一个系统函数H(z),对输入信号的处理可实现的算法有很多种,每一种算法对应一种不同的运算结构(网络结构)。
由式(2.4)看出,实现一个滤波器需要几种基本的运算单元:
加法器,单位延时器和常数乘法器。
这些基本的单元可以有两种表示方法—方框图法和信号图法,因而一个数字滤波器的运算结构也有这两种表示法,如图(2.5)所示:
网络结构的不同将会影响系统的精度、误差、稳定性、经济性以及运算速度等许多重要的功能。
数字滤波器有无限长单位脉冲响应(IIR)和有限长单位脉冲响应(FIR)数字滤波器两种。
从结构上来看,IIR数字滤波器采用递归结构,FIR数字滤波器主要采用非递归的结构。
对数字滤波器,从实现方法上,有IIR滤波器和FIR滤波器之分,其转移函数分别是
IIRDF
(2.5)
FIRDF
(2.6)
这两类滤波器无论是在性能上还是在设计方法上都有着很大的区别。
FIR滤波器可以对给定的频率特性直接来进行设计,而IIR滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法来进行设计。
而模拟滤波器的设计方法又有Butterworth滤波器,Chebyshev(Ⅰ型、Ⅱ型)滤波器,椭圆滤波器等等不同的设计方法。
2.2有限冲击响应(FIR)滤波器的基本概念
IIR数字滤波器的设计方法是利用模拟滤波器成熟的理论和设计图表进行设计的,因而保留了一些经典模拟滤波器优良幅度特性。
特别是双线形变换没有频谱混叠,效果很好。
但IIR滤波器有一个明显的缺点,就是相位特性不好控制,如果需要线形相位特性,必须用全通网络进行复杂的相位校正。
由于许多电子系统都要求具有线形相位特性,在这方面FIR滤波器有其独到的优点。
FIR滤波器可以在幅度特性随意设计的同时,能保证精确,严格的线形相位的特性。
此外,FIR滤波器的单位冲激响应h(n)是有限长序列,它的Z变换在整个有限Z平面上收敛,因此FIR滤波器肯定是稳定滤波器。
同时,FIR滤波器也没有因果性困难,因为任何一个非因果的有限长序列,只要通过一定的延时,总是可以转换为因果序列,因此总可以用一个因果系统来实现。
FIR滤波器还可以采用快速傅立叶变换的方法过滤信号,从而大大提高了运算效率。
所有这些特点使FIR滤波器得到越来越广泛的应用。
2.2.1有限冲击响应(FIR)滤波器的特点
通过FIR滤波器和IIR滤波器的比较可以发现FIR滤波器有如下特点:
(1)系统的单位冲击响应h(n)在有限个n值处不为零。
(2)系统函数在
>0处收敛,极点全部在Z=0处(稳定系统)。
(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。
有限冲击响应(FIR)的优点:
(1)既具有严格的线性相位,又具有任意的幅度。
(2)IR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定。
(3)只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现。
(4)FIR滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。
从以上简单的比较我们可以看到IIR滤波器与FIR滤波器各有所长,在实际的应用时要从多方面的考虑来加以选择。
在对图像信号处理、数据传输等以波形携带信息的系统,一般对线性相位要求比较高,这时采用FIR滤波器有其特有的优越性。
所以本文从这一出发点上选择了FIR滤波器。
三.FIR数字滤波器的设计思路
3.1线性相位FIR滤波器特点
3.1.1单位冲击响应h(n)的特点
FIR滤波器的单位冲击响应h(n)是有限长(0≤n≤N-1),其z变换为:
(3.1)
在有限Z平面有(N-1)个零点,而它的(N-1)个极点均位于原点Z=0处。
3.1.2线形相位的条件
如果FIR滤波器的单位抽样响应h(n)为实数,而且满足以下任一条件:
偶对称h(n)=h(N-1-n)。
其对称中心在
,则滤波器具有准确的线形相
。
线形相位特点和幅度函数的特点:
(1)h(n)偶对称
(3.2)
幅度函数
包括正负值,相位函数是严格线性相位,说明滤波器有
个抽样的延时,它等于单位抽样响应h(n)长度的一半。
线性相位无
附加相移,幅度函数在
处存在零点,且对
呈奇对称,因此不适合作高通滤波器。
线性相位无
附加相移,幅度函数对在
呈偶对称,因此适合作低通,高通滤波器。
(2)
(3.3)
相位函数仍是线性,但在零频率
处有
的截距。
不仅有
个抽样的延时,还产生一个
的相移。
3.2.线性相位FIR滤波器的设计
3.2.1设计基础
由上面的分析可得,滤波器的设计归结为选择一组h(n),为了满足滤波器具有线性相位特性,h(n)在选择时必须注意保证其对称性和实值性。
线性相位的FIR滤波器共有4种:
(1)N为偶数,h(n)偶对称;
(2)N为偶数,h(n)奇对称;(3)N为奇数,h(n)偶对称;(4)N为奇数,h(n)奇对称,对称中心都为
。
3.2.2流水线技术的应用
流水线技术是在数字电路设计中,为了提高同步时钟频率,即电路速度,而采用的一种特殊的设计方法。
流水线技术结构示意图见图(3.0)
利用流水线技术将复杂的数字逻辑电路分级实
。
这样,使每一级的电路结构简化,从而减小输入到输出间的电路时延,在较小的时钟周期内就能够完成这一级的电路功能。
在下一个时钟周期到来的时候,将前一级的结果锁存为该级电路的输入,这样逐级锁存,由最后一级完成最终的结果输出。
在这个过程中,数据就好像流过一根根数据管道,流水线也就由此得名。
在流水线技术中,由于算法分解后,数据逐级锁存,输出不是实时的,电路中有几级分步操作,输出相对于输入就会延迟相应的时钟周期。
另外在每一级都要用寄存器将上一级的结果寄存,所以当电路中位数增加。
这也是流水线技术为了得到较高的工作效率而增加额外的开销。
无论加法器、乘法器、还是整个FIR滤波器都可以利用流水线技术,加快运算速度。
流水线设计的一个关键在于整个设计时序的合理安排,要求每个操作步骤的划分合理。
如果前级操作时间恰好等于后级的操作时间,设计最为简单,前级的输出直接汇入后级的输入即可;如果前级操作时间大于后级的操作时间,则需要对前级的输出数据适当缓存才能汇入到后级输入端;如果前级操作时间恰好小于后级的操作时间,则必须通过复制逻辑,将数据流分流,或者在前级对数据采用存储、后处理方式,否则会造成后级数据溢出。
流水线处理方式之所以频率较高,是因为复制了处理模块,它是面积换取速度思想的又一种具体体
。
3.2.3分布式算法的运用
得益于XilinxFPGA查找表结构的潜能,分布式算法在滤波器设计方面显示出了很高的效率,自20世纪90年代初以来越来越受到人们的重要,并被有效地应用在FIR数字滤波器的设计中。
分布式算法是基于查找表的一种计算方法,分布式算法是一种以实现乘加运算为目的的运算方法。
它与传统算法实现乘加运算的不同在于执行部分积运算的先后顺序不同。
简单地说,分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先进相加形成相应部分积,然后在对各部分积进行累加形成最终结果,而传统算法是等到所有乘积产生之后再进行相加来完成乘加运算的。
与传统算法相比,分布式算法可极大地减少硬件电路规模,很容易实现流水线处理,提高电路的执行速度。
在利用FPGA实现数字信号处理方面发挥着重要的作用,可以大大提高信号的处理效率。
它主要应用于数字滤波、频率转换等数字信号处理的乘累加运算。
分布式算法的原理
分布式算法在20多年前被首次提出,但直到Xilinx发明FPGA的查找表结构以后,分布式算法才在20世纪90年代初重新受到重视,并被有效地应用在FIR滤波器的计设计。
下面介绍分布式算法的原理。
滤波器的数学表达式可以用下式表示:
(3.4)
式中,h
即h
,
即
,N为滤波器的抽头数。
把数据源数据格式规定为2的补码形式,则:
(3.5)
式中,
为二进制数,取值为0或1;
为符号位,为1表示数据为负,为0表示数据为正。
将(3.4)式代入(3.5)式可得:
(3.6)
由此可以看出,方括号是输入变量的一个数据位和所有滤波器抽头系数
的每一位进行“与”运算并求和。
而指数部分则说明了求和结果的位权,整数乘以
就是左移b位,对此可以通过硬件连线实现,不占用逻辑资源。
这样就可以通过建立查找表来实现方括号中的运算,查找表可用所有输入变量的一同一位进行寻址。
与传统串行算法相比,分布式算法可极大地减少硬件电路的规模,提高电路的执行速度。
3.2.4采用查找表结构
查找表(Look-up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FGPA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址的16×1的RAM。
当用户通过原理图或HDL语言描叙了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能结果,并把其事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
图(3.1)左是一个4输入与门的实现逻辑电路。
LUT的实现方式如图(3.1)右所示。
当实现固定系数的滤波器时,由于滤波器系数已经固定,因此,可以利用简化的乘法器(如查找表、逻辑树等),以减少设计所耗用的器件资源。
例如图(3.2)所示的8阶FIR滤波器,若它的输入为2bit正整数,输出为:
(3.7)
这时的乘法和加法就可以并行地采用查找表实现了,其结构示意图如图(3.3).
图(3.3)中右面4个信号是输入的低位比特,左面是输入信号的高位比特。
低位和P1最多使用4bit表示,而且由于系数固定,LUT实现起来也很方便,高位和P2可按同样方法计算。
在该结构中,部分积Pl和P2可以利用FLEX器件的4输入LUT实现,所有的计算都可并行完成,由于输入为2bit,因此,只用到了一个加法器;对于更多位数的输入来说,将需要更多的加法器。
查找表算法(DA算法)的主要特点,是巧妙地利用ROM查找表将固定系数的MAC运算转化为查表操作,其运算速度不随系数和输入数据位数的增加而降低,而且相对直接实现乘法器而言在硬件规模上得到了极大的改善。
利用ALTERA的FLEXl0K实现的16阶8位系数的并行FIR滤波器,其时钟频率可以达到101MHz,而实现的16阶8位系数的串行FIR滤波器,其时钟频率可以达到63MHz,每8个时钟周期可完成一次计算。
但是其系数是传统二进制的,造成了很大的冗余(对于用逐位相加法实现的乘法器,当系数有一位为零时不用相加,零位越多,冗余越大),而且查找表的大小随着滤波器阶数的增加成指数增加,虽然可以采用将大查找表分解为小查找表,但是无法从根本上解决这一问题,这些都是DA方法的缺点。
后面将对FIR滤波器实现给出新的设计方法,进一步降低逻辑资源的消耗和提高滤波器的运行速度。
3.2.5采用FPGA来实现
传统上,数字信号处理系统(DSP)的构建在较低速率要求下是以通用DSP芯片为核心的,如果要求速率较高的话,则要使用专用的DSP芯片或者专用集成电路(ASICs)来设计实现。
随着现场可编程门阵列(FPGA)的快速发展,数字信号处理系统的构建又多了一种选择方案。
FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合细粒度和高并行度结构特点的数字信号处理任务,如FIR、FFT等。
FPGA器件作为ASIC的一个重要分支,是一种已经完成了全部工艺制造,可以直从市场购买的产品,用户只需对它编程就可以实现所需要的功能,并且在保持了传统ASIC低功耗、轻小型化、高可靠性等优点的同时,还具有较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 实现 线性 FIR 数字滤波器