并行分支蝶形单元的fft的地址映射方法及装置的制作方法

文档序号:6427270阅读:165来源:国知局
专利名称:并行分支蝶形单元的fft的地址映射方法及装置的制作方法
技术领域
本发明涉及通信技术领域,更具体的说,是涉及一种并行分支蝶形单元的FFT的地址映射方法及装置。
背景技术
当前,宽带无线系统中随着要 求传输的码元速率不断提高,传输带宽也越来越宽的情况下,为消除传输过程中的干扰和衰落等,宽带无线系统的物理层多采用 OFDM (Orthogonal Frequency Division Multiplexing,正交频分复用)技术,如WiMAX(Worldwide Interoperability for Microwave Access,全球微波互联接入)、WiFi (wireless fidelity,无线局域网)、DVB (Digital Video Broadcasting,数字视频广播)、DAB (Digital Audio Broadcasting,数字信号广播)等,上述系统基带调制部分的共同特点即均采用FFT (Fast Fourier Transformation,快速傅里叶变换)作为“调制引擎”。由于宽带系统的不断升级,人们对带宽的要求也更加苛刻起来,为提升系统的处理能力,对符合上述要求的可高速、并行、可扩展和低成本的FFT的设计需求也变得迫切起来。在现有技术中,设计并行FFT的实现架构时(在对应的FFT装置中包括控制架构内部模块间的协调调度的主控单元和外部存储器),为了解决不可避免的高速、并行的数据读写问题,一般采用多个存储体(FFT的基数)的方式来解决上述并行数据读写的问题,并且多采用成本较低的单端口或双端口存储器。但是,依照FFT的运算规则(即利用旋转因子的周期性和对称性进行运算,该旋转因子存储于旋转因子存储器中),在进行蝶形单元的FFT地址映射的过程中,将中间数据写入下一级存储体组时,会影响紧接着的并行数据的读取,不能保证FFT运算的连续性和有效性,尤其是当FFT的点数较多、基数较大或有多个基数混合运算时,在进行并行FFT运算时,更不能保证FFT运算的连续性和有效性。

