首页 / 专利库 / 数学与统计 / 快速傅立叶变换 / 一种并行快速傅立叶变换处理方法

一种并行快速傅立叶变换处理方法

阅读:785发布:2020-05-11

专利汇可以提供一种并行快速傅立叶变换处理方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种并行快速 傅立叶变换 处理方法,该方法将点数为N=rS的数据序列x(n)划分为vr个二级数据 块 ,然后采用基r FFT计算得到每个二级数据块中的个数据的FFT结果,其中:v=rZ,r和S为任意整数,Z=0、1、…或S‑2,因此本发明的数据点数N具有更多的取值,可以在这些取值中选择补零最少的方案,从而减少对存储空间和计算时间的占用;而且本发明采用多蝶形并行计算,且并行蝶形计算单元的个数v=rZ,因此本发明可以根据 硬件 资源的配置来选择并行度,具有较大的灵活性。,下面是一种并行快速傅立叶变换处理方法专利的具体信息内容。

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)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并;在步骤(5)中采用基v FFT计算对v个一级数据块的FFT计算结果进行合并。

说明书全文

一种并行快速傅立叶变换处理方法

技术领域

[0001] 本发明涉及FFT处理器设计技术领域,特别涉及一种并行快速傅立叶变换处理方法。

背景技术

[0002] 快速傅立叶变换是通信、雷达系统中数字信号处理过程的关键组成,用来实现数字信号在时域和频域之间的变换。它在实际应用中能够实现诸如频谱分析、数字滤波、相关处理等功能。
[0003] 当前,多蝶形并行计算快速傅立叶变换基本采用原位存储下的基2、基4结构实现,主要包括存储器访问地址生成、无冲突数据交换、蝶形计算等步骤。无冲突数据交换过程中,如果采用加入额外缓存的方法,会使得缓存的占用量随着点数的增加而增加,同时大量缓存的读写操作会增加整个计算的时间。目前多蝶形并行计算快速傅立叶变换中,多采用存储器无冲突访问地址生成模,由此抵消掉蝶形计算前数据访问过程中产生的冲突,在无冲突访问存储器的条件下进行多蝶形并行计算。
[0004] 北京理工大学CN101504638号专利公开了一种可变点数流线FFT处理器,该发明是一种可变点数流水线FFT处理器,包括第一1024点可变FFT处理模块、旋转因子处理模块、第二1024点可变FFT处理模块、选择与控制模块。上述四个模块与处理器外部的中间数据存储模块共同完成大点数FFT的二维处理。中兴通讯股份有限公司CN101847986A号专利公开了一种实现FFT/IFFT变换的电路及方法,方法为:确定迭代次数、第一和第二RAM的深度、ROM存储器的深度;将待变换的输入数据的前和后半部分分别存入第二和第一RAM;进行迭代蝶形运算:第首次迭代中,读取第一和第二RAM时采用倒位序读取,偶数次蝶形运算结果写入第一RAM,奇数次蝶形运算结果写入第二RAM;在其他迭代中,采用正常位序读取第一和第二RAM,写回RAM的方式与第一次相同;最后一次迭代采用正常顺序来访问存储器。
[0005] 上述方法主要存在以下问题:
[0006] (1)基数的单一性影响了实际应用中傅里叶变换点数的选择
[0007] 现有技术中的快速傅里叶变换在基2、基4相对应的点数选择时,最多需要补足一倍的零以此来达到长度为2的幂次方的条件。这就使得在计算过程中增加一倍的存储空间和一倍以上的计算时间。
[0008] (2)基数的单一性影响了实际应用中蝶形计算单元并行度的选择
[0009] 现有技术中,由于基数是2的幂次方,蝶形计算单元的并行度也要是2的幂次方才能达到计算效率最高。而在实际应用中硬件资源可能达不到这样的要求,这种情况下采用降低并行度满足设计要求则会显著降低系统计算的性能。

发明内容

