基于DC结构的基2的64点FFT处理器的设计.doc

上传人:文库蛋蛋多 文档编号:4131870 上传时间:2023-04-06 格式:DOC 页数:3 大小:236KB
返回 下载 相关 举报
基于DC结构的基2的64点FFT处理器的设计.doc_第1页
第1页 / 共3页
基于DC结构的基2的64点FFT处理器的设计.doc_第2页
第2页 / 共3页
基于DC结构的基2的64点FFT处理器的设计.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于DC结构的基2的64点FFT处理器的设计.doc》由会员分享,可在线阅读,更多相关《基于DC结构的基2的64点FFT处理器的设计.doc(3页珍藏版)》请在三一办公上搜索。

1、基于DC结构的基-2的64点FFT处理器的设计(于春云 200810123021)摘要: 针对当前数字信号处理领域对快速傅里叶变换应用的广泛需求, 在对算法原理分析的基础上, 给出了64 点基2按时间抽选FFT处理器的实现方案; 并综合Xilinx x c3s1500系列芯片, 通过Mode lsim SE 6. 0对程序进行仿真。实验结果表明, 该处理器功能实现正确, 并且具有较高的运算速度和精度。关键词:快速傅里叶变换; 基2;蝶形运算0 引言DFT作为DSP领域中时域和频域转换的基本运算,存在运算量太大的缺点,导致其应用受到局限。 DFT快速算法FFT的提出,简化了DFT的运算过程,使其

2、在实时信号处理领域中得到广泛应用。FFT实现的方法包括软件实现和硬件实现两种。采用软件实现FFT的方法存在计算慢,实现过程复杂等缺点,所以目前比较流行的方式是采用硬件实现FFT。硬件实现的具体方法可以分为ASIC方法、FPGA方法、 DSP方法和通用处理机方法等。FPGA是20世纪80年代中期出现的一种新的电子设计自动化技术,具有集成度高,逻辑实现能力强,设计灵活等优势。在FPGA上实现数字信号处理,即用纯数字逻辑进行DSP模块设计,为高速数字信号处理算法提供了实现途径。在此,采用FPGA方法设计64点FFT处理器。1 FFT算法基本原理设x( n)为N 点有限长序列, 其DFT为: (1)其

3、中。先设序列点数为N = 2L, L 为整数, 如不满足此条件可以加上若干零值点使之达到这一要求。将N = 2L 的序列x ( n) ( n= 0, 1, , N-1)先按n的奇偶分成两组,再利用系数的可约性和周期性,可以得到:(2)64点FFT运算的数据流图2 FFT运算器设计2.1 系统的整体结构对于一个完整的FFT运算单元而言,应该包括以下几个组成部分:全局控制单元:包括控制器和地址产生单元,用于调控整个FFT运算系统,生成蝶形运算单元以及其他子单元所需的地址,控制各子单元时序,保证其正常有序地工作;蝶形运算器单元:由蝶形运算器和旋转因子存储单元(ROM)组成,负责将送入的输入数据进行蝶

4、形运算,是FFT运算器的核心单元;存储寄存器单元:采用两个RAM乒乓通信,通过通信接口单元接受总线控制信号,负责存储输入数据、中间数据和运算所得最终结果。系统整体框图如图1所示2.2 各功能单元介绍(1)控制单元控制单元由控制器和地址总线组成。地址产生单元提供各个功能单元所需要的地址,保证数掘存储、读写的顺利进行。本文采用三位二进制编码来定义每个子单元的地址并将所得的地址汇总,生成地址图表。由于每个单元模块的地址是唯一的,这就确保了在同一时刻,同一存储单元只能对数据进行单向通信,避免了数据间的相互r扰,提高了精度。在时钟信号的控制下,控制器发出控制信号,控制整个FFT运算单元FFT运算。此外,

5、系统中还添加一个复位信号。在此信号的激励一F,FFT运算单元复位,并在下时钟信号来临的时候,重新记录输入数据,开始新的64点FFT运算。(2)蝶形运算单元蝶形运算单元是实现FFT算法最为重要的部分。蝶形运算主要有两种实现方式:传统的蝶形运算通常以输入倒位序,输出自然顺序,输出数据采用同址运算的方式进行存储,以节省存储单元空间,但是由于这种方式每级蝶形运算的计算单元都是变换位序的,从具体操作上难以实现,不便于扩展;另一种运算是采用输入自然顺序,输出倒位序的方式,这种方式的每级运算的计算单元都是固定的,实现上比较容易,只要对不同级的蝶形运算输入不同的旋转因子,即改变相对应的旋转因子ROM地址,就可