发明内容
有鉴于此,本发明提供了一种并行分支蝶形单元的FFT的地址映射方法及装置,以克服现有技术在蝶形单元的FFT地址映射过程中,不能保证FFT运算的连续性和有效性的问题。为实现上述目的,本发明提供如下技术方案一种并行分支蝶形单元的快速傅里叶变换FFT的地址映射方法,包括依据快速傅里叶变换FFT的采样点个数确定FFT的基数,及所述基数对应的FFT级间变换的总级数M ;按顺序将所述采样点存储至第一存储体组的存储体中,所述存储体的个数为当前确定FFT的基数中的最高基的数值Dmax ;依据当前确定的基数在第一存储体组与第二存储体组之间执行FFT级间变换,具体为
当当前级数m大于等于I且小于M时,将存储于当前级的存储体中的待处理数据或中间数据依据列按逻辑块移一位、行按存储体移一位的循环移位方式,并行写入下一级的A=个不同逻辑块中,所述m的取值范围为I M ;循环执行上述FFT级间变换至当前级数m等于M。优选地,所述执行FFT级间变换时,将当前级m中的A=个逻辑块进行划分,且一个逻辑块对应划分为下一级的D个逻辑块。优选地,所述循环移位的范围包括行的循环范围为存储体组中的存储体个数;
列的循环范围为各级每个逻辑块中所包含的每个存储体的地址个数。优选地,所述循环移位写入数据的方式为先按存储体进行移位,再按逻辑块进行移位,后按逻辑块内列移位后写入数据。优选地,所述循环移位写入数据的方式为先按逻辑块内列移位,再按逻辑块进行移位,后按存储体进行移位后写入数据。优选地,包括当FFT的采样点数为4或8的整数次幂时,确定FFT的基数为单一基,所述单一基为基2、基4或基8 ;当前确定FFT的基数中的最高基的数据Dmax等于所述单一基的数值;所述单一基数对应的FFT级间变换的总级数M为以单一基为底采样点数的对数。优选地,包括当FFT的采样点数不为4或8的整数次幂时,确定FFT的基数为混合基,所述混合基为基2、基4或基8的任意组合;当前确定FFT的基数中的最高基的数据Dmax为混合基数中的最高基的数值;所述混合基对应的FFT级间变换的总级数M具体为将不为4或8的整数次幂的采样点数分解为混合基中各单一基的整数次幂数值的乘积;计算各所述单一基对应的级数,获取所述混合基中各单一基对应的级数的总和为总级数M ;当进行FFT级间变换时,先依据基4或基8执行FFT级间变换,最后一级执行基2或基4的运算。一种并行分支蝶形单元的快速傅里叶变换FFT的地址映射装置,包括主控单元、旋转因子存储器和外部存储器,还包括并行分支蝶形单元组,用于经主控单元控制确定FFT的基数,进行FFT级间运算;第一内部存储体组和第二内部存储体组,用于存储进行FFT级间变换时,列按逻辑块移一位、行按存储体移一位的循环移位方式并行写入或读出的待处理数据或中间数据;地址产生单元,用于向所述旋转因子存储器、所述外部存储器、所述第一内部存储体组和第二内部存储体组提供进行FFT级间变换时读取的地址。经由上述的技术方案可知,与现有技术相比,本发明公开了一种并行分支蝶形单元的FFT的地址映射方法及装置,基于FFT级间的变换和依据行、列循环移位的方法,实现并行分支蝶形单元FFT地址映射,能够解决并行分支蝶形单元运算时FFT的级间数据读写问题,即通过地址间的映射实现多组数据间的并行读写相互之间不产生影响,保证FFT运算过程中的连续性和有效性,并且可采用普通常用的低成本单端口或双端口存储器实现并行FFT运算,进一步降低了实现成本与复杂度。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图I为本发明实施例一公开的一种并行分支蝶形单元的FFT的地址映射方法流程图;图2为本发明一种并行分支蝶形单元FFT 64点DIF4地址变换的示意流程图;图3为本发明一种并行分支蝶形单元FFT 64点DIF8地址变换的示意流程图;图4为本发明一种应用并行分支蝶形单元FFT地址映射方法的FFT实现结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下FFT Fast Fourier Transformation,快速傅里叶变换;DIF :频率抽取,为FFT算法中的一种,另一种为时间抽取DIT ;data:数据。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。由背景技术可知,在利用现有技术中的构架解决高速、并行的数据读写问题时,其中对应的FFT装置在进行蝶形单元的FFT地址映射的过程中,将处理过程中的中间数据写入下一级存储体组时,会影响紧接着的并行数据的读取,不能保证FFT运算的连续性和有效性,尤其是当FFT的点数较多、基数较大或有多个基数混合运算时,在进行并行FFT运算时,更不能保证FFT运算的连续性和有效性。因此,本发明提供了一种并行分支蝶形单元的FFT的地址映射方法及装置,通过地址间的映射实现多组数据间的并行读写相互之间不产生影响,保证FFT运算过程中的连续性和有效性。具体过程通过以下实施例进行详细说明。实施例一请参阅附图1,为本发明公开的一种并行分支蝶形单元的FFT的地址映射方法的流程图,主要包括以下步骤步骤S101,依据FFT的采样点个数N确定FFT的基数D,以及所述基数D对应的FFT级间变换的总级数M。在执行步骤SlOl中,基数D的FFT即为执行FFT蝶形单元的基数,D的取值与采样点的个数N有关。所述基数D对应的FFT级间变换的总级数M则与基数D和采样点数N有关。在本发明中的基数主要包括基8、基4和基2,一般情况下,基数越大效率越高。其中,采样点数可按DIF进行抽取,也可以按照DIT进行抽取。步骤S102,按顺序将所述采样点存储至第一存储体组的存储体中,所述存储体的个数为当前确定FFT的基数中的最高基的数值D_。步骤S103,依据确定的基数在第一存储体组与第二存储体组之间执行FFT级间变换。在整个FFT系统中存在两组存储体组,所进行的级间变换也是在两组存储体组中乒乓进行的。在执行步骤S102中,将抽取到的采样点N存储至第一存储体组的存储体中,需要说明的是,在两组存储体组中的存储体的个数为当前确定的FFT的基数中的最高基的·数值Dmax。一般情况下,每个存储体组中的每个存储体中存储的采样点的个数是相同的。步骤S104,判断当前进行FFT级间变换的级数m是否大于等于I且小于M,如果是,则执行步骤S105 ;如果否,则执行步骤S106。步骤S105,将存储于当前级的存储体中的待处理数据或中间数据依据列按逻辑块移一位、行按存储体移一位的循环移位方式,并行写入下一级的A=个不同逻辑块中,所述m的取值范围为I M。在执行步骤S105进行FFT级间变换时,将当前级m中的A=个逻辑块进行划分,且一个逻辑块对应划分为下一级的D个逻辑块。对逻辑块的划分详细进行说明,具体每一级划分的逻辑块的个数与其所在级数和FFT的基数有关,具体为山疒其中m的取值范围为I M,即在总级数之内(包括总级数)。需要注意的是该划分是在实际运算过程中的逻辑划分,且上一级中的一个逻辑块将对应分割为下一级的D个逻辑块。给出一示例进行说明当FFT的基数为2,采样点数为64,FFT的总级数M为6,此时计算其各个所在级数m的逻辑块为当m等于I时,Dnri = D0,第一级具有一块逻辑块;当m等于2时,Dnri = D1 = 2,第二级具有两块逻辑块;当m等于3时,Dnri = D2 = 4,第三级具有四块逻辑块;依次类推,第四级八块,第五级十六块,第六级三十二块。由此,第一级中的一块逻辑块分割成第二级中的两块逻辑块;第二级中的两块逻辑块则依次分割为第三级中的四块逻辑块,依次进行分割。需要说明的是,在分割的过程中,被分割的逻辑块与分割后的逻辑块是一一对应的,例如第三级中具有四块逻辑块,分别将其编号为第三级的第一逻辑块至第四逻辑块,而第二级中的两块逻辑块的编号为第二级的第一逻辑块和第二逻辑块,其对应分割后的逻辑块,即对应第三级中的逻辑块分别为第二级中的第一逻辑块分割为第三级的第一逻辑块和第二逻辑块;第二级中的第二逻辑块则分割为第三级的第三逻辑块和第四逻辑块,即分割上一级中的逻辑块时,依次分割并与下一级中分割的逻辑块对应。步骤S106,当前进行FFT运算的级数m等于M,上述循环执行的FFT级间变换已到达最后一级,即总级数M级处,停止FFT级间变换,即停止FFT运算。在执行步骤S104至步骤S106的过程中,在当前级数m小于总级数M时,则依次进行FFT级间的变换,即从第一级开始向第二级进行变换(从第一存储体组向第二存储体组进行变换),然后再从第二级向第三级进行变换(从第二存储体组向第一存储体组进行变换),依次进行。如果总级数为2,则只进行一次级间变换即可。如果总级数较大,则依据步骤S105的方式循环进行上述的级间变换、循环移位等,即利用列(逻辑块或块内地址)、行(存储体)循环移位的方式实现将上一级FFT处理完的中间数据写入下一级待处理的D个存储体中,为不影响下一级的FFT处理运算,处理完毕的数据会被并行写入下一级中的Dm-1On为当前运算所处的级数)个不同逻辑块中。
需要说明的是,在进行上述循环移位的过程中,行的循环范围为存储体组中的存储体个数;列的循环范围为各级每个逻辑块中所包含的每个存储体的地址个数。此外,上述循环移位写入数据的方式可以为先按存储体进行移位,再按逻辑块进行移位,后按逻辑块内列移位后写入数据;也可以为先按逻辑块内列移位,再按逻辑块进行移位,后按存储体进行移位后写入数据。本发明并不对此进行限定,即移位的顺序并不是唯一的。通过上述本发明所提供的方法,基于FFT级间的变换和依据行、列循环移位的方法,实现并行分支蝶形单元FFT地址映射,能够解决并行分支蝶形单元运算时FFT的级间数据读写问题,并且可采用普通常用的低成本单端口或双端口存储器实现并行FFT运算,进一步降低了实现成本与复杂度。需要进行说明的是,关于FFT的采样点数N的取值对FFT所选取的基数的影响。当FFT的采样点数N为4或8的整数次幂时,确定FFT的基数为单一基,所述单一基为基2、基4或基8。那么,当前确定FFT的基数中的最高基的数据Dmax等于所述单一基的数值,即确定当前存储体组中的存储体的个数。而对于该单一基数对应的FFT级间变换的总级数M为以单一基为底采样点数的对数。可以用公式⑴表示M = log^}( I )其中,M即为FFT的总级数,D为FFT的基数,N为确定的采样点数,为D的整数次幂。当FFT的采样点数不为4或8的整数次幂时,确定FFT的基数为混合基,所述混合基为基2、基4或基8的任意组合。那么,当前确定FFT的基数中的最高基的数据Dmax为混合基数中的最高基的数值。如混合基为基2与基8的组合,则Dmax = 8 ;如混合基为基2与基4的组合,则Dmax = 4。而对于该混合基对应的FFT级间变换的总级数M,则将采样点分解为混合基中各单一基的整数次幂数值的乘积,然后再计算各单一基对应的级数,即依据公式(I)获取为基2、基4或基8时各自对应的级数,计算其级数的总和为FFT级间变换的总级数M。如N =128,采用基2和基4混合,将其分解为2的I次幂与4的3次幂乘积,依据公式(I)可知,Iog^=SJogf = I, M = 3+1 =4。实际上即为,FFT级间变换的前三级采用基4,最后一级米用基2。对于混合基来说,当进行FFT级间变换时,先依据基4或基8执行FFT级间变换,最后一级执行基2或基4的运算。同样,通过上述本发明所提供的方法,基于FFT级间的变换和依据行、列循环移位的方法,实现并行分支蝶形单元FFT地址映射,能够解决并行分支蝶形单元运算时FFT的级间数据读写问题,并且可采用普通常用的低成本单端口或双端口存储器实现并行FFT运算,进一步降低了实现成本与复杂度。此外,针对上述本发明所公开的地址映射方法既可用于基4、基8的高效实现,也可用于基2的运算范围。下面给出具体实施例进行详细说明。实施例二请参阅附图2,为本发明示出的一种并行分支蝶形单元FFT 64点DIF4地址变换的示意流程图,具体的变换流程如下所述如图2所示,按照DIF即按照频率抽取的方式,共采样(抽取)了 64个点,按照 FFT的基4进行运算,即D的取值为4,N的取值为64。由此,可以根据公式⑴得出,FFT的总级数M为3,依次该64点DIF4的FFT变换的中间级数为2级,如图2中示出的A和B,其中,A表示第一级变换存储体组,B表示第二级变换存储体组。如图2所示,两级变换中的两个存储体组分别为组I 中包括,RAMAl、RAMA2、RAMA3、RAMA4 ;组2 中包括,RAMBI、RAMB2、RAMB3、RAMB4。在已知上述基本条件的基础上,首先,将待变换数据(即获取的采样点)按照如图2顺序依次写入存储体组I中。由于是基4的并行运算,因此,按照并行读出的过程,从组I的4个存储体中并行读出4个数据,第一组为0、16、32和48地址中的待处理数据(后续说明中读取的数据用标识data的方式进行表示,如dataO, datal6, data32, data48等)。经蝶形单元处理后并行写入存储体组2中的4个存储体中,在本发明所要解决的问题中,主要是要在不影响级间的并行运算的基础上完成待处理数据或中间数据的并行读取和写入。因此,在本发明所提供的方法中,为了不影响第二级并行计算,写入规则如图2所示,即先将第一级中的一块逻辑块分割成对应第二级中的四块逻辑块并分别对其编号;然后,依据行、列循环移位的方式进行并行的写入。具体为将dataO写入存储体组2中第一个逻辑块的第一个存储体RAMBl中;将datal6写入第二个逻辑块对应dataO存储体行、列移位后的存储体RAMB2中;将data32写入第三个逻辑块对应datal6存储体行、列移位后的存储体RAMB3中;将data48写入第四个逻辑块对应data32存储体行、列移位后的存储体RAMB4中。完成上述第一级中的第一组并行输出的待处理数据进行第一级变换A后并行写入至第二级中。同理,针对第二组并行输出的待处理数据datal、datal7、data33和data49进行第一级变换A后并行写入的方式如图2所示,即将datal写入存储体组2中第一个逻辑块对应dataO位置循环行、列移位后的存储体RAMB2中;datal7写入存储体组2中第二个逻辑块对应datal6位置循环行、列移位后的存储体RAMB3中;data33写入存储体组2中第三个逻辑块对应data32位置循环行、列移位后的存储体RAMB4中;data49写入存储体组2中第四个逻辑块对应data48位置循环行、列移位后的存储体RAMBl中。需要说明的是,对于后续从第一级中并行输出的数据再写入时,都依据之前写入数据的位置进行循环行、列移位。该循环行、列移位的范围即整个逻辑块。如图2所示,针对第二级变换B,按照同样的方式将上一级中的逻辑块对应分割成16块逻辑块,上一级中的一块逻辑块各对应其分割而成的四个逻辑块。同样,在进行第二级变换B的过程中,其方向为从存储体组2中按组并行读取待处理数据或中间数据写入至存储体组I中。写入规则如图2所示,其具体过程与进行第一级变换A的过程相同。如从存储体组2中并行输出的第一组待处理数据为dataO、data4、data8、datal2,将dataO写入存储体组I中第一个逻辑块的第一个存储体RAMAl中;将data4写入第二个逻辑块对应dataO存储体行、列移位后的存储体RAMA2中;将data8写入第三个逻辑块对应data4存储体行、列移位后的存储体RAMA3中;将datal2写入第四个逻辑块对应data8存储体行、列移位 后的存储体RAMA4中。同理,针对第二组并行输出的待处理数据datal3、datal、data5和data9,如图2所示,将datal3写入存储体组I中第一个逻辑块对应dataO位置循环行、列移位后的存储体RAMAl中第四逻辑块中;datal写入存储体组I中第二个逻辑块对应data4位置循环行、列移位后的存储体RAMA2中的第一逻辑块中;data5写入存储体组I中第二个逻辑块对应data8位置循环行、列移位后的存储体RAMA3中的第三个逻辑块中;data9写入存储体组I中第四个逻辑块对应datal2位置循环行、列移位后的存储体RAMA4中的第三块逻辑块中。需要说明的是,,上一级中的一个逻辑块对应的存储体中存储的待处理数据,每一次进行并行写入以及循环行、列移位时都针对其分割而成的下一级中对应的逻辑块进行,即如图2中进行第二级变换B时的写入循环方式所示。实施例三在上述本发明实施例公开的基础上,如图3所示,本发明还公开了一种并行分支蝶形单元FFT 64点DIF8地址变换的示意流程图,具体的变换流程如下所述如图3所示,按照DIF即按照频率抽取的方式,共采样(抽取)了 64个点,按照FFT的基8进行运算,即D的取值为8,N的取值为64。由此,可以根据公式⑴得出,FFT的总级数M为2,依次该64点DIF4的FFT变换的中间级数为I级,如图3中示出的A表示第一级变换。如图3所示,两级变换中的两个存储体组分别为组I 中包括,RAMAl、RAMA2、RAMA3、RAMA4、RAMA5、RAMA6、RAMA7、RAMA8 ;组2 中包括,RAMBI、RAMB2、RAMB3、RAMB4、RAMB5、RAMB6、RAMB7、RAMB8。在已知上述基本条件的基础上,首先,将待变换数据(即获取的采样点)按照如图3顺序依次写入存储体组I中。在并行分支的蝶形单元进行处理的过程中,将存储体组I中的8个数据并行读出,处理后再并行写入存储体组2中。为了不影响第二级FFT的数据处理,并行读出的8个数据即0地址、8地址、16地址、24地址、32地址、40地址、48地址和56地址中的数据(n地址的数据后面均采用data的形式加以标示)采用如图方法写入存储体组2中。8个数据被依次写入不同的逻辑块中,且在存储体即列上予以移位。后续的数据的写入方式也相同,列移位时为循环移位。通过上述本发明所述的具体实施例可知,基于FFT级间的变换和依据行、列循环移位的方法,实现并行分支蝶形单元FFT地址映射,能够解决并行分支蝶形单元运算时FFT的级间数据读写问题,并且可采用普通常用的低成本单端口或双端口存储器实现并行FFT运算,进一步降低了实现成本与复杂度。
需要说明的是,当采样得到的运算点数,即采样点数N不为4或8的整数次幂时,在进行并行分支蝶形单元FFT地址映射的过程中,依照上述变换的方法,先进行基4或基8的变换,最后一级则采用基2或基4的运算方式完成即可。此外,针对多级基的处理时,列和行的移位均为循环移位,同样的,列的循环范围为存储体组中存储体的个数,行的循环范围是逻辑块中所包含的每个存储体的地址个数。上述本发明公开的实施例中详细描述了一种并行分支蝶形单元FFT地址映射方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种并行分支蝶形单元FFT地址映射装置,下面给出具体的实施例进行详细说明。请参阅附图4,为本发明公开的一种并行分支蝶形单元的快速傅里叶变换FFT的 地址映射装置,即FFT实现的结构示意图。主要包括主控单元101、地址产生单元102、旋转因子存储器103、第一内部存储体组104、第二内部存储体组105、并行分支蝶形单元106和外部存储器107。并行分支蝶形单元组106为主要单元,用于经主控单元控制确定FFT的基数,进行FFT级间运算。第一内部存储体组104和第二内部存储体组105,用于存储进行FFT级间变换时,行按逻辑块移一位、列按存储体移一位的循环移位方式并行写入的待处理数据或中间数据。地址产生单元102,用于向所述旋转因子存储器103、所述外部存储器107、所述第一内部存储体组104和第二内部存储体组105提供进行FFT级间变换时读取的地址。其具体执行过程为主控单元101负责控制内部模块间的协调调度,主要包括控制地址产生单元为外部存储器107、第一内部存储体组104和第二内部存储体组105以及旋转因子存储器103提供读取地址,同时还需控制并行分支蝶形单元组106以选择蝶形单元的基数,其内可包含基2、基4或基8的并行分支蝶形单元,采用哪种分支及何时采用由主控单元加以控制,本发明的主要变换方法即体现在该单元中,是整个FFT的运算核心。旋转因子存储器103内存有FFT变换所需的旋转因子,为配合FFT的并行计算,旋转因子也可采用多个存储体存储的形式。第一内部存储体组104和第二内部存储体组105主要用来保存FFT运算的中间数据,均由D个存储体组成,D对应FFT运算基数的最大值。综上所述通过上述本发明所提供的方法和装置,基于FFT级间的变换和依据行、列循环移位的方法,实现并行分支蝶形单元FFT地址映射,通过地址间的映射实现多组数据间的并行读写相互之间不产生影响,保证FFT运算过程中的连续性和有效性,能够解决并行分支蝶形单元运算时FFT的级间数据读写问题,并且可采用普通常用的低成本单端口或双端口存储器实现并行FFT运算,进一步降低了实现成本与复杂度。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的 原理和新颖特点相一致的最宽的范围。
权利要求
1.一种并行分支蝶形单元的快速傅里叶变换FFT的地址映射方法,其特征在于,包括 依据快速傅里叶变换FFT的采样点个数确定FFT的基数,及所述基数对应的FFT级间变换的总级数M ; 按顺序将所述采样点存储至第一存储体组的存储体中,所述存储体的个数为当前确定FFT的基数中的最高基的数值Dmax ; 依据当前确定的基数在第一存储体组与第二存储体组之间执行FFT级间变换,具体为 当当前级数m大于等于I且小于M时,将存储于当前级的存储体中的待处理数据或中间数据依据列按逻辑块移一位、行按存储体移一位的循环移位方式,并行写入下一级的 A=个不同逻辑块中,所述m的取值范围为I M ;循环执行上述FFT级间变换至当前级数m等于M。
2.根据权利要求I所述的方法,其特征在于,所述执行FFT级间变换时,将当前级m中的A=个逻辑块进行划分,且一个逻辑块对应划分为下一级的D个逻辑块。
3.根据权利要求I所述的方法,其特征在于,所述循环移位的范围包括 行的循环范围为存储体组中的存储体个数; 列的循环范围为各级每个逻辑块中所包含的每个存储体的地址个数。
4.根据权利要求I所述的方法,其特征在于,所述循环移位写入数据的方式为先按存储体进行移位,再按逻辑块进行移位,后按逻辑块内列移位后写入数据。
5.根据权利要求I所述的方法,其特征在于,所述循环移位写入数据的方式为先按逻辑块内列移位,再按逻辑块进行移位,后按存储体进行移位后写入数据。
6.根据权利要求I 5中任意一项所述的方法,其特征在于,包括 当FFT的采样点数为4或8的整数次幂时,确定FFT的基数为单一基,所述单一基为基.2、基4或基8 ; 当前确定FFT的基数中的最高基的数据Dmax等于所述单一基的数值; 所述单一基数对应的FFT级间变换的总级数M为以单一基为底采样点数的对数。
7.根据权利要求I 5中任意一项所述的方法,其特征在于,包括 当FFT的采样点数不为4或8的整数次幂时,确定FFT的基数为混合基,所述混合基为基2、基4或基8的任意组合; 当前确定FFT的基数中的最高基的数据Dmax为混合基数中的最高基的数值; 所述混合基对应的FFT级间变换的总级数M具体为将不为4或8的整数次幂的采样点数分解为混合基中各单一基的整数次幂数值的乘积; 计算各所述单一基对应的级数,获取所述混合基中各单一基对应的级数的总和为总级数M ; 当进行FFT级间变换时,先依据基4或基8执行FFT级间变换,最后一级执行基2或基4的运算。
8.一种并行分支蝶形单元的快速傅里叶变换FFT的地址映射装置,包括主控单元、旋转因子存储器和外部存储器,其特征在于,还包括 并行分支蝶形单元组,用于经主控单元控制确定FFT的基数,进行FFT级间运算; 第一内部存储体组和第二内部存储体组,用于存储进行FFT级间变换时,列按逻辑块移一位、行按存储体移一位的循环移位方式并行写入或读出的待处理数据或中间数据;地址产生单元,用于向所述旋转因子存储器、所述外部存储器、所述第一内部存储体组 和第二内部存储体组提供进行FFT级间变换时读取的地址。
全文摘要
本发明公开了一种并行分支蝶形单元的FFT的地址映射方法及装置,其方法包括依据FFT的采样点个数确定基数及FFT级间变换的总级数;按顺序将采样点存储至第一存储体组的存储体中;执行FFT级间变换,当当前级数m大于等于1且小于M时,将存储于当前级的存储体中的待处理数据或中间数据依据列按逻辑块移一位、行按存储体移一位的循环移位方式,并行写入下一级的个不同逻辑块中;直至当前级数m等于M时停止级间变换。通过上述基于FFT级间的变换和依据行、列循环移位的方法,实现并行分支蝶形单元FFT地址映射,即通过地址间的映射实现多组数据间的并行读写相互之间不产生影响,保证FFT运算过程中的连续性和有效性。
文档编号G06F17/14GK102855222SQ20111017552
公开日2013年1月2日 申请日期2011年6月27日 优先权日2011年6月27日
发明者亓中瑞, 陈杰, 曲文泽, 瞿海慧 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1