FPGAFFT设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的FFT设计与实现 胥实 08电子信息工程 0845531138 摘 要: 在数字信号处理中,许多算法如相关、滤波、谱估计、卷积等都可通过转化为DFT实现,从而为离散信号分析从理论上提供了变换工具。但DFT计算量大,实现困难。FFT的提出使DFT的运算效率提高了1~2个数量级。在基于FPGA 的FFT 设计中, 为了提高速度, 提出了用移位寄存器存储旋转因子的方法, 并且在FPGA 上做了验证。实验结果表明, 该方法和普遍采用ROM做旋转因子存储器的方法相比, 大幅提高了FFF 的处理速度, 能够更好地满足了FFT 实时处理的要求。 关键词: FFT;FPGA;蝶形运算;旋转因子 1 引言 由于FPGA 器件速度快、密度高、功耗低、可配置性强, 现已在许多领域得到广泛地应用。高速FFT 运算需要乘法器、大量RAM、寄存器, 适合用FPGA 实现。在FFT 的硬件设计中, 要充分利用芯片资源, 减少复杂逻辑, 为了提高系统时钟频率, 实现高速处理, 可以采用流水线方式与“双蝶形”结构并行处理。在流水线设计中, 可以采用双RAM流水线结构, 也可以采用局部流水和反馈思想, 在简化结构的同时提高处理速度。一般用RAM存储FFT 运算的中间数据, 对旋转因子的存储通常采用ROM实现。 ??? 随着FPGA发展,其资源丰富,易于组织流水和并行结构,将FFT实时性要求与FPGA器件设计的灵活性相结合,实现并行算法与硬件结构的优化配置,不仅可以提高处理速度,并且具有灵活性高。开发费用低、开发周期短、升级简单的特点。本文提出了基于FPGA的设计来实现FFT算法,并以16位长数据,64点FFT为例,在QuartusⅡ软件上通过综合和仿真。算法实现的可以是基2/4混合基FFT,也可以是纯基4FFT和纯基2FFT运算。 2 FFT原理和运算流图 ??? FFT是离散傅立叶变换(DFT)的快速算法。对于N点离散的有限长时问序列x(n),其傅里叶变换为: ??? 完成N点的DFT需要N2次复数乘法和N(N-1)次复数加法。点数大时,计算量也大,所以难以实现信号的实时处理。FFT的基本思想是利用旋转因子WN的周期性、对称性、特殊性以及周期N的可互换性,将长度为N点的序列DFT运算逐次分为较短序列的DFT运算,合并相同项,大大减少了计算量。 ??? FFT算法分为两大类:一类是针对N=2的整数次幂的算法,如基2算法、基4算法、实因子算法和分裂算法等:另一类是N≠2的整数次幂算法,以winograd为代表的一类算法。硬件实现时,不仅要考虑算法运算量的大小,而且要考虑算法的复杂性和模块化。控制简单、实现规整的算法在硬件系统中要优于仅降低运算量的算法。现有FFT算法的FPGA设计方案基本上都是针对于第一类算法,而第二类算法尽管有其重要的理论价值,但硬件不易实现。由于该设计点数不是太多,综合考虑FFT处理器的面积和成本。所以采用按时间抽取的基2快速傅立叶算法(基2DIT-FFT)。 ??? 对于长度为N=2m的序列x(n),其中m是整数,将x(n)按奇偶分成两组,即令:n=2r和n=2r+1,而r=0,1,…,N/2-1,于是: ??? 所以A(k)和B(k)可完整表示X(k)。依次类推,可一直向前追溯到2点的FFT,这样整个N点的FFT算法分解成log 2N级运算,每级有N/2个基2碟形运算。图1是N=8的DIT-FFT运算流图。 图1 N=8的DIT-FFT运算流图 3 FFT处理器结构框图 ??? FFT实现的设计方案有顺序处理、级联处理、并行处理和阵列处理。考虑到该设计运算点数少,在原有顺序处理的基础上对FFT处理过程中数据传输进行控制。采用自顶向下的方法对处理器模块化,其结构框图如图2所示。 图2 FFT处理器结构框图 4 模块设计 ??? 整个FFT处理器是由存储器、蝶形运算单元、旋转因子单元、控制单元和数据控制单元组成,各个单元通过控制单元产生的控制和使能信号进行工作。 ??? 蝶形运算单元是整个FFT处理单元的重要部分,直接影响整个FFT单元性能。基2时间抽取的蝶形信号流程图如图3所示,p和q为数据序号,xm(p))和xm(q)是第m级蝶形运算的输入,xm+1(p)和xm+1(q)是该蝶形运算的输出,WrN为相应的旋转因子。 ??? ??? 为了提高运算速度采用并行运算,采用4个实数乘法器、3个实数加法器和3个实数减法器组成。设输入数据:x1=x1_r+jx1_im,x2=2_r+jx2_im,旋转因子为WrN=c-jd,则输出y1=y1_r+jy1_im和y2=y2_r+jy2_im。实现蝶型运算单元如图4所示

文档评论(0)

ipad0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档