论文部分内容阅读
DFT(离散傅立叶变换)作为将信号从时域转换到频域的基本运算,在各种数字信号处理中起着核心作用,其快速算法FFT(快速傅立叶变换)在无线通信、语音识别、图像处理和频谱分析等领域有着广泛的应用。特别是随着OFDM(正交频分复用)技术的出现,不同OFDM系统需要不同变换点数的FFT运算,如何更快速、更灵活地实现FFT变得越来越重要。 本文提出了基于FPGA(现场可编程门阵列)实现傅立叶变换点数可灵活扩展的高速FFT处理器的结构设计以及各功能模块的算法实现,包括高组合数FFT算法能按流水线方式工作的FFT级联实现结构、级间混序RAM读/写地址规律及其地址发生器的设计、补码实现的短点数FFT阵列处理结构以及补码实现的可用于不同级间完成数据相位旋转而又具有相同流水线结构的CORDIC(坐标旋转数字计算机)处理器等;实现了具有流水线处理能力的高速FFT处理器及其功能验证平台。 对基于FPGA实现可扩展高速FFT处理器的研究表明: (1)随着现场可编程IC(集成电路)技术的发展和应用的成熟,器件规模和品种不断增加,现场可编程IC设计和应用成本不断降低,在越来越多的领域和产品中,特别是生产批量小,更新快的数字化系统产品中,直接采用FPGA为代表的现场可编程IC来实现硬件的单片集成,已成为必然趋势。对于FFT等算法的快速原型,CPLD(复杂可编程逻辑器件)/FPGA技术是一个理想工具。 (2)面向高速、大容量数据流的FFT的实时处理,可以通过VLSI(超大规模集成电路)器件的并行处理或多级流水线处理等来达到。特别是多级流水线处理的FFT结构使得基于CPLD/FPGA器件的FFT处理器完成不同点数的FFT计算时可以通过增减模块级数很容易地实现。 (3)通过分析和比较各种FFT算法的特性和规律后得出,基于FPGA设计傅立叶变换点数可灵活扩展的高速FFT处理器,高组合数FFT算法是最优选择,基-X这种任何基FFT都有扩展的局限性,因为后者是前者的特例,对前者的研究可以得出一般规律的总结,使得高速FFT处理器的结构扩展更为方便和灵活。 (4)为了FPGA更加优化地实现FFT设计的综合以及布局布线,需要针对FPGA的特点,改变一些功能模块的算法原理,如实现旋转因子乘法的CORDIC算法;调整一些模块单元的设计结构,如CORDIC迭代单元的补码实现结构等。 (5)能够从理论上,一般性地总结出组合数FFT算法实现过程中用流水线读/写同一块RAM来实现级与级之间的数据混序的读/写RAM地址发生规律,以它为指导,可以灵活地改变FFT处理器的结构及其进行傅立叶变换的数据规模,此结重庆大学硕士论文构取代了用两块RAM完成数据混序的乒乓结构,不涉及存储器之间的读写切换,控制逻辑非常简单,而且消耗的存储器资源节省一半。 (6)根据设计结构用FPGA实现的具有流水线处理能力的高速FFT处理器的实验结果表明:时钟工作在40MHz时,输入数据速率达到20MHz,计算1 024点16位字长定点FFT运算可以达到52us量级(实测结果)。由此说明,基于FPGA实现的FFT处理器的各功能模块涉及的算法的理论分析正确,设计结构能够达到满足实时处理的高速性能。