CN101630308B - 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法 - Google Patents
以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法 Download PDFInfo
- Publication number
- CN101630308B CN101630308B CN2008101315408A CN200810131540A CN101630308B CN 101630308 B CN101630308 B CN 101630308B CN 2008101315408 A CN2008101315408 A CN 2008101315408A CN 200810131540 A CN200810131540 A CN 200810131540A CN 101630308 B CN101630308 B CN 101630308B
- Authority
- CN
- China
- Prior art keywords
- fast fourier
- data
- fourier transform
- counting
- point
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 37
- 239000013598 vector Substances 0.000 claims abstract description 29
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 13
- 238000006243 chemical reaction Methods 0.000 claims description 103
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 239000000463 material Substances 0.000 claims description 4
- 230000006399 behavior Effects 0.000 abstract 1
- 238000013507 mapping Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000002950 deficient Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000005070 sampling 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
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
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
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种以内存为基础的任意点数快速傅利叶转换的计算与寻址方法,通过分解方程式将长点数离散傅立叶转换的计算分解为数个短点数的离散傅立叶转换,并同时将其指标由单一维度映像成多维度指标向量。通过控制指标向量,把原始输入资料分散存放到内存的数个记忆库里,使得在不产生内存存取冲突的情况下同时达到计算期间的资料置换与内存完整蝴蝶点数一次存取的目的。当资料置换使用在已计算完成的旧资料依序输出与新资料依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲突,对于新资料的计算采取与先前资料计算时的反序操作来达成目的。本发明并涉及一种实现以内存为基础的任意点数快速傅利叶转换的计算与寻址方法的装置。
Description
技术领域
本发明涉及一种快速傅利叶转换的计算与寻址方法以及使用此方法的以内存为基础的任意点数正/逆向快速傅立叶转换处理器设计。对于任意点数的以内存为基础的离散快速傅立叶转换处理器设计可以有效地减少处理器面积与所需的操作时脉。
背景技术
有关本发明相关的快速傅利叶转换计算与寻址方法以及使用此方法的以内存为基础的正/逆向快速傅立叶转换处理器的现有技术谨罗列并比较缺点如下:
(1)由于美国专利号4,477,878名为“Discrete Fourier transformwith non-tumbled output””不能支持多内存架构(multi-bank memorystructure),因而,对于基r(radix-r)计算时,就需要有r个时脉周期才能把资料从内存中读出或将计算完的资料写回内存中。这将导致FFT在计算过程中需要更多的时脉周期,以及为了实时应用所需的更高时脉速度。
本发明可通过支持多内存寻址,而在无内存存取冲突的情况下,将诸如基r的r笔资料在一个时脉周期内完成读或写,以解决现有技术的问题。
(2)由于美国专利号5091875名为“Fast Fourier transform(FFT)addressing apparatus and method”,美国专利公开号20060253514名为“Memory-based Fast Fourier Transform device”,以及学术论文L.G.Johnson“Conflict free memory addressing for dedicated FFT hardware,”IEEE Trans.Circuits Syst.II,Analog Digit.Signal Process.,vol.39,no.5,pp.312-316,May 1992等,均仅支持固定的基r,因此仅能适用在具有N=rn大小的的FFT中。若考虑到应用在中国数字电视的3780点FFT或者是PLC应用的3072点FFT的情况时,前述两件现有技术即无法运作。
但本发明能够支持任意基数r的混和。因此,能够在任何大小的FFT应用中使用。
(3)美国专利号7062523名为“Method for efficiently computing afast Fourier transform”仅支持固定的基r,因此不能支持中国DTV或是PLC之类的应用。除此之外,其也不能支持多内存架构(multi-bankmemory structure),其在基r(radix-r)运算时,需要r个时脉周期自内存存取资料。因此将比使用多内存架构的处理器需要更高的时脉来完成FFT的计算。
本发明除了支持任意大小的FFT应用的可变基数外,尚支持多内存架构,在不产生内存存取冲突的情况下减低所需时脉。
(4)美国专利号7,164,723名为“Modulation apparatus usingmixed-radix fast Fourier transform”,以及论文B.G.Jo,and M.H.Sunwoo,“New continuous-flow mixed-radix(CFMR)FFT processor usingnovel in-place strategy,”IEEE Trans.Circuits Syst.I,Reg.Papers,vol.52,no.5,pp.911-919,May 2005仅适用于基2/4混和的算法(algorithm),故仅能工作在N=2n大小上的FFT,无法应用于例如N=3780的中国DTV的其它大小的FFT应用。
本发明因为可支持任何混合的基数,所以可以满足上述需求。除此之外,对于诸如N=8192的更长点数的处理器设计,本发明可以让处理器设计更加有弹性,因本发明可支持大于基4的算法。
(5)美国专利公开号20080025199名称为“Method and device forhigh throughput n-point forward and inverse fast Fourier transform”提出3780的可能分解(candidate decomposition),例如,3780=3×3×3×2×2×5×7。其以MDC架构实行每个小点数的FFT模块来减少后续会提到的一些中国专利中的较大内部缓存器。然而,由于此方法需要对每个模块在一个时脉周期中完成运算,因此会需要大量硬件。此外,在实际的***应用上是需要依序输出资料的,但是此专利输出资料却不是依序输出的,因此尚有部分问题未解决。
(6)中国专利号01140060.9名称为“3780点离散傅里叶变换处理器***及其结构”、中国专利号03107204.6名称为“具有3780点IDFT/DFT处理器的多载波***及其方法”、中国专利公开号200410090873.2名称为“采用升采样处理方法实现3780点离散傅立叶变换”、中国专利公开号200610104144.7名称为“3780点离散傅立叶变换处理器”以及中国专利公开号200710044716.1名称为“流水线结构的3780点快速傅里叶变换处理器”等上述专利可执行3780点的具有类似管线(pipelined)架构的FFT处理器,其所提出的架构内部需要大量的缓存器或内存来重新排列资料。此外,对于实际***应用之需求而言,依序输入输出资料以及支持连续资料流都是必须的,为了达成这些,中国专利号01140060.9名称为“3780点离散傅里叶变换处理器***及其结构”以及中国专利号03107204.6名称为“具有3780点IDFT/DFT处理器的多载波***及其方法”就至少需要3N字符的内存空间;中国专利公开号200410090873.2,名称为“采用升采样处理方法实现3780点离散傅立叶变换”、中国专利公开号200710044716.1,名称为“流水线结构的3780点快速傅里叶变换处理器”就至少需要5N字符的内存空间;中国专利公开号200610104144.7名称为“3780点离散傅立叶变换处理器”就至少需要6N字符的内存空间。相较前述,本发明仅仅需要2N字符的内存空间就可以做到了。并且,请注意到在中国专利号01140060.9、中国专利号03107204.6以及中国专利公开号200710044716.1的输出资料并不是有序的,因此他们需要至少一个N字符的内存空间与额外的控制逻辑来重新排序输出数据以便依序输出。
(7)在论文Z.-X.Yang,Y.-P.Hu,C.-Y.Pan,and L.Yang,“Designof a 3780-point IFFT processor for TDS-OFDM”,IEEE Trans.Broadcast.,vol.48,no.1,pp.57-61,Mar.2002所提出的3780点FFT处理器的输出资料并非依序排列,为了能够依序排列,其需要一个缓冲器去重新排列输出资料,因此其至少需要3N字符的内存空间,才能在能处理连续资料流的前提下达成此需求,但本发明已如上述仅需2N字符空间的内存。
发明内容
有鉴于上述现有技术的缺陷,本发明的目的在于克服现有技术的不足与缺陷,提出一种快速傅利叶转换的计算与寻址方法以及使用此方法的以内存为基础的任意点数正/逆向快速傅立叶转换处理器设计,对于任意点数的以内存为基础的离散快速傅立叶转换处理器设计可以有效地减少处理器面积与所需的操作时脉。
为达上述目的,本发明提供一种以内存为基础的任意点数快速傅利叶转换的计算与寻址方法,其包含下列步骤:
(1)将长点数离散傅立叶转换的计算分解为数个短点数的离散傅立叶转换,并同时将输入输出指标由单一维度映像成多维度指标向量;
(2)通过控制这些多维度指标向量,把原始输入资料分散存放到内存的数个记忆库里,使得在不产生内存存取冲突的情况下同时达到计算期间的资料置换与内存完整蝴蝶点数一次存取的目的;
(3)当资料置换使用在已计算完成的旧资料依序输出与新资料依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲突,对于新资料的计算采取与先前资料计算时的反序操作来达成目的;利用与同一记忆区块的前次快速傅立叶转换符元分解顺序相反的顺序进行短点数快速傅立叶转换计算,从而取得快速傅立叶转换符元;亦即,若该快速傅立叶转换符元于一记忆区块中以N1点快速傅立叶转换、N2点快速傅立叶转换……至Ns点快速傅立叶转换的顺序计算,则储存于同一记忆区块中的次一快速傅立叶转换符元的计算顺序为Ns点快速傅立叶转换、N(s-1)点快速傅立叶转换……至N1点快速傅立叶转换,其中,s为由原始的长点数离散傅立叶转换分解后得到的短点数离散傅立叶转换的个数,而N1、N2、…、Ns分别为这s个短点数快速傅立叶转换的点数长度;执行资料存取的记忆库由指标向量(n1、n2、…、ns)与方程式(a1)所决定,其中方程式(a1)的bank为选取到的记忆库编号,而n1、n2、…、ns分别为分解后得到的短点数N1点快速傅立叶转换、N2点快速傅立叶转换、…、Ns点快速傅立叶转换的输入顺序指针,而该指标向量对应每一短点数快速傅立叶转换;bank=n1+n2+…+nsmod M(a1),其中M为每一记忆区块所包含的记忆库数目
为达上述目的,本发明还提供一种实现以内存为基础的任意点数快速傅利叶转换的计算与寻址方法的装置,其包含下列单元:
单元(1),用于将长点数离散傅立叶转换的计算分解为数个短点数的离散傅立叶转换,并同时将输入输出指标由单一维度映像成多维度指标向量;
单元(2),用于通过控制这些多维度指标向量,把原始输入资料分散存放到内存的数个记忆库里,使得在不产生内存存取冲突的情况下同时达到计算期间的资料置换与内存完整蝴蝶点数一次存取的目的,该内存包含二记忆区块,为MEM_1与MEM_2,当MEM_1用于快速傅立叶转换运算时,MEM_2则用于输入输出资料,反之亦然;
单元(3),用于当资料置换使用在已计算完成的旧资料依序输出与新资料依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲突,对于新资料的计算采取与先前资料计算时的反序操作来达成目的;利用与同一记忆区块的前次快速傅立叶转换符元分解顺序相反的顺序进行短点数快速傅立叶转换计算,从而取得快速傅立叶转换符元;亦即,若该快速傅立叶转换符元于一记忆区块中以N1点快速傅立叶转换、N2点快速傅立叶转换……至Ns点快速傅立叶转换的顺序计算,则储存于同一记忆区块中的次一快速傅立叶转换符元的计算顺序为Ns点快速傅立叶转换、N(s-1)点快速傅立叶转换……至N1点快速傅立叶转换,其中,s为由原始的长点数离散傅立叶转换分解后得到的短点数离散傅立叶转换的个数,而N1、N2、…、Ns分别为这s个短点数快速傅立叶转换的点数长度;执行资料存取的记忆库由指标向量(n1、n2、…、ns)与方程式(a1)所决定,其中方程式(a1)的bank为选取到的记忆库编号,而n1、n2、…、ns分别为分解后得到的短点数N1点快速傅立叶转换、N2点快速傅立叶转换、…、Ns点快速傅立叶转换的输入顺序指针,而该指标向量对应每一短点数快速傅立叶转换;bank=n1+n2+…+nsmod M(a1),其中M为每一记忆区块所包含的记忆库数量。
附图说明
图1为本发明快速傅立叶转换处理器设计方块图;
图2为本发明指标向量产生器硬件实施图。
具体实施方式
为了达成上述的发明目的,现将本发明的一具体实施例说明如下:离散傅立叶转换的定义为将长点数离散傅立叶转换分解为数个短点数离散傅立叶转换的方法已在论文“IEEETRANSACTIONS ON ACOUSTICS,SPEECH,AND SIGNALPROCESSING,VOL.ASSP-25,NO.3,JUNE 1977”名称“IndexMappings for Multidimensional Formulation of the DFT and Convolution”中提出。本发明在此以点数长度N=N1N2的分解方程式(1)加以说明:
方程式(1)将指标n与k映像为指标向量(n1,n2)与(k1,k2),使其由单一维度[0,N-1]映像成二维度[0,N1-1]×[0,N2-1]。其中系数A2与B1的选择取决于N1与N2间的关系。于本发明提出的方法中,方程式(1)系数选用规则如下:
情况一:若N1与N2互质,则选用符合下列条件的A2及B1为系数
A2=p1N1并且A2=q1N2+1
B1=p2N2并且B1=q2N1+1
在此,p1、q1、p2及q2皆为正整数。因此,离散傅立叶转换的定义可写成以下的方程式(2):
情况二:若N1与N2非为互质,则选用A2=B1=1。因此,离散傅立叶转换的定义可写成以下的方程式(3):
可由方程式(2)及(3)得知,一长点数(N点)快速傅立叶转换可分别在第一及第二阶段中以二较短点数(N1点及N2点)快速傅立叶转换加以计算。就定值n2而言,第一阶段N1点快速傅立叶转换的原始输入资料为x(n1,n2),n1=0,1,...,N1-1。对应此n2的第一阶段输出资料为y(k1,n2),k1=0,1,...,N1-1。就定值k1而言,第二阶段N2点快速傅立叶转换的原始输入资料为y(k1,n2),n2=0,1,...,N2-1。对应此k1的第二阶段输出资料则为X(k1,k2),k2=0,1,...,N2-1。方程式(2)与(3)的差异在于若N1与N2非为互质,则第一与第二阶段间存在有如方程式(3)所示的旋转因子
注:就情况一而言,其系数选取亦可如情况二,且本发明的后续流程相同。
现于第一阶段计算N1点离散傅立叶转换并于第二阶段计算N2点离散傅立叶转换,以求取第
一个离散傅立叶转换符元。先将原始输入资料分散存放到数个记忆库(memory bank)中。假定N2≥N1且记忆库的数量为N2,则可通过方程式(4)将该原始输入资料分散存放至N2个记忆库中以避免内存冲突。
bank=n1+n2mod N2 (4)
避免内存冲突的关键在于通过方程式(1)及(4)将资料分散存放于记忆库。一旦选定记忆库,便需将资料寻址。同一记忆库中的任两笔资料应映像至0到N1-1范围内的不同地址。为求简单,在此选用以下的方程式(5)执行资料寻址。
address=n1 (5)
完成第一个离散傅立叶转换符元的计算后,应将资料依序输出。输出指标由方程式(1)映像而得。在将计算完成的第一个离散傅立叶转换符元资料依序输出的同时,亦以资料置换的方式依序输入第二个离散傅立叶转换符元的输入资料。亦即,新的原始输入资料x(i)应置于输出数据X(i)的位置。计算第二个离散傅立叶转换符元的顺序与计算第一个离散傅立叶转换符元时相反。即于第一阶段计算N2点离散傅立叶转换,再于第二阶段计算N1点离散傅立叶转换,以求取第二个离散傅立叶转换符元。完成第二个离散傅立叶转换符元的计算后,同样以资料置换方式依序输出计算完成的旧资料并依序输入新资料。第三个离散傅立叶转换符元复依第一个离散傅立叶转换符元的方式计算。
以下将以中国数字电视所需的3780点快速傅立叶转换为例详加说明。以下所述的分解顺序仅为可行方式的一例。
由于3780=4×3×3×3×5×7,可分别进行3点、4点、5点与7点的快速傅立叶转换计算。在此,资料分散存放于7个记忆库。
先依分解顺序4、3、3、3、5及7执行计算。第一阶段(4点快速傅立叶转换)采用分解方程式(6)进行计算。
表一
第一阶段的指标映像
表一中每一列的资料为每个4点快速傅立叶转换的原始输入资料。
输入顺序取决于指标n1。例如,列中,输入顺序为(1,1),(2,1)以及(3,1),其分别对应的资料为x[2836]、x[1]、x[946]与x[1891],如表一所示。
bank=n1+x mod7 (7)
历经第一阶段后,原始资料已被分解为4个945点快速傅立叶转换的独立群组,并分别对应于k1=0,1,2及3。
同样地,亦可以945=3×3×3×5×7的顺序分解上述的945点快速傅立叶转换,并将指标映像为向量(n2,n3,n4,n5,n6),即由[0,944]映像为[0,2]×[0,2]×[0,2]×[0,4]×[0,6]。结合各阶段的所有分解方程式,即可求得3780点快速傅立叶转换依此分解顺序的完整指标映像方程式,如方程式(8)与(9)所示。在选择记忆库时利用方程式(10)以避免内存冲突。寻址方程式则可采用方程式(11)。
n=945n1+1260n2+2940n3+980n4+1512n5+540n6mod3780 (8)
k=945k1+2380k2+3360k3+2520k4+2268k5+540k6mod3780 (9)
bank=n1+n2+n3+n4+n5+n6mod7 (10)
address=135n1+45n2+15n3+5n4+n5 (11)
继计算第一个快速傅立叶转换符元,亦即单数的快速傅立叶转换符元之后,方程式(10)及(11)中所有指标ni将转换为ki。对于第二个输入的快速傅立叶转换符元而言,亦即双数的快速傅立叶转换符元,该双数快速傅立叶转换符元的输入资料xeven[n]应被置入单数离散傅立叶转换符元的输出资料Xodd[k]的位置,两者间关系为k=n。其映像指标、记忆库与地址应分别以方程式(9)、(10)与(11)决定。
以下讨论如何于目前双数快速傅立叶转换符元的资料分配下,于计算期间持续避免资料存取时的内存冲突。
为计算双数快速傅立叶转换符元,采用与计算单数快速傅立叶转换符元时相反的分解顺序进行计算,亦即3780=7×5×3×3×3×4。换言之,以7点、5点、3点、3点、3点以及4点快速傅立叶转换的顺序执行计算。通过类似方式,可求得双数快速傅立叶转换符元的完整输入输出指标映像方程式(12)及(13),其结果类似于单数快速傅立叶转换符元的完整指标映像方程式(8)及(9)。方程式(12)及(13)分别将输入指标n与输出指标k映像为向量(a1,a2,a3,a4,a5,a6)与(b1,b2,b3,b4,b5,b6),即由[0,3779]映像为[0,6]×[0,4]×[0,2]×[0,2]×[0,2]×[0,3],以计算双数快速傅立叶转换符元。
n=540a1+2268a2+2520a3+3360a4+2380a5+945a6mod3780 (12)
k=540b1+1512b2+980b3+2940b4+1260b5+945b6mod3780 (13)
将输入与输出指标方程式(9)与(12)以及(8)与(13)对应比较,可发现此两组方程式恰以反序向量的关系彼此匹配,如方程式(14)及(15)所示。
(a1,a2,a3,a4,a5,a6)=(k6,k5,k4,k3,k2,k1) (14)
(n1,n2,n3,n4,n5,n6)=(b6,b5,b4,b3,b2,b1) (15)
因双数快速傅立叶转换符元xeven[n]的输入资料被置于已计算完成的单数快速傅立叶转换符元输出资料Xodd[k]的位置,而两者间的关系为k=n。由此可得双数快速傅立叶转换符元的记忆库选择与内存寻址方程式(16)及(17)。
bank=a1+a2+a3+a4+a5+a6mod7 (16)
address=135a6+45a5+15a4+5a3+a2 (17)
请注意,输入映像方程式(12)与输出映像方程式(9)相同,且记忆库选择方程式(10)与(16)亦保持相同。所以,于双数快速傅立叶转换符元的计算期间,通过倒转单数快速傅立叶转换符元分解顺序的计算方式,可使内存始终免于存取冲突。
此外,本发明发现,输出映像方程式(13)与输入映像方程式(8)亦为相同,意指在将第三个快速傅立叶转换输入资料xthird[n]置入已计算完成的双数快速傅立叶转换输出数据Xeven[k]的位置并令其中k=n时,该第三个快速傅立叶转换输入资料的分散储存方式可与方程式(8)、(10)及(11)所决定者相同。也即第三个快速傅立叶转换符元的数据存放位置跟单数快速傅立叶转换符元的数据存放位置一样而又回到起始讨论的状态,xthird[n]=xodd[n]。
根据以上的讨论,可通过倒转先前的快速傅立叶转换符元分解顺序,设计出无内存冲突的可变基数快速傅立叶转换处理器。其可同时达到蝴蝶输出与资料输入输出的资料置换。
图1为以内存为基础的3780点离散傅立叶转换处理器设计方块图。其中MEM_1与MEM_2为二记忆区块(memory block),各区块包含7个记忆库(memory bank),各记忆库大小为540个字。FFT_CORE包含可分别处理短点数离散傅立叶转换的处理单元,其计算各短点数离散傅立叶转换所需的时脉周期数由设计者依需求决定,此亦决定计算单元所需硬件数量。控制单元主控数据存取与处理单元的计算。以下将就离散傅立叶转换处理器的运作加以阐明。为便于说明,在此定义第一类的分解与计算顺序依次为4点、3点、3点、3点、5点与7点离散傅立叶转换,并将其倒转顺序定义为第二类顺序,依次为7点、5点、3点、3点、3点与4点离散傅立叶转换。
假设第一个与第二个离散傅立叶转换符元分别储存于记忆区块MEM_1与MEM_2,并假设第一个与第二个离散傅立叶转换符元的分解与计算顺序皆为第一类顺序,则根据以上的说明可知:
(1)第一、五、九、十三...离散傅立叶转换符元储存于记忆区块MEM_1且以第一类顺序计算。
(2)第二、六、十、十四...离散傅立叶转换符元储存于记忆区块MEM_2且以第一类顺序计算。
(3)第三、七、十一、十五...离散傅立叶转换符元储存于记忆区块MEM_1且以第二类顺序计算。
(4)第四、八、十二、十六...离散傅立叶转换符元储存于记忆区块MEM_2且以第二类顺序计算。
为说明之便,图2中仅以长度为N=N1N2N3的离散傅立叶转换为例来说明取得资料存取所需指标向量的硬件实施方式。如图2所示,其由数个累加器A1、A2、...、A5组成。于控制单元中包含3组此硬件设计,其中2组分别用于产生资料输入与输出所需的指标向量,其参数U1、U2、U3、U4、q与r由各阶段的分解方程式(1)决定。而第3组则是用于产生各个短点数傅立叶转换所需资料的指标向量,其与前面两组唯一不同处是此时的参数q,r皆为0,即A4,A5可去除。
下表二显示以内存为基础的离散傅立叶转换处理器设计的不同实时应用方法的比较结果。所有项目中,仅有本发明的方法与美国专利4,477,878可支持任何一般基数的混合,并进行任何点数长度的快速傅立叶转换。然而,如前所述,美国专利4,477,878未能实现无内存冲突的多内存架构(multi-bank memory structure),因而无法减少实时应用所需的操作时脉。
本发明提出以内存为基础的快速傅立叶转换处理器设计方法,使其可同时满足以下三项目的:(1)蝴蝶运算与输入输出资料时的资料置换;(2)任何基数的混合;及(3)支持多内存架构。
表二
本发明与不同方法的比较
[A1] | [A2][B2][A5] | [A3] | [A4]B[3] | 本发明 | |
基数 | 所有一般 | 固定基数-r | 固定基数-r | 基数-2/4 | 所有一般 |
资料置换 | 是 | 是 | 是 | 是 | 是 |
内存 | 2N个字 | 2N个字 | 2N个字 | 2N个字 | 2N个字 |
多重记忆库 | 否 | 是 | 否 | 是 | 是 |
[A1]:美国专利4,477,878
[A2]:美国专利5,091,875
[A3]:美国专利7,062,523
[A4]:美国专利7,164,723
[A5]:美国专利公开20060253514
[B2]:论文L.G.Johnson“Conflict free memory addressing fordedicated FFT hardware,”IEEE Trans.Circuits Syst.II,Analog Digit.Signal Process.,vol.39,no.5,pp.312-316,May 1992.
B[3]:论文B.G.Jo,and M.H.Sunwoo,“New continuous-flowmixed-radix(CFMR)FFT processor using novel in-place strategy,”IEEETrans.Circuits Syst.I,Reg.Papers,vol.52,no.5,pp.911-919,May 2005.
综上所述,当以本发明方法应用于中国数字电视所需的3780点离散傅立叶转换时,仅需2N个字的内存即可满足***需求,同时达到持续资料流与资料依序输入输出的目的。若欲达成与本案相同效果,美国专利公开20080025199、中国专利01140060.9、中国专利03107204.6的方案需至少3N个字的内存,中国专利公开200410090873.2与中国专利公开200710044716.1需至少5N个字的内存,中国专利公开200610104144.7需6N个字的内存,而论文Z.-X.Yang,Y.-P.Hu,C.-Y.Pan,and L.Yang,“Design of a 3780-point IFFT processor forTDS-OFDM,”IEEE Trans.Broadcast.,vol.48,no.1,pp.57-61,Mar.2002亦至少需3N个字以上的内存。因此,就此应用而言,若以本发明的方法设计3780点离散傅立叶转换处理器,则相较于以现有方式设计者可大幅缩减芯片面积。
本发明还提出一种以内存为基础的(正/逆向)快速傅立叶转换处理器,用以执行上述的方法,其包含:一用以存放资料的主要内存、一进行分解后短点数快速傅立叶转换的处理元件以及一控制单元,其中该控制单元具有控制以下项目的功能:(1)输入输出资料与蝴蝶运算用的内存,(2)分解后的短点数快速傅立叶转换的计算顺序,及(3)以资料置换方式进行资料存取所需的内存寻址。用以执行上述的方法。该主要内存包含二记忆区块(memory block),亦即MEM_1与MEM_2,当MEM_1用于快速傅立叶转换运算时,MEM_2则用于输入输出资料,反之亦然。且,每一记忆区块包含M个记忆库(memory bank),且每一记忆库的大小为N/M,其中N为快速傅立叶转换的点数长度,M为由***设计者自行设定的记忆库数量。该处理单元FFT_CORE设计为可对分解后的短点数快速傅立叶转换进行个别计算,其计算各短点数离散傅立叶转换所需的时脉周期数由设计者依需求决定,此亦决定计算单元所需硬件数量。该控制单元的第(1)项控制功能是控制如前所述的该等记忆区块,以将其功能切换为快速傅立叶转换计算或输入输出资料。该控制单元的第(2)项控制功能是控制该处理元件,使其利用与同一记忆区块的前次快速傅立叶转换符元分解顺序相反的顺序进行短点数快速傅立叶转换计算,从而取得快速傅立叶转换符元;亦即,若该快速傅立叶转换符元于一记忆区块中以N1点快速傅立叶转换、N2点快速傅立叶转换......至Nk点快速傅立叶转换的顺序计算,则储存于同一记忆区块中的次一快速傅立叶转换符元的计算顺序为Nk点快速傅立叶转换、N(k-1)点快速傅立叶转换......至N1点快速傅立叶转换。该控制单元的第(3)项控制功能是控制以资料置换的方式进行资料存取,从而进行每一记忆区块的蝴蝶运算与资料输入输出。其包含3组运作原理如图2的硬件设计,其中2组分别用于产生资料输入与输出所需的指标向量,其参数U1、U2、U3、U4、q与r由各阶段的分解方程式决定。而第3组则是用于产生各个短点数傅立叶转换所需资料的指标向量,其与前面两组唯一不同处是此时的参数q,r皆为0。
综上所述,以上的实施例仅是用来解释本发明的具体实施方式,本发明的保护范围仍应以权利要求书的范围为准。
Claims (3)
1.一种以内存为基础的任意点数快速傅利叶转换的计算与寻址方法,其特征在于,包含下列步骤:
(1)将长点数离散傅立叶转换的计算分解为数个短点数的离散傅立叶转换,并同时将输入输出指标由单一维度映像成多维度指标向量;
(2)通过控制这些多维度指标向量,把原始输入资料分散存放到内存的数个记忆库里,使得在不产生内存存取冲突的情况下同时达到计算期间的资料置换与内存完整蝴蝶点数一次存取的目的,该内存包含二记忆区块,为MEM_1与MEM_2,当MEM_1用于快速傅立叶转换运算时,MEM_2则用于输入输出资料,反之亦然;
(3)当资料置换使用在已计算完成的旧资料依序输出与新资料依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲突,对于新资料的计算采取与先前资料计算时的反序操作来达成目的,利用与同一记忆区块的前次快速傅立叶转换符元分解顺序相反的顺序进行短点数快速傅立叶转换计算,从而取得快速傅立叶转换符元;亦即,若该快速傅立叶转换符元于一记忆区块中以N1点快速傅立叶转换、N2点快速傅立叶转换……至Ns点快速傅立叶转换的顺序计算,则储存于同一记忆区块中的次一快速傅立叶转换符元的计算顺序为Ns点快速傅立叶转换、N(s-1)点快速傅立叶转换……至N1点快速傅立叶转换,其中,s为由原始的长点数离散傅立叶转换分解后得到的短点数离散傅立叶转换的个数,而N1、N2、…、Ns分别为这s个短点数快速傅立叶转换的点数长度;执行资料存取的记忆库由指标向量(n1、n2、…、ns)与方程式(a1)所决定,其中方程式(a1)的bank为选取到的记忆库编号,而n1、n2、…、ns分别为分解后得到的短点数N1点快速傅立叶转换、N2点快速傅立叶转换、…、Ns点快速傅立叶转换的输入顺序指针,而该指标向量对应每一短点数快速傅立叶转换;bank=n1+n2+…+nsmod M(a1),其中M为每一记忆区块所包含的记忆库数目。
2.一种实现以内存为基础的任意点数快速傅利叶转换的计算与寻址方法的装置,其特征在于,包含下列单元:
单元(1),用于将长点数离散傅立叶转换的计算分解为数个短点数的离散傅立叶转换,并同时将输入输出指标由单一维度映像成多维度指标向量;
单元(2),用于通过控制这些多维度指标向量,把原始输入资料分散存放到内存的数个记忆库里,使得在不产生内存存取冲突的情况下同时达到计算期间的资料置换与内存完整蝴蝶点数一次存取的目的,该内存包含二记忆区块,为MEM_1与MEM_2,当MEM_1用于快速傅立叶转换运算时,MEM_2则用于输入输出资料,反之亦然;
单元(3),用于当资料置换使用在已计算完成的旧资料依序输出与新资料依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲突,对于新资料的计算采取与先前资料计算时的反序操作来达成目的;利用与同一记忆区块的前次快速傅立叶转换符元分解顺序相反的顺序进行短点数快速傅立叶转换计算,从而取得快速傅立叶转换符元;亦即,若该快速傅立叶转换符元于一记忆区块中以N1点快速傅立叶转换、N2点快速傅立叶转换……至Ns点快速傅立叶转换的顺序计算,则储存于同一记忆区块中的次一快速傅立叶转换符元的计算顺序为Ns点快速傅立叶转换、N(s-1)点快速傅立叶转换……至N1点快速傅立叶转换,其中,s为由原始的长点数离散傅立叶转换分解后得到的短点数离散傅立叶转换的个数,而N1、N2、…、Ns分别为这s个短点数快速傅立叶转换的点数长度;执行资料存取的记忆库由指标向量(n1、n2、…、ns)与方程式(a1)所决定,其中方程式(a1)的bank为选取到的记忆库编号,而n1、n2、…、ns分别为分解后得到的短点数N1点快速傅立叶转换、N2点快速傅立叶转换、…、Ns点快速傅立叶转换的输入顺序指针,而该指标向量对应每一短点数快速傅立叶转换;bank=n1+n2+…+ns mod M(a1),其中M为每一记忆区块所包含的记忆库数量。
3.如权利要求2所述的实现以内存为基础的任意点数快速傅利叶转换的计算与寻址方法的装置,其中,将这M个记忆库分别加以编号为0、1、2、3、...、M-1,且每一记忆库的大小为N/M,其中N为快速傅立叶转换的点数长度,M为由***设计者自行设定的每一记忆区块所包含的记忆库数量。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101315408A CN101630308B (zh) | 2008-07-16 | 2008-07-16 | 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法 |
US12/325,516 US8364736B2 (en) | 2008-07-16 | 2008-12-01 | Memory-based FFT/IFFT processor and design method for general sized memory-based FFT processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101315408A CN101630308B (zh) | 2008-07-16 | 2008-07-16 | 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101630308A CN101630308A (zh) | 2010-01-20 |
CN101630308B true CN101630308B (zh) | 2013-04-17 |
Family
ID=41531224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101315408A Expired - Fee Related CN101630308B (zh) | 2008-07-16 | 2008-07-16 | 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8364736B2 (zh) |
CN (1) | CN101630308B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009128033A2 (en) * | 2008-04-18 | 2009-10-22 | Nxp B.V. | System and method for configurable mixed radix fft architecture for multimode device |
US8549059B2 (en) * | 2009-01-08 | 2013-10-01 | Texas Instruments Incorporated | In-place fast fourier transform processor |
CN101860508B (zh) * | 2009-04-13 | 2013-01-16 | 中兴通讯股份有限公司 | 一种fft变换的复用装置及方法 |
CN102419741A (zh) * | 2011-11-30 | 2012-04-18 | 中国传媒大学 | 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 |
CN102495721A (zh) * | 2011-12-02 | 2012-06-13 | 南京大学 | 一种支持fft加速的simd向量处理器 |
US8990281B2 (en) * | 2012-09-21 | 2015-03-24 | International Business Machines Corporation | Techniques for improving the efficiency of mixed radix fast fourier transform |
GB2515755A (en) | 2013-07-01 | 2015-01-07 | Ibm | Method and apparatus for performing a FFT computation |
US9459812B2 (en) | 2014-02-03 | 2016-10-04 | Ceva D.S.P. Ltd. | System and method for zero contention memory bank access in a reorder stage in mixed radix discrete fourier transform |
CN106294285B (zh) * | 2015-06-09 | 2018-11-30 | 华邦电子股份有限公司 | 数据分配装置、信号处理装置及其数据分配方法 |
KR102526750B1 (ko) * | 2015-12-17 | 2023-04-27 | 삼성전자주식회사 | 푸리에 변환을 수행하는 방법 및 장치 |
CN109117454B (zh) * | 2017-06-23 | 2022-06-14 | 扬智科技股份有限公司 | 3780点快速傅立叶转换处理器及其运作方法 |
US10783216B2 (en) | 2018-09-24 | 2020-09-22 | Semiconductor Components Industries, Llc | Methods and apparatus for in-place fast Fourier transform |
CN112163184B (zh) * | 2020-09-02 | 2024-06-25 | 深聪半导体(江苏)有限公司 | 一种实现fft的装置及方法 |
CN114356409B (zh) * | 2021-01-29 | 2024-06-18 | 展讯半导体(成都)有限公司 | 处理基为模6为零点数dft的方法、设备、装置及存储介质 |
CN112822139B (zh) * | 2021-02-04 | 2023-01-31 | 展讯半导体(成都)有限公司 | 数据输入、数据转换方法及装置 |
CN113569190B (zh) * | 2021-07-02 | 2024-06-04 | 星思连接(上海)半导体有限公司 | 一种快速傅立叶变换旋转因子计算***和方法 |
CN113569189B (zh) * | 2021-07-02 | 2024-03-15 | 星思连接(上海)半导体有限公司 | 一种快速傅立叶变换计算方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991788A (en) * | 1997-03-14 | 1999-11-23 | Xilinx, Inc. | Method for configuring an FPGA for large FFTs and other vector rotation computations |
US6230177B1 (en) * | 1998-06-12 | 2001-05-08 | Silicon Graphics, Inc. | Method and apparatus for performing fast fourier transforms |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2084362B (en) | 1980-09-19 | 1984-07-11 | Solartron Electronic Group | Apparatus for performing the discrete fourier transform |
US5091875A (en) | 1990-03-23 | 1992-02-25 | Texas Instruments Incorporated | Fast fourier transform (FFT) addressing apparatus and method |
IL131350A0 (en) * | 1999-08-11 | 2001-01-28 | Israel State | Data storage patterns for fast fourier transforms |
US7062523B1 (en) | 2000-08-01 | 2006-06-13 | Analog Devices, Inc. | Method for efficiently computing a fast fourier transform |
US7164723B2 (en) | 2002-06-27 | 2007-01-16 | Samsung Electronics Co., Ltd. | Modulation apparatus using mixed-radix fast fourier transform |
TWI298448B (en) | 2005-05-05 | 2008-07-01 | Ind Tech Res Inst | Memory-based fast fourier transformer (fft) |
US20070239815A1 (en) * | 2006-04-04 | 2007-10-11 | Qualcomm Incorporated | Pipeline fft architecture and method |
US20080025199A1 (en) | 2006-07-25 | 2008-01-31 | Legend Silicon | Method and device for high throughput n-point forward and inverse fast fourier transform |
TWI329814B (en) * | 2007-03-13 | 2010-09-01 | Keystone Semiconductor Corp | Discrete fourier transform apparatus utilizing cooley-tukey algorithm for n-point discrete fourier transform |
GB2448755B (en) * | 2007-04-27 | 2009-03-25 | Univ Bradford | FFT processor |
US20100030831A1 (en) * | 2008-08-04 | 2010-02-04 | L-3 Communications Integrated Systems, L.P. | Multi-fpga tree-based fft processor |
-
2008
- 2008-07-16 CN CN2008101315408A patent/CN101630308B/zh not_active Expired - Fee Related
- 2008-12-01 US US12/325,516 patent/US8364736B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991788A (en) * | 1997-03-14 | 1999-11-23 | Xilinx, Inc. | Method for configuring an FPGA for large FFTs and other vector rotation computations |
US6230177B1 (en) * | 1998-06-12 | 2001-05-08 | Silicon Graphics, Inc. | Method and apparatus for performing fast fourier transforms |
Also Published As
Publication number | Publication date |
---|---|
US8364736B2 (en) | 2013-01-29 |
US20100017452A1 (en) | 2010-01-21 |
CN101630308A (zh) | 2010-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101630308B (zh) | 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法 | |
Ayinala et al. | An in-place FFT architecture for real-valued signals | |
Jo et al. | New continuous-flow mixed-radix (CFMR) FFT processor using novel in-place strategy | |
CN100563226C (zh) | 利用混合基数快速付里叶变换的调制设备 | |
TW594502B (en) | Length-scalable fast Fourier transformation digital signal processing architecture | |
JP3749022B2 (ja) | 高速フーリエ変換を用いて短い待ち時間でアレイ処理を行う並列システム | |
Chen et al. | Continuous-flow parallel bit-reversal circuit for MDF and MDC FFT architectures | |
CN105224505A (zh) | 基于矩阵转置操作的fft加速器装置 | |
US9176929B2 (en) | Multi-granularity parallel FFT computation device | |
CN104349260A (zh) | 低功耗wola滤波器组及其综合阶段电路 | |
Wang et al. | Scheduling of data access for the radix-2k FFT processor using single-port memory | |
US10339200B2 (en) | System and method for optimizing mixed radix fast fourier transform and inverse fast fourier transform | |
US8209485B2 (en) | Digital signal processing apparatus | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及*** | |
US20140280421A1 (en) | Fft accelerator | |
CN104268124B (zh) | 一种fft实现装置和方法 | |
CN102957993B (zh) | 低功耗wola滤波器组及其分析阶段电路 | |
US9268744B2 (en) | Parallel bit reversal devices and methods | |
EP3066583B1 (en) | Fft device and method for performing a fast fourier transform | |
Unnikrishnan et al. | Multi-channel FFT architectures designed via folding and interleaving | |
Hazarika et al. | Low-complexity continuous-flow memory-based FFT architectures for real-valued signals | |
TWI375171B (zh) | ||
Ma et al. | A novel conflict-free parallel memory access scheme for FFT constant geometry architectures | |
CN100442272C (zh) | 数字信号处理装置 | |
CN114116012B (zh) | 基于混洗操作的fft码位反序算法向量化实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130417 Termination date: 20190716 |
|
CF01 | Termination of patent right due to non-payment of annual fee |