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

一种低存储资源开销的二维FFT结构

文献发布时间:2023-06-19 11:35:49


一种低存储资源开销的二维FFT结构

技术领域

本发明属于信号处理领域,特别涉及一种低存储开销二维FFT(Fast FourierTransform,FFT)技术。

背景技术

快速傅里叶变换(Fast Fourier Transform,FFT)技术是一种高效率的傅里叶变换方法,通过对离散傅里叶变换中复杂的计算步骤进行分解,使得计算时间得到了大量的削减。随着图像传感器的发展,视觉图像作为一种二维的离散信号,其记录与处理变得十分重要。

二维FFT技术能够将图像从空间域转换到频域,使得研究者能够从不同的角度对图像信号进行分析,处理。当图像数据以数据流的方式按行输入时,传统的二维FFT方法,将图像数据放入实部,虚部置0,送入两个一维FFT模块顺序级联组成的二维变换模块。此种方法虽然简单易实现,但往往会消耗较多的计算资源与存储资源。

发明内容

为解决上述技术问题,本发明基于数据拼接的方法,利用FPGA平台功耗低的优势,提出一种在FPGA中实现的低存储资源开销的二维FFT结构。

本发明采用的技术方案为:一种低存储资源开销地二维FFT结构,包括:移位寄存器、第一一维FFT模块、存储器、数据还原模块、第二一维FFT模块;

所述移位寄存器用于存储图像的奇数行数据,并将图像的偶数行数据与存储的奇数行数据拼接为复数序列,第一一维FFT模块对复数序列进行行方向上的一维FFT变换操作,第一一维FFT模块将变换结果存储至存储器中,数据还原模块将存储器存储的变换结果还原为拼接前图像输入的各行的一维FFT变换结果,第二一维FFT模块对拼接前图像输入的各行的一维FFT变换结果进行列方向的一维FFT变换操作,从而得到图像输入的二位FFT计算结果。

当输入图像的奇数行数据时,产生移位寄存器的写使能信号,将奇数行的数据按顺序存入移位寄存器中。

当输入图像的偶数行数据时,产生移位寄存器的读使能信号,将已缓存的奇数行数据读取出来,与输入的偶数行数据拼接,得到拼接后的复数序列。

所述第一一维FFT模块将变换结果存储至存储器中,采用的存储地址格式为:按第一一维FFT模块输出的变换结果,按照对应的行地址与列地址拼接的方式,顺序产生存储地址,所产生的存储地址表示为:{行地址,列地址}。

所述存储器为双口RAM,RAM的双口分别记为A口和B口。

所述数据还原模块具体为:利用时钟上升沿与addr_A{行地址,u},从双口RAM的A口读取数据data_A,利用时钟下降沿与addr_B{行地址,N-1-u},从双口RAM的B口读取数据data_B,从而得到拼接前的图像输入的各行的一维FFT变换结果,u=0,...,N,N表示一次FFT变换的数据个数。

本发明的有益效果:本发明通过数据拼接,相较于传统的二维FFT方法而言数据量直接减半,即减少了数据的计算消耗与存储消耗,故能有效减少算法实现中所消耗的计算功耗与存储器资源。

附图说明

图1是本发明方法的整体流程图。

图2是本发明中双口RAM的读取与数据恢复时序图。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

本实例采用分辨率为64*64像素的图像作为输入。本发明具体涉及在现场可编程门阵列(Field Programmable Gate Array,FPGA)中实现的一种低存储开销二维FFT技术的实现方法,本发明的二维FFT结构实现流程图如图1所示,包括以下步骤:

步骤一:读取图像,使其按行顺序输入。定义一个深度为64的移位寄存器,当奇数行数据x

步骤二:当图像偶数行数据x

所述拼接方法中,复数序列z[n]的组成方式为:

z[n]=x

式中j为虚部符号。

步骤三:将复数序列z[n]送入第一个一维FFT模块,得到其复数变换Z[u],1≤u≤64,当第一个一维FFT模块结果开始输出时,按数据对应的行地址与列地址拼接的方式,顺序产生存储地址,所产生的存储地址可表示为:{行地址,列地址};因进行拼接后数据行数减半,故将结果存入一个深度为64*32=2048的双口RAM中。

所述z[n]到Z[u]的傅里叶变换方式为:

其中,N为一次FFT变换的数据个数,此处N=64。e为自然指数。

步骤四:按列产生数据索引地址;具体的,按照图2的方式:利用时钟clk_p的上升沿与地址addr_A(其中addr_A由{行地址,u}拼接而成,u=0,...,63),从双口RAM的A口读取行变换Z数据data_A,利用时钟下降沿(反相时钟clk_n)与行中对应的地址addr_B(其中addr_B由{行地址,N-1-u}拼接而成,N=64),从双口RAM的B口读取数据data_B,可将数据还原为奇偶拼接之前X的变换结果data_recover。

所述数据还原方式,以第1行数据与第2行数据举例:

对于x

步骤五:将列索引的数据送入第二个一维FFT模块,最终得到原图的二维FFT的计算结果。

相较于传统的二维FFT计算方法,本发明方法在行变换后的数据缓存阶段将所需的存储资源减半,由于采用双倍的数据读取率,使得工作时间相较于原方法并未增加。最终在FPGA中实现一种低存储资源开销的二维FFT结构。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

相关技术
  • 一种低存储资源开销的二维FFT结构
  • 一种低存储器开销的混合基FFT处理器及其方法
技术分类

06120112984385