基于乘法器复用技术的FFT处理器的设计与实现龙海南,耿双利,郑晓昆,李彩霞摘要:提出了一种基于乘法器复用技术的FFT优化算法,该算法主要利用了旋转因子关于y轴和y=x的对称性,使用两个实数乘法器即可分时共享完成4个复数旋转因子的计算,从而减少硬件资源消耗;采用该算法采用流水线结构,设计了基2的16点IFFT处理器,使用7个实数乘法器即可完成,进一步优化可仅使用5个。通过ALTERACycloneⅡ系列的EP2C70F896C6器件进行下载验证。FPGA输出结果与MATLAB计算结果比较,单点最大相对误差约***。关键字:FFT,乘法器复用,FPGAAbstract:ThispaperproposesanoptimizedFFTalgorithmbasedonmultipliermultiplexingtechnology,itreducesthehardwareresourceconsumptionbytakingtheadvantageoftherotationfactorsymmetryonthe y-axis andy=x;Onlyuse7realmultipliertodesignapipelinedradix-2,16-pointIFFTprocessor,furtheroptimization can only use Ⅱ***paredwiththeresultfromtheMATLABcalculationKeyWords:FFT;multipliermultiplexing;FPGA1引言FFT(快速傅里叶变换)是数字信号处理中的重要模块,,在信号处理、图像处理、生物信息学、计算物理、应用数学等方面都有着广泛的应用。在高速数字信号处理中,FFT的处理速度往往是整个系统设计性能的关键所在[1]。对于FFT的硬件实现,大致可以分为3种方案:通过数字信号处理器(DSP)实现;通过专用FFT芯片实现;通过FPGA实现[2]。用DSP完成FFT运算需要占用大量DSP的运算时间,使整个系统的吞吐量降低;专用的FFT处理芯片,虽然速度较快,但其可扩展性差,且成本昂贵。FPGA不仅有大量的片内资源,而且易于组织流水和并行结构,可以大大提高FFT的处理速度。将FFT的实时性要求与FPGA的灵活性相结合,不仅可以提高处理速度,而且可以方便的移植到ASIC中。2FFT算法基本原理对于N点序列,其离散傅立叶变换(DFT)变换可写为: ,(2-1)其中:。由式(2-1)分析可知,若直接计算DFT,乘法和加法次数都和N2成正比,当N很大时,运算量是很可观的。FFT算法的基本思想:可以将一个长度为N的序列的离散傅里叶变换逐次分解为较短的离散傅里叶变换来计算,这些短序列的DFT可重新组合成原序列的DFT,而总的运算次数却比直接的DFT运算少得多,从而达到提高速度的目的[3]。这种分解基本上可分为两类,一类是将时间序列x(n)进行逐次分解,称为按时间抽取算法(DecimationInTime);另一类将傅立叶变换序列x(k)进行分解,称为按频率抽取算法(DecimationInFrequency)。本文主要介绍了按时间抽取基一2FFT算法。我们已经知道FFT算法主要是利用的性质,通过把序列逐渐分解为短序列实现运算量的减少。的以下三种性质在FFT运算中得到了应用[4]:性质1:的周期性 性质2:的对称性 性质3:的可约性 ,基2算法中,序列的长度N为2的整数次幂,即,其中M为正整数。最初通过将分解为奇数项序列和偶数项序列的形式使FFT运算分为两组。设: ,设,,利用的性质可得的DFT运算为: (2-2)式(2-2)的运算可用下图的蝶形信号流图表示:图1 蝶形运算流图由此可见,一个N点DFT分解为两个N/2点的DFT,从而实现了运算量的减少,再经过逐次分解最终分解为2点的DFT,实现了FFT运算。3乘法器复用的FFT实现结构文献[5]提出了一种蝶形运算的新结构:即先进行前一级4点蝶形运算,再进行本级的与旋转因子复乘运算,如图2所示。这种结构节省了一个旋转因子复乘模块。图2文献4所设计的FFT硬件实现框图文献[2、6]中改进的旋转因子复数乘法的原理均为:一个复数和旋转因子相乘,结果仍为复数,,可见完成一次复数乘法操作需要进行4次实乘和2次实加运算。为减少乘法的次数,将做以下变换:,,从而完成一次复乘只需进行3次实乘和5次实加,较变换前减少一次实数乘法运算,从而减少了使用面积。
基于乘法器复用技术的fft处理器的设计与实现 来自淘豆网www.taodocs.com转载请标明出处.