当前位置:首页>> >>


基于FPGA的FFT算法的设计与实现(论文和源码).rar

收藏

资源目录
    文档预览:
    编号:20180825164901495    类型:共享资源    大小:47.25MB    格式:RAR    上传时间:2018-08-25
      
    60
    金币
    关 键 词:
    基于 FPGA FFT 算法 设计 实现 论文 源码
    资源描述:
    目 录摘 要 ..........................................................................................................................I关键词 ........................................................................................................................IAbstract.......................................................................................................................IKey words...................................................................................................................I前言 ............................................................................................................................11 FFT 算法的基本理论 .................................................................................................31.1 按时间抽选的基 2-FFT 算法研究 ..................................................................31.2 运算量分析 ......................................................................................................82 方案分析 ....................................................................................................................92.1 整体实现结构的设计 ......................................................................................92.1.1 方案论述 ................................................................................................92.1.2 实现过程 ..............................................................................................103 实现技术 ..................................................................................................................113.1 数据接收单元 ................................................................................................113.2 地址产生单元 ................................................................................................123.2.1 实现方案 ..............................................................................................123.2.2 各个模块的原理图及源程序 ..............................................................143.3 转因子查找表(ROM) ...............................................................................153.3.3 旋转因子存储器 ROM........................................................................153.3.2 旋转因子存储器 ROM 控制器 ...........................................................163.4 蝶形处理单元 ................................................................................................173.4.1 旋转因子乘法器 ..................................................................................173.4.2 蝶形处理器 ..........................................................................................193.4.3 蝶形处理单元控制器 ..........................................................................193.5 运算 RAM(RAM2)的设计 ............................................................................203.5.1 RAM2 的设计 .......................................................................................203.5.2 写 RAM2 控制器 .................................................................................223.5.3 读 RAM2 控制器 .................................................................................233.5.4 运算 RAM(RAM2)设计的图 ............................................................243.6 计数器的设计 ..............................................................................................243.7 数据选择器的设计 ......................................................................................253.8 中央控制单元的设计 ..................................................................................254 验证与仿真 ..............................................................................................................274.1 设计原理说明 ................................................................................................274.2 仿真验证 ......................................................................................................275 结论 ........................................................................................................................30参考文献 ......................................................................................................................31致 谢 ............................................................................................................................32附录 A 各个子模块源程序 ......................................................................................33附录 B MATLAB 相关源程序 ................................................................................58附录 C mif 初始化文件源程序 ................................................................................60I基于 FPGA 的 FFT 算法实现摘 要本文研究了基于 FPGA 的 FFT 算法实现。本设计采用的是基-2 的 8 点 FFT算法,首先分析了 FFT 算法的 实现理论,并 论述了用 FPGA 实现的方法.在Quartus II 编辑环境中,用 VHDL 语言描述各个功能模块,仿真实现基-2 的 8 点FFT 算法,仿真结果数据与 MATLAB 仿真数据相比 较,并分析其中 误差。本设计采用的是顺序的实现过程,整个过程在中央处理器的控制下有序的工作。整个设计包括:数据接收单元、地址 产生单元、旋转因子查找表、蝶形处理单元、运算 RAM 的设计、计数器的设计、数据选择 器的设计、中央控制单元的设计 8 大模块,各个模块又分若干子模块。关键词快速傅里叶变换;VHDL 语言;现场可编程门阵列;The algorithm realization of FFT based on FPGAAbstractThis article studies the algorithm realization of FFT based on FPGA. The design adopts radix-2 8-point FFT algorithm. Firstly, this article analyzes the theory realization of FFT algorithm and dissertates the way to realize by FPGA. In Quartus Ⅱeditorial environment, It describes each function module by VHDL language , simulates radix-2 8-point FFT algorithm, and analyzes the error by comparing the simulation result from Quartus Ⅱ with simulation result from MATLAB. This article adopts sequence control procedure. The entire procedure which is controlled by CPU carried out smoothly. The entire design consists of data receiving unit, address receiving unit, twiddle factor look-up table, disc shape processing unit, design of operation RAM, design of counter, design of data selector and design of Central control unit. Each module is divided into several submodule.IIKey wordsFFT;VHDL;FPGA(Field-Programmable Gate Array)1前言快速傅里叶变换(Fast Fourier Transform ,FFT)并不是一种新的变换,而是离散傅里叶变换(Discretee Fourier Transform ,DFT)的一种快速算法。我们已经知道,有限长序列的重要特点是其频域也可离散化成有限长序列,即可进行 DFT。DFT 的计算在数字信号处理中非常有用,例如,在 FIR 滤波器 设计中会遇到从 h(n)求 H(k)或由 H(k)求 h(n),这就要求计算 DFT。再有,信号的 频谱分析 对通信、图像传输、雷达等都是很重要的。此外,在系统的分析、 设计 和实现中都会用到 DFT的计算。但是,有相当 长的时间里,由于 DFT 的计算量太大,即使采用计算机也很难对问题进行实时处理,所以并没有得到真正的运用,直到 1965 年库利(J.W.Cooley)和图基(J.W.Tukey)在《计算数学》(Mathematics of Computation) 杂志上发表了著名的 “机器计算傅里级数的一种算法” 的文章,情况才 发生了根本的改 变。 经过人们对算法的改进,发 展和完善了一套调整有效的运算方法,使 DFT 的计算大大简化,运算 时间一般可缩短一、二个数量级,从而使 DFT 的运算在实际中真正得到了广泛的应用。随着数字技术的快速发展,数字信号处理已深入到各个学科领域。在数字信号处理中,许多算法如相关、滤波、谱估计、卷积等都可通过转化为 DFT 实现,从而为离散信号分析从理论上提供了变换工具, 已广泛应用在通信、医疗仪器、多媒体和军事等诸多领域。但 DFT 计算量大,实现 困难。 FFT 的提出,大大减少了 计算量,从根本上改变了傅立叶变换的地位,成为数字信号处理中的核心技术之一,广泛应用2于雷达、观测、跟踪、高速 图像处理、保密无线通信和数字通信等领域。目前,硬件实现 FFT 算法的方法有很多,一般来说,可用通用数字信号处理器(Digital Signal Processor,DSP)、FFT 专用芯片、 FPGA 芯片。DSP 具有纯软件实现的灵活性, 适合用于流程复杂的算法,例如在通信系统中的信道编、解码, QAM 映射等算法。如果在 DSP 中完成 FFT 运算, 不仅 要占用大量 DSP 的运算时间, 使整个系统的数据吞吐率降低, 也无法发挥 DSP 软件实现 的灵活性。因此, 前端的FFT 运算应 由 A S IC 或 FPGA 完成。采用 专用的 FFT 处理芯片, 虽然速度能达到要求, 但其可扩展性差。随着超大 规模 FPGA 的迅速发展,新一代 FPGA 内部有高速 DSP 模块 和大容量、高速 RAM 模块,这为利用 FPGA 实现 FFT 处理成为可能。FPGA 具有硬件结构可重构的特点。适合于算法结构固定、运算量大的前端数字信号处理。新近推出的 FPGA 产品都采用多层布线结 构, 更低的核心电压, 更丰富的 IO 管脚, 容量可达到 100k 个逻辑单元, 内置嵌入式 RAM 资源, 内部集成多个数字锁相环,多个嵌入的硬件乘法器, 所有这一切都使得 FPGA 在数字信号 处理领域显示出自己特有的优势。例如Altera 公司新推出的 Stratix 系列 FPGA ,内部 带有总容量达 10 Mbits 的 RAM,读 写时钟频率高达 269MHz ;内部集成了多达 28 个 DSP 模块,可以配置成 224 个 9 ×9 的乘法器, 工作频率可以达到 250MHz。这些资源使得基于 FPGA 的大容量 FFT 工程 实现相对于其他方法具有很大的优势。用 FPGA 实现 FFT 算法硬件 结构大致分为以下几种:3顺序处理、级联处理、并行处理和阵列处理。这些方法既有各自的优势,也存在着缺陷。顺序处理方法是最简单,用的最多的一种方法。其最大的优点就是很容易实现,而且耗费资源很少,但是它的固有缺陷就是运算速度太慢,在高速数据处理的场合,显得力不从心。针对 FFT 算法的结 构和特点,本文提出了一种基于 FPGA 设计 FFT 运算的方案。该 方案采用基- 2 算法以及 单元结构的设计思路,对 FFT 处理器合理模 块化,用 VHDL 语 言对各个模块编程,并在Quartus II 软件环境下综合仿真,仿真结果与 Matlab 计算结果一致,验证了设计的正确性。FFT 与 FPGA 相结 合提高了运算速度,扩大了 FFT 的应用领域。1 FFT 算法的基本理论1.1 按时间抽选的基 2-FFT 算法研究先设序列点数为 N=2 ,L 为整数。如果不 满足这个条件,可以L人为的加上若干零值点,使之达到这一要求。将 N=2 的序列 x(n)L(n=0,1,…,N-1)先按 N 的奇偶分成两组: (1.1)12()0,1()2xrr则可将 DFT 化为:11100()()()()()NNNnknknkNnXkDFTxxWxxW 为 偶 数 为 奇 数1122(21)00()(NNrk rkNrxxr41 12 22 20 0()()NNrk rkNNr rxWxW利用 W 的可约性,即:W =e =e =W ,上式可以表示nkN22Nj)2/(j2/为: 1122/2/200()()()rkkrkNNr rXkxx(1.2)12kX式中 X (k)与 X (k)分别是 x (r)及 x (r)的 N/2 点 DFT:12(1.3)11221/ /200()()()NNrkrkNrkW(1.4)11222/ /200()()()NNrk rkNrrXkxxW由式(1.2)可以看出,一个 N 点 DFT 已分解成两个 N/2 点的DFT,它 们按式 (1.2),又组合成一个 N 点 DFT。但是,X (k), X (k)以12及 X (k), X (k)都是 N/2 点的序列,即 r,k 满 足 r,k=0,1,…,N/2-1。 而12X(k)却有 N 点,而用(1.2) 式计算得到的只是 X(k)的前一半基数的结果,要用 X (k), X (k)来表达全部的 X(k)值,还必须应用系数的周期12性,即: ()2/2/NrkrkNW这样可以得到:(1.5)1 12 2()21 / /210 0())()()NNrkrkNNr rXkxxX 同理可得: (1.6) 22()()Xk5(1.5)式、(1.6)式说明了后半部分 k 值(N/2 k N-1)所对应的 X (k),1X (k)分别等于前半部分 k 值(0 k N/2-1)所对应的 X (k), X (k)。2 12再考虑 W 的以下性质:kN(1.7)/22NkkNW这样把(1.5)式、(1.6)式、(1.7) 式代入(1.2) 式,就可将 X(k)表达为前后两部分。前半部分 X(k)(k=0,1,…N/2-1):X(k)= X (k)+ W X (k), k=0,1,…,N/2-1 (1.8)1kN2后半部分 X(k)(k=0,1,…N/2-1):X(k+ )= X (k+ )+ W X (k+ ) 212kN2= X (k)- W X (k), k=0,1,…,N/2-1 (1.9)k这样只要求出 0 到(N/2-1)的所有 X (k),和 X (k)值,即可求12出 0 到(N-1)区间内的所有 X(k)值,这就大大节省了运算。(1.8)式和 (1.9)式的运算可以用 图 1.1 的蝶形信号流图符号表示。当支路上没标出系数时,则该支路的传输系数为 1。图 1.1 时间抽选法运算流图符号采用这种表示法,可将上面讨论的分解过程 表示于图 1.2 中。此图表示 N=2 =8 的情况,其中输出值 X(0)到 X(3)是由(1.8)式给出的,3而输出值 X(4)到 X(7)是由(1.9)式给出的。)(1kX)(2kNW)()(2kXWN)()(21kN6图 1.2 按时间抽选,将一个 N 点 DFT 分解为两个 N/2 点 DFT可以看出,每个蝶形运算需要一次复数乘法 X (k)W 及两次复2kN数加(减)法。据此,一个 N 点 DFT 分解为两个 N/2 点 DFT 后,如果直接计算N/2 在 DFT,运算量仍然较大。由于 N=2 ,因而 N/2 仍然是偶数,可以进一步把每个 N/2 点子序L列再按其奇偶部分分解为两个 N/4 点的子序列。先将 x (r)进行分解:1(1.10)134(2)(),0,12,4xll Nllx11442 (21)1 / /001 14 43/4/2/40 0()()(()()NNlk lkNl lNNlkklkNNl lXkxWxlWxx  且)0(1x2)4(1x63)(02x1)5(2x73DFTN点2点点DFTN点2)0(1x)(1x3)0(2x1)(2x3NWN)0(X1)2(3X)4(5)6(X77, 13/24()()()4kNNXkWX0,14Nk其中 (1.11) 1433/40()()lkNlkx(1.12)144/40()()NlkNlXkxW图 1.3 给出 N=8 时,将一个 N/2 点 DFT 分解成两个 N/4 点 DFT,由这两个 N/4 点 DFT 组合成一上 N/2 点 DFT 的图。X (r)也可进行同样的分解,得到:225/2625/26()()0,144kNkXkWXN其中 (1.13)114452/6/400()()(2)NNlklkNl lXkxxW(1.14) 114462/6/400()()()NNlklkNl lkxx将系数统一为 W =W ,则一个 N=8 点的 DFT 就可以分解为四kN2/k个 N/4=2 点 DFT,这样可以得到图 1.4 所示的流图。图 1.3 由两个 N/4 点 DFT 组合成一个 N/2 点 DFT)0()0(13xx4)(1)0(4xx63 )0(1x)2(1x3DFT点4N点4)0(3x1)0(4x12/NW2/N
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于FPGA的FFT算法的设计与实现(论文和源码).rar
    链接地址:http://www.gold-doc.com/p-97670.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开