论文部分内容阅读
随着科学技术的发展,数字信号处理已经广泛的应用于生产生活的诸多领域。FFT(快速傅里叶变换)作为数字信号处理理论中最为基本的算法,在雷达、声纳、通信、地质勘探、图像处理、生物医学等各个领域得到了广泛的应用。这些领域技术的高速发展对设备执行FFT的运算速度提出了更高的要求,使得很多传统的FFT的实现方法已经不能满足高速这一要求。所以寻求更高速的FFT的实现方法成为了国内外许多学者的研究课题。由于FPGA(现场可编程门阵列)具有成本较低、使用灵活、设计周期短、可靠性高、风险小等诸多优点,使得近年来它在通信、图像处理等诸多领域得到了非常广泛的应用。又由于FPGA内部运算的并行性,使得它在许多场合越来越多的代替DSP器件进行高速数字信号处理的工作。特别是在利用FPGA实现FFT的时候,其运算速度往往能够到达到一个比较令人满意的效果,所以本课题选择了利用FPGA来实现FFT。本课题采用基4布斯编码算法和华莱士树算法设计完成了16×16位有符号数布斯乘法器,利用Modelsim完成乘法器的前后仿真。该乘法器在Cyclone EP1C6Q240C8上可以达到80MHz的运行速度。利用此乘法器为核心设计了FFT算法中的基-2蝶形运算单元,并且设计了串并转换模块,并串转换模块,移位选择模块,溢出检测模块和地址与控制模块等其它模块,并以这些模块和FPGA内部的双口RAM和ROM为存储单元组成了基-2 FFT算法模块。整个模块采用基-2时域抽取,顺序输入,逆序输出的方法;利用Modelsim完成了FFT模块的前后仿真;利用Matlab编写了用于比较仿真结果和Matlab中FFT函数产生的结果的程序,用于验证设计结果的正确性。整个FFT模块最后能够在Cyclone EP1C6Q240C8型FPGA上稳定运行在60MHz,能够在183us左右完成1024点的16位定点复数FFT运算,能够满足一般工程的要求。该方法也可以用于实现更低点数或是更高点数的FFT运算。