掌桥专利:专业的专利平台
掌桥专利
首页

一种FFT芯片的优化方法

文献发布时间:2023-06-19 10:27:30


一种FFT芯片的优化方法

技术领域

本发明属于FFT芯片设计领域,涉及一种FFT芯片的优化方法。

背景技术

傅里叶变换是一种现行的积分变换,即时域到频域的变化和相互转化。因其基本思想是由法国学者傅里叶系统的提出,所以以其名字来命名。而傅里叶变换又有4种变体,分别是连续傅里叶变换,傅里叶级数,离散时间傅里叶变换,离散傅里叶变换。随着数字电子技术和集成电路设计制造技术的飞速发展,数字信号处理已广泛应用于雷达、通信、图像处理和多媒体等领域中。离散傅立叶变换(DFT)作为数字信号处理中的基本运算,发挥着重要作用。

由于直接计算DFT的计算量太大,直接用DFT算法进行频谱分析和信号的实时处理是不切实际的。直到1965年,出现了DFT的一种快速算法以后,情况才发生了根本的变化,这种算法称为快速傅立叶变换,也就是FFT,随着FFT算法的提出使离散傅立叶变换的运算量减小了几个数量级,使得数字信号处理的实现和应用变得更加容易。

而目前FFT芯片中ROM存储了大量数据,使得器件被占用了大量资源,且运行效率低下。

发明内容

本发明解决的技术问题是:克服现有技术的不足,提出一种FFT芯片的优化方法,通过改变FFT计算中的一个常量系数,即旋转因子的产生与存储,从而减少ROM中存储的数据,来提高器件的效率和减少占用的资源。

本发明解决技术的方案是:

一种FFT芯片的优化方法,包括如下步骤:

步骤一、将2048点的FFT芯片分解成6级运算;其中,1-5级运算采用基-4的FFT运算;第6级运算采用基-2的FFT运算;FFT芯片的每级运算都用到旋转因子

步骤二、将旋转因子

步骤三、将旋转因子

步骤四、计算出x范围为0°-45°时,cos x和-sin x的全部值,通过步骤三中的

在上述的一种FFT芯片的优化方法,当需要计算0°-45°范围以外角度对应的旋转因子

在上述的一种FFT芯片的优化方法,计算0°-45°范围以外角度y对应的旋转因子

S1、计算cosy

当45°

当90°

当135°

当180°

当225°

当270°

当315°

S2、计算-siny

当45°

当90°

当135°

当180°

当225°

当270°

当315°

S3、根据cosy和-siny,按照

本发明与现有技术相比的有益效果是:

(1)本发明对2048点混合基FFT芯片进行优化,有效地减少规模与功耗,提高效率;

(2)本发明仅对x范围为0°-45°时,cosx和-sinx的全部值,即获得x范围为0°-45°时,旋转因子

附图说明

图1为本发明FFT芯片的优化流程。

具体实施方式

下面结合实施例对本发明作进一步阐述。

本发明提供一种FFT芯片的优化方法,通过改变FFT计算中的一个常量系数,即旋转因子的产生与存储,从而减少ROM中存储的数据,来提高器件的效率和减少占用的资源。

FFT芯片的优化方法,如图1所示,具体包括如下步骤:

步骤一、将2048点的FFT芯片分解成6级运算;其中,1-5级运算采用基-4的FFT运算;第6级运算采用基-2的FFT运算;FFT芯片的每级运算都用到旋转因子

步骤二、将旋转因子

步骤三、将旋转因子

步骤四、计算出x范围为0°-45°时,cos x和-sin x的全部值,通过步骤三中的

当需要计算0°-45°范围以外角度对应的旋转因子

计算0°-45°范围以外角度y对应的旋转因子

S1、计算cosy

当45°

当90°

当135°

当180°

当225°

当270°

当315°

S2、计算-siny

当45°

当90°

当135°

当180°

当225°

当270°

当315°

S3、根据cosy和-siny,按照

连续傅里叶变换将平方可积的函数f(t)表示成复指数函数的积分或级数形式。

这是将频域的函数F(ω)表示为时域的函数f(t)的积分形式。

离散傅立叶变换:

离散傅里叶变换(DFT),是连续傅里叶变换在时域和频域上的离散形式,将时域信号的采样变换为在频域的采样。

设x(n)是一个长度为M的有限长序列,则定义x(n)的N点离散傅里叶变换为