[0010] 本发明的目的在于克服现有技术的不足,提供一种并行快速傅立叶变换处理器及处理方法,可以实现。
[0011] 本发明的上述目的通过以下方案实现:
[0012] 一种并行快速傅立叶变换处理方法,包括如下步骤:
[0013] (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为整数;
[0014] (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;
[0015] (3)、对每个二级数据块中的 个数据进行 点FFT计算;其中第n2个一级数据块划分的第n'2个二级数据块中的 个数据FFT计算结果为其中, n'2=0、1、…、r-1,n2=0、1、…、v-1,
[0016] (4)、将每个一级数据块中的r个二级数据块的FFT计算结果进行合并,得到每个一级数据块的FFT计算结果;其中,第n2个一级数据块中的 个数据的FFT计算结果为其中, n2=0、1、…、v-1,
[0017] (5)、将v个一级数据块的FFT计算结果进行合并,得到数据序列x(n)的N点FFT计算结果 其中,k=0、1、…、N-1,WN=e-j2π/N。
[0018] 上述的并行快速傅立叶变换处理方法,在步骤(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,具体实现方法如下:
[0019] 所述计数器的计数值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。
[0020] 上述的并行快速傅立叶变换处理方法,在步骤(3)中,采用基r FFT计算得到每个二级数据块中的 个数据的FFT结果;在步骤(4)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并;在步骤(5)中采用基v FFT计算对v个一级数据块的FFT计算结果进行合并。
[0021] 上述的并行快速傅立叶变换处理方法,在步骤(3)中,采用v个基r蝶形单元对vr个二级数据块进行基r FFT计算,每个一级数据块中的r个二级数据块通过时分复用系统共用1个基r蝶形计算单元;所述时分复用系统包括r个串并转换模块、第一级选通控制单元、基r蝶形计算单元、第二级选通控制单元和r个并串转换模块,其中:
[0022] r个串并转换模块:与一个一级数据块中的r个二级数据块一一对应;分别从r个二级数据块的存储器中读取数据,得到r路串行数据,其中每路串行数据包括 个数据点;然后每个串并转换模块对相应的串行数据进行串并转换,将串行的 个数据点转换为r路并行数据,每路并行数据包括 个数据点;
[0023] 第一级选通控制单元:对r个串并转换模块输出的并行数据进行选通操作,每次选通其中1个串并转换模块输出的r路并行数据,然后将所述r路并行数据输出到基r蝶形计算单元;
[0024] 基r蝶形计算单元:接收r路并行数据进行基r FFT计算,输出r路并行计算结果到第二级通道选通控制单元;
[0025] 第二级选通控制单元:在r个并串转换模块之间进行选通,将接收到的r路并行FFT计算结果输出到其中1个并串转换模块,选通的并串转换模块序号与第一级选通控制单元选通的串并转换模块序号一致;
[0026] r个并串转换模块:与一个一级数据块中的r个二级数据块一一对应;经第二级选通控制单元选通后的并串转换模块,接收r路并行FFT计算结果,进行并串变换1路串行数据,将所述串行数据保存在对应的二级数据块的存储器内,存储位置与串并转换模块读取数据的位置一致,即实现原位存储。
[0027] 本发明与现有技术相比,具有以下优点:
[0028] (1)、在现有技术中限定FFT变换的数据点数N为2的幂次方,而本发明采用基r快速S傅立叶变换,进行FFT变换的数据点数N=r ,其中r和S为任意整数,因此本发明的数据点数N具有更多的取值,可以在这些取值中选择补零最少的方案,从而减少对存储空间和计算时间的占用;
[0029] (2)、本发明采用多蝶形并行计算,且并行蝶形计算单元的个数v=rz,其中z=0、1、…、S-2,r和S为任意整数,因此本发明可以根据硬件资源的配置来选择并行度,具有较大的灵活性;
[0030] (3)、本发明在进行N=rS点FFT变换时,采用v=rz个并行蝶形计算单元进行计算,整个计算周期为rS-z-1(S-z-r)+2r(S-z-1)。附图说明
[0031] 图1为本发明的并行快速傅立叶变换处理方法流程图
[0032] 图2为本发明无冲突访问地址产生示意图;
[0033] 图3为基r蝶形计算单元对单个双口存储器内数据进行处理的时序图;
[0034] 图4为时分复用基r蝶形计算单元对多个双口存储器内数据进行处理的时序图;
[0035] 图5为本发明的基r蝶形计算单元时分复用系统的原理框图
[0036] 图6a为本发明中r个存储器时分复用1个基r蝶形计算单元进行r组 点FFT计算时的数据读取和存储示意图;
[0037] 图6b为本发明中r个存储器时分复用1个基r蝶形计算单元进行r组 点FFT计算结果合并时的数据读取和存储示意图;
[0038] 图6c为本发明中v个存储器组时分复用1个基v蝶形计算单元进行v组 点FFT计算结果合并时的数据读取和存储示意图。

具体实施方式

[0039] 下面结合附图和具体实例对本发明作进一步详细的描述:
[0040] (一)、并行FFT计算的理论推导
[0041] 1.1N点FFT的分解过程
[0042] 对接收数据序列x(n)进行N点FFT计算得到X(k),计算公式如下所示:
[0043]
[0044] 其中,WN=e-j2π/N,k=0、1、…、N-1,n=0、1、…、N-1。
[0045] 定义v为能被N整除的正整数,则n和k可分解为:
[0046]
[0047] 其中, 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)可重写为:
[0048]
[0049] 其中,X'(k1,n2)=FFT[x(n1,n2),(N/v)]。
[0050] 式(3)表明一个N点FFT可以分解为v点FFT和N/v点FFT。同样,N/v点FFT可以进一步分解为更小点数的FFT,定义r为能被N整除的正整数,n1和k1可分解为:
[0051]
[0052] 其中, n'2=0、1、…、r-1, k'2=0、1、…、r-1。式(4)将在 区间内的一维向量n1和k1映射为[0,r-1]×[0,N/(vr)-1]的二维向量。
[0053] 按照式(4)的分解公式,将X'(k1,n2)整理如下:
[0054]
[0055] 其中,X”(k'1,n'2,n2)=FFT[x(n'1,n'2,n2),N/(vr)]。
[0056] 1.2N点FFT的并行计算过程
[0057] 根据以上推导的N点FFT的分解过程,本发明采用如图1所示的并行快速傅立叶变换处理方法流程,对输入数据序列x(n)进行N点FFT计算得到X(k):
[0058] (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为整数;
[0059] (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;
[0060] (b3)、对每个二级数据块中的 个数据进行 点FFT计算;其中第n2个一级数据块划分的第n'2个二级数据块中的 个数据FFT计算结果为其中, n'2=0、1、…、r-1,n2=0、1、…、v-1,
[0061] (b4)、将每个一级数据块中的r个二级数据块的FFT计算结果进行合并,得到每个一级数据块的FFT计算结果;其中,第n2个一级数据块中的 个数据的FFT计算结果为其中, n2=0、1、…、v-1,
[0062] (b5)、将v个一级数据块的FFT计算结果进行合并,得到数据序列x(n)的N点FFT计算结果 其中,k=0、1、…、N-1,WN=e-j2π/N。
[0063] 在以上处理过程中,步骤(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计算结果进行合并。
[0064] (二)、并行FFT计算结构设计
[0065] 按照以上所述的步骤(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计算结果。
[0066] 2.1、输入数据存储分配
[0067] 本发明采用vr个 点的双口存储器存放步骤(b1)~(b2)划分的vr个二级数据块。其中本发明将该vr个双口存储器分为v个存储器组,这v个存储器组对应于v个一级数据块;
每个存储器组中包括r个双口存储器,这r个双口存储器对应于1个一级数据块中的r个二级数据块。
[0068] 本发明采用一个S位r进制计数器得到序列x(n)中每个数据的存储地址,即确定序列中第n个数据x(n)保存在第Group_Id(n)个存储器组中的第Ram_Id(n)个存储器中的存储地址序号Add_ID(n),n=0、1、…、N-1,具体实现方法如下:
[0069] 该计数器的计数值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。
[0070] 2.2、r个二级数据块的 点FFT并行计算
[0071] 根据上述的输入数据存储分配方法,每个二级数据块独立存放于1个存储器中,每个存储器中的 点数据进行独立的FFT计算。以下给出并行FFT计算时,各存储器中数据访问地址的产生方法,以及r个二级数据块时分复用一个基r蝶形单元的方法。
[0072] 2.2.1、每个存储器的 点数据访问地址产生方法
[0073] 每个存储器中的 点数据进行独立的FFT计算,这 点数据序列x(n')的FFT定义如下:
[0074]
[0075] 以下将时域地址标识n'和频域地址标识k'用M位r进制数表示:
[0076]
[0077] 其中,M=S-z-1。根据式(7)对式(6)进行r进制改写,则:
[0078]
[0079] 从式(8)可以看出,N'点FFT计算可以分解为M次迭带计算,其中,第m次迭代公式为:
[0080]
[0081] 其中,m=1,2,…,M,旋转因子的相位项 从式(9)可以看出,在第m次迭代过程中,数据访问地址分为三个部分:
[0082]
[0083] 其中, Addr(m,1)=km-1,
[0084] 定义旋转因子各不相同的多个连续蝶形单元最大集合为一个蝶形集合,通过式(10)可知Addr(m,0)表示第m级中不重叠的蝶形集合的标识,Addr(m,1)表示每个蝶形单元中操作数的标识,Addr(m,2)则表示每个蝶形集合中所包含的蝶形单元的标识。而对于第m级的数据访问地址可以看成是三者的移位相加组合,因此本发明采用一个M位的r进制计数器C=(cM-1cM-2…c1c0)r,通过对C的截取来生成数据访问地址。
[0085] 在对每个存储器中的 点数据进行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)可以表示如下:
[0086]
[0087] 每个存储器中各级FFT计算的数据访问地址生成过程如图2所示。
[0088] 2.2.2、基r蝶形计算单元计算过程
[0089] 对单个双口存储器进行N'点FFT计算,基r蝶形计算单元需要完成两部分操作:一是与旋转因子相乘的过程;二是与r点DFT矩阵相乘。前者可以通过从存储器顺序读取数据后经流水复数乘法器完成,后者则可通过寄存器延时来对即时顺序取出的r个操作数并行输入蝶形单元。
[0090] 整个基r蝶形计算单元的计算过程如下所述:
[0091] (A)、按照上一节推导的数据访问地址由存储器的读总线Dataload取出数据,每r个数据代表蝶形单元的r个操作数据,依次标记为Op(i),取出数据的同时和旋转因子相乘,结果标记为Op'(i),其中i=0,1,…,r-1;
[0092] (B)、记蝶形单元的r个输入寄存器为Bf_regin(i),输出寄存器为Bf_regout(i),每从总线上取出r个数据后,令Bf_regin(i)=Op'(i),并进行蝶形计算。蝶形单元采用并行流水计算方式,每次计算完成蝶形单元有r-1个空闲时间,计算结果表示为Op”(i),令Bf_regout(i)=Op”(i);
[0093] (C)、对Bf_regout(i)中的r个数据依次赋给存储器的写总线Datastore上,完成本次蝶形单元的计算过程。
[0094] 上述过程的时序图如图3所示,从中可以看出在单个基r FFT计算过程中,蝶形单元每r个时钟周期都会有r-1个处于空闲状态。
[0095] 2.2.3、时分复用基r蝶形计算单元完成二级数据块FFT计算
[0096] 在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所示。
[0097] 因此,本发明为了提高系统的资源利用率,采用v个基r蝶形单元对vr个二级数据块进行基r FFT计算,其中每个一级数据块中r个二级数据块通过时分复用系统共用1个基r蝶形计算单元。如图5所示,本发明采用的基r蝶形单元时分复用系统包括r个串并转换模块、第一级选通控制单元、基r蝶形计算单元、第二级选通控制单元和r个并串转换模块,其中:
[0098] r个串并转换模块与一个一级数据块中的r个二级数据块一一对应。这r个串并转换模块分别从r个二级数据块的存储器中读取数据,得到r路串行数据,其中每路串行数据包括 个数据点;然后每个串并转换模块对相应的串行数据进行串并转换,将串行的 个数据点转换为r路并行数据,每路并行数据包括 个数据点。
[0099] 第一级选通控制单元对r个串并转换模块输出的并行数据进行选通操作,每次选通其中1个串并转换模块输出的r路并行数据,然后将所述r路并行数据输出到基r蝶形计算单元。
[0100] 基r蝶形计算单元接收经第一级选通控制单元选通的r路并行数据,进行基r FFT计算,输出r路并行计算结果到第二级通道选通控制单元。
[0101] 第二级选通控制单元在r个并串转换模块之间进行选通,将基r蝶形计算单元输出的r路并行FFT计算结果输出到其中1个并串转换模块,其中,选通的并串转换模块序号与第一级选通控制单元选通的串并转换模块序号一致。
[0102] r个并串转换模块与一个一级数据块中的r个二级数据块一一对应。经第二级选通控制单元选通后的并串转换模块,接收r路并行FFT计算结果,进行并串变换1路串行数据,将所述串行数据保存在对应的二级数据块的存储器内,存储位置与串并转换模块读取数据的位置一致,即实现原位存储。
[0103] 以上时分复用计算过程中,各存储器中的数据读取和存储方式如图6a所示。
[0104] 2.2.4、时分复用基r蝶形计算单元完成FFT计算结果合并
[0105] 在步骤(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计算结果合并时,同样可以采用如图5所示的时分复用系统。
[0106] 其中,在步骤(b3)对每个二级数据块中的 个数据进行 点FFT计算时,存储器组的处理过程如图6a所示;在步骤(b4)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并时,存储器组的处理过程如图6b所示;在步骤(b5)中采用基r FFT计算对每个一级数据块中的r个二级数据块的FFT计算结果进行合并时,存储器组的处理过程如图6c所示。
[0107] 实施例
[0108] 在本实施例中,采用4个基2蝶形单元实现1024点数据的FFT计算,即:N=1024,r=2,v=4,S=10,Z=2。
[0109] 按照本发明的处理方法,计算步骤如下:
[0110] (1)、输入数据存储分配
[0111] 在本实施例中,采用8个128点的双口存储器进行输入数据存储。其中,将这8个存储器划分为4个存储器组,每个存储器组包括2个存储器,每个存储器具有128个存储位置。
[0112] 首先对输入的1024点数据进行顺序编址,则数据x(n)的地址标识n的2进制表示为(n9n8…n1n0)2。其中,第n个数据保存在第Group_Id(n)=(n1n0)个存储器组中的第Ram_Id(n)=(n2)个存储器中,在该存储器中的存储地址为(n9n8…n4n3)2。
[0113] 按照如上的存储分配方法,1024点数据在8个存储器中的存储情况如表1所示。
[0114] 表1输入数据在各存储器中的
[0115]
[0116] (2)、无冲突地址访问实现8个128点并行FFT计算
[0117] 当数据存入相应存储器之后,开始对8个存储器内的数据同时进行128点基2FFT处理。对于128点基2FFT,在7级FFT计算过程中,通过对7位2进制计数器C=(c6c5…c1c0)2的截取生成数据访问地址。各级FFT计算的数据访问地址如表2所示。
[0118] 采用如图5所示的时分复用系统,每2个存储器的数据共用1个基2蝶形计算单元,从而用4个基2蝶形计算单元完成8个128点并行FFT计算,整个计算时间需要924个时钟周期。
[0119] 表2每个存储器在各级FFT计算中的数据访问地址
[0120]
[0121]
[0122] (3)、第一级结果合成
[0123] 根据式(5)对每个存储器组分别进行一级256点基2FFT计算,由于有4个基2蝶形单元,且蝶形的2个操作数据分别存在不同的2个存储器当中,这样同一时刻能够从8个存储器中同时访问8个数据,仅用128个时钟周期就可完成该计算。
[0124] (4)、第二级结果合成
[0125] 对4组256点数据按照公式(3)采用一级基4FFT计算从而得到1024点的FFT结果。此时蝶形单元的操作数据分别属于不同的存储器组,因此可以对4个操作数进行并行访问。因此,完成该计算只需要256个时钟周期。
[0126] 采用如上处理步骤,并行计算1024点基2FFT共需要1308个时钟周期,相对于与现有技术,可以有效降低计算时间损耗。
[0127] 以上所述,仅为本发明一个具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
[0128] 本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