FFT算法的一种FPGA实现
姓名:朱金海学号:0845521248 专业:电气工程及其自动化
摘要:FFT运算在OFDM系统中起调制和解调的作用。针对OFDM系统中FF T运算的要求,研究了一种易于FPGA实现的FFT处理器的硬件结构。接收单元采用乒乓RAM结构,扩大了数据吞吐量。中间数据缓存单元采用双口RAM,减少了访问RAM的时钟消耗。计算单元采用基2算法,流水线结构,可在4个时钟后连续输出运算结果。各个单元协调一致的并行工作,提高了系统时钟频率,达到了高速处理。采用块浮点机制,动态扩大数据范围,在速度和精度之间得到折衷。模块化设计,易于实现更多点数的FFT运算。
关键词:FFT;FPGA;蝶型运算;乒乓RAM结构
1引言
OFDM(正交频分复用)是一种多载波数字调制技术,被公认为是一种实现高速双向无线数据通信的良好方法。在OFDM系统中,各子载波上数据的调制和解调是采用FFT(快速傅里叶变换)算法来实现的。因此在OFDM系统中,FFT的实现方案是一个关键因素。其运算精度和速度必须能够达到系统指标。对于一个有512个子载波,子载波带宽20 kHz的OFDM系统中,要求在50 μs内完成512点的FFT运算。
硬件实现FFT算法的主要方案有:DSP(通用数字信号处理器);FFT专用芯片;FPGA(现场可编程门阵列)。DSP具有纯软件实现的灵活性,适合用于流程复杂的算法,例如在通信系统中的信道编、解码,QAM映射等算法。如果在DSP中完成FFT运算,不仅要占用大量D SP的运算时间,使整个系统的数据吞吐率降低,也无法发挥DSP软件实现的灵活性。因此,前端的FFT运算应由ASIC或FPGA完成。采用专用的FFT处理芯片,虽然速度能达到要求,但其可扩展性差。FPGA具有硬件结构可重构的特点。适合于算法结构固定、运算量大的前端数字信号处理。新近推出的FPGA产品都采用多层布线结构,更低的核心电压,更丰富的IO管脚,容量可达到100 k个逻辑单元(LES),内置嵌入式RAM资源,内部集成多个数字锁相环,多个嵌入的硬件乘法器,所有这一切都使得FPGA在数字信号处理领域显示出自己特有的优势。
本设计根据OFDM系统的实际需要,提出一种用FPGA实现FFT运算的方案,并以64点FFT为例,在Quartus II软件上通过了综合和仿真。
2方案分析
FFT是DFT(离散傅里叶变换)的快速算法。以图1为例,N点FFT共需要log2N级运算,每级需要N/2个蝶型运算。因为系统中FFT运算点数为2的奇数次方,因此本设计采用的是按时间抽取的基二FFT运算。
FPGA实现FFT需考虑的问题有:
(1) 整体实现结构的设计。
对FFT算法进行合理的模块划分,各个模块在中央控制单元的管理下并行工作,实现框图如图2所示。
(2) 数据格式和长度的选择
通常的数据表示方法有3种:浮点,定点和块浮点。浮点数用2组固定的bit来表示指数和小数,动态范围大。只要表示指数的位数足够多,浮点运算就不会发生溢出现象。但是完成浮点运算所需要的电路复杂,运算速度慢。定点数小数点位置固定,用固定的bit来表示整数和小数部分。定点数动态范围小,容易溢出。但是其运算电路简单、速度快。块浮点介于浮点和定点之间。在FFT运算过程中,逐级进行
EDA论文 来自淘豆网m.daumloan.com转载请标明出处.