FFT处理器及运算方法技术

技术编号:14645641 阅读:85 留言:0更新日期:2017-02-16 02:16
本发明专利技术涉及信号处理领域,公开了一种FFT处理器及运算方法。本发明专利技术中,FFT处理器,包括:两个数据存储单元、旋转因子存储单元、多个蝶形运算单元、数据读写单元以及旋转因子读写单元;数据读写单元连接两个数据存储单元与各蝶形运算单元;两个数据存储单元分别用于均匀存放多个蝶形运算单元的N个输入数据与N个输出数据;旋转因子读写单元连接旋转因子存储单元与各蝶形运算单元;旋转因子存储单元用于存放N/2个旋转因子;旋转因子读写单元用于逐个读取N/2个旋转因子,并将逐个读取的N/2个旋转因子依次输入多个蝶形运算单元;数据读写单元还用于逐个存储N个输出数据。本发明专利技术还公开了一种FFT运算方法。本发明专利技术实施方式实现了多点FFT运算,减小了电路面积。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及信号处理领域,特别涉及一种FFT处理器及运算方法
技术介绍
傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析手段。离散傅里叶变换(DiscreteFourierTransform,简称“DFT”)是傅里叶变换在离散系统中的表示形式。但是DFT的计算量非常大。快速傅里叶变化(FastFourierTransformation,简称“FFT”)是一种DFT的高效算法,它根据DFT的奇、偶、虚、实等特性,对DFT算法进行改进而获得,从而大大减小了DFT算法的运算量。FFT处理器是一种FFT算法的硬件结构,现有技术中,能够实现FFT处理器功能的方法有很多种,但大多存在一定的局限性。对于有些实现方法,只能支持单一点数的FFT运算,还有些方法则需要占用大量的资源,硬件电路面积较大。
技术实现思路
本专利技术实施方式的目的在于提供一种FFT处理器及运算方法,使得多点FFT运算得以实现,增加FFT处理器的应用场景,同时占用较小电路面积,减低电路功耗,缩减电路成本。为解决上述技术问题,本专利技术的实施方式提供了一种FFT处理器,包括:两个数据存储单元、旋转因子存储单元、多个蝶形运算单元、数据读写单元以及旋转因子读写单元;数据读写单元连接于两个数据存储单元与各蝶形运算单元;两个数据存储单元分别用于均匀存放多个蝶形运算单元的N个输入数据与N个输出数据;其中,N=2k,k≥3且k为整数;旋转因子读写单元连接于旋转因子存储单元与各蝶形运算单元;旋转因子存储单元用于存放N/2个旋转因子;其中,数据读写单元用于逐个读取N个输入数据,并将逐个读取的N个输入数据依次输入多个蝶形运算单元;旋转因子读写单元用于逐个读取N/2个旋转因子,并将逐个读取的N/2个旋转因子依次输入多个蝶形运算单元;数据读写单元还用于逐个存储N个输出数据。本专利技术的实施方式还提供了一种FFT运算方法,包括:数据读写单元将从外部接收的N个输入数据均匀地存放在其中一个数据存储单元中;旋转因子读写单元将从外部接收的N/2个旋转因子存放在旋转因子存储单元;数据读写单元逐个读取N个输入数据,并将逐个读取的N个输入数据依次输入多个蝶形运算单元;旋转因子读写单元逐个读取N/2个旋转因子,并将逐个读取的N/2个旋转因子依次输入多个蝶形运算单元;各蝶形运算单元根据接收的各输入数据与各旋转因子运算得到各输出数据;数据读写单元将各输出数据逐个存储至另一个数据存储单元;其中,各输出数据作为下一级运算的各输入数据,且进行k级循环运算。本专利技术实施方式相对于现有技术而言,数据均匀存放在两个数据存储单元中,对于不同点数的输入数据而言,可以采用同一读取规律进行读取,因此可以实现支持多点的运算。并且,数据读写单元逐个读取输入数据,并将逐个读取的输入数据依次输入多个蝶形运算单元,并将各蝶形运算单元的输出数据逐个存储,即同一时间内,有一个输入和一个输出数据,因此,只需要两个数据存储单元进行数据的存储,可以节省电路面积。另外,蝶形运算单元的数目为4。通过4个蝶形运算单元循环工作的模式,最大程度的复用蝶形运算单元,可以尽可能的减小电路面积,并且4个蝶形运算单元从数据存储单元依次连续读取数据,可以避免运算单元的空闲,并且输出结果一直处于有效状态,从而有效地提高蝶形运算单元利用率。另外,各蝶形运算单元包括1个乘法器和2个加法器;各蝶形运算单元用于实现基2蝶形运算。本实施方式中的各蝶形运算单元的结构较为简单,从而大大减小了电路面积。另外,k的取值为k≤10。根据k配置的值不同,从而实现了支持不同点数的FFT处理器运算。另外,各输入数据的存放地址依次递增;各数据存储单元包括1024个地址,当k=10,N=210=1024时,各输入数据依次存放;当k≤9时,各相邻输入数据的地址间隔相等。输入、输出数据均匀占据整个存储地址空间,方便计算,无需为不同点数的FFT处理器配置不同行计算方案。另外,对于第i级运算,其中i=0,1……,k,在数据读写单元逐个读取N个输入数据中,各输入数据的读取地址的产生方式包括:获取各输入数据对应的计数器二进制数列;将计数器二进制数列中的最后i+1位取倒数;将上述最后i+1位取倒数后的整个数据取倒数,以作为各输入数据的读取地址。对数据存储地址进行合理的分配,才能够完成正确的FFT运算。附图说明图1是根据本专利技术第一实施方式的FFT处理器的结构示意图;图2是根据本专利技术第一实施方式的一种FFT处理器的蝶形运算单元内部运算过程的示意图;图3是根据本专利技术第三实施方式的一种FFT运算方法的流程图;图4是根据本专利技术第四实施方式的一种FFT运算方法中输入数据的读取地址产生方式的流程图;图5是根据本专利技术第五实施方式的一种FFT运算方法中旋转因子的读取地址序列的产生方式的流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本专利技术各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。本专利技术的第一实施方式涉及一种FFT处理器。具体结构示意图如图1所示,包括:两个数据存储单元11和12、旋转因子存储单元13、多个蝶形运算单元161至164、数据读写单元14以及旋转因子读写单元15;数据读写单元14连接于两个数据存储单元11和12与各蝶形运算单元161至164;旋转因子读写单元15连接于旋转因子存储单元13与各蝶形运算单元161至164。其中,两个数据存储单元11和12,本实施方式中的两个数据存储单元可以为随机存取存储器(RandomAccessMemory,简称“RAM”),两个RAM分别用于均匀存放多个蝶形运算单元161至164的N个输入数据与N个输出数据;其中,N=2k,k≥3且k为整数。数据读写单元14用于按照产生的地址序列逐个读取N个输入数据,并将按照产生的地址序列逐个读取的N个输入数据依次输入多个蝶形运算单元161至164。此外,数据读写单元14还用于逐个存储N个输出数据。具体地说,在开始计算前,需要将蝶形运算单元161至164所需要用于计算的数据,导入到一个数据存储单元11中,例如导入数据存储单元11中,当FFT处理器的使能信号设置为高后,数据存储单元11根据所处的级数产生合适的地址序列,这个地址序列在数据存储单元11中对应的数据会作为输入数据,被数据读写单元14读取,并进行进一步的FFT运算,计算完毕后,数据读写单元14根据存储地址,将该输出数据存入数据存储单元12中,并且满足存储地址与在数据存储单元11中的读取地址一致,即参与计算的数据的读取地址与计算完毕数据的存储地址保持相同。需要说明的是,数据读写单元14可以从数据存储单元11中读取输入的数据,也可以向数据存储单元11写入输出数据,同理对于数据存储单元12也可以做如此操作,数据存储单元采用乒乓RAM的形式来缩小所消耗的资源,即数据存储单元11或12,既可以作为输入数据的存储单元,也可以作为输出数据的存储单元,并且数据是均匀存储在数据存储单元11、12中的,可以理解为,输入或输出数据在数据存储单元11或本文档来自技高网...
FFT处理器及运算方法

