以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法.pdf

上传人:大师****2 文档编号:998971 上传时间:2018-03-24 格式:PDF 页数:20 大小:874.88KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810131540.8

申请日:

2008.07.16

公开号:

CN101630308A

公开日:

2010.01.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F17/14

主分类号:

G06F17/14

申请人:

财团法人交大思源基金会

发明人:

李镇宜; 萧清峰; 陈 元

地址:

中国台湾新竹市

优先权:

专利代理机构:

中原信达知识产权代理有限责任公司

代理人:

陈肖梅;谢丽娜

PDF下载: PDF下载
内容摘要

本发明通过分解方程式将长点数离散傅立叶转换的计算分解为数个短点数的离散傅立叶转换,并同时将其指标由单一维度映像成多维度指标向量。通过控制指标向量,把原始输入资料分散存放到数个内存里,使得在不产生内存存取冲突的情况下同时达到计算期间的资料置换与内存完整蝴蝶点数一次存取的目的。当资料置换使用在已计算完成的旧资料依序输出与新资料依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲突,对于新资料的计算采取与先前资料计算时的反序操作来达成目的。本发明并涉及一种使用此方法的以内存为基础的正/逆

权利要求书

1: 一种任意点数快速傅利叶转换的计算与寻址方法,其特征在于, 包含下列步骤: (1)将长点数离散傅立叶转换的计算分解为数个短点数的离散 傅立叶转换,并同时将其指标由单一维度映像成多维度指标向量; (2)通过控制这些多维度指标向量,把原始输入资料分散存放 到数个内存里,使得在不产生内存存取冲突的情况下同时达到计算期 间的资料置换与内存完整蝴蝶点数一次存取的目的; (3)当资料置换使用在已计算完成的旧资料依序输出与新资料 依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲 突,对于新资料的计算采取与先前资料计算时的反序操作来达成目的; 依此方法,对于设计任意点数的以内存为基础的快速傅立叶转换处理 器,可以减少处理器面积与所需的操作时脉。
2: 一种以内存为基础的正/逆向快速傅立叶转换处理器,其特征在 于,包含:一用以存放资料的主要内存、一进行分解后短点数快速傅 立叶转换的处理元件以及一控制单元,其中该控制单元具有控制以下 项目的功能:(1)输入输出资料与蝴蝶运算用的内存,(2)分解后的短点 数快速傅立叶转换的计算顺序,及(3)以资料置换方式进行资料存取所 需的内存寻址。
3: 如权利要求2所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,该主要内存包含二记忆区块,为MEM_1与MEM_2, 当MEM_1用于快速傅立叶转换运算时,MEM_2则用于输入输出资料, 反之亦然。
4: 如权利要求3所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,每一记忆区块包含M个记忆库,且每一记忆库的大小 为N/M,其中N为快速傅立叶转换的点数长度,M为由系统设计者自 行设定的记忆库数量。
5: 如权利要求2所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,该处理单元设计为可对分解后的短点数快速傅立叶转 换进行个别计算。
6: 如权利要求2所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,该控制单元的第(1)项控制功能是控制如权利要求3所 述的该两记忆区块,以将其功能切换为快速傅立叶转换计算或输入输 出资料。
7: 如权利要求2所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,该控制单元的第(2)项控制功能是控制该处理元件来依 照权利要求1第(3)点的步骤执行,使其利用与同一记忆区块的前次快 速傅立叶转换符元分解顺序相反的顺序进行短点数快速傅立叶转换计 算,从而取得快速傅立叶转换符元;亦即,若该快速傅立叶转换符元 于一记忆区块中以N 1 点快速傅立叶转换、N 2 点快速傅立叶转换......至 N k 点快速傅立叶转换的顺序计算,则储存于同一记忆区块中的次一快 速傅立叶转换符元的计算顺序为N k 点快速傅立叶转换、N (k-1) 点快速傅 立叶转换......至N 1 点快速傅立叶转换。
8: 如权利要求2所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,该控制单元的第(3)项控制功能是内存寻址并控制以资 料置换的方式进行资料存取,从而进行每一记忆区块的蝴蝶运算与资 料输入输出,此项控制功能为权利要求1第(2)点的实施。
9: 如权利要求8所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,执行资料存取的记忆库由指标向量(n 1 ,n 2 ,...,n k )与方程 式(a 1 )所决定,其中方程式(a 1 )的c为一常量整数,而该指标向量对应 每一短点数快速傅立叶转换,亦即如权利要求6所述的N 1 点快速傅立 叶转换、N 2 点快速傅立叶转换......至N k 点快速傅立叶转换。 bank=n 1 +n 2 +...+n k +c mod M    (a 1 )
10: 如权利要求9所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,方程式(a 1 )将所有资料分为M个群组以存入每一记忆区 块的M个记忆库,该地址公式可为该指标向量(n 1 ,n 2 ,...,n k )的任一函 数,该指标向量可将同一群组中任两笔资料置入两个不同地址;当记 忆库数量M=N t ,N t 为N 1 ,N 2 ,...,N k 其中之一,而(U 1 ,U 2 ,...,U k-1 ) =(N 1 ,N 2 ,...,N t-1 ,N t+1 ,...,N k ),(u 1 ,u 2 ,...,u k-1 )=(n 1 ,n 2 ,..., n t-1 ,n t+1 ,...,n k )。而分解与计算顺序为N 1 点快速傅立叶转换、N 2 点 快速傅立叶转换......至N k 点快速傅立叶转换或其逆向顺序,则采用公 式(a 3 )来决定资料地址。 address = { Σ i = 1 k - 2 ( Π j = i + 1 k - 1 U j ) u i } + u k - 1 mod ( N / M ) - - - ( a 3 ) ]]>
11: 如权利要求9所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,该指标向量由分解下列方程式(a 4 )与(a 5 )于各阶段产生, 在此以N=N 1 N 2 为例,离散傅立叶转换的定义为 X ( k ) = Σ n = 0 N - 1 x ( n ) W N nk , ]]> 分解 方程式(a 4 )与(a 5 )可将N点离散傅立叶转换分解为两个较短点数的离散 傅立叶转换,即N 1 点离散傅立叶转换与N 2 点离散傅立叶转换;分解方 程式(a 4 )与(a 5 )中的系数A 2 及B 1 为正整数,输入及输出指标分别由该输 入及输出方程式(a 4 )与(a 5 )转换; n=N 2 n 1 +A 2 n 2  mod N n 1 ,k 1 =0,1,...,N 1 -1  (a 4 ) k=B 1 k 1 +N 1 k 2  mod N n 2 ,k 2 =0,1,...,N 2 -1  (a 5 )。
12: 如权利要求9所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,对应于如权利要求10所述输入及输出方程式的该指标 向量(n 1 ,n 2 ,...,n k )可经由累加器的硬件运用而取得。
13: 如权利要求9所述的以内存为基础的正/逆向快速傅立叶转换 处理器,其中,以该指标向量(n 1 ,n 2 ,...,n k )而言,用以于第j阶段计算 N j 点离散傅立叶转换而被存取的N j 笔资料的每一群组对应(n 1 ,n 2 ,..., n j-1 ,0,n j+1 ,...,n k ),(n 1 ,n 2 ,...,n j-1 ,1,n j+1 ,...,n k ),...,(n 1 ,n 2 ,...,n j-1 ,N j -1, n j+1 ,...,n k ),且计算完成的输出数据于计算后写回其原来位置,而上述 所需的指标向量可由累加器的硬件运用而取得。

