您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于FPGA的数字信号处理算法设计
基于FPGA的数字信号处理算法设计摘要:本文研究了基于FPGA的快速傅立叶变换、数字滤波、相关运算等数字信号处理算法的高效实现。现代数字信号处理对实时性提出了很高的要求,当最快的数字信号处理器(DSP)仍无法达到速度要求时,唯一的选择是增加处理器的数目,或采用客户定制的门阵列产品。随着可编程逻辑器件技术的发展,具有强大并行处理能力的现场可编程门阵列(FPGA)在成本、性能、体积等方面都显示出了优势。设计了级联和并行递归两种结构的FFT处理器。分析了具有相同结构的数字滤波和相关运算的特点,采用了有乘法器和无乘法器两种结构实现乘累加(MAC)运算。实验表明,本文所有算法均达到了设计要求。关键词:DSP;FPGA;数字滤波;FFT处理器Abstract:Thispaperintroducedsignalprocessingalgorithm,suchasfastFouriertransform,digitalfiltering,andcorrelationalgorithmhadresearchedandefficientlyrealized.Moderndigitalsignalprocessing(DSP)putforwardtherequirementofhighreal-timeperformance,whenthefastestdigitalsignalprocessor(DSP)stillcannotmeettherequirementsofspeed,theonlyoptionistoincreasethenumberofprocessors,oruseofcustomgatearray(FPGA)products.Withthedevelopmentoftheprogrammablelogicdevicestechnology,withastrongparallelprocessingabilityoffieldprogrammablegatearray(FPGA)intermsofcost,performance,volumeshowstheadvantage.ParallelrecursivedesignlevelandthestructureofthetwokindsofFFTprocessor.Analyzedthedigitalfilterwiththesamestructureandrelatedcalculation,thecharacteristicsofthetwokindsofstructurewithandwithoutmultipliermultipliermultiplyaccumulation(MAC).Experimentsshowthatthealgorithmsareallmeetthedesignrequirements.Keywords:DSP;FPGA;digitalfiltering;FFTprocessor1、引言FPGA(FieldProgrammableGateArray)即现场可编程门阵列和DSP(DigitalSignalProcessor)数字信号处理芯片发展至今已经有了二十多年的历史,但和DSP很早就确立数字信号处理领域的霸主地位相比,FPGA由于成本、功耗和性能限制,一直被使用在系统外围,从最初用于胶合逻辑,到控制逻辑,再到用于数据通路,慢慢地接近系统的核心。在数据通讯和图像处理这样的应用中,由于成本、系统功耗和上市时间等原因已无法简单地利用DSP处理器来实现,基于FPGA的信号处理器己广泛应用于各种信号处理领域。与DSP相比,FPGA实现数字信号处理的主要优越性有:首先,FPGA的高度并行处理能力。FPGA相对DSP芯片的最大优势是其内在的并行机制,即利用并行架构实现数字信号处理的功能。这一并行机制使得FPGA特别适合于完成滤波这样重复性的DSP任务。对于高度并行的数字信号处理任务来说,FPGA性能远超通用DSP处理器的串行执行架构。其次,FPGA具有重配置能力。DSP处理器可以通过加载不同的软件来实现不同的功能,但这相对于ASIC系统十分灵活的功能并没有实用价值。因为仅仅通过对DSP处理器加载不同的程序代码,并不能有效地改变DSP系统的诸如吞吐量、数据总线宽度、DSP加速模块的数量与功能。这是因为这一切必须靠改变硬件结构、硬件功能才能实现。最后,在高速、高性能要求的应用场合,使用FPGA方案的系统成本、功耗、集成度比使用DSP方案更优越。由于CPU的灵活性,对于低速、低吞吐量和大量复杂运算的情况,DSP处理器方案的系统成本要比FPGA系统低很多,而且此方案具有不可替代性。然而在高端应用领域,大多数的情况中不但需要尽可能高速、高性能的DSP处理器,而且多片DSP连用的情况也十分普遍。在多片DSP系统中,每一片DSP处理器都必须配置完整的辅助器件才能正常工作,如数据RAM、程序RAM和ROM、FIFO、双口RAM、FPGA/CPLD辅助接口器件等等。该系统的成本将成倍提高,功耗、集成度与可靠性等性能指标也都将不同程度地下降,但是如果使用FPGA来构成DSP系统,在DSP处理器系统中存在的问题将迎刃而解。目前拥有大规模逻辑资源的FPGA完全能容纳必须由多片DSP处理器构成的系统,从而使得单片FPGA构成的系统在各项技术指标大幅度提高的前提下,成本和功耗大幅度下降,集成度与可靠性则大幅度提高。2基本原理2.1选用FPGA实现FFT的原因图像声纳系统通常要求信号处理过程具有实时性,这要求信号处理系统具有很强的处理能力。其中波束形成又是图像声纳信号处理部分最主要的工作,主要包括聚焦、加权、FFT及求模这几个部分。FFT又是其中最复杂、消耗时间最多的坏节,其运算时间和精度决定了最终系统的性能。通常可以采用DSP处理器、专用的FFT处理器芯片及可编程逻辑器件(以FPGA为代表)这三种方法来实现。(l)采用DSP处理器:该实现方法具有软件设计的优点,能够适用于各种信号处理场合,灵活方便。但单片DSP芯片的处理能力有限,在要求实时运算的应用中,执行FFT的同时还必须在规定的时间内完成其它的操作。增强DSP运算能力的方法是采用多个处理器,但缺点是成本昂贵、需要众多附加部件,并且功耗很大,此外开发和调试多处理器的难度很大。(2)采用专用FFT芯片或用户定制的专用集成电路来实现(ASIC):针对FFT的固定点数的算法,用专用的集成芯片来实现FFT。ASIC在一些特殊功能的表现上相当好。该方案运算速度快,可靠性高,非常适合实时和对可靠性要求较高的信号处理系统,但专用FFT芯片不能重新组态,可编程能力有限,它的功能无法任意修改或改进。(3)采用FPGA来实现:随着FPGA技术的普及,以及FFT算法在各个领域的广泛应用,使用FPGA芯片设计FFT正在世界范围内兴起。FPGA芯片具备在线可编程能力,具有硬件结构可重构的特点,适合于算法固定!运算量大的前端数字信号处理。最新推出的FPGA产品都采用多层布线结构,更低的核心电压,更丰富的输入/输出管脚,更大容量的逻辑单元,内置嵌入式RAM资源,内部集成了多个数字锁相环,嵌入多个硬件乘法器,所有这一切都使得FPGA在数字信号处理领域显示出自己特有的优势。2.2FFT算法原理2.2.1快速傅里叶变换原理设x(n)是一个有限长序列,x(n)的DFT可表示为:1,1,0,)(10NkWnxkXNnnkN上式中nx和nkNW都是复数。因此,每计算一个kX值,必须要进行N次复数相乘,和N-1次的复数相加。kX一共有N个点,因此要完成全部DFT运算则需要进行2N次复数相乘和1NN次复数相加。其中每一个复数相乘将包括4个实数相乘和2个实数相加。将X(k)展开如下所示:10ImReImImReReImImReReNnnkNnkNnkNnkNnkNWnxWnxWnxjWnxWnxkX这样每运算一个kX值需要进行4N次实数相乘和2(2N一l)次实数相加。因此整个DFT运算需要42N次实数相乘和2N(2N一1)次实数相加。当N较大时,实时信号处理对处理器计算速度有十分苛刻的要求,于是如何减少计算量变得至关重要。为减少运算量,提高运算速度,就必须改进算法。利用系数nkNW以下固有特性,,就可以减小DFT的运算量。(1)nkNW的对称性:)(kNnNnkNnkN(2)nkNW的周期性:)()(NknNkNnNnkN(3)nkNW的可约性:knNnkNWW,nknNkNWW,12NNW,kNNkNWW)2(利用nkNW的上述特,可以将长序列的DFT分解为短序列的DFT,这样可以避免大量的重复运算,提高DFT的运算速度。快速傅立叶变换算法正是基于上述的基本思路而发展起来的。它的算法可分为按时间抽取和按频率抽取法。通常将FFT运算中最小DFT运算单元称为基(radix),按基的不同又可分为基二、基四等。2.1.2基四FFT算法基四按时域抽取(DIT)是在时域x(n)上将n按4m、4m+l、4m+2、4m+3分解抽取,可写为:14034140241401414043424144NmkmNNmkmNNmkmNNmmkNWmxWmxWmxWmxkX其中:14,2,1,0Nm,14,2,1,0Nk令a(m)=x(4m),b(m)=x(4m+1),c(m)=x(4m+2),d(m)=x(4m+3),因为mkNmkNWW44,所以上式可写为:mkNNmkNmkNNmkNmkNNmkNmkNNmWmdWWmcWWmbWWmakX414034140241404140设mkNNmWmaA4140,1404NmmkNkNWmbWB,mkNNmkNWmcWC41402mkNNmkNWmdWD41403,其中:1,2,1,0,Nnk式变为:PPPPPPPPPPPPjDWCWjBWANkXDWCWBWANkXjDWCWjBWANkXDWCWBWAkX3232323243424其中:kNPWW,令kXA,4NkXB,42NkXC,43NkXD则式可以改写为:PPPPPPPPPPPPjDWCWjBWADDWCWBWACjDWCWjBWABDWCWBWAA32323232式在硬件实现时可以先计算PCWA2、PPDWBW3、PCWA2、PPDWBW3,然后再进行简单的加减运算得到DCBA、、、。2.3FFT硬件实现结构(1)递归结构递归结构即顺序处理结构,数据输入缓冲单元由两块RAM组成乒乓存储器,以提高数据的吞吐率。若一次蝶形运算时间为T,采用基四算法,则整个序列的FFT时间为NNT4log4。采用递归结构的优点是占用硬件资源少,控制简单。其缺点是运行速度慢,难以满足实时信号处理的要求。(2)级联结构递归结构重复使用一个蝶形运算单元,占用最少的硬件资源,但是处理速度慢。级联结构根据基不同将整个蝶形划分为若干级,每一级使用一个蝶形运算单元。这样每一级仅完成固定的操作,上一级的计算结果通过一个乒乓RAM缓存,下一级从缓存中取数进行运算,以流水线的方式处理。对基四算法,相应的有N4log个蝶形运算单元。虽然对一个序列的变换时间仍为NNT4log4,但因为各级蝶形运算单元之间按流水方式工作,所以对于连续输入的多个序列,除初始的几个序列外,后续每个序列的变换时间为4NT,即有N4log的加速比。(3)阵列结构以一个16点的时域抽取基四算法为例,
本文标题:基于FPGA的数字信号处理算法设计
链接地址:https://www.777doc.com/doc-5200143 .html