CN105718424B - 一种并行快速傅立叶变换处理方法 - Google Patents
一种并行快速傅立叶变换处理方法 Download PDFInfo
- Publication number
- CN105718424B CN105718424B CN201610052233.5A CN201610052233A CN105718424B CN 105718424 B CN105718424 B CN 105718424B CN 201610052233 A CN201610052233 A CN 201610052233A CN 105718424 B CN105718424 B CN 105718424B
- Authority
- CN
- China
- Prior art keywords
- data
- parallel
- serial
- fft
- radix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 230000015654 memory Effects 0.000 claims abstract description 80
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims description 78
- 238000006243 chemical reaction Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 15
- 238000011065 in-situ storage Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 241000255777 Lepidoptera Species 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种并行快速傅立叶变换处理方法,该方法将点数为N=rS的数据序列x(n)划分为vr个二级数据块,然后采用基r FFT计算得到每个二级数据块中的个数据的FFT结果,其中:v=rZ,r和S为任意整数,Z=0、1、…或S‑2,因此本发明的数据点数N具有更多的取值,可以在这些取值中选择补零最少的方案,从而减少对存储空间和计算时间的占用;而且本发明采用多蝶形并行计算,且并行蝶形计算单元的个数v=rZ,因此本发明可以根据硬件资源的配置来选择并行度,具有较大的灵活性。
Description
技术领域
本发明涉及FFT处理器设计技术领域,特别涉及一种并行快速傅立叶变换处理方法。
背景技术
快速傅立叶变换是通信、雷达***中数字信号处理过程的关键组成,用来实现数字信号在时域和频域之间的变换。它在实际应用中能够实现诸如频谱分析、数字滤波、相关处理等功能。
当前,多蝶形并行计算快速傅立叶变换基本采用原位存储下的基2、基4结构实现,主要包括存储器访问地址生成、无冲突数据交换、蝶形计算等步骤。无冲突数据交换过程中,如果采用加入额外缓存的方法,会使得缓存的占用量随着点数的增加而增加,同时大量缓存的读写操作会增加整个计算的时间。目前多蝶形并行计算快速傅立叶变换中,多采用存储器无冲突访问地址生成模块,由此抵消掉蝶形计算前数据访问过程中产生的冲突,在无冲突访问存储器的条件下进行多蝶形并行计算。
北京理工大学CN101504638号专利公开了一种可变点数流水线FFT处理器,该发明是一种可变点数流水线FFT处理器,包括第一1024点可变FFT处理模块、旋转因子处理模块、第二1024点可变FFT处理模块、选择与控制模块。上述四个模块与处理器外部的中间数据存储模块共同完成大点数FFT的二维处理。中兴通讯股份有限公司CN101847986A号专利公开了一种实现FFT/IFFT变换的电路及方法,方法为:确定迭代次数、第一和第二RAM的深度、ROM存储器的深度;将待变换的输入数据的前和后半部分分别存入第二和第一RAM;进行迭代蝶形运算:第首次迭代中,读取第一和第二RAM时采用倒位序读取,偶数次蝶形运算结果写入第一RAM,奇数次蝶形运算结果写入第二RAM;在其他迭代中,采用正常位序读取第一和第二RAM,写回RAM的方式与第一次相同;最后一次迭代采用正常顺序来访问存储器。
上述方法主要存在以下问题:
(1)基数的单一性影响了实际应用中傅里叶变换点数的选择
现有技术中的快速傅里叶变换在基2、基4相对应的点数选择时,最多需要补足一倍的零以此来达到长度为2的幂次方的条件。这就使得在计算过程中增加一倍的存储空间和一倍以上的计算时间。
(2)基数的单一性影响了实际应用中蝶形计算单元并行度的选择
现有技术中,由于基数是2的幂次方,蝶形计算单元的并行度也要是2的幂次方才能达到计算效率最高。而在实际应用中硬件资源可能达不到这样的要求,这种情况下采用降低并行度满足设计要求则会显著降低***计算的性能。
发明内容
本发明的目的在于克服现有技术的不足,提供一种并行快速傅立叶变换处理器及处理方法,可以实现。
本发明的上述目的通过以下方案实现:
一种并行快速傅立叶变换处理方法,包括如下步骤:
(1)、对接收到的数据序列x(n)进行第一级数据分组,即将N个数据划分为v个一级数据块,每个所述一级数据块包括个数据;其中,第n2个一级数据块中第n1个数据为x′(n1,n2)=x(n1v+n2),n2=0、1、…、v-1;N=rS,v=rZ,Z=0、1、…或S-2,S和r为整数;
(2)、对步骤(1)划分的各一级数据块进行第二级数据分组,即将每个一级数据块划分为r个二级数据块,每个所述二级数据块包括个数据;其中,第n2个一级数据块划分的第n'2个二级数据块中的第n'1个数据x″(n'1,n'2,n2)=x′(n'1r+n'2,n2),n'2=0、1、…、r-1,n2=0、1、…、v-1;
(3)、对每个二级数据块中的个数据进行点FFT计算;其中第n2个一级数据块划分的第n'2个二级数据块中的个数据FFT计算结果为其中,n'2=0、1、…、r-1,n2=0、1、…、v-1,
(4)、将每个一级数据块中的r个二级数据块的FFT计算结果进行合并,得到每个一级数据块的FFT计算结果;其中,第n2个一级数据块中的个数据的FFT计算结果为其中,n2=0、1、…、v-1,
(5)、将v个一级数据块的FFT计算结果进行合并,得到数据序列x(n)的N点FFT计算结果其中,k=0、1、…、N-1,WN=e-j2π/N。
上述的并行快速傅立叶变换处理方法,在步骤(2)中,采用vr个点的双口存储器存放vr个二级数据块的数据;所述vr个双口存储器分为v个存储器组,对应于v个一级数据块;每个所述存储器组中包括r个双口存储器,对应于1个一级数据块中的r个二级数据块;其中采用一个S位r进制计数器得到序列x(n)中每个数据的存储地址,即确定序列x(n)中第n个数据保存在第Group_Id(n)个存储器组中的第Ram_Id(n)个存储器中的存储地址序号Add_ID(n),n=0、1、…、N-1,具体实现方法如下:
所述计数器的计数值n的r进制数值为(aS-1aS-2…aZ+1aZaZ-1…a1a0)r,其中a0~aS-1为所述r进制数值第1位~第S位的数字,所述数字的取值范围为0~r-1,则存储器组序号Group_Id(n)的r进制数值为(aZ-1…a1a0)r,存储器序号Ram_Id(n)的r进制数值为(aZ)r,存储地址序号Add_ID(n)的r进制数值为(aS-1aS-2…aZ+1)r。
上述的并行快速傅立叶变换处理方法,在步骤(3)中,采用基r FFT计算得到每个二级数据块中的个数据的FFT结果;在步骤(4)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并;在步骤(5)中采用基v FFT计算对v个一级数据块的FFT计算结果进行合并。
上述的并行快速傅立叶变换处理方法,在步骤(3)中,采用v个基r蝶形单元对vr个二级数据块进行基r FFT计算,每个一级数据块中的r个二级数据块通过时分复用***共用1个基r蝶形计算单元;所述时分复用***包括r个串并转换模块、第一级选通控制单元、基r蝶形计算单元、第二级选通控制单元和r个并串转换模块,其中:
r个串并转换模块:与一个一级数据块中的r个二级数据块一一对应;分别从r个二级数据块的存储器中读取数据,得到r路串行数据,其中每路串行数据包括个数据点;然后每个串并转换模块对相应的串行数据进行串并转换,将串行的个数据点转换为r路并行数据,每路并行数据包括个数据点;
第一级选通控制单元:对r个串并转换模块输出的并行数据进行选通操作,每次选通其中1个串并转换模块输出的r路并行数据,然后将所述r路并行数据输出到基r蝶形计算单元;
基r蝶形计算单元:接收r路并行数据进行基r FFT计算,输出r路并行计算结果到第二级通道选通控制单元;
第二级选通控制单元:在r个并串转换模块之间进行选通,将接收到的r路并行FFT计算结果输出到其中1个并串转换模块,选通的并串转换模块序号与第一级选通控制单元选通的串并转换模块序号一致;
r个并串转换模块:与一个一级数据块中的r个二级数据块一一对应;经第二级选通控制单元选通后的并串转换模块,接收r路并行FFT计算结果,进行并串变换1路串行数据,将所述串行数据保存在对应的二级数据块的存储器内,存储位置与串并转换模块读取数据的位置一致,即实现原位存储。
本发明与现有技术相比,具有以下优点:
(1)、在现有技术中限定FFT变换的数据点数N为2的幂次方,而本发明采用基r快速傅立叶变换,进行FFT变换的数据点数N=rS,其中r和S为任意整数,因此本发明的数据点数N具有更多的取值,可以在这些取值中选择补零最少的方案,从而减少对存储空间和计算时间的占用;
(2)、本发明采用多蝶形并行计算,且并行蝶形计算单元的个数v=rz,其中z=0、1、…、S-2,r和S为任意整数,因此本发明可以根据硬件资源的配置来选择并行度,具有较大的灵活性;
(3)、本发明在进行N=rS点FFT变换时,采用v=rz个并行蝶形计算单元进行计算,整个计算周期为rS-z-1(S-z-r)+2r(S-z-1)。
附图说明
图1为本发明的并行快速傅立叶变换处理方法流程图;
图2为本发明无冲突访问地址产生示意图;
图3为基r蝶形计算单元对单个双口存储器内数据进行处理的时序图;
图4为时分复用基r蝶形计算单元对多个双口存储器内数据进行处理的时序图;
图5为本发明的基r蝶形计算单元时分复用***的原理框图。
图6a为本发明中r个存储器时分复用1个基r蝶形计算单元进行r组点FFT计算时的数据读取和存储示意图;
图6b为本发明中r个存储器时分复用1个基r蝶形计算单元进行r组点FFT计算结果合并时的数据读取和存储示意图;
图6c为本发明中v个存储器组时分复用1个基v蝶形计算单元进行v组点FFT计算结果合并时的数据读取和存储示意图。
具体实施方式
下面结合附图和具体实例对本发明作进一步详细的描述:
(一)、并行FFT计算的理论推导
1.1N点FFT的分解过程
对接收数据序列x(n)进行N点FFT计算得到X(k),计算公式如下所示:
其中,WN=e-j2π/N,k=0、1、…、N-1,n=0、1、…、N-1。
定义v为能被N整除的正整数,则n和k可分解为:
其中,n2=0、1、…、v-1,k2=0、1、…、v-1。式(2)将在[0,N-1]区间内的一维向量n、k映射到[0,v-1]×[0,(N/v)-1]的二维向量(n1,n2)和(k1,k2),则式(1)可重写为:
其中,X'(k1,n2)=FFT[x(n1,n2),(N/v)]。
式(3)表明一个N点FFT可以分解为v点FFT和N/v点FFT。同样,N/v点FFT可以进一步分解为更小点数的FFT,定义r为能被N整除的正整数,n1和k1可分解为:
其中,n'2=0、1、…、r-1,k'2=0、1、…、r-1。式(4)将在区间内的一维向量n1和k1映射为[0,r-1]×[0,N/(vr)-1]的二维向量。
按照式(4)的分解公式,将X'(k1,n2)整理如下:
其中,X”(k'1,n'2,n2)=FFT[x(n'1,n'2,n2),N/(vr)]。
1.2N点FFT的并行计算过程
根据以上推导的N点FFT的分解过程,本发明采用如图1所示的并行快速傅立叶变换处理方法流程,对输入数据序列x(n)进行N点FFT计算得到X(k):
(b1)、对接收到的数据序列x(n)进行第一级数据分组,即将N个数据划分为v个一级数据块,每个一级数据块包括个数据;其中,第n2个一级数据块中第n1个数据x′(n1,n2)=x(n1v+n2),n2=0、1、…、v-1;N=rS,v=rZ,Z=0、1、…、S-2,S和r为整数;
(b2)、对步骤(b1)划分的各一级数据进行第二级数据分组,即将每个一级数据块划分为r个二级数据块,每个二级数据块包括个数据;其中,第n2个一级数据块划分的第n'2个二级数据块中的第n'1个数据x″(n'1,n'2,n2)=x′(n'1r+n'2,n2),n'2=0、1、…、r-1,n2=0、1、…、v-1;
(b3)、对每个二级数据块中的个数据进行点FFT计算;其中第n2个一级数据块划分的第n'2个二级数据块中的个数据FFT计算结果为其中,n'2=0、1、…、r-1,n2=0、1、…、v-1,
(b4)、将每个一级数据块中的r个二级数据块的FFT计算结果进行合并,得到每个一级数据块的FFT计算结果;其中,第n2个一级数据块中的个数据的FFT计算结果为其中,n2=0、1、…、v-1,
(b5)、将v个一级数据块的FFT计算结果进行合并,得到数据序列x(n)的N点FFT计算结果其中,k=0、1、…、N-1,WN=e-j2π/N。
在以上处理过程中,步骤(b3)采用基r FFT计算得到每个二级数据块中的个数据的FFT结果。在步骤(b4)~(b5)中,由X”(k'1,n'2,n2)得到X'(k1,n2)、再由X'(k1,n2)得到X(k),这包括一级v个点基r FFT和一级N点基v FFT,也就是说在步骤(b4)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并,在步骤(b5)中采用基v FFT计算对v个一级数据块的FFT计算结果进行合并。
(二)、并行FFT计算结构设计
按照以上所述的步骤(b1)和(b2),将点数为N=rS(S为整数)的数据序列x(n)划分为vr个二级数据块,然后可以采用基r FFT计算得到每个二级数据块中的个数据的FFT结果。由于以上所述的vr个二级数据块之间彼此独立,因此各二级数据块进行并行FFT计算,从而提高序列x(n)的N=rS点FFT计算速度。而且本发明提出了一种基r蝶形单元时分复用方法,可以实现1个一级数据块内的r个二级数据块时分复用1个基r蝶形单元,实现r个二级数据块的FFT计算,因此整个***仅采用v个基r蝶形单元就可以实现vr个二级数据块的FFT并行计算,然后再通过一级基r和一级基v FFT即可得到N=rS点数据的FFT计算结果。
2.1、输入数据存储分配
本发明采用vr个点的双口存储器存放步骤(b1)~(b2)划分的vr个二级数据块。其中本发明将该vr个双口存储器分为v个存储器组,这v个存储器组对应于v个一级数据块;每个存储器组中包括r个双口存储器,这r个双口存储器对应于1个一级数据块中的r个二级数据块。
本发明采用一个S位r进制计数器得到序列x(n)中每个数据的存储地址,即确定序列中第n个数据x(n)保存在第Group_Id(n)个存储器组中的第Ram_Id(n)个存储器中的存储地址序号Add_ID(n),n=0、1、…、N-1,具体实现方法如下:
该计数器的计数值n的r进制数值为(aS-1aS-2…aZ+1aZaZ-1…a1a0)r,其中a0~aS-1为所述r进制数值第1位~第S位的数字,所述数字的取值范围为0~r-1,则:存储器组序号Group_Id(n)的r进制数值为(aZ-1…a1a0)r,存储器序号Ram_Id(n)的r进制数值为(aZ)r,存储地址序号Add_ID(n)的r进制数值为(aS-1aS-2…aZ+1)r。
2.2、r个二级数据块的点FFT并行计算
根据上述的输入数据存储分配方法,每个二级数据块独立存放于1个存储器中,每个存储器中的点数据进行独立的FFT计算。以下给出并行FFT计算时,各存储器中数据访问地址的产生方法,以及r个二级数据块时分复用一个基r蝶形单元的方法。
2.2.1、每个存储器的点数据访问地址产生方法
每个存储器中的点数据进行独立的FFT计算,这点数据序列x(n')的FFT定义如下:
以下将时域地址标识n'和频域地址标识k'用M位r进制数表示:
其中,M=S-z-1。根据式(7)对式(6)进行r进制改写,则:
从式(8)可以看出,N'点FFT计算可以分解为M次迭带计算,其中,第m次迭代公式为:
其中,m=1,2,…,M,旋转因子的相位项从式(9)可以看出,在第m次迭代过程中,数据访问地址分为三个部分:
其中,Addr(m,1)=km-1,
定义旋转因子各不相同的多个连续蝶形单元最大集合为一个蝶形集合,通过式(10)可知Addr(m,0)表示第m级中不重叠的蝶形集合的标识,Addr(m,1)表示每个蝶形单元中操作数的标识,Addr(m,2)则表示每个蝶形集合中所包含的蝶形单元的标识。而对于第m级的数据访问地址可以看成是三者的移位相加组合,因此本发明采用一个M位的r进制计数器C=(cM-1cM-2…c1c0)r,通过对C的截取来生成数据访问地址。
在对每个存储器中的点数据进行FFT计算时,需要对蝶形计算单元内的蝶形集合、蝶形集合内的蝶形单元以及蝶形单元内的r个操作数分别进行顺序处理。这样可以用(cM-1cM-2…cM-m+2cM-m+1)r映射第m级中不重叠的蝶形集合的标识Addr(m,0),(c0)r来映射每个蝶形单元中操作数的标识Addr(m,1),(cM-m-1cM-m-2…c1)r映射每个蝶形集合中所包含的蝶形单元的标识Addr(m,2),则每一级的访问地址和计数值C的关系如式(11)所示,第m级访问地址AcesAddr(m)可以表示如下:
每个存储器中各级FFT计算的数据访问地址生成过程如图2所示。
2.2.2、基r蝶形计算单元计算过程
对单个双口存储器进行N'点FFT计算,基r蝶形计算单元需要完成两部分操作:一是与旋转因子相乘的过程;二是与r点DFT矩阵相乘。前者可以通过从存储器顺序读取数据后经流水复数乘法器完成,后者则可通过寄存器延时来对即时顺序取出的r个操作数并行输入蝶形单元。
整个基r蝶形计算单元的计算过程如下所述:
(A)、按照上一节推导的数据访问地址由存储器的读总线Dataload取出数据,每r个数据代表蝶形单元的r个操作数据,依次标记为Op(i),取出数据的同时和旋转因子相乘,结果标记为Op'(i),其中i=0,1,…,r-1;
(B)、记蝶形单元的r个输入寄存器为Bf_regin(i),输出寄存器为Bf_regout(i),每从总线上取出r个数据后,令Bf_regin(i)=Op'(i),并进行蝶形计算。蝶形单元采用并行流水计算方式,每次计算完成蝶形单元有r-1个空闲时间,计算结果表示为Op”(i),令Bf_regout(i)=Op”(i);
(C)、对Bf_regout(i)中的r个数据依次赋给存储器的写总线Datastore上,完成本次蝶形单元的计算过程。
上述过程的时序图如图3所示,从中可以看出在单个基r FFT计算过程中,蝶形单元每r个时钟周期都会有r-1个处于空闲状态。
2.2.3、时分复用基r蝶形计算单元完成二级数据块FFT计算
在N点FFT计算的步骤(b3)中,需要对vr个二级数据块进行基r FFT计算,如果每个二级数据块都采用1个基r蝶形单元进行FFT计算,则vr个二级数据块需要vr个基r蝶形单元实现并行计算。但是由于基r蝶形单元采用并行流水计算方式,基r蝶形单元对单个数据块进行计算时,每r个时钟周期会有r-1个处于空闲状态,因此可以利用一个蝶形单元对r个N'点数据进行FFT。此时,只需要控制各N'点数据取数的起始时间即可完成蝶形单元的时分复用。将第f(f=0,1,…,r-1)个N'点数据的r个操作数标记为Opf(i)(i=0,1,…,r-1),将存储器总线读取和旋转因子相乘之后的结果记为Opf'(i),依次输入蝶形单元这r个N'点数据的操作数据,蝶形计算结果记为Opf”(i),并根据f的值存入相应的存储器,采用该时分复用方法后的处理时序如图4所示。
因此,本发明为了提高***的资源利用率,采用v个基r蝶形单元对vr个二级数据块进行基r FFT计算,其中每个一级数据块中r个二级数据块通过时分复用***共用1个基r蝶形计算单元。如图5所示,本发明采用的基r蝶形单元时分复用***包括r个串并转换模块、第一级选通控制单元、基r蝶形计算单元、第二级选通控制单元和r个并串转换模块,其中:
r个串并转换模块与一个一级数据块中的r个二级数据块一一对应。这r个串并转换模块分别从r个二级数据块的存储器中读取数据,得到r路串行数据,其中每路串行数据包括个数据点;然后每个串并转换模块对相应的串行数据进行串并转换,将串行的个数据点转换为r路并行数据,每路并行数据包括个数据点。
第一级选通控制单元对r个串并转换模块输出的并行数据进行选通操作,每次选通其中1个串并转换模块输出的r路并行数据,然后将所述r路并行数据输出到基r蝶形计算单元。
基r蝶形计算单元接收经第一级选通控制单元选通的r路并行数据,进行基r FFT计算,输出r路并行计算结果到第二级通道选通控制单元。
第二级选通控制单元在r个并串转换模块之间进行选通,将基r蝶形计算单元输出的r路并行FFT计算结果输出到其中1个并串转换模块,其中,选通的并串转换模块序号与第一级选通控制单元选通的串并转换模块序号一致。
r个并串转换模块与一个一级数据块中的r个二级数据块一一对应。经第二级选通控制单元选通后的并串转换模块,接收r路并行FFT计算结果,进行并串变换1路串行数据,将所述串行数据保存在对应的二级数据块的存储器内,存储位置与串并转换模块读取数据的位置一致,即实现原位存储。
以上时分复用计算过程中,各存储器中的数据读取和存储方式如图6a所示。
2.2.4、时分复用基r蝶形计算单元完成FFT计算结果合并
在步骤(b4)~(b5)中,由X”(k'1,n'2,n2)得到X'(k1,n2)、再由X'(k1,n2)得到X(k),这包括一级v个点基r FFT和一级N点基v FFT,也就是说在步骤(b4)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并,在步骤(b5)中采用基vFFT计算对v个一级数据块的FFT计算结果进行合并。为了提高计算效率,在进行以上FFT计算结果合并时,同样可以采用如图5所示的时分复用***。
其中,在步骤(b3)对每个二级数据块中的个数据进行点FFT计算时,存储器组的处理过程如图6a所示;在步骤(b4)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并时,存储器组的处理过程如图6b所示;在步骤(b5)中采用基rFFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并时,存储器组的处理过程如图6c所示。
实施例:
在本实施例中,采用4个基2蝶形单元实现1024点数据的FFT计算,即:N=1024,r=2,v=4,S=10,Z=2。
按照本发明的处理方法,计算步骤如下:
(1)、输入数据存储分配
在本实施例中,采用8个128点的双口存储器进行输入数据存储。其中,将这8个存储器划分为4个存储器组,每个存储器组包括2个存储器,每个存储器具有128个存储位置。
首先对输入的1024点数据进行顺序编址,则数据x(n)的地址标识n的2进制表示为(n9n8…n1n0)2。其中,第n个数据保存在第Group_Id(n)=(n1n0)个存储器组中的第Ram_Id(n)=(n2)个存储器中,在该存储器中的存储地址为(n9n8…n4n3)2。
按照如上的存储分配方法,1024点数据在8个存储器中的存储情况如表1所示。
表1输入数据在各存储器中的
(2)、无冲突地址访问实现8个128点并行FFT计算
当数据存入相应存储器之后,开始对8个存储器内的数据同时进行128点基2FFT处理。对于128点基2FFT,在7级FFT计算过程中,通过对7位2进制计数器C=(c6c5…c1c0)2的截取生成数据访问地址。各级FFT计算的数据访问地址如表2所示。
采用如图5所示的时分复用***,每2个存储器的数据共用1个基2蝶形计算单元,从而用4个基2蝶形计算单元完成8个128点并行FFT计算,整个计算时间需要924个时钟周期。
表2每个存储器在各级FFT计算中的数据访问地址
(3)、第一级结果合成
根据式(5)对每个存储器组分别进行一级256点基2FFT计算,由于有4个基2蝶形单元,且蝶形的2个操作数据分别存在不同的2个存储器当中,这样同一时刻能够从8个存储器中同时访问8个数据,仅用128个时钟周期就可完成该计算。
(4)、第二级结果合成
对4组256点数据按照公式(3)采用一级基4FFT计算从而得到1024点的FFT结果。此时蝶形单元的操作数据分别属于不同的存储器组,因此可以对4个操作数进行并行访问。因此,完成该计算只需要256个时钟周期。
采用如上处理步骤,并行计算1024点基2FFT共需要1308个时钟周期,相对于与现有技术,可以有效降低计算时间损耗。
以上所述,仅为本发明一个具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (3)
1.一种并行快速傅立叶变换处理方法,其特征在于包括如下步骤:
(1)、对接收到的数据序列x(n)进行第一级数据分组,n=0、1、…、N-1,即将N个数据划分为v个一级数据块,每个所述一级数据块包括个数据;其中,第n2个一级数据块中第n1个数据为x′(n1,n2)=x(n2v+n1),n2=0、1、…、v-1;N=rS,v=rZ,Z=0、1、…、S-2,S和r为整数;
(2)、对步骤(1)划分的各一级数据块进行第二级数据分组,即将每个一级数据块划分为r个二级数据块,每个所述二级数据块包括个数据;其中,第n2个一级数据块划分的第n'2个二级数据块中的第n'1个数据x″(n'1,n'2,n2)=x′(n'2r+n'1,n2),n'2=0、1、…、r-1,n2=0、1、…、v-1;
(3)、对每个二级数据块中的个数据进行点FFT计算;其中第n2个一级数据块划分的第n'2个二级数据块中的个数据FFT计算结果为其中,n'2=0、1、…、r-1,n2=0、1、…、v-1,采用v个基r蝶形单元对vr个二级数据块进行基r FFT计算,每个一级数据块中的r个二级数据块通过时分复用***共用1个基r蝶形计算单元;所述时分复用***包括r个串并转换模块、第一级选通控制单元、基r蝶形计算单元、第二级选通控制单元和r个并串转换模块,其中:
r个串并转换模块:与一个一级数据块中的r个二级数据块一一对应;分别从r个二级数据块的存储器中读取数据,得到r路串行数据,其中每路串行数据包括个数据点;然后每个串并转换模块对相应的串行数据进行串并转换,将串行的个数据点转换为r路并行数据,每路并行数据包括个数据点;
第一级选通控制单元:对r个串并转换模块输出的并行数据进行选通操作,每次选通其中1个串并转换模块输出的r路并行数据,然后将所述r路并行数据输出到基r蝶形计算单元;
基r蝶形计算单元:接收r路并行数据进行基r FFT计算,输出r路并行计算结果到第二级通道选通控制单元;
第二级选通控制单元:在r个并串转换模块之间进行选通,将接收到的r路并行FFT计算结果输出到其中1个并串转换模块,选通的并串转换模块序号与第一级选通控制单元选通的串并转换模块序号一致;
r个并串转换模块:与一个一级数据块中的r个二级数据块一一对应;经第二级选通控制单元选通后的并串转换模块,接收r路并行FFT计算结果,进行并串变换1路串行数据,将所述串行数据保存在对应的二级数据块的存储器内,存储位置与串并转换模块读取数据的位置一致,即实现原位存储;
(4)、将每个一级数据块中的r个二级数据块的FFT计算结果进行合并,得到每个一级数据块的FFT计算结果;其中,第n2个一级数据块中的个数据的FFT计算结果为其中,n2=0、1、…、v-1,
(5)、将v个一级数据块的FFT计算结果进行合并,得到数据序列x(n)的N点FFT计算结果其中,k=0、1、…、N-1,WN=e-j2π/N。
2.根据权利要求1所述的一种并行快速傅立叶变换处理方法,其特征在于:在步骤(2)中,采用vr个点的双口存储器存放vr个二级数据块的数据;所述vr个双口存储器分为v个存储器组,对应于v个一级数据块;每个所述存储器组中包括r个双口存储器,对应于1个一级数据块中的r个二级数据块;其中采用一个S位r进制计数器得到序列x(n)中每个数据的存储地址,即确定序列x(n)中第n个数据保存在第Group_Id(n)个存储器组中的第Ram_Id(n)个存储器中的存储地址序号Add_ID(n),n=0、1、…、N-1,具体实现方法如下:
所述计数器的计数值n的r进制数值为(aS-1aS-2…aZ+1aZaZ-1…a1a0)r,其中a0~aS-1为所述r进制数值第1位~第S位的数字,所述数字的取值范围为0~r-1,则存储器组序号Group_Id(n)的r进制数值为(aZ-1…a1a0)r,存储器序号Ram_Id(n)的r进制数值为(aZ)r,存储地址序号Add_ID(n)的r进制数值为(aS-1aS-2…aZ+1)r。
3.根据权利要求1所述的一种并行快速傅立叶变换处理方法,其特征在于:在步骤(3)中,采用基r FFT计算得到每个二级数据块中的个数据的FFT结果;在步骤(4)中采用基rFFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并;在步骤(5)中采用基v FFT计算对v个一级数据块的FFT计算结果进行合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610052233.5A CN105718424B (zh) | 2016-01-26 | 2016-01-26 | 一种并行快速傅立叶变换处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610052233.5A CN105718424B (zh) | 2016-01-26 | 2016-01-26 | 一种并行快速傅立叶变换处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718424A CN105718424A (zh) | 2016-06-29 |
CN105718424B true CN105718424B (zh) | 2018-11-02 |
Family
ID=56155063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610052233.5A Active CN105718424B (zh) | 2016-01-26 | 2016-01-26 | 一种并行快速傅立叶变换处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718424B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111368250B (zh) * | 2018-12-26 | 2023-08-15 | 北京欣奕华科技有限公司 | 基于傅里叶变换/逆变换的数据处理***、方法及设备 |
CN112149046A (zh) * | 2020-10-16 | 2020-12-29 | 北京理工大学 | 一种基于并行时分复用技术的fft处理器及处理方法 |
CN112511480B (zh) * | 2020-11-10 | 2022-11-01 | 展讯半导体(成都)有限公司 | 二次fft或ifft变换方法及相关产品 |
CN114995765B (zh) * | 2022-06-06 | 2023-11-21 | 南京创芯慧联技术有限公司 | 数据处理方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1823333A (zh) * | 2003-07-18 | 2006-08-23 | 加拿大西格纳斯通信公司 | 重新编码的基-2流水线fft处理器 |
CN101072218A (zh) * | 2007-03-01 | 2007-11-14 | 华为技术有限公司 | 一种fft/ifft成对处理***、方法及其装置与方法 |
CN101154215A (zh) * | 2006-09-27 | 2008-04-02 | 上海杰得微电子有限公司 | 基23频域取样快速傅立叶变换的方法与硬件结构 |
WO2014164298A2 (en) * | 2013-03-13 | 2014-10-09 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4698394B2 (ja) * | 2005-11-25 | 2011-06-08 | パナソニック株式会社 | 高速フーリエ変換回路 |
-
2016
- 2016-01-26 CN CN201610052233.5A patent/CN105718424B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1823333A (zh) * | 2003-07-18 | 2006-08-23 | 加拿大西格纳斯通信公司 | 重新编码的基-2流水线fft处理器 |
CN101154215A (zh) * | 2006-09-27 | 2008-04-02 | 上海杰得微电子有限公司 | 基23频域取样快速傅立叶变换的方法与硬件结构 |
CN101072218A (zh) * | 2007-03-01 | 2007-11-14 | 华为技术有限公司 | 一种fft/ifft成对处理***、方法及其装置与方法 |
WO2014164298A2 (en) * | 2013-03-13 | 2014-10-09 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods |
Non-Patent Citations (5)
Title |
---|
A Pipeline Fast Fourier Transform;HERBERT L. GROGINSKY et al;《IEEE TRANSACTIONS ON COMPUTERS》;19701130;第C-19卷(第11期);第1015-1019页 * |
An Efficient VLSI Architecture for Normal I/O Order Pipleline FFT Design;Yun-Nan Chang et al;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS》;20081231;第55卷(第12期);第1234-1238页 * |
一种基于矢量基2X2的二维FFT高效结构;禹霁阳等;《北京理工大学学报》;20110831;第31卷(第8期);第962-965页及第1004页 * |
一种高性能单精度浮点基 -3蝶形运算单元的设计与实现;禹霁阳等;《仪器仪表学报》;20101231;第31卷(第12期);第2675-2681页 * |
使用特殊复数***的基-6FFT算法;姜建国等;《西安电子科技大学学报(自然科学版)》;20000430;第27卷(第2期);第195-197页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105718424A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718424B (zh) | 一种并行快速傅立叶变换处理方法 | |
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
CN102495721A (zh) | 一种支持fft加速的simd向量处理器 | |
US9176929B2 (en) | Multi-granularity parallel FFT computation device | |
Xing et al. | A novel conflict-free parallel memory access scheme for FFT processors | |
Mohanty et al. | Area–delay–energy efficient vlsi architecture for scalable in-place computation of fft on real data | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
US10339200B2 (en) | System and method for optimizing mixed radix fast fourier transform and inverse fast fourier transform | |
Revanna et al. | A scalable FFT processor architecture for OFDM based communication systems | |
US9098449B2 (en) | FFT accelerator | |
Joshi | FFT architectures: a review | |
Kala et al. | High throughput, low latency, memory optimized 64K point FFT architecture using novel radix-4 butterfly unit | |
CN103034621A (zh) | 基2×k并行fft架构的地址映射方法及*** | |
CN103049716B (zh) | 基于一阶矩的卷积器 | |
US9268744B2 (en) | Parallel bit reversal devices and methods | |
US20080228845A1 (en) | Apparatus for calculating an n-point discrete fourier transform by utilizing cooley-tukey algorithm | |
Takala et al. | Scalable FFT processors and pipelined butterfly units | |
US6704834B1 (en) | Memory with vectorial access | |
Wang et al. | A generator of memory-based, runtime-reconfigurable 2 N 3 M 5 K FFT engines | |
Malashri et al. | Low power and memory efficient FFT architecture using modified CORDIC algorithm | |
Baek et al. | New address generation scheme for memory-based FFT processor using multiple radix-2 butterflies | |
CN112149046A (zh) | 一种基于并行时分复用技术的fft处理器及处理方法 | |
Mamatha et al. | Triple-matrix product-based 2D systolic implementation of discrete Fourier transform | |
Zhang et al. | Small area high speed configurable FFT processor | |
CN103870437A (zh) | 数字信号处理装置及其处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |