随着集成电路的飞速发展,在图像处理,通信和多媒体等很多领域中,数字信号处理技术已经被广泛应用。快速傅立叶变换(FFT)算法的提出,使得数字信号处理的运算时间上面缩短了好几个数量级。因此对FFT 算法及其实现方法的研究具有很强的理论和现实意义。
1 FFT算法及其实现方法
现场可编程门阵列FPGA是一种可编程使用的信号处理器件,其运算速度高,内置高速乘法器可实现复杂累加乘法运算;同时其存储量大,无需外接存储器就可实现大量数据运算;而且算法实现简单,通过VHDL编程语言可轻松实现功能开发,缩短了开发周期。FPGA已经在通讯、视频、图像处理等领域被广泛使用。
本次设计采用FPGA实现8点32位的FFT 变换,现场可编程门阵列FPGA是一种可编程使用的信号处理器件,用户可以通过改变配置信息对其功能进行定义,以满足设计需求。与DSP相比,FPGA实现FFT 具有速度高,存储容量大,硬件实现简单,I/O带宽高等特点。
FFT处理器被分成一下几个主要的功能模块:数据地址产生单元、蝶形运算单元、数据选择单元、控制单元、存储单元等。通过VHDL语言在CycloneII系列芯片上编程实现。运算方案采用顺序处理的方法。傅立叶变换实现时首先进行基2、基4 分解,一般来说,如果算法使用基2 实现,虽然使用的资源较多,但速度优势明显。设计中采用基-2DIT-FFT算法来实现整个系统的设计,如图1 所示。
图1
在FFT模块的设计中,旋转因子与输入数据进行的是一个小数乘法的蝶形运算,需要将旋转因子表示成小数的二进制形式。为了保证运算结果的正确性,还需要将输入和输出数据进行小数点的调整。在此次设计中采用定点小数的方法,所谓定点小数,就是小数点的位置是固定的。设计中统一将小数点放在了Q6的位置,在仿真的结果图中显示的输出数据均是小数点经过移位后的结果即结果均扩大了64倍。
复数乘法器采用FPGA内部IP核的例化与调用来设计实现了蝶形处理,这样就可以提高蝶形运算单元的的运算速度,降低了运算复杂度。控制单元的设计通过一个有限状态机来实现控制器。通过有限状态机状态的输出分别控制ROM因子表、随机存储器RAM和蝶形处理器。使它们可以协调一致地工作,从而实现FFT运算的正确输出。
将系统设计的各个模块连接起来,利用顺序处理的FFT设计结构,将输入数据的8个点放到RAM 中进行处理。经过元件例化和调用操作完一级蝶形之后对其结果进行存储;之后完成二级蝶形操作及存储;最后进行三级蝶形的操作。
若输入8点数据为[5,8,3,2.0,6,1,2].其仿真结果经转换后的值为(即结果扩大了64 倍):[1728,410-j218,64-j640,230+j38,-576,230-j38,64+j640,410+j218 ] , 与MATLAB仿真的结果一致。
如图2所示,图中的x0,x1,x2……x7是输入信号,分别给它们输入的值为[5,8,3,2,0,6,1,2];y0_i,y0_r……y7_i,y7_r 是仿真中得到的输出信号。经过运算,输出结果与理论计算结果一致。
图2
2 总结
通过仿真验证此次利用FPGA实现的FFT设计采用内置双端口RAM、ROM 单元,实现了存取数据、旋转因子计算、蝶形计算,系统结构简单,运算可靠性高,速度得到了进一步提升。
上一篇:为FPGA供电的挑战和应对
下一篇:基于FPGA的短波通信接收机
推荐阅读最新更新时间:2023-10-12 22:49
Vishay线上图书馆
- 选型-汽车级表面贴装和通孔超快整流器
- 你知道吗?DC-LINK电容在高湿条件下具有高度稳定性
- microBUCK和microBRICK直流/直流稳压器解决方案
- SOP-4小型封装光伏MOSFET驱动器VOMDA1271
- 使用薄膜、大功率、背接触式电阻的优势
- SQJQ140E车规级N沟道40V MOSFET
- MathWorks 和 NXP 合作推出用于电池管理系统的 Model-Based Design Toolbox
- 意法半导体先进的电隔离栅极驱动器 STGAP3S为 IGBT 和 SiC MOSFET 提供灵活的保护功能
- 全新无隔膜固态锂电池技术问世:正负极距离小于0.000001米
- 东芝推出具有低导通电阻和高可靠性的适用于车载牵引逆变器的最新款1200 V SiC MOSFET
- 【“源”察秋毫系列】 下一代半导体氧化镓器件光电探测器应用与测试
- 采用自主设计封装,绝缘电阻显著提高!ROHM开发出更高电压xEV系统的SiC肖特基势垒二极管
- 艾迈斯欧司朗发布OSCONIQ® C 3030 LED:打造未来户外及体育场照明新标杆
- 氮化镓取代碳化硅?PI颠覆式1700V InnoMux2先来打个样
- 从隔离到三代半:一文看懂纳芯微的栅极驱动IC