基于FPGA的三维FFT计算装置制造方法及图纸

技术编号:23025157 阅读:49 留言:0更新日期:2020-01-03 16:57
本发明专利技术公开了一种基于FPGA的三维FFT计算装置,主要解决现有技术不能对大尺寸三维数据进行FFT计算的问题。其包括一维FFT计算器、二维FFT计算器及使用FPGA内部块RAM构成的数据缓冲区和外部存储器,该外部存储器缓存由二维FFT计算器计算得到的结果;该三维FFT计算器根据外部存储器缓存的二维FFT的计算结果,计算第三个维度数据的FFT,得到三维FFT计算结果;该数据传输控制模块,生成地址信息以控制计算二维FFT得到的中间结果通过AXI4总线缓存到外部存储器,并控制FPGA从外部存储器按照页的顺序读取数据。本发明专利技术计算精度高,计算的三维FFT结果满足实际需求,可用于仿真动态海面电磁散射。

Three dimensional FFT computing device based on FPGA

【技术实现步骤摘要】
基于FPGA的三维FFT计算装置
本专利技术属于数字信号处理
,尤其涉及了一种三维FFT计算装置,可用于仿真动态海面电磁散射时在空间上的X和Y方向以及时间T三个维度上的回波变化情况。
技术介绍
在使用统计模型仿真动态海面电磁散射时需要考虑空间上的X和Y方向以及时间T三个维度上的回波变化情况。随着需要仿真的海面尺寸变大,直接按照公式求和的方法耗时长,无法快速计算结果。但是借助公式与离散傅里叶变换公式格式的相似性,可以使用快速傅里叶变换快速算法来加速计算。离散傅里叶变换在理论上具有重要意义,但是由于计算量大,无法进入实际应用阶段。随着计算机技术发展,库利-图基快速傅里叶变换算法的出现使得各种快速傅里叶变换算法开始出现。FFT算法使得运算量从O(N2)降为O(Nlog2N)次。三维快速傅里叶变换是对三维数据进行计算。对于N*N*N大小的三维数据,计算输出结果也为N*N*N,由计算复杂度可以看出,使用快速算法能够大量降低运算时间。物理仿真一般通过CPU或者GPU实现,但是资源不足会导致计算时间长、效率慢,资源充足的又有重量大、不便携带的问题。出于便携性因素以及计算效率的考量,利用FPGA实现FFT是一个可行的方向,也为动态海面散射仿真奠定基础。相比于专用集成电路的高成本和不可修改的问题,FPGA有可编程、灵活的特性。近些年来,FPGA技术发展迅速。一方面,工艺和结构的改进,使得FPGA芯片包含的资源提高,可以部署更加复杂的算法。另一方面,随着高层次编程工具的成熟,大大提高FPGA的设计效率,使得在更短周期内开发复杂的数字系统成为可能。现有利用FPGA实现FFT主要是针对一维FFT和二维FFT,如申请号为201610186675.9的名称为基于FPGA实现65536点FFT的装置和方法的专利,其采用大位宽的数据实现并行数据,加快输入输出,加快了一维长序列的数据计算。申请号为201910159208.0的名为一种基于FPGA的二维FFT加速器,采用外部存储器来缓存中间数据,分别对行、列数据进行计算。但是上述专利的缺点是只能对一维和二维数据进行计算,不能计算高维数据。而使用统计方法仿真动态海面电磁散射需要对三个维度的数据进行计算,现有方法不能计算三维数据,无法满足实际需求。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提供一种基于FPGA的三维FFT计算装置,以实现在仿真动态海面电磁散射需要对三个维度的数据计算,满足实际需求。实现本专利技术目的计数关键是在FPGA内部储存资源有限的情况,使用外部存储器,解决由于缓存数据量大而导致的FPGA内部资源不足的问题,以计算出三个维度的数据,该装置包括一维FFT计算器、具有内部数据缓冲区的二维FFT计算器及使用FPGA内部块RAM构成的数据缓冲区,其特征在于,还包括:外部存储器,用于缓存由二维FFT计算器计算得到的结果;三维FFT计算器,用于根据外部存储器缓存的二维FFT的计算结果,计算第三个维度数据的FFT,得到三维FFT计算结果;数据传输控制模块,用于生成地址信息,以控制计算二维FFT得到的中间结果通过AXI4总线缓存到外部存储器,并控制FPGA从外部存储器按照页的顺序读取数据。进一步,所述数据传输控制模块,包括:复数储存子模块,用于对单精度浮点型复数采用连续存储的方式,把复数的实部和虚部两部分组成一个在地址上连续的数据;二维输入数据缓存子模块,用于对大小为N*N*N的一维输入数据,每次先读取长度为N*N的数据,再按照列-行的顺序缓存到FPGA内部块RAM中,生成一个二维N*N数据矩阵;二维FFT计算结果缓存子模块,用于生成*(col+row*N+(n-1)*N*N)地址,以控制二维FFT计算结果按照各自的地址缓存到外部存储器,其中N为各个维度的数据长度,row为从0到(N-1)间隔为1变换的整数,col为从0到(N-1)间隔为1变换的整数,n是用于计数二维FFT计算次数的从1到N间隔为1变换的整数;外部数据读取子模块,用于生成每组数据的首地址*(page*N*N),以控制FPGA从外部储存器读取首地址及其后长度为(N-1)连续地址上的数据序列,其中,page为从0到(N*N-1)间隔为1变换的整数;输出子模块,用于控制三维FFT的结果通过AXI4总线输出。本专利技术具有如下优点:1.本专利技术由于采用外部储存器缓存计算得到的中间数据,解决了由于FPGA内部存储资源有限导致的无法计算大尺寸三维FFT的情况,满足实际需求;2.本专利技术由于采用单精度浮点数进行计算,解决了传统方法在FPGA上采用定点数计算FFT造成的数据截位误差;3.本专利技术二维FFT计算过程中,采用使用双端口块RAM原位缓存的方法,解决了现有二维FFT计算过程中,数据需要进行两次转置操作造成的延时;4.本专利技术由于采用连续储存的方式储存复数,一次即可完成对复数的读写操作,解决了复数实部和虚部分开储存,每次读写需要分开进行造成的资源消耗和延时。仿真结果表明,本专利技术不仅解决了在FPGA实现三维FFT计算的问题,而且计算精度与现有Matlab内置fftn函数计算结果对比精度相当,可满足实际需求。附图说明图1是本专利技术计算装置的结构图;图2是本专利技术中的数据传输控制模块的结构图;图3是用图1进行三维FFT计算的流程图;图4是复数数据在外部储存器中连续储存的示意图;图5是外部储存器中数据空间的位置示意图;图6是二维FFT计算方向示意图;图7是三维FFT计算方向示意图;图8是本专利技术计算结果与Matlab结算结果的对比图。具体实施方式以下结合附图,对本专利技术实施例和效果作进一步描述,参照图1,本专利技术基于FPGA的三维FFT计算装置,包括具有内部数据缓冲区的二维FFT计算器、使用FPGA内块RAM构成的数据缓冲区、外部存储器、三维FFT计算器和数据传输控制模块。上述各部分的连接关系是:FPGA内部数据缓冲区通过AXI4总线与外部存储器相连,并通过数据传输控制模块控制,把缓存完成的数据传输到二维FFT计算器的输入端;二维FFT计算器输出端通过AXI4总线与外部存储器连接,并通过数据传输控制模块控制将二维FFT计算结果缓存到外部存储器;三维FFT计算器的输入端和输出端都通过AXI4总线与外部存储器连接,并通过数据传输控制模块控制数据读取以及计算结果输出。所述一维FFT计算器,采用按时间抽取的基-2FFT算法进行计算,其计算过程如下:步骤1,对于长度为N的序列X(n),且满足N=2M,M是自然数,首先按照n的奇偶分为两个N/2的子序列,然后对两个子序列同样按照r的奇偶分为两个长度N/4的子序列,经过M次分解后完成输入序列的数据重排,重排后的序列为Xr(n);步骤2,根据序列X(n)的长度,计算旋转因子:其中:j为虚数单位,N为序列长度,n为从0到N-1递增的整数。步骤3,根据旋本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的三维FFT计算装置,包括一维FFT计算器、具有内部数据缓冲/n区的二维FFT计算器及使用FPGA内部块RAM构成的数据缓冲区,其特征在于,还包括:/n外部存储器,用于缓存由二维FFT计算器计算得到的结果;/n三维FFT计算器,用于根据外部存储器缓存的二维FFT的计算结果,计算第三个维度数据的FFT,得到三维FFT计算结果;/n数据传输控制模块,用于生成地址信息,以控制计算二维FFT得到的中间结果通过AXI4总线缓存到外部存储器,并控制FPGA从外部存储器按照页的顺序读取数据。/n

