FFT算法除了必需的数据存储器ram和旋转因子rom外,仍需较复杂的运算和控制电路单元,即使现在实现长点数的FFT仍然是很困难。本文提出的FFT实现算法是基于FPGA之上的,算法完成对一个序列的FFT计算,完全由脉冲触发,外部只输入一脉冲头和输入数据,便可以得到该脉冲头作为起始标志的N点FFT输出结果。这个算法实现的可以是基2/4混合基FFT,也可以是纯基4FFT和纯基2FFT运算。
傅立叶变换和逆变换
对于变换长度为N的序列x(n)其傅立叶变换可以表示如下:
其中,W=exp(-2π/N)。当点数N较大时,必须进行分解,以短点数实现长点数的变换。而IDFT的实现在DFT的基础上就显得较为简单了:
由第二个可以看出,在FFT运算模块的基础上,只需将输入序列进行取共轭后再进行FFT运算,输出结果再取一次共轭便实现了对输入序列的IDFT运算,因子1/N对于不同的数据表示格式具体实现时的处理方式是不一样的。IDFT在FFT的基础上输入和输出均有一次共轭操作,但它们共用一个内核,仍然是十分方便的。
基4和基2
基4和基2运算流图及信号之间的运算关系如图1所示:、
以基4为例,令A=r0+j×i0;B=r1+j×i1;C=r2+j×i2;D=r3+j×i3;
Wk0=c0+j×s0:Wk1=c1+j×s1;Wk2=c2+j×s2;Wk3=c3+j×s3。分别代入图1中的基4运算的四个等式中有:
A'=[r0+(r1×c1-i1×s1)+(r2×c2-i2×s2)+(r3×c3-i3×s3)]+j[i0+(i1×c1+r1×s1)+(i2×c2+r2×s2)+(i3×c3+r3×s3)] 式(3)
B'=[r0+(i1×c1+r1×s1)-(r2×c2-i2×s2)-(i3×c3+r3×s3)]+j[i0-(r1×c1-i1×s1)-(i2×c2+r2×s2)+(r3×c3-i3×s3)] 式(4)
C'=[r0-(r1×c1-i1×s1)+(r2×c2-i2×s2)-(r3×c3-i3×s3)]+j[i0-(i1×c1+r1×s1)+(i2×c2+r2×s2)-(i3×c3+r3×s3)] 式(5)
D'=[r0-(i1×c1+r1×s1)-(r2×c2-i2×s2)+(i3×c3+r3×s3)]+j[i0+(r1×c1-i1×s1)-(i2×c2+r2×s2)-(r3×c3-i3×s3)] 式(6)
可以看出有多个公共项和类似项,这一点得到充分利用之后可以大大缩减基4和基2运算模块中的乘法器的个数,如上面A'至D'的四个等式中的这三对类似项:(r1×c1-i1×s1)与(i1×c1+r1×s1)、(r2×c2-i2×s2)与(i2×c2+r2×s2)、(r3×c3-i3×s3)与(i3×c3+r3×s3)以高于输入数据率的时钟进行时分复用,最终可以做到只需要3个甚至1个复数乘法器便可以实现。
基2运算之所以采用图1-(b)中的形式进行基2运算,是为了将基本模块做成基4/2复用模块,它对于N有着更大的适用性和可借鉴性。在基4、基2和基4/2模块的基础上,构建基16、基8和基16/8模块有着非常大的意义。
算法实现
傅立叶变换实现时首先进行基2、基4分解,一般来说,如果算法使用基4实现,虽然使用的资源多了一些,但速度上的好处足以弥补。如果资源充足,使用基16、基8或基16/8复用模块,速度可以大大提高。一般FFT实现简单框图如图2所示。
在图2中,运算模块即为基2/4/8/16模块或它们的复用模块,Rom表中存储的是N点旋转因子表。控制模块产生所有的控制信号,存储器1和2的读写地址、写使能、运算模块的启动信号及因子表的读地址等信号。当然对于运算模块为基16/8复用模块时,控制模块就需要产生模式选择信号,如对于运算模块是基4/2模块时,该信号就决定了内部运算模块是进行基4运算还是基2运算。
存储器1作为当前输入标志对应输入N点数据的缓冲器,存储器2作为中间结果存储器,用于存储运算模块计算出的各Pass的结果。在图中的各种地址、使能和数据的紧密配合下,经过一定延时后输出计算结果及其对应指示标志。
图2只是一定点或浮点的FFT实现模块,如果是块浮点运算,则必须加入一个数据因子控制器,控制每遍运算过程中的数据大小,并根据各个Pass的乘性因子之和的大小,对最终输出进行大小控制,以保证每段FFT运算输出增益一致。
好用的桌面管理软件,让桌面管理变得无比简单
你们肯定有过这种经历:一打开电脑,桌面满满当当全是图标,文件、文件夹还有快捷方式乱成一团,找个文件得翻来覆去好几遍。或者工作、学习的资料混在一块儿,找啥都得费老大劲。今天给大伙介绍一款特牛的桌面管理软件,能让你的桌面管理无比轻松,工作效率直线上升!一、一键整理,跟乱糟糟彻底告别咱们平常使电脑的时候,最烦的就是桌面图标多...
让隐私更安全:U盘加密的五种实用方法
在如今信息爆棚的阶段,U 硬盘已成为大家存储和传送数据的关键工具。可是,这小小的 U 盘子里蕴藏着巨大的风险。一旦意外丢失或失窃,里边的数据可能掉入不法分子手中,对我们的个人信息和财产安全构成严重威胁。那么,究竟怎样才能让 U 盘里的隐私更安全呢?今日,我们将介绍五种实用的U盘加密方式。一、软件加密:轻松上手,安稳可靠...
颠覆传统办公模式:远程桌面管理工具实用指南
在如今这快节奏的工作大环境里,传统的办公模式慢慢暴露出它的短板。您是不是早就受够了每天早晚高峰的奔波通勤?是不是特别渴望能在舒适自在的环境里照样高效办公?远程桌面管理工具呀,它不但能让您随时随地访问公司的电脑,实现工作的无缝衔接,还能大大提高团队协作的效率。今天,咱们就来唠唠怎么靠着远程桌面管理工具,颠覆传统办公模式。...
如何通过上网行为管理系统提升网络管理效率?
企业网络就像一条热热闹闹的高速公路,承载着形形色色的信息来来往往。可这条 “高速公路” 上的 “车辆”(也就是网络流量),老是出现一些状况,比如拥堵啦、违规行驶啦(像访问那些不安全的网站、下载恶意软件)。那到底咋能有效地管管这些 “车辆”,让网络顺顺溜溜的,还能把网络管理的效率提上去呢?上网行为管理系统,那就是打开高效...
企业局域网安全准入:五大关键要素解析
企业局域网就是把各个部门、各位员工紧密相连的 “神经中枢”。不过呢,随着网络边界变得越来越模糊,还有攻击手段不停地花样翻新,局域网安全准入一下子成了企业必须硬着头皮应对的大难题。到底怎样才能保证只有合法的设备和用户能够享用网络资源?今天,咱们就好好聊聊企业局域网安全准入的五大关键要素。一、身份验证:死死守住的头道关卡身...