说明书


以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法

    【技术领域】

    本发明涉及一种快速傅利叶转换的计算与寻址方法以及使用此方法的以内存为基础的任意点数正/逆向快速傅立叶转换处理器设计。对于任意点数的以内存为基础的离散快速傅立叶转换处理器设计可以有效地减少处理器面积与所需的操作时脉。

    背景技术

    有关本发明相关的快速傅利叶转换计算与寻址方法以及使用此方法的以内存为基础的正/逆向快速傅立叶转换处理器的现有技术谨罗列并比较缺点如下:

    (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)加以说明:

     <mrow> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mi>n</mi> <mo>=</mo> <msub> <mi>N</mi> <mn>2</mn> </msub> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>A</mi> <mn>2</mn> </msub> <msub> <mi>n</mi> <mn>2</mn> </msub> <mi>mod</mi> <mi>N</mi> </mtd> <mtd> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>=</mo> <mn>0,1</mn> <mo>,</mo> <mo>.</mo> <mo>.</mo> <mo>.</mo> <mo>,</mo> <msub> <mi>N</mi> <mn>1</mn> </msub> <mo>-</mo> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mi>k</mi> <mo>=</mo> <msub> <mi>B</mi> <mn>1</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>N</mi> <mn>1</mn> </msub> <msub> <mi>k</mi> <mn>2</mn> </msub> <mi>mod</mi> <mi>N</mi> </mtd> <mtd> <msub> <mi>n</mi> <mn>2</mn> </msub> <mo>,</mo> <msub> <mi>k</mi> <mn>2</mn> </msub> <mo>=</mo> <mn>0,1</mn> <mo>,</mo> <mo>.</mo> <mo>.</mo> <mo>.</mo> <mo>,</mo> <msub> <mi>N</mi> <mn>2</mn> </msub> <mo>-</mo> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

    方程式(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):

     <mrow> <mi>X</mi> <mrow> <mo>(</mo> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>k</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>2</mn> </msub> </munder> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>1</mn> </msub> </munder> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>n</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>1</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>1</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> </mrow> </msubsup> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>2</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>2</mn> </msub> </mrow> </msubsup> </mrow> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow>

     <mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>2</mn> </msub> </munder> <mo>{</mo> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>1</mn> </msub> </munder> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>n</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>1</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>1</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> </mrow> </msubsup> <mo>}</mo> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>2</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>2</mn> </msub> </mrow> </msubsup> </mrow>

     <mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>2</mn> </msub> </munder> <mi>y</mi> <mrow> <mo>(</mo> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>n</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>2</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>2</mn> </msub> </mrow> </msubsup> </mrow>

    情况二:若N1与N2非为互质,则选用A2=B1=1。因此,离散傅立叶转换的定义可写成以下的方程式(3):

     <mrow> <mi>X</mi> <mrow> <mo>(</mo> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>k</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>2</mn> </msub> </munder> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>1</mn> </msub> </munder> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>n</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>1</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>1</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> </mrow> </msubsup> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>2</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>2</mn> </msub> </mrow> </msubsup> <msubsup> <mi>W</mi> <mi>N</mi> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> </mrow> </msubsup> </mrow> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow>

     <mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>2</mn> </msub> </munder> <mo>{</mo> <msubsup> <mi>W</mi> <mi>N</mi> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> </mrow> </msubsup> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>1</mn> </msub> </munder> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>n</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>1</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>1</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> </mrow> </msubsup> <mo>}</mo> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>2</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>2</mn> </msub> </mrow> </msubsup> </mrow>

     <mrow> <mo>=</mo> <munder> <mi>&Sigma;</mi> <msub> <mi>n</mi> <mn>2</mn> </msub> </munder> <msubsup> <mi>W</mi> <mi>N</mi> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>1</mn> </msub> </mrow> </msubsup> <mi>y</mi> <mrow> <mo>(</mo> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>n</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>W</mi> <msub> <mi>N</mi> <mn>2</mn> </msub> <mrow> <msub> <mi>n</mi> <mn>2</mn> </msub> <msub> <mi>k</mi> <mn>2</mn> </msub> </mrow> </msubsup> </mrow>

    可由方程式(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)进行计算。

     <mrow> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mi>n</mi> <mo>=</mo> <mn>945</mn> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>+</mo> <mn>2836</mn> <msub> <mover> <mi>n</mi> <mo>~</mo> </mover> <mn>2</mn> </msub> <mi>mod</mi> <mn>3780</mn> </mtd> <mtd> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>=</mo> <mn>0,1</mn> <mo>,</mo> <mn>2,3</mn> </mtd> </mtr> <mtr> <mtd> <mi>k</mi> <mo>=</mo> <mn>945</mn> <msub> <mi>k</mi> <mn>1</mn> </msub> <mo>+</mo> <mn>4</mn> <msub> <mover> <mi>k</mi> <mo>~</mo> </mover> <mn>2</mn> </msub> <mi>mod</mi> <mn>3780</mn> </mtd> <mtd> <msub> <mover> <mi>n</mi> <mo>~</mo> </mover> <mn>2</mn> </msub> <mo>,</mo> <msub> <mover> <mi>k</mi> <mo>~</mo> </mover> <mn>2</mn> </msub> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mo>.</mo> <mo>.</mo> <mo>.</mo> <mo>,</mo> <mn>944</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

    上述方程式将指标n映像为向量即由[0,3779]至[0,3]×[0,944],如表一所示。

    表一

    第一阶段的指标映像

    

    表一中每一列的资料为每个4点快速傅立叶转换的原始输入资料。

    输入顺序取决于指标n1。例如,列中,输入顺序为(1,1),(2,1)以及(3,1),其分别对应的资料为x[2836]、x[1]、x[946]与x[1891],如表一所示。

    由于每个4点快速傅立叶转换的原始输入资料皆具有相同的指标故可通过方程式(7)将资料分散存入不同记忆库来避免第一阶段的内存冲突。

    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。

    综上所述,以上的实施例仅是用来解释本发明的具体实施方式,本发明的保护范围仍应以权利要求书的范围为准。

    

以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法.pdf_第1页
第1页 / 共20页
以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法.pdf_第2页
第2页 / 共20页
以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法.pdf》由会员分享,可在线阅读,更多相关《以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法.pdf(20页珍藏版)》请在专利查询网上搜索。

本发明通过分解方程式将长点数离散傅立叶转换的计算分解为数个短点数的离散傅立叶转换,并同时将其指标由单一维度映像成多维度指标向量。通过控制指标向量,把原始输入资料分散存放到数个内存里,使得在不产生内存存取冲突的情况下同时达到计算期间的资料置换与内存完整蝴蝶点数一次存取的目的。当资料置换使用在已计算完成的旧资料依序输出与新资料依序输入时,为了往后计算期间可以继续保持资料存取时没有内存冲突,对于新资料的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1