[发明专利]一种多粒度并行FFT蝶形计算的方法及相应的装置有效
申请号: | 201110460520.7 | 申请日: | 2011-12-31 |
公开(公告)号: | CN102541813A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 王东琳;汪涛;谢少林;蒿杰;尹磊祖 | 申请(专利权)人: | 中国科学院自动化研究所 |
主分类号: | G06F17/14 | 分类号: | G06F17/14 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 周国城 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 粒度 并行 fft 蝶形 计算 方法 相应 装置 | ||
技术领域
本发明涉及集成电路设计中快速傅立叶变换(FFT)的蝶形计算领域,尤其是一种多粒度并行FFT蝶形计算的方法及相应的装置。
背景技术
信号处理系统经常需要将信号内容在时域和频域进行转换,快速傅立叶变换算法(FFT)可进行时域和频域间的信号转换。相对于其它转换算法来说,快速傅立叶变换算法具有结构统一、计算量少的优点,因此广泛应用于信号处理系统中。
FFT算法输入N个数据,输出N个数据;一般称时域至频域的变换为正向变换,而频域至时域的变换为逆向变换。FFT算法有多种实现方式,但都由库利-图基算法演变而来。对于N个数据点,基2的库利-图基算法包括log2N个计算级。每个计算级输入N个数,输出N个数;前一计算级的输出经过一定的排序后作为后一计算级的输入。第一级输入为原始数据,最后一级输出为FFT计算结果。对于8点长度的FFT计算,其计算流程如图1所示,整个计算过程需要三个计算级103:S0,S1,S2。每个计算级103由N/2个蝶形102组成,蝶形的计算结构如图2所示。每个蝶形输入有两个数据点A和B,以及一个旋转因子W,经过蝶形计算后得到两个计算结果:A+BW和A-BW。每个蝶形计算中,输入数据A和B的序号具有确定的对应关系,该对应关系由蝶形所在的计算级以及输入数据A或B的序号来确定;同时,旋转因子W的值由当前蝶形所在的计算级103、输入数据A或B的序号、FFT数据长度确定。如图1中S0计算级中的第1个数据必定与第0个数据构成一蝶形,并且第0个数据为蝶形输入的A,第1个数据为蝶形输入的B,而W的值为1。而S1计算级中的第1个数据必定与第3个数据构成一蝶形,并且第1个数据为蝶形输入的A,第3个数据为蝶形输入的B,而W的值为1。
计算级之间存在数据相关,后一计算级必须等待前一计算级完成以后才能开始计算。因此,每级计算完成后都需要将结果存放在存储器中,下一级计算从存储器中读取上一级的计算结果作为本级计算的输入。计算级内的蝶形相互独立,蝶形的计算顺序不影响计算结果,但每个蝶形所读取的数据A、B和旋转因子W必须满足内在的对应关系。
在并行FFT计算中,运算部件从多粒度并行存储器中读取多个蝶形所需数据及对应的旋转因子,并行计算多个、多级蝶形,然后将计算结果并行写入存储器,以便进行一下级计算,如图3所示。图中假定数据长度为64,并行粒度为4,即多粒度并行存储器305一次可读写4个数据。此时,两相邻计算级中存在数据相关的4个蝶形303构成一个蝶形组302,两相邻计算级中的蝶形组构成一计算节301。蝶形计算模块从多粒度并行存储器305并行读取一个蝶形组所需数据点和旋转因子,完成一个蝶形组计算后,再将计算结果并行写回多粒度并行存储器305。
在蝶形组302中,每个蝶形的输入A、B、W仍必须满足其内在的对应关系,因此,并行FFT算法中必须考虑计算数据和旋转因子在存储器中的分布,以及每个蝶形组302的读写地址和读写方式,以保证蝶形计算模块每次都能并行读取所需数据和旋转因子。
对于并行FFT算法,目前国内外有一些相关的研究,如专利200910054018.9(基于FPGA实现并行结构FFT处理器的方法),专利201110163600.6(基于并行处理的FFT装置及其方法),专利US6,792,441B2(Parallel MultiProcessing For Fast Fourier Transform With Pipeline Architecture)。该类专利都着重讨论如何将长序列的FFT数据分解成多个短序列的FFT,利用多个处理器并行计算各个短序列的FFT,最后对多个短序列的FFT进行交织计算,得到最终的长序列FFT结果。但是对短序列的FFT运算,存在多级蝶形计算,每级蝶形计算都需要相关的存储器读写操作,占用很大的延时。因此,该类并行蝶形计算方法速度仍受到很大的制约。
发明内容
为了解决上述问题,本发明提出一种使用多个缓冲器装置对输入数据进行多粒度并行FFT蝶形计算的方法及相应的装置。
根据本发明的一方面,提出一种使用多个缓冲器装置对输入数据进行多粒度并行FFT蝶形计算的方法,其中第一和第二缓冲器装置用于缓存并行FFT蝶形组每级蝶形计算所需要的数据,第三缓冲器装置用于缓存并行FFT蝶形组每级蝶形计算所需要的旋转因子,第四缓冲器装置用于缓存经过并行FFT蝶形组计算完成后的结果数据,其特征在于,
N点输入数据分成个计算节,每个计算节中包含个蝶形组,蝶形组是并行蝶形计算的基本单位,其中,表示向上取整,L为并行粒度因子,其决定了并行读取且可独立进行蝶形计算的数据个数为2L;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院自动化研究所,未经中国科学院自动化研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110460520.7/2.html,转载请声明来源钻瓜专利网。