6、以实现扩展。旋转因子ROM能储存固定地址的旋转园子,用于给蝶形运尊提供所需的乘积项。旋转因子ROM在运算系统中实际就是用于存放sin和COS的值,三角函数在第二、三、四象限的函数值可以通过第象限的函数值转化得来,所以对于每一级运算所需要的旋转园子都可以从旋转因子表中得到,无需另外添加存储单元。因此,系统只是在ROM单元中存储了第一级的旋转因子数据,其它的旋转因子通过转换得到,从而可节省存储单元ROM资源。(3)存储单元FFT存储单元采用两个并行的双口RAM“乒乓操作”的设计方法。“乒乓操作”的原理是在时钟和控制信号的控制下,数据流在两个RAM之间交替读写。按此方式,数据流不会产生延迟,从而提高

7、了存储效率。输入数据先存入存储器中,再导入FFT处理器中,处理结束后写回存储器中。同时系统使用D触发器对原始信号进行延迟,每个D触发器延迟一个时钟周期。由四个周期组成,包括三个周期的FFT运算以及之后的把运算结果回写给存储器所占用的一个周期。每个输入数据的长度是32位(其中实部为16位,虚部为16位),并行输入给存储器单元。在全局控制单元的调控下,从存储单元读取的输入数据经过判别后,进入蝶形运算单元,与旋转因子表中相应位置的旋转因子乘积运算后得出结果,将所得的输出结果经过判别后,写入RAMl中,同时,前一个时钟周期所得的运算结果由RAM2输出。通常数据格式的表示方法有浮点、定点和块浮点三种。浮

8、点数是用两组固定的bit来表示指数和小数,可以表示的动态范围比较大,不会出现数据的溢出问题,但是实现浮点运算的电路却很复杂;定点是用固定的bit表示整数和小数,表示的动态范围比较小,容易出现数据溢出,但是其运算电路简单,运算速度也快:块浮点是介于二者之间数据表示方法。本文采用定点数,为了保证数据不会溢出,从蝶形运算单元输出的运算结果被2整除,然后送入存储单元保存以备输出。综合(2)部分,可以组合生成FFT运算单元部分,FFT运算单元内部结构示意图如图2。3 实验结果验证这里的FFT运算器通过硬件描述语言VHDL代码进行编写,在Modelsim Plus 6.1f仿真测试,仿真波形图如图3图3

9、波形仿真图由波形仿真图可以看出,地址控制单元以3位二进制编码定义各子单元的地址,存储的数据在时序信号和地址总线单元控制下进行FFT运算。实验证明,当外部时钟频率为40MHz时,可以对随机生成的64点序列进行FFT定点运算,运算时间为10usend if; when F_state=if in_data=0thenresult=1;else sm =B_state;end if;end case;end if;end process;END arch;将程序在软件Quartus 2进行编译仿真,得到的状态图和波形图如图4和图54 结语本文的FFT运算器采用定点数处理,当处理浮点数时,系统存在处理

10、异常、数据溢出等问题。但是由于可咀迅速处理多点数信号, 因此在数字图像处理、实时通信系统的调试和解调等万面具有定实际意义。5 参考文献1Chu Chad,Zhang Qin,Xie Ymgke,et a1Design of a hi曲performance FFTprocessor based on FPGAAProcofthe ASPDAC,2005:920923。2Lo Sing Cheng,灿i Miri,let Hin YeapEfficient FPGA implementation of FFTbased multipliers AElectrical and Computer E

11、ngineering,2005:13001303。3樊光辉,许茹,王德清基于FPGA的高速流水线FFT算法实现J电子工程师2008,34(3):38-40。4侯卫华,郭晖,刘明峰等一款基于MVR-CORDIC的高速64点基一4FFT处理器J电子与封装2008。5马强基于FPGA的快速傅立叶变换实现D南京:南京理工大学硕士学位论文,2005。6牟胜梅,杨晓东高吞吐率浮点FFT处理器的FPGA实现研究田计算机工程与科学,2008 30(7):98117。7宋军江基于FPGA的32位浮点数据FFTIFFT的设计与实现D广州:中山大学硕士学位论文,2007。8伍万棱,邵杰,冼楚华FPGA实现的基4FFT处理器高效排序算法研究J2005,37(2):222-226。9沈新民用FPGA实现FFT的一种方法J四川理工学院学报(自然科学版),2006,19(1):50-52。10田丰,邓建国,贾治华等FFT算法的一种FPGA实现J现代电子技术2005,8(199):9799。11汪润来1024点复数专用FFT处理器的ASIC实现D成都:电子科技大学硕士学位论文,2007。12谢彦林可交点流水线结构FFT处理器的设计及其FPGA实现D西安电子科技大学硕士学位论文,2007。13于效宇基于FPGA的FFT处理器的实现D哈尔滨:哈尔滨理工大学硕士学位论文,2005。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号