新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 利用FFT IP Core实现FFT算法

利用FFT IP Core实现FFT算法

作者:时间:2012-03-23来源:网络收藏

结合工程实践,介绍了一种利用 实现的方法,设计能同时对两路实数序列进行256点运算,并对转换结果进行求模平方运算,且对数据具有连续处理的能力。设计采用低成本的FPGA实现,具有成本低、性能高、灵活性强、速度快等特点,而且通过工程应用证明了设计是正确可行的。

本文引用地址:http://www.eepw.com.cn/article/190610.htm

由于FFT(快速傅里叶变换)的问世,促进了数字信号处理这门学科的成熟,它可应用于傅里叶变换理论所能涉及的任何领域。FFT传统实现

方法无非是软件(软件编程)和硬件(专用芯片ASIC)两种,FPGA的出现使人们在FFT的实现方面又多了一种选择。FPGA同时具有软件编程的灵活性和ASIC电路的快速性等优点,适合高速数字信号处理。大多数FPGA厂商都提供了可配置的逻辑核()实现各种功能,其中包括FFT (知识产权核)。使用这些资源允许设计师将更多的时间和精力放在改善增加系统功能上,这无疑将大大减少设计风险及缩短开发周期。

本设计采用了Altera公司的FFT Core实现FFT功能,可同时实现两路256点实数数据的FFT转换,并对转换结果进行求模平方运算,设计对数据具有连续处理的能力。FPGA芯片选用的是有史以来成本最低的Altera公司的Cyclone系列的芯片,FFT内核是Altera MegaCore FFT-V2.0.0,整个设计成本低、性能好,已经成功地应用到雷达产品中。

2 原理和FFT Core介绍

设计用到的包括同时计算两个实函数的FFT算法和CORDIC算法。

2.1 同时计算两个实函数的FFT算法

DFT(离散傅里叶变换)的定义为:

60.jpg

式(1)中,都假定时间函数x(n)是一个复函数。但是在许多FFT的实际应用中,时间函数往往是实函数。下面介绍的算法可以有效地减少实数序列FFT的计算工作量,从而提高计算速度。该方法可归纳为如下几个步骤:
①函数h(n)和g(n)是两个实函数,n=0,1,…,N-1;
②将其中的一个作为实部而另一个作为虚部,构成复函数z(n)为:
z(n)=h(n)+jg(n), n=0,1,…,N-1;
③计算z(n)的N点DFT得:

61.gif

式中,H(k)和G(k)分别是h(n)和g(n)的DFT。

详细的推导过程参见文献[2]。

2.2 CORDIC算法原理

CORDIC(The Coordinate Rotational Digital Computer)算法是一种循环迭代算法,其基本思想是用一系列与运算基数相关角度的不断偏摆从而逼近所需旋转的角度。从广义上讲它是一个数值性计算逼近的方法,由于这些固定的角度与计算基数有关,运算只有移位和加减。可用该算法来计算的函数包括乘、除、平方根、正弦、余弦正切、向量旋转(即复数乘法)以及指数运算等。CORDIC的基本原理如下。

向量x+jy,旋转角度θ到向量x'+jy',假设的方向用δ表示,旋转的角度为θi,并且θi满足关系:tanθi=2i。则由文献[3]的推导可知:

62.gif

2.3 FFT Core简介

FFT-V2.0.0是Altera公司2004年2月新发布的FFT知识产权核,它是一个高性能、高度参数化的快速傅里叶变换(FFT)处理器,支持Cyclone、


上一页 1 2 3 4 下一页

关键词: FFT Core IP 算法

评论


相关推荐

技术专区

关闭