欢迎来到天天文库
浏览记录
ID:10095812
大小:31.50 KB
页数:9页
时间:2018-05-25
《基于fft谱分析测频算法的fpga实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于FFT谱分析测频算法的FPGA实现摘要:在信号频谱分析试验中,通过FPGA实现FFT。在MAX+plusⅡ系统环境下,介绍了流水线结构FFT的蝶形单元设计,详解了旋转因子的生成,通过地址产生单元和块浮点单元实现了运算结果的输出,并将其输出结果与Matlab结果进行比较。关键词:FPGA;QuartusⅡ;FFT处理器;旋转因子中图分类号:TP391文献标志码:A文章编号:2095-1302(2014)10-00-030引言在FPGA实验中,主要是用FPGA来实现FFT,使其完成对信号的频谱分析。流水线结构FFT的设
2、计主要是蝶形单元的设计,通过旋转参数的生成,将运算结果写入地址并完成输出。1实验原理及步骤1.1QuartusⅡ开发环境9QuartusⅡ是Altera公司提供的FPGA/CPLD集成开发软件,在QuartusⅡ上可以完成设计输入、HDL综合、布新布局(适配)、仿真和选择以及硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、开始处理和器件编程。QuartusⅡ具备仿真功能,同时支持第三方的仿真工具(如ModelSin)。此外,QuartusⅡ与Matlab和DSPBuilder结合,可用进
3、行基于FPAG的DSP系统开发,是DSP硬件系统实现的工具EDA工具。QuartusⅡ设计与开发的流程如图1所示。图1QuartusII设计与开发的流程1.2快速傅里叶变换(FFT)FFT是DFT的快速算法。设离散的有限长时间序列为x(n),0≤n≤N-1,则其离散的傅里叶变换为:(1)k=0,1,…,N-1WN=e-j(2nN)(2)其中:x(n)为时域点;X(k)为频域点;WN为旋转因子;x(n)、X(k)、WN都是复数。完成整个DFT运算共需要N2次复数乘法以及N(N-1)次复数加法运算。当N很大时,运算量很大,
4、对于实时信号处理,要求CPU运算速度很高,难以工程实现。因此,出现了快速傅里叶变换(FFT)算法。FFT算法的基本思想是利用旋转因子WN的周期性、对称性、特殊性以及周期N的可互换性,将长度为N点序列的DFT运算逐次分级为较短序列的DFT运算,并将相同项合并,因为DFT的运算量与N2成正比,当N减小时,就大大减少了运算量,提高了运算效率。N=2n个点的DFT复数乘法量由N2次降为(N/2)log2N次,复数加法由N(N-1)次降为(N/2)log2N次。9FFT算法种类很多,基本上可分为两大类:一类是针对N等于2的整数次
5、幂的算法,如基2算法、基4算法和分裂基算法等;另一类是针对N不等于2的整数次幂的算法,以Winograd为代表,它们有重要的理论价值,但是不适于硬件实现。基2算法结构简单,但运算量大。基4算法相对于基2算法更为复杂,但是计算量减少了。FFT算法按分解方式的不同又可以分为时域抽取算法(decimationintime,DIT)和频域抽取算法(decimationinfrequency,DIF)两种。这两种算法在本质上都是一种基于标号分解的算法,在运算量和复杂性等方面完全一样。考虑到本设计FFT运算的点数不是太多,故选用了
6、时域抽取基2算法(DIT)。1.3按时间抽取的基2-FFT算法(DIT-基2-FFT)原理FFT运算的基本单元是蝶形运算单元,基2蝶形运算符号如图2所示。设蝶形运算输入数据为A=Ap+Aqj,B=Bp+Bqj,旋转因子WrN=Wp+Wqj。则蝶型运算输出为:(3)图2基2蝶形运算FFT算法由多级蝶形运算构成,具体运算流图也有多种形式。本设计选用了输入倒序、输出顺序的运算流图,图3所示为N=8点时的DIT-FFT运算流图。这种运算流图是同址运算,其优点是:在同一级运算中,9每个蝶形的两个输入数据只对计算本蝶形有用,而且蝶
7、形的输入输出数据节点又同在一条水平线上,这就意味着计算完一个蝶形运算后,所得输出数据可以立即存入元出入数据所占用的存储器。因此,在硬件实现时可以节省存储单元。图3N=8点时的DIT-FFT运算流图一个长度为N的序列x(n),满足N=2M,M为整数。那么此序列x(n)的FFT运算流图由M级蝶形运算构成,每一级有N/2个蝶形运算,第L级蝶形运算中使用旋转因子的个数为2L,L=0,1,2,…,M-1。64点FFT运算,分6级,每级有32个蝶形运算。1.4FFT处理器结构设计FFT算法的FPGA硬件实现在Altera公司的MA
8、X+plusⅡ系统环境下开发完成,选用基于查找表结构内嵌存储器的APEX20系列FPGA器件。图4为FFT处理器的结构图。本设计采用单元结构设计思路,整个处理器由数据接收单元、运算单元、旋转因子存储单元、地址产生单元和中央控制单元5个单元组成,各单元在中央控制单元的控制下协调工作。其中,内部接收单元采用乒乓RAM结构,扩大了数据吞
此文档下载收益归作者所有