一种二维FFT的快速处理方法与流程

专利检索2022-05-11  15


一种二维fft的快速处理方法
技术领域
1.本发明涉及数据处理领域,具体涉及一种二维fft的快速处理方法。


背景技术:

2.现有的雷达数据或其他数据在进行二维fft处理过程为:先对ram中的ad原始数据依次进行dma读操作、fft计算和dma写操作后,把一维计算结果存到ram;再对ram中的一维fft计算结果依次进行dma读操作、fft计算和dma写操作后,把二维计算结果存到ram。该处理方法存在以下问题:1、dma读写操作与fft处理串行执行,运算效率低、无法满足实时性的要求;2、dma虽可支持双通道,但若同时进行读写操作,会带来ram随机读写问题,特别是dram问题异常突出,导致代码执行效率低、无法满足实时性的要求;3、在fft处理过程中cpu被本线程长时间占用,导致其它线程无法正常调度;4、没有充分利用硬件计算资源,cpu可能需要较高的主频才能满足应用需求,导致成本下降困难。
3.鉴于以上问题,本发明人遂提出了一种fft快速处理方法。


技术实现要素:

4.本发明的目的在于提供一种二维fft的快速处理方法,以提高fft的运算效率。
5.为了实现上述目的,本发明采用的技术方案是:一种二维fft的快速处理方法,其基于处理系统实现,所述处理系统包括fft计算单元、缓存单元、ram单元和dma单元;所述fft计算单元通过cpu和硬件加速器ffta进行fft计算,所述fft计算单元包括fft计算单元f1、fft计算单元f2、fft计算单元f3、fft计算单元f4;所述缓存单元包括缓存单元a1、缓存单元a2、缓存单元a3、缓存单元a4、缓存单元b1、缓存单元b2、缓存单元b3、缓存单元b4;所述ram单元用于存储要进行fft计算的数据和完成了fft计算的数据;所述dma单元用于将ram中的数据读取存入缓存单元a1、缓存单元a2、缓存单元a3、缓存单元a4中,或者将缓存单元b1、缓存单元b2、缓存单元b3、缓存单元b4中的数据写入ram单元中;所述处理方法包括初始读取与计算、循环读取与计算、结束计算与写入;所述初始读取与计算为:(1)启动dma单元,读取ram单元中要运算的数据,放入缓存单元a1和缓存单元a2中;(2)fft计算单元f1利用cpu和硬件加速器ffta对缓存单元a1中的数据进行fft计算,计算结果存入缓存单元b1;所述循环读写与计算为:(1)fft计算单元f2利用cpu和硬件加速器ffta对缓存单元a2中的数据进行fft计
算,计算结果存入缓存单元b2;同时,启动dma单元,读取ram单元中要运算的数据,放入缓存单元a3和缓存单元a4中;(2)fft计算单元f3利用cpu和硬件加速器ffta对缓存单元a3中的数据进行fft计算,计算结果存入缓存单元b3;同时,启动dma单元,将缓存单元b1和缓存单元b2中的数据写入ram中;(3)fft计算单元f4利用cpu和硬件加速器ffta对缓存单元a4中的数据进行fft计算,计算结果存入缓存单元b4;同时,启动dma单元,读取ram单元中要运算的数据,放入缓存单元a1和缓存单元a2中;(4)fft计算单元f1利用cpu和硬件加速器ffta对缓存单元a1中的数据进行fft计算,计算结果存入缓存单元b1;同时,启动dma单元,将缓存单元b3和缓存单元b4中的数据写入ram中;(5)循环以上进程,直至ram所述需要进行fft计算的数据均已被读取;所述结束计算与写入为:(1)fft计算单元f4利用cpu和硬件加速器ffta对缓存单元a4中的数据进行fft计算,计算结果存入缓存单元b4;(2)启动dma单元,将缓存单元b3和缓存单元b4中的数据写入ram中。
6.所述cpu设有busy标志,当fft计算单元进行计算时,busy标志为1。
7.采用上述方案后,本发明具有以下有益效果:一、本发明利用dma单元、硬件加速器ffta、cpu分节拍执行,使得ram的读写操作能够与fft计算并行执行,提高了运算效率,系统实时性好。
8.二、本发明通过采用流水线和乒乓操作,使dma单元对ram的读写操作分开,避免ram单元特别是dram随机读写导致效率低的问题。本发明在数据处理过程中,能够及时退出和释放cpu资源,提高cpu的应用灵活性。
附图说明
9.图1为本发明的原理框图;图2为本发明的方法流程图。
具体实施方式
10.如图1所示,本发明揭示了一种二维fft的快速处理系统,包括fft计算单元、缓存单元、ram单元和dma单元(图中未示出)。
11.其中,fft计算单元通过cpu和硬件加速器ffta进行fft计算,所述fft计算单元包括fft计算单元f1、fft计算单元f2、fft计算单元f3、fft计算单元f4。缓存单元包括缓存单元a1、缓存单元a2、缓存单元a3、缓存单元a4、缓存单元b1、缓存单元b2、缓存单元b3、缓存单元b4。ram单元用于存储要进行fft计算的数据和完成了fft计算的数据。所述dma单元用于将ram中的数据读取存入缓存单元a1、缓存单元a2、缓存单元a3、缓存单元a4中,或者将缓存单元b1、缓存单元b2、缓存单元b3、缓存单元b4中的数据写入ram单元中。
12.继续参照图1所示,基于以上二维fft的快速处理系统,本发明还揭示了一种二维fft的快速处理方法,其通过dma单元读取ram单元中的原始数据,依次读取数据存入缓存单
元a1、缓存单元a2、缓存单元a3、缓存单元a4,并通过fft计算单元f1、fft计算单元f2、fft计算单元f3、fft计算单元f4依次计算得到一维fft计算结果,并存入缓存单元b1、缓存单元b2、缓存单元b3、缓存单元b4,再通过dma单元写入ram单元中,即可完成第一维fft计算。与第一维fft计算类似,再通过dma单元读取ram单元中的第一维fft计算结果数据,依次读取数据存入缓存单元a1、缓存单元a2、缓存单元a3、缓存单元a4,通过fft计算单元f1、fft计算单元f2、fft计算单元f3、fft计算单元f4依次计算得到二维fft计算结果数据,并存入fft计算单元b1、fft计算单元b2、fft计算单元b3、fft计算单元b4,再通过dma单元写入ram单元,即可完成第二维fft计算。
13.具体地,本发明的快速处理方法包括操作流程包括初始读取与计算、循环读写与计算、结束计算与写入三大块,如图2所示。
14.一、初始读取与计算:(1)启动dma单元,读取ram单元中要运算的数据,放入缓存单元a1和缓存单元a2中;(2)fft计算单元f1利用cpu和硬件加速器ffta对缓存单元a1中的数据进行fft计算,计算结果存入缓存单元b1;二、循环读写与计算:(1)fft计算单元f2利用cpu和硬件加速器ffta对缓存单元a2中的数据进行fft计算,计算结果存入缓存单元b2;同时,启动dma单元,读取ram单元中要运算的数据,放入缓存单元a3和缓存单元a4中;(2)fft计算单元f3利用cpu和硬件加速器ffta对缓存单元a3中的数据进行fft计算,计算结果存入缓存单元b3;同时,启动dma单元,将缓存单元b1和缓存单元b2中的数据写入ram中;(3)fft计算单元f4利用cpu和硬件加速器ffta对缓存单元a4中的数据进行fft计算,计算结果存入缓存单元b4;同时,启动dma单元,读取ram单元中要运算的数据,放入缓存单元a1和缓存单元a2中;(4)fft计算单元f1利用cpu和硬件加速器ffta对缓存单元a1中的数据进行fft计算,计算结果存入缓存单元b1;同时,启动dma单元,将缓存单元b3和缓存单元b4中的数据写入ram中;(5)循环以上进程,直至ram所述需要进行fft计算的数据均已被读取;三、结束计算与写入为:(1)fft计算单元f4利用cpu和硬件加速器ffta对缓存单元a4中的数据进行fft计算,计算结果存入缓存单元b4;(2)启动dma单元,将缓存单元b3和缓存单元b4中的数据写入ram中。
15.本发明的关键在于,第一,本发明利用dma单元、硬件加速器ffta、cpu分节拍执行,使得ram的读写操作能够与fft计算并行执行,提高了运算效率,系统实时性好。第二,本发明通过采用流水线和乒乓操作,使dma单元对ram的读写操作分开,避免ram单元特别是dram随机读写导致效率低的问题。第三,本发明的数据处理流程占用了一个线程,该线程在循环过程中可短暂退出,以响应其它线程的任务请求。
16.在上述基础上,cpu设有busy标志,当fft计算单元进行计算时,busy标志为1。不同
线程可同时请求cpu资源,系统灵活性好,也实现了对硬件资源的最大化利用,可进一步降低成本、提升性能,提高产品竞争力。
17.以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
转载请注明原文地址:https://win.8miu.com/read-1058706.html

最新回复(0)