【技术特征摘要】
1.一种基于FPGA的三维FFT计算装置,包括一维FFT计算器、具有内部数据缓冲
区的二维FFT计算器及使用FPGA内部块RAM构成的数据缓冲区,其特征在于,还包括:
外部存储器,用于缓存由二维FFT计算器计算得到的结果;
三维FFT计算器,用于根据外部存储器缓存的二维FFT的计算结果,计算第三个维度数据的FFT,得到三维FFT计算结果;
数据传输控制模块,用于生成地址信息,以控制计算二维FFT得到的中间结果通过AXI4总线缓存到外部存储器,并控制FPGA从外部存储器按照页的顺序读取数据。


2.根据权利要求1所述的方法,其特征在于,所述数据传输控制模块,包括:
复数储存子模块,用于对单精度浮点型复数采用连续存储的方式,把复数的实部和虚部两部分组成一个在地址上连续的数据;
二维输入数据缓存子模块,用于对大小为N*N*N的一维输入数据,每次先读取长度为N*N的数据,再按照列-行的顺序缓存到FPGA内部块RAM中,生成一个二维N*N数据矩阵;
二维FFT计算结果缓存子模块,用于生成*(col+row*N+(n-1)*N*N)地址,以控制二维FFT计算结果按照各自的地址缓存到外部存储器,其中N为各个维度的数据长度,row为从0到(N-1)间隔为1变换的整数,col为从0到(N-1)间隔为1变换的整数,n是用于计数二维FFT计算次数的从1...

【专利技术属性】
技术研发人员:张民张树豪胡浩魏鹏博姚宏达
申请(专利权)人:西安电子科技大学北京控制与电子技术研究所
类型:发明
国别省市:陕西;61

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

1