很明显,目前已经有许多途径可以实现DFT。现在就从图中给出的算法中选定一种短DFT算法开始介绍。而且短DFT可以用Cooley-Tukey、Good-Thomas或Winograd提出的索引模式来开发长DFT。选择实现的共同目标就是将乘法的复杂性降到。这是一种可行的准则,因为乘法的实现成本与其他运算,比如加法、数据访问或索引计算相比较而言要高得多。
图给出了各种FFT长度所需要乘法的次数。从中可以得出结论,单纯从乘法复杂性准则考虑,Winograd FFT是有吸引力的。在本章中,给出了几种形式的N=4×3=12点FFT的设计。表1给出了直接算法、Rader质数因子算法和用于简单DFT的模块和3种分别称为Cooley-Tukey、Good-Thomas和Winograd FFT的不同索引映射的Winograd FFT算法。
表 长度为12复杂输入FFT算法的实数乘法的数量,假设一个复杂的乘法使用了4个实数乘法
图 基于所需要的实数乘法次数的不同FFT算法的比较
除了乘法的次数以外,还需要考虑其他的约束条件,例如可能的变换长度、加法的次数、索引计算开销、系数或数据存储器规模和运行期间代码的长度。在许多情况下,Cooley-Tukey方法提供了总体解决方案,请参阅表2。
表2 长度N=∏Nk的FFT算法的重要属性
目前FPGA所达到的复杂性己经超过1M门,FFT完全可以集成在单片FPGA中。由于这样的FFT模块设计是劳动密集的,通常使用大批供应的“知识产权”(intellectual property,IP)模块(有时候也称作虚拟组件(virtual component,VC))更有意义。例如可以访问www,xilinx.com或www.altera.com,参阅IP合作程序。多数大批供应的设计都是基于radix-2或radix-4的。
表3总结了一些已公布的FPGA实现。Goslin[120]的设计是基于radix-2FFT的。Dandalis等人[136]的设计是基于采用所谓的算术傅立叶变换的DFT近似。
表3 一些FPGA FFT实现的比较[5]
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。