由此,序列x(n)的逆变换:

其中X(k)表示DFT变换后的数据,x(n)为采样的模拟信号,公式中的x(n)可以是复信号,实际当中x(n)都是实信号。

通常x(n),

通过研究DFT运算中的系数

基-2的FFT运算:

基-2的FFT运算根据输入数据的顺序可以分为按时间抽取法和按频域抽取法。本文讨论按时间抽取(DIT)基-2FFT算法。该算法是将复数序列x(n)按照n的奇偶分为两组:

其中

X1(k),X2(k)为两个N/2点序列的DFT,X1(k)为原序列x中的偶数点序列DFT,X2(k)为原序列x(n)中的奇数点序列DFT,周期均为N/2。由于

由此可见,一个N点的复数序列x(n)的DFT可以通过两个N/2点的复数序列的DFT变换得到。上面两个公式的图形结构像只蝴蝶,所以又称为蝶形运算结构。

按照上述方法继续对两个长度为N/2点的序列做进一步的分解,即对X1(k),X2(k)分别进行按照奇偶分解,从而得到了4个长度是N/4点的复数序列,将结果进行综合后得到两个N/2点的序列的DFT变换结果。以此类推,把4个长度是N/4点的复数序列各自按照奇偶继续分解,当序列最终分解为N/2个2点复数序列后,再对这N/2个2点序列分别按照奇偶分解,可以得到N/2对单点序列,其中每对单点序列可通过一个蝶形运算合成得到一个两点序列的DFT变换结果。然后把每两个对应的两点复数序列DFT结果合成一个四点的复数序列的DFT结果,以此类推,直到把两点序列的DFT变换结果逐级合成N点的复数序列DFT结果。显而易见,我们求取N点复数序列的DFT是通过之前序列按照奇偶分解过程的逆过程得到的。

基-4的FFT运算:

该算法是将复数序列x(n)在时域上按照4r,4r+1,4r+2,4r+3来抽取,对于一个长度是N=4

其中x(n)为列长为N=(n=0,1,2...,N-1)的输入序列。把他按照4r,4r+1,4r+2,4r+3分成以下四个子序列:

x

x

x

x

其中r=0,1,2,3...,N/4-1。然后利用系数

令:

又令:

A′=X

B′=X

C′=X

D′=X

则有:

X

X

X

X

一次基-4蝶形运算需要复数乘法3次和复数加法8次。

依照上述方法,将第一次变换分解得到的四个N/4点子序列继续分解,四个N/4点子序列可以进一步分解分别得到四个N/16点子序列。同理,通过四个N/16点子序列的DFT结果可以获得N/4点序列的DFT结果。以此类推,N=4

当序列长度为N的序列进行基-4FFT运算时,每级会有N/4个蝶形单元运算,还要乘以一组旋转因子,分别是

现有的2048点FFT的ASIC实现,采用的是基-2FFT和基-4FFT算法的混合算法,即一级基2,5级基4的混合基(2

以按频域抽取为例,基2算法可以用在序列长度N=2048,2048=2x1024的情况下,算法推导公式如下:

基4算法可以用在序列长度N=1024,1024=4x256的情况下,算法推导公式如下:

根据旋转因子的定义有以下表达式:

将以上三个表达式代入基4FFT算法,可以得到

将上式N点DFT序列分成4个N/4点子序列,也就是X(4k),X(4k+1),X(4k+2)和X(4k+3),从而将基4按频率抽取FFT公式化简为:

其中利用到了

每一个N/4点DFT输入是4个信号样本与相位因子的线性组合。该过程重复v次,其中v=log4N。例如1024点DFT,需要重复5次,也就是有5级运算。

其中在1024点FFT实现中,大部分的电路主要用三块ROM初始化FFT运算的旋转因子,三块ROM分别存储255个旋转因子。1024点基-4FFT运算共需要做5级蝶形运算,每级共有256个蝶形单元。因此需要ROM存储大量数据,占用资源降低了效率,本文优化了旋转因子的存储。

因为旋转因子本质是由周期函数cos和sin组成的常数。

只要知道三角函数的1/8的值即可通过翻转和相位移动计算出此函数的其他数值,因此ROM中只需要存储1/8的数值即可。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

相关技术
  • 一种FFT芯片的优化方法
  • 一种基于动态截位的低复杂度无乘法器定点FFT优化方法
技术分类

06120112553357