【技术保护点】
一种FFT处理器,其特征在于,包括:两个数据存储单元、旋转因子存储单元、多个蝶形运算单元、数据读写单元以及旋转因子读写单元;所述数据读写单元连接于所述两个数据存储单元与各蝶形运算单元;所述两个数据存储单元分别用于均匀存放所述多个蝶形运算单元的N个输入数据与N个输出数据;其中,N=2k,k≥3且k为整数;所述旋转因子读写单元连接于所述旋转因子存储单元与所述各蝶形运算单元;所述旋转因子存储单元用于存放N/2个旋转因子;其中,所述数据读写单元用于逐个读取所述N个输入数据,并将逐个读取的所述N个输入数据依次输入所述多个蝶形运算单元;所述旋转因子读写单元用于逐个读取所述N/2个旋转因子,并将逐个读取的所述N/2个旋转因子依次输入所述多个蝶形运算单元;所述数据读写单元还用于逐个存储所述N个输出数据。

【技术特征摘要】
【国外来华专利技术】1.一种FFT处理器,其特征在于,包括:两个数据存储单元、旋转因子存储单元、多个蝶形运算单元、数据读写单元以及旋转因子读写单元;所述数据读写单元连接于所述两个数据存储单元与各蝶形运算单元;所述两个数据存储单元分别用于均匀存放所述多个蝶形运算单元的N个输入数据与N个输出数据;其中,N=2k,k≥3且k为整数;所述旋转因子读写单元连接于所述旋转因子存储单元与所述各蝶形运算单元;所述旋转因子存储单元用于存放N/2个旋转因子;其中,所述数据读写单元用于逐个读取所述N个输入数据,并将逐个读取的所述N个输入数据依次输入所述多个蝶形运算单元;所述旋转因子读写单元用于逐个读取所述N/2个旋转因子,并将逐个读取的所述N/2个旋转因子依次输入所述多个蝶形运算单元;所述数据读写单元还用于逐个存储所述N个输出数据。2.根据权利要求1所述的FFT处理器,其特征在于,所述蝶形运算单元的数目为4。3.根据权利要求1所述的FFT处理器,其特征在于,各蝶形运算单元包括1个乘法器和2个加法器;各蝶形运算单元用于实现基2蝶形运算。4.根据权利要求1所述的FFT处理器,其特征在于,所述k的取值为k≤10。5.根据权利要求4所述的FFT处理器,其特征在于,各输入数据的存放地址依次递增;各数据存储单元包括1024个地址,当k=10,N=210=1024时,各输入数据依次存放;当k≤9时,各相邻输入数据的地址间隔相等。6.一种FFT运算方法,其特征在于,应用于权利要求1至5中任意一项所述的FFT处理器,所...

【专利技术属性】
技术研发人员:李一帆
申请(专利权)人:深圳市汇顶科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1