CN103198055B - 一种分裂基fft结构设计方法 - Google Patents

一种分裂基fft结构设计方法 Download PDF

Info

Publication number
CN103198055B
CN103198055B CN201310033677.0A CN201310033677A CN103198055B CN 103198055 B CN103198055 B CN 103198055B CN 201310033677 A CN201310033677 A CN 201310033677A CN 103198055 B CN103198055 B CN 103198055B
Authority
CN
China
Prior art keywords
data
computing
fft
result
split
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
Application number
CN201310033677.0A
Other languages
English (en)
Other versions
CN103198055A (zh
Inventor
杨玉辰
周国昌
胡向晖
赖晓玲
李维佳
巨艇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Institute of Space Radio Technology
Original Assignee
Xian Institute of Space Radio Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Institute of Space Radio Technology filed Critical Xian Institute of Space Radio Technology
Priority to CN201310033677.0A priority Critical patent/CN103198055B/zh
Publication of CN103198055A publication Critical patent/CN103198055A/zh
Application granted granted Critical
Publication of CN103198055B publication Critical patent/CN103198055B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种分裂基FFT结构设计方法,以分裂基FFT算法原理为参考,对公式进行进一步的规整化,开展了2N点分裂基FFT并行流水结构设计的研究,按照快速计算以及资源优化的要求,对计算过程中的每个步骤进行优化处理,实现了2N点FFT的并行流水结构,该结构具有一定的规律性,此外对计算过程中的旋转因子采用选择存储方法,大量的节省了存储资源,对于大点数的FFT旋转因子的计算提出了使用CORDIC算法计算以节约资源,并给出了CORDIC算法计算说明。

Description

一种分裂基FFT结构设计方法
技术领域
本发明涉及一种2N点分裂基FFT结构设计方法,属于通信技术领域。
背景技术
快速傅里叶变换(FFT,FastFourierTransform)在通信系统数字信号分析和处理方面是一种非常重要的变换。自1965年提出Cooley-Tukey算法后,新的算法不断涌现,目前FFT算法结构基本上包括基2FFT、基4FFT、分裂基FFT、混合基FFT以及以Winograd算法为代表的一类算法(素因子算法、Winograd算法)。其中,基2FFT、基4FFT、分裂基FFT和混合基FFT是针对N等于2的整数次幂的算法;素因子算法、Winograd算法是针对N不等于2的整数次幂的算法。两大类算法针对具体的应用情况,各有利弊,不过1984年提出的分裂基FFT算法被认为是目前对于N为2的整数幂中各类算法中较为理想的一种。但该方法资源利用率低,难以在速度和面积上得到较好的平衡。
发明内容
本发明的目的在于克服现有技术的上述不足,提供一种2N点分裂基FFT结构设计方法,利用分裂基FFT算法,通过规整该算法的公式结构规整硬件设计结构,并巧妙的设计了旋转因子的存储方法,实现了并行流水的2N点分裂基FFT结构优化设计,充分验证了该设计方法的有效性、高效性和可行性。
本发明的上述目的主要是通过如下技术方案予以实现的:
一种2N点分裂基FFT结构设计方法,对如下2N点分裂基FFT算法公式X(k)的偶序号运算进行进一步分解,即对其中的X(2l)运算进行进一步分解:
X ( k ) = X ( 2 l ) = Σ n = 0 N 2 - 1 [ x ( n ) + x ( n + N 2 ) ] W N 2 ln X ( 4 r + 1 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] - j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N n * W N 4 r n X ( 4 r + 3 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] + j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N 3 n * W N 4 r n
得到如下X(2l)运算公式:
X ( 2 l ) = X ( 4 r ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] + [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 4 r n X ( 4 r + 2 ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] - [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 2 n * W N 4 r n X ( 4 r + 1 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] - j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N n * W N 4 r n X ( 4 r + 3 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] + j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N 3 n * W N 4 r n ;
其中:r=0,1,2…N/4-1;l=0,1,2…N/2-1,N为正整数;
根据X(2l)运算公式,将2N点分裂基FFT拆分为如下三步运算:
(1)实现X(n)和X(n+N/2)的和差运算以及X(n+N/4)和X(n+3N/4)的差运算;
(2)将步骤(1)中的X(n+N/4)和X(n+3N/4)的差运算结果乘以±j,再与X(n)和X(n+N/2)的差结果进行相加;
(3)将步骤(2)的X(4r+1)运算结果乘以旋转因子X(4r+3)结果乘以旋转因子
从而得出对2N点分裂基FFT进行结构优化的具体步骤如下:
步骤(一)、共分为(N+1)/2级运算,在第一级运算中,首先将数据序列X(M)的前一半数据存入SRAM1中,将SRAM1中的所述前一半数据与数据序列X(M)的后一半数据依次进行和差运算,将差结果按次序存入SRAM1中,覆盖掉SRAM1中已有的数据;将由和结果组成的新的数据序列X(M’)的前一半数据进行复数实部虚部转换后存入SRAM2中,将SRAM2中的所述前一半数据与数据序列X(M’)的后一半数据依次进行和差运算,将差结果存入SRAM2中,覆盖掉SRAM2中已有的数据,并将和结果根据X(2l)运算公式与对应的旋转因子相乘,计算得到数据序列X(M”);其中:M=2N
步骤(二)、将数据序列X(M”)进行第二级运算,运算过程同步骤(一),唯一的区别在于参与运算的数据减少到原来的1/4;依次类推,完成第二级运算后,继续进行第三级运算、第四级运算....,直到完成第(N+1)/2级运算,得到包括两个数据的第一组结果输出;
步骤(三)、从第(N+1)/2级运算的SRAM(N)中取出保存的差结果作为一个新的序列X(M”’),进行逆序的第一级运算,具体方法为:取出新序列X(M”’)的前一半数据存入SRAM(N+1)中,与新序列X(M”’)的后一半数据进行和差运算,将相对应的差结果按次序存入SRAM(N+1)中,覆盖掉SRAM(N+1)中已有的数据,将和结果根据X(2l)运算公式与对应的旋转因子相乘,计算得到新的数据序列输出;
步骤(四)、重复步骤(三),依次逆序将每一级保存的SRAM中的差结果数据取出,进行逆序的下一级运算,直至将所有的SRAM中的数据取完时即运算结束,得到相应的2N点分裂基FFT计算结果。
在上述2N点分裂基FFT结构设计方法中,对于小于2048点的分裂基FFT的旋转因子提前计算好存储在ROM中,为了节省资源,利用三角函数的周期特性,只存储1/8象限的正余弦函数值,剩下7/8象限的值,利用三角函数关系进行推导得出;出于节省资源的考虑,对于大于2048点的分裂基FFT的旋转因子采用CORDIC模块计算得出。
本发明与现有技术相比具有如下有益效果:
(1)本发明通过对分裂基FFT算法计算过程的具体分析,按照快速计算以及资源优化的要求,对计算过程中的每个步骤进行优化处理,最终实现了并行流水的2N点分裂基FFT结构优化设计,充分验证了设计方法的有效性、高效性和可行性;
(2)本发明实现了2N点FFT的并行流水结构,该结构具有一定的规律性,对计算过程中的旋转因子采用选择存储方法,大量的节省了存储资源,例如对于数据的存储,以2048点分裂基为例,假定用16位存储一个数据,实部和虚部的结果分别存储,那么本发明总共用到的SRAM资源有(1024+512+256+128+64+32+16+8+4+2+1)*32=2047*32=65504位,对于旋转因子的存储,以2048点为例,每级运算分别需要存储2048,512,128,32,8个旋转因子,本发明中实际存储的旋转因子个数为257,65,17,5,2,因此大大节省了存储资源;
(3)本发明对于小于2048点的分裂基FFT的旋转因子提前计算好存储在ROM中,为了节省资源,利用三角函数的周期特性,只存储1/8象限的正余弦函数值,剩下7/8象限的值,利用三角函数关系进行推导得出;对于大于2048点的分裂基FFT的旋转因子采用CORDIC模块计算得出,以节省资源。
附图说明
图1为8点分裂基FFTL型蝶算示意图;
图2为本发明32点分裂基FFT示意图;
图3为本发明2048点分裂基FFT算法流程示意图;
图4为本发明不同象限位置旋转因子关系图;
图5为本发明CORDIC计算流程图;
图6为本发明CORDIC计算输入输出结构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
目前常用的FFT算法有基2、基4、分裂基FFT等多种。为了实现快速的FFT计算,本发明以分裂基FFT算法原理为参考,对公式进行进一步的规整化,开展了2N点分裂基FFT并行流水结构设计的研究,实现了2N点FFT的并行流水结构。
分裂基FFT算法
分裂基FFT算法用公式1-1表达。
X ( k ) = X ( 2 l ) = Σ n = 0 N 2 - 1 [ x ( n ) + x ( n + N 2 ) ] W N 2 ln ( 1 ) X ( 4 r + 1 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] - j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N n * W N 4 r n ( 2 ) X ( 4 r + 3 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] + j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N 3 n * W N 4 r n ( 3 ) - - - ( 1 - 1 )
其中:r=0,1,2…N/4-1;
l=0,1,2…N/2-1;
通过观察发现,需要经过三步运算得到中间输出结果。
第一步:实现X(n)和X(n+N/2)的和差运算以及X(n+N/4)和X(n+3N/4)的差运算;
第二步:将第一步中的X(n+N/4)和X(n+3N/4)的差运算结果乘以±j,再与X(n)和X(n+N/2)的差结果进行相加;
第三步:将第二步的X(4r+1)运算结果乘以旋转因子X(4r+3)结果乘以旋转因子
经过上述三步运算,生成结果可以看作新的输入数据重新套用公式进行迭代计算。因为第二、三步的运算针对的是第一步中的差式结果,导致奇数点完成了一个基4运算,而偶数点只有一次基2运算,所以分裂基算法的运算过程可看作一个L型的运算,也称为L型公式。如图1所示为8点分裂基FFTL型蝶算示意图,图1以8点FFT为例,说明分裂基FFT的L型蝶算过程。
X ( 2 l ) = X ( 4 r ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] + [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 4 r n ( 1 ) X ( 4 r + 2 ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] - [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 2 n * W N 4 r n ( 2 ) - - - ( 1 - 2 )
对偶序号的运算进行进一步的分解,如式1-2所示,可以将计算进一步规律化。通过上面的描述可以清晰地看到一次L蝶算将整个序列划分为了3个子序列,而通过式1-2,一次分裂基运算相当于得到了4个子序列。每个子序列又是下一次分裂基运算的输入,最终的计算结果仅与上一次运算的结果有关,与之前的数据无关。
规律化处理后的分裂基公式如式1-3所示:
X ( 2 l ) = X ( 4 r ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] + [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 4 r n ( 1 ) X ( 4 r + 2 ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] - [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 2 n * W N 4 r n ( 2 ) X ( 4 r + 1 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] - j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N n * W N 4 r n ( 3 ) X ( 4 r + 3 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] + j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N 3 n * W N 4 r n ( 4 ) - - - ( 1 - 3 )
通过对式1-3的剖析分解,本发明设计了一种并行流水的结构用来实现2N点分裂基FFT。
如图2所示为本发明32点分裂基FFT示意图,以32点分裂基FFT为例说明本发明设计的2N点分裂基FFT结构设计方法。考虑32点分裂基FFT结构,如图2所示,可以清晰的看到一个32点FFT运算被逐级的分解成了16点FFT运算、8点FFT运算、4点FFT运算、2点FFT运算。每个L蝶算计算完成的结果会作为下一级L蝶算的输入,上个L蝶算的输入数据不再使用。这样,将每个L型蝶算的差结果暂存入SRAM中稍后运算,和结果直接送入下一级蝶算,依此类推,可以知道最先计算出的是图2右上角的两点FFT计算的和与旋转因子相乘的结果。然后再取出两点FFT运算完后存入SRAM中的差结果的数据与旋转因子相乘后送出即为第二个输出数据。即先进行两点分裂基FFT;再进行4点分裂基FFT,4点分裂基的运算调用两点分裂基运算的结构进行;然后再进行8点分裂基FFT,8点分裂基FFT依次调用4点分裂基结构、两点分裂基结构进行计算;最后是进行16点的分裂基FFT计算,同样的,16点的分裂基FFT计算依次调用8点分裂基FFT结构、4点分裂基FFT结构、2点分裂基FFT结构。这样最终完成了32点分裂基FFT的计算。假定用16位存储一个数据,实部和虚部的结果分别存储,那么总共用到的SRAM资源有(16+8+4+2+1)*2*32=62*32=1984位,而且由于2点、4点、8点、16点的结构是可以复用的,所以,可以设计得到一种资源很少的并行流水分裂基FFT结构。
对于暂存在SRAM中的L蝶算的下部分数据,采用相同的方式进行计算,前一部分数据存入下一步运算的SRAM中,等待和后一半数据进行和差运算。这里要说明的是由于后一半数据要乘以-j,在与前一半数据进行和差运算时,实部和虚部的数据要颠倒,并且虚部数据要变号(a+bj)*(-j)=b-aj。实部虚部颠倒并且虚部变号的数据再与后一半进来的数据进行和差运算。
如图3所示为本发明2048点分裂基FFT算法流程示意图,图3以2048点分裂基FFT为例,左侧为一级L型蝶算的算法执行流程,整体可以看出2048点分裂基FFT数据流向以及计算过程。
本发明对2N点分裂基FFT进行结构优化的具体步骤如下:
步骤(一)、共分为(N+1)/2级运算,在第一级运算中,首先将数据序列X(M)的前一半数据存入SRAM1中,将SRAM1中的前一半数据与数据序列X(M)的后一半数据依次进行和差运算,将差结果按次序存入SRAM1中,覆盖掉SRAM1中已有的数据;将由和结果组成的新的数据序列X(M’)的前一半数据进行复数实部虚部转换后存入SRAM2中,将SRAM2中的前一半数据与数据序列X(M’)的后一半数据依次进行和差运算,将差结果存入SRAM2中,覆盖掉SRAM2中已有的数据,并将和结果根据X(2l)运算公式与对应的旋转因子相乘,计算得到数据序列X(M”);其中:M=2N
步骤(二)、将数据序列X(M”)进行第二级运算,运算过程同步骤(一),唯一的区别在于参与运算的数据减少到原来的1/4;依次类推,完成第二级运算后,继续进行第三级运算、第四级运算....,直到完成第(N+1)/2级运算,得到包括两个数据的第一组结果输出。
步骤(三)、从第(N+1)/2级运算的SRAM(N)中取出保存的差结果作为一个新的序列X(M”’),进行逆序的第一级运算,具体方法为:取出新序列X(M”’)的前一半数据存入SRAM(N+1)中,将SRAM(N+1)中的前一半数据与新序列X(M”’)的后一半数据进行和差运算,将相对应的差结果按次序存入SRAM(N+1)中,覆盖掉SRAM(N+1)中已有的数据,将和结果根据X(2l)运算公式与对应的旋转因子相乘,计算得到新的数据序列输出。
步骤(四)、重复步骤(三),依次逆序将每一级保存的SRAM中的差结果数据取出,进行逆序的下一级运算,直至将所有的SRAM中的数据取完时即运算结束,得到相应的2N点分裂基FFT计算结果。
对于2N点分裂基FFT,进行和差运算的数据是n和n+N/2,所以,必须先缓存2N-1个输入数据后才可以进行运算。设S为运算控制器,用于控制数据是否进行和差运算;Stcnt用于控制参加运算的数据是复数的实部还是虚部。根据S值,将2N-1个输入数据存入SRAM中,改变S值,与已经保存的2N-1个数据进行蝶算,再将输出结果顺序存入SRAM中,替换掉之前的数据。蝶算中需要进行乘法运算的旋转因子可以采用CORDIC算法计算得出,也可以采用查找表的方式查出。对于小于2048点的FFT计算建议使用查找表的方式,对于大于2048点的FFT计算建议使用CORDIC算法进行计算,目的都是节省资源。
对于2N点分裂基FFT旋转因子,如果采用查找表的方式进行计算,为了节省存储资源,对旋转因子的值进行选择存储。考虑旋转因子的值为 exp - j n N 2 π = c o s ( n N 2 π ) - j sin ( n N 2 π ) , 自变量为可知自变量的范围在(0,2π),这样可以考虑仅存储(0,π/4)的1/8象限的正余弦值。其余值可以通过三角公式推导计算得出。其余值和(0,π/4)1/8象限值的关系可以通过图4看出,如图4所示为本发明不同象限位置旋转因子关系图。
每一级分裂基运算的旋转因子都采用这种方法存储,不同之处在于旋转因子的索引。每级的点数不同,将点在圆上平均分配后,落在第1/8象限的也不同。以2048点为例,从第一级到第五级依次是2048、512、128、32和8,那么需要索引的点依次为257、65、17、5和2。使用的旋转因子W的下标也不同,依次是2048、512、128、32和8。
如果采用CORDIC计算旋转因子的话,只需要设计CORDIC运算单元,对于大点数的FFT运算,使用CORDIC运算计算旋转因子相比于查表法而言更加节省资源。
CORDIC算法即坐标旋转数字计算方法,由J.D.Volder于1959年首次提出,主要是利用不同的笛卡尔坐标系下(圆周系统、线性系统和双曲系统)的向量和角度旋转来实现三角函数、反三角函数、指数函数、对数函数等超越函数的计算。该算法的实现仅仅使用了基本的加法和移位运算就代替了乘除法运算实现了超越函数的计算,因此在工程领域得到了更加广泛的应用。
本发明采用1971年J.S.Walther提出的统一CORDIC思想,对笛卡尔坐标系下的三种坐标系统表述的公式进行统一参数化,将三种系统以参数的形式表述在CORDIC算法公式中,使得仅仅依靠参数变量的配置,就可以实现各个笛卡尔坐标系下的超越函数的计算。简化统一CORDIC算法公式如下式所示:
xi+1=xi-m·δi·2-i·yi
yi+1=yii·2-i·xi
ωi+1=ωii·ei
式中:m=1时,ei=tan-12-i;m=0时,ei=2-i;m=-1时,ei=tanh-12-i
m=1对应圆周系统,用于计算正余弦、反正切函数;m=0对应线性系统,用于计算乘除法;m=-1对应双曲系统,用于计算开方运算、双曲反正切函数。
图5给出了CORDIC计算的算法流程说明。
根据表1对输入输出数据进行配置可以得到相应的计算结果。
表1输入配置以及输出结果
K 1 = Π i = 0 n - 1 ( 1 + ω i 2 ) 1 / 2 , K - 1 = Π i = 0 n - 1 ( 1 - ω i 2 ) 1 / 2
根据上述分析,可以得到本发明优化设计的并行流水的2N点分裂基FFT的蝶算整体结构,如图6所示为本发明CORDIC计算输入输出结构图。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

Claims (2)

1.一种分裂基FFT结构设计方法,其特征在于:对如下2N点分裂基FFT算法公式X(k)的偶序号运算进行进一步分解,即对其中的X(2l)运算进行进一步分解:
X ( k ) = X ( 2 l ) = Σ n = 0 N 2 - 1 [ x ( n ) + x ( n + N 2 ) ] W N 2 ln X ( 4 r + 1 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] - j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N n * W N 4 rn X ( 4 r + 3 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] + j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N 3 n * W N 4 rn
得到如下X(2l)运算公式:
X ( 2 l ) = X ( 4 r ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] + [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 4 rn X ( 4 r + 2 ) = Σ n = 0 N 4 - 1 { [ x ( n ) + x ( n + N 2 ) ] - [ x ( n + N 4 ) + x ( n + 3 N 4 ) ] } W N 2 n * W N 4 rn X ( 4 r + 1 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] - j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N n * W N 4 rn X ( 4 r + 3 ) = Σ n = 0 N 4 - 1 { [ x ( n ) - x ( n + N 2 ) ] + j * [ x ( n + N 4 ) - x ( n + 3 N 4 ) ] } W N 3 n * W N 4 rn ;
其中:r=0,1,2…N/4-1;l=0,1,2…N/2-1,N为正整数;
根据X(2l)运算公式,将2N点分裂基FFT拆分为如下三步运算:
(1)实现X(n)和X(n+N/2)的和差运算以及X(n+N/4)和X(n+3N/4)的差运算;
(2)将步骤(1)中的X(n+N/4)和X(n+3N/4)的差运算结果乘以±j,再与X(n)和X(n+N/2)的差结果进行相加;
(3)将步骤(2)的X(4r+1)运算结果乘以旋转因子X(4r+3)结果乘以旋转因子
从而得出对2N点分裂基FFT进行结构优化的具体步骤如下:
步骤(一)、共分为(N+1)/2级运算,在第一级运算中,首先将数据序列X(M)的前一半数据存入SRAM1中,将SRAM1中的所述前一半数据与数据序列X(M)的后一半数据依次进行和差运算,将差结果按次序存入SRAM1中,覆盖掉SRAM1中已有的数据;将由和结果组成的新的数据序列X(M’)的前一半数据进行复数实部虚部转换后存入SRAM2中,将SRAM2中的所述前一半数据与数据序列X(M’)的后一半数据依次进行和差运算,将差结果存入SRAM2中,覆盖掉SRAM2中已有的数据,并将和结果根据X(2l)运算公式与对应的旋转因子相乘,计算得到数据序列X(M”);其中:M=2N
步骤(二)、将数据序列X(M”)进行第二级运算,运算过程同步骤(一),唯一的区别在于参与运算的数据减少到原来的1/4;依次类推,完成第二级运算后,继续进行第三级运算、第四级运算....,直到完成第(N+1)/2级运算,得到包括两个数据的第一组结果输出;
步骤(三)、从第(N+1)/2级运算的SRAM(N)中取出保存的差结果作为一个新的序列X(M”’),进行逆序的第一级运算,具体方法为:取出新序列X(M”’)的前一半数据存入SRAM(N+1)中,与新序列X(M”’)的后一半数据进行和差运算,将相对应的差结果按次序存入SRAM(N+1)中,覆盖掉SRAM(N+1)中已有的数据,将和结果根据X(2l)运算公式与对应的旋转因子相乘,计算得到新的数据序列输出;
步骤(四)、重复步骤(三),依次逆序将每一级保存的SRAM中的差结果数据取出,进行逆序的下一级运算,直至将所有的SRAM中的数据取完时即运算结束,得到相应的2N点分裂基FFT计算结果。
2.根据权利要求1所述的一种分裂基FFT结构设计方法,其特征在于:对于小于2048点的分裂基FFT的旋转因子提前计算好存储在ROM中,为了节省资源,利用三角函数的周期特性,只存储1/8象限的正余弦函数值,剩下7/8象限的值,利用三角函数关系进行推导得出;出于节省资源的考虑,对于大于2048点的分裂基FFT的旋转因子采用CORDIC模块计算得出。
CN201310033677.0A 2013-01-29 2013-01-29 一种分裂基fft结构设计方法 Active CN103198055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310033677.0A CN103198055B (zh) 2013-01-29 2013-01-29 一种分裂基fft结构设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310033677.0A CN103198055B (zh) 2013-01-29 2013-01-29 一种分裂基fft结构设计方法

Publications (2)

Publication Number Publication Date
CN103198055A CN103198055A (zh) 2013-07-10
CN103198055B true CN103198055B (zh) 2016-03-30

Family

ID=48720625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310033677.0A Active CN103198055B (zh) 2013-01-29 2013-01-29 一种分裂基fft结构设计方法

Country Status (1)

Country Link
CN (1) CN103198055B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291315B (zh) * 2018-12-06 2023-10-20 电信科学技术研究院有限公司 一种数据处理方法、装置及设备
CN112835073A (zh) * 2021-02-05 2021-05-25 重庆九洲星熠导航设备有限公司 一种用于卫星信号捕获的fft处理器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339272A (zh) * 2010-07-16 2012-02-01 联咏科技股份有限公司 分裂基数-2/8快速傅立叶转换装置及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW594502B (en) * 2003-01-30 2004-06-21 Ind Tech Res Inst Length-scalable fast Fourier transformation digital signal processing architecture
TWI274262B (en) * 2005-10-19 2007-02-21 Sunplus Technology Co Ltd Digital signal processing apparatus
TWI402695B (zh) * 2010-07-12 2013-07-21 Novatek Microelectronics Corp 分裂基數-2/8快速傅立葉轉換裝置及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339272A (zh) * 2010-07-16 2012-02-01 联咏科技股份有限公司 分裂基数-2/8快速傅立叶转换装置及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《A High Performance Split-Radix FFT with Constant Geometry Architecture》;Joyce Kwong,Manish Goel;《Design, Automation & Test in Europe Conference & Exhibition 2012》;20120316;全文 *
《A Mixed-Radix 4-2 Butterfly with Simple Bit Revering for Ordering the Output Sequences》;Young-jin Moon,Young-il Kim;《The 8th International Conference on Advanced Communication Technology 2006》;20060222;全文 *
《基于FPGA的高速分裂基FFT算法实现》;刘星;《中国高新技术企业》;20100131(第1期);全文 *
《混合CORDIC在分裂基FFT中的应用》;万书芹等;《计算机工程与应用》;20101130;第46卷(第11期);全文 *

Also Published As

Publication number Publication date
CN103198055A (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
CN103440121B (zh) 一种面向向量处理器的三角矩阵乘法向量化方法
CN103970718A (zh) 一种快速傅里叶变换实现装置及方法
CN109522674A (zh) 基2-2算法的快速傅里叶变换硬件设计方法
Nguyen et al. A high-performance, resource-efficient, reconfigurable parallel-pipelined FFT processor for FPGA platforms
CN101836202B (zh) 快速傅立叶变换/反快速傅立叶变换运算核
CN103198055B (zh) 一种分裂基fft结构设计方法
CN101354700B (zh) 一种蝶形运算fft处理器
Xiao et al. Reduced memory architecture for CORDIC-based FFT
US8838661B2 (en) Radix-8 fixed-point FFT logic circuit characterized by preservation of square root-i operation
WO2018213438A1 (en) Apparatus and methods of providing efficient data parallelization for multi-dimensional ffts
CN112559954B (zh) 基于软件定义可重构处理器的fft算法处理方法及装置
CN102637124B (zh) 一种基4fft算法的并行处理装置及方法
Choudhary et al. CORDIC based implementation of Fast Fourier Transform
CN103262067B (zh) 一种数据处理方法、数据处理装置和通信系统
CN104657334B (zh) 一种快速傅里叶变化的基2-4-8混合基蝶算器及其应用
Bansal et al. Memory-efficient Radix-2 FFT processor using CORDIC algorithm
KR100892292B1 (ko) 병렬 구조 및 파이프라인 방식을 이용한 Radix 2의4승 고속 푸리에 변환 프로세서
CN101706770B (zh) 包含四条指令的支持快速傅里叶变换运算的方法
CN105893328A (zh) 一种基于Cooley-Tukey的FFT算法
CN101833540A (zh) 信号处理方法和装置
Yuan et al. Pruning split-radix FFT with time shift
Malashri et al. Low power and memory efficient FFT architecture using modified CORDIC algorithm
CN101741801B (zh) 一种32路并行数据dft的实现结构
CN104572578B (zh) 用于显著改进微控制器中fft性能的新颖方法
Xiu-fang et al. Design and Implement of FFT Processor for OFDMA system using FPGA

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