CN102025676A - 一种1536点的fft/ifft实现方法及装置 - Google Patents

一种1536点的fft/ifft实现方法及装置 Download PDF

Info

Publication number
CN102025676A
CN102025676A CN2009101729643A CN200910172964A CN102025676A CN 102025676 A CN102025676 A CN 102025676A CN 2009101729643 A CN2009101729643 A CN 2009101729643A CN 200910172964 A CN200910172964 A CN 200910172964A CN 102025676 A CN102025676 A CN 102025676A
Authority
CN
China
Prior art keywords
fft
ifft
result
data
unit
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.)
Pending
Application number
CN2009101729643A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN2009101729643A priority Critical patent/CN102025676A/zh
Publication of CN102025676A publication Critical patent/CN102025676A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种1536点的快速傅里叶变换(FFT)/快速傅里叶逆变换(IFFT)的实现方法及装置,所述装置包括:512点FFT/IFFT处理模块和基3处理模块;所述方法包括:在1536点数据中,对位于3的正整数倍位置上的512个点、位于3的正整数倍减2位置上的512个点及位于3的正整数倍减1位置上的512个点分别进行FFT/IFFT处理,再对得到的3个数据进行基3运算,得到1536点的FFT/IFFT处理结果。本发明有效地利用了FPGA本身自带的512点FFT/IFFT核,解决了无法利用核实现非2的幂次方FFT/IFFT的问题,同时回避了全分解的FFT/IFFT实现,节省了大量的FPGA芯片资源。

Description

一种1536点的FFT/IFFT实现方法及装置
技术领域
本发明涉及数字信号处理领域及通讯领域及其它电子领域,尤其涉及一种1536点FFT/IFFT的实现方法及装置。
背景技术
在LTE(Long Term Evolution,长期演进)的TDD(Time DivisionDuplexing,时分双工)RACH(Random Access Channel,随机接入信道)处理方案中,为了支持4096点短RACH的处理,需要在有效前导码后进行16倍降采样,将长RACH的有效24576样点降采样到1536点,将短RACH的有效4096点降采样到256点。长短RACH经过降采样后需要做复合1536点和512点的FFT(Fast Fourier Transform,快速傅里叶变换)/IFFT(InverseFast Fourier Transform,快速傅里叶逆变换)运算处理。
如图1所示,1536点和512点FFT/IFFT整个链路复用运算处理装置由以下模块组成:
DSP(Digital Signal Processing,数字信号处理)配置解析模块101:主要用于解析DSP配置的各种参数包数据;
16倍降采样处理模块102:一般采用DDC(Digital Down Converter,数字下变频)滤波器结构,用于在降采样滤波器处理过程中,把长RACH的有效24576个样点经过4级滤波处理降采样到1536点,把短RACH的有效4096个样点经过4级滤波处理降采样到256点;
1536点和512点的FFT/IFFT复用处理模块103,用于实现512点和1536点的FFT/IFFT,并能够根据配置信息分别处理相应点数的FFT/IFFT;及
与母码序列相关处理模块104,用于将经过FFT后的数据与本地母码序列做相关处理。
目前的FFT/IFFT实现主要有2种方法:(1)当点数为2的N次幂时,要进行FFT/FFT时可直接调用FPGA(Field Programmable Gate Array,现场可编程门阵列)厂家的IP Core实现,例如Xilinx公司的FFT/IFFT核中支持2的N次幂的FFT/IFFT实现。(2)当点数为非2的N次幂时,要对该样点进行FFT/IFFT处理时,需把大样点的FFT/IFFT依次进行全分解,然后再进行全分解的蝶型运算,例如专利号为CN200710044716.1(流水线结构的3780点快速傅里叶变换处理器)中说明的实现方法。
但以上2种方法在实际使用中都存在不足。包括:
方法一中在处理FDD(Frequency Division Duplex,频分双工)RACH时可以直接调用IP Core实现点数为2的N次幂的FFT/IFFT,但是在TDD中处理1536点等非2的N次幂的FFT/IFFT时则无法直接调用核实现;
方法二中基于大样点的全分解蝶型运算实现起来比较繁杂、在真正的项目实践中会极大的影响项目的进展,而且非常占用FPGA的RAM(Random-Access Memory,内存块)、Slice(逻辑单元块)等资源,实际实现时用此方法效果也不理想。
发明内容
本发明要解决的技术问题是提供一种1536点FFT/IFFT的实现方法及装置,以解决现有技术中在对1536点数据进行FFT/IFFT处理时流程繁杂的确定。
为解决上述问题,本发明提供了一种1536点的快速傅里叶变换(FFT)/快速傅里叶逆变换(IFFT)的实现方法,包括:
在1536点数据中,对位于3的正整数倍位置上的512个点、位于3的正整数倍减2位置上的512个点及位于3的正整数倍减1位置上的512个点分别进行FFT/IFFT处理,再对得到的3个数据进行基3运算,得到1536点的FFT/IFFT处理结果。
进一步地,上述方法还可具有以下特征:
所述对得到的3个数据进行基3运算具体包括以下步骤:将对位于3的正整数倍减1位置上的512个点经过FFT/IFFT处理后得到的数据与第一旋转因子相乘,将对位于3的正整数倍位置上的512个点经过FFT/IFFT处理后得到的数据与第二旋转因子相乘,然后再将上述两个乘积与对位于3的正整数倍减2位置上的512个点经过FFT/IFFT处理后得到的数据相加;其中,在进行FFT处理时,第一和第二旋转因子分别为
Figure B2009101729643D0000031
Figure B2009101729643D0000032
在进行IFFT处理时,第一和第二旋转因子分别为
Figure B2009101729643D0000033
Figure B2009101729643D0000034
进一步地,上述方法还可具有以下特征:
所述对得到的3个数据进行基3运算具体包括以下步骤:将对位于3的正整数倍位置上的512点数据经过FFT/IFFT处理后得到的数据与旋转因子相乘后再与对位于3的正整数倍减1位置上的512点数据经过FFT/IFFT处理后得到的数据相加,然后再将相加后得到的结果乘以旋转因子后,将该乘积与对位于3的正整数倍减2位置上的512点数据经过FFT/IFFT处理后得到的数据相加;其中,在进行FFT处理时,所述旋转因子为
Figure B2009101729643D0000035
在进行IFFT处理时,所述旋转因子为
Figure B2009101729643D0000036
进一步地,上述方法还可具有以下特征:
在计算位于第k+1位点的FFT/IFFT处理结果时,通过搜索查找表来得到对应旋转因子的值;其中,所述查找表中保存有k值及对应旋转因子的值的对应关系。
本发明还提供了一种实现1536点的快速傅里叶变换(FFT)/快速傅里叶逆变换(IFFT)的装置,包括:512点FFT/IFFT处理模块和基3处理模块;
所述512点FFT/IFFT处理模块用于对位于3的正整数倍减2位置上的512个点、位于3的正整数倍减1位置上的512个点及位于3的正整数倍位置上的512个点分别进行FFT/IFFT处理,并将得到的处理结果A、B和C发送到所述基3处理模块;
所述基3处理模块用于对所述接收到的处理结果进行基3运算,得到1536点数据的FFT/IFFT处理结果。
进一步地,上述装置还可具有以下特征:
还包括一个数据选通器(MUX)通道选择器,其分别与所述512点FFT/IFFT处理模块和所述基3处理模块相连,用于根据配置的通道选择,在所述512点FFT/IFFT处理模块的输入数据为512点数据时,输出所述512点FFT/IFFT处理模块向其发送的512点FFT/IFFT处理结果;在所述512点FFT/IFFT处理模块的输入数据为1536点数据时,输出所述基3处理模块向其发送的1536点FFT/IFFT处理结果。
进一步地,上述装置还可具有以下特征:所述基3处理模块包括:
写控制单元:用于将对经过所述512点FFT/IFFT处理模块输出的数据进行写控制,将所述结果A写入第一乒乓存储单元,将所述结果B写入第二乒乓存储单元,将所述结果C写入第三乒乓存储单元;
第一、第二及第三乒乓存储单元:用于存储经过写控制单元的数据;
读控制单元:用于从第一乒乓存储单元读出所述结果A并发送到3目复数相加单元,从第二乒乓存储单元读出结果B并发送到第一复数相乘单元,从第三乒乓存储单元读出结果C并发送到第二复数相乘单元;
旋转因子存储单元:用于存储查找表,该查找表中保存有各个k值及对应的第一旋转因子值及第二旋转因子值的对应关系,其中,k=0,1,…1535;
旋转因子控制单元:当对位于1536点中第k+1位置上的点进行FFT/IFFT时,用于所述控制旋转因子存储单元相应地向第一复数相乘单元输出所述第一旋转因子
Figure B2009101729643D0000041
向第二复数相乘单元输出所述第二旋转因子
Figure B2009101729643D0000042
第一复数相乘单元:用于对输入的所述第一旋转因子与输入该单元的结果B进行复数相乘,并将乘积结果发送到3目复数相加单元;
第二复数相乘单元:用于对所述第二旋转因子与该输入该单元的结果C进行复数相乘,并将乘积结果发送到3目复数相加单元;
3目复数相加单元:用于对三组输入的数据进行3目复数相加后,输出结果。
进一步地,上述装置还可具有以下特征:
写控制单元:用于将对经过所述512点FFT/IFFT处理模块输出的数据进行写控制,将所述结果A写入第一乒乓存储单元,将所述结果B写入第二乒乓存储单元,将所述结果C写入第三乒乓存储单元;
第一、第二、第三乒乓存储单元:用于存储经过写控制单元的数据;
读控制单元:用于从第一乒乓存储单元读出所述结果A并发送到第二复数相加单元,从第二乒乓存储单元读出所述结果B并发送到第一复数相加单元,从第三乒乓存储单元读出所述结果C并发送到第一复数相乘单元;
旋转因子存储单元:用于存储查找表,该查找表中保存有各个k值及对应的旋转因子值的对应关系,其中,k=0,1,…1535;
旋转因子控制单元:当对位于1536点中第k+1位置上的点进行FFT/IFFT时,用于控制所述旋转因子存储单元相应地向第一复数相乘单元和第二复数相乘单元输出旋转因子
Figure B2009101729643D0000051
第一复数相乘单元:用于对所述旋转因子与输入该单元的结果C进行复数相乘,并将乘积结果发送到第一复数相加单元;
第一复数相加单元:用于对输入该单元的所述乘积结果及结果B进行复数相加,并将结果输入到第二复数相乘单元;
第二复数相乘单元:用于对所述旋转因子与该输入该单元的结果A进行复数相乘,并将乘积结果发送到第二复数相加单元;
第二复数相加单元:主要用于对输入该单元的两个数据进行复数相加,然后输出结果。
本发明有效地利用了FPGA本身自带的512点FFT/IFFT核,解决了无法利用核实现非2的幂次方FFT/IFFT的问题,同时回避了全分解的FFT/IFFT实现,节省了大量的FPGA芯片资源,加快了研发速度,极大的减少了芯片功耗,并且对基3运算进行优化处理,使得整个实现简洁、明了,同时也利于实现的便易性。
附图说明
图1为现有技术中实现1536点和512点数据的FFT/IFFT复用运算的结构图;
图2为本发明实施例中1536点和512点FFT/IFFT复合运算处理的结构图;
图3为本发明实施例中一种基三处理模块的结构图;
图4为本发明实施例中另一种基三处理模块的结构图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
本发明所述方法的基本思想是:在1536点数据中,对位于3的正整数倍位置上的512个点、位于3的正整数倍减2位置上的512个点及位于3的正整数倍减1位置上的512个点分别进行FFT/IFFT处理,再对得到的3个数据进行基3运算,得到1536点的FFT/IFFT处理结果。
对应的装置如图2所示,包括:512点FFT/IFFT处理模块201和基3处理模块202。该512点FFT/IFFT处理模块用于对1536点数据中位于3的正整数倍位置上的512个点、位于3的正整数倍减2位置上的512个点及位于3的正整数倍减1位置上的512个点分别进行FFT/IFFT处理处理后,发送到基3处理模块;基3处理模块用于对接收到的3个数据进行基3运算。
此外,该装置还可以包括一个MUX(数据选通器)通道选择器203,其分别与512点FFT/IFFT处理模块和基3处理模块相连,用于根据配置的通道选择,在512点FFT/IFFT处理模块的输入数据为512点数据时,输出512点FFT/IFFT处理模块向其发送的512点FFT/IFFT处理结果;在512点FFT/IFFT处理模块的输入数据为1536点数据时,输出基3处理模块向其发送的1536点FFT/IFFT处理结果。
对1536点的数据进行FFT处理,其计算公式如下:
X ( k ) = Σ n = 0 N - 1 x ( n ) W N kn = Σ m = 0 N 3 - 1 x ( 3 m ) W N 3 mk + Σ m = 0 N 3 - 1 x ( 3 m + 1 ) W N ( 3 m + 1 ) k + Σ m = 0 N 3 - 1 x ( 3 m + 2 ) W N ( 3 m + 2 ) k - - - ( 1 )
在本发明中,由于N=1536,所以:
X ( k ) = Σ n = 0 1535 x ( n ) W 1536 kn = Σ m = 0 511 x ( 3 m ) W 512 km + W N k Σ m = 0 511 x ( 3 m + 1 ) W 512 km + W N 2 k Σ m = 0 511 x ( 3 m + 2 ) W 512 km - - - ( 2 )
其中,x(n)为位于1536个点中第n+1位的点,k=0,1,…1535,旋转因子
Figure B2009101729643D0000071
由于x(3m)为在1536点中位于3的正整数倍减2位置上的点,因此
Figure B2009101729643D0000072
即为对位于3的正整数倍减2位置上的512个点进行FFT处理后得到的结果。同理,即为对位于3的正整数倍减1位置上的512个点进行FFT处理后得到的结果,即为对位于3的正整数倍位置上的512个点进行FFT处理后得到的结果。
对1536点进行IFFT处理的原理与上述FFT相同,差异在于旋转因子不同,IFFT处理对应的额外旋转因子为
Figure B2009101729643D0000075
Figure B2009101729643D0000076
N=1536。
因此,从上述公式(2)可以看出,对经过FFT/IFFT处理得到的3个数据进行基3运算具体包括以下步骤:将对位于3的正整数倍减1位置上的512个点经过FFT/IFFT处理后得到的数据与第一旋转因子相乘,将对位于3的正整数倍位置上的512个点经过FFT/IFFT处理后得到的数据与第二旋转因子相乘,然后再将上述两个乘积与对位于3的正整数倍减2位置上的512个点经过FFT/IFFT处理后得到的数据相加,得到1536点中第k+1位数据的FFT/IFFT处理结果。其中,在对1536点数据进行FFT处理时,所述第一旋转因子和第二旋转因子分别为
Figure B2009101729643D0000077
在进行IFFT处理时,第一旋转因子和第二旋转因子分别为
Figure B2009101729643D00000710
针对1536点FFT中的两个旋转因子
Figure B2009101729643D00000711
Figure B2009101729643D00000712
可以将这两个旋转因子在各个k值下的取值制作成查找表。则在后续通过查找该表,即可得到对应的旋转因子值。
采用公式(2)进行基3运算时,相应的基3处理模块的结构如图3所示,包括:
写控制单元:主要是对经过FFT/IFFT处理模块输出的数据进行写控制,将对位于3的正整数倍减2位置上的512点数据进行FFT/IFFT处理后得到的结果A写入第一乒乓存储单元,将对位于3的正整数倍减1位置上的512点数据进行FFT/IFFT处理后得到的结果B写入第二乒乓存储单元,将位于3的正整数倍位置上的512点数据进行FFT/IFFT处理后得到的结果C写入第三乒乓存储单元;
第一、第二、第三乒乓存储单元:主要存储经过写控制单元的数据;
读控制单元:主要用于从第一乒乓存储单元读出A并发送到3目复数相加单元,从第二乒乓存储单元读出结果B并发送到第一复数相乘单元,从第三乒乓存储单元读出C并发送到第二复数相乘单元;
旋转因子存储单元:主要用于存储查找表,该查找表中保存有各个k值及对应的
Figure B2009101729643D0000082
值的对应关系,或者保存有各个k值及对应的
Figure B2009101729643D0000083
Figure B2009101729643D0000084
值的对应关系,其中,k=0,1,…1535;
旋转因子控制单元:主要用于控制查找表中旋转因子的输出;当对位于1536点中第k+1位置上的点进行FFT/IFFT时,该单元控制控制旋转因子存储单元相应地向第一复数相乘单元输出第一旋转因子
Figure B2009101729643D0000085
向第二复数相乘单元输出第二旋转因子
第一复数相乘单元:主要用于对第一旋转因子与输入该单元的结果B进行复数相乘,并将乘积结果发送到3目复数相加单元;
第二复数相乘单元:主要用于对第二旋转因子与该输入该单元的C进行复数相乘,并将乘积结果发送到3目复数相加单元;
3目复数相加单元:主要用于对三组输入的数据进行3目复数相加后,输出结果。
进一步对上述公式(2)进行变形,可得到下述公式:
X ( k ) = Σ m = 0 511 x ( 3 m ) W 512 km = W N k Σ m = 0 511 x ( 3 m + 1 ) W 512 km + W N 2 k Σ m = 0 511 x ( 3 m + 2 ) W 512 km
= Σ m = 0 511 x ( 3 m ) W 512 km + W N k Σ m = 0 511 x ( 3 m + 1 ) W 512 km + W N k W N k Σ m = 0 511 x ( 3 m + 2 ) W 512 km - - - ( 3 )
= Σ m = 0 511 x ( 3 m ) W 512 km + W N k [ Σ m = 0 511 x ( 3 m + 1 ) W 512 km + W N k Σ m = 0 511 x ( 3 m + 2 ) W 512 km ]
从公式(3)可以看出,采用公式(3)所述算法可以避免3目复数相加的计算,且采用一套旋转因子
Figure B2009101729643D00000810
表即可完成FFT处理,比起利用公式(2)进行的计算更加简洁。
因此,从上述公式(3)可以看出,对经过FFT/IFFT处理得到的3个数据进行基3运算具体包括以下步骤:将对位于3的正整数倍位置上的512点数据经过FFT/IFFT处理后得到的数据与旋转因子相乘后再与对位于3的正整数倍减1位置上的512点数据经过FFT/IFFT处理后得到的数据相加,然后再将相加后得到的结果乘以旋转因子后,将该乘积与对位于3的正整数倍减2位置上的512点数据经过FFT/IFFT处理后得到的数据相加,得到1536点中第k+1位数据的FFT/IFFT处理结果。其中,在进行FFT处理时,旋转因子为
Figure B2009101729643D0000091
在进行IFFT处理时,旋转因子为
Figure B2009101729643D0000092
在对1536点数据进行IFFT处理过程中的基3运算:将
Figure B2009101729643D0000093
换为
Figure B2009101729643D0000094
即可。即:
W N k = e - j 2 πk N = cos ( 2 πk N ) - j sin ( 2 πk N ) - - - ( 4 )
W N - k = e j 2 πk N = cos ( 2 πk N ) + j sin ( 2 πk N )
可以看出,在根据公式(3)对1536点数据进行FFT和IFFT处理时,在基3运算过程中使用的旋转因子的实部数据都是一样的,虚部数据互为相反数。因此可以共用一个查找表进行FFT和IFFT计算。
因此,最终1536点FFT用公式(3)来实现时,只需制作旋转因子
Figure B2009101729643D0000097
的查找表即可。而且只需设计各对应相位的余弦值的查找表(即保存k及对应cosk的对应关系),相应相位的正弦值可以根据sin(θ)=cos(2π-θ)的对应关系从查找表中对应获取。
这里给出cos值在查找表中的索引值和sin值在查找表中的索引值。
当对第k+1位的数据进行FFT处理时,
ptrcos=k
ptrsin=mod(k+384,1536)      其中,k=0,1,…,1535
当进行IFFT处理时,
ptrcos=k
ptrsin=mod(384-k,1536)        其中,k=0,1,…,1535
采用公式(3)进行基3运算时,相应的基3处理模块的结构如图4所示,包括:
写控制单元:主要是对经过FFT/IFFT处理模块输出的数据进行写控制,将对位于3的正整数倍减2位置上的512点数据进行FFT/IFFT处理后得到的结果A写入第一乒乓存储单元,将对位于3的正整数倍减1位置上的512点数据进行FFT/IFFT处理后得到的结果B写入第二乒乓存储单元,将位于3的正整数倍位置上的512点数据进行FFT/IFFT处理后得到的结果C写入第三乒乓存储单元;
第一、第二、第三乒乓存储单元:主要存储经过写控制单元的数据;
读控制单元:主要用于从第一乒乓存储单元读出结果A并发送到第二复数相加单元,从第二乒乓存储单元读出结果B并发送到第一复数相加单元,从第三乒乓存储单元读出结果C并发送到第一复数相乘单元;
旋转因子存储单元:主要用于存储查找表,该查找表中保存有各个k值及对应的
Figure B2009101729643D0000101
Figure B2009101729643D0000102
值的对应关系,其中,k=0,1,…1535;
旋转因子控制单元:主要用于控制查找表中旋转因子的输出;当对位于1536点中第k+1位置上的点进行FFT/IFFT时,该单元控制控制旋转因子存储单元相应地向第一复数相乘单元和第二复数相乘单元输出旋转因子
Figure B2009101729643D0000103
第一复数相乘单元:主要用于对旋转因子与输入该单元的结果C进行复数相乘,并将乘积结果发送到第一复数相加单元;
第一复数相加单元:主要用于对输入该单元的两个数据进行复数相加,并将结果输入到第二复数相乘单元;
第二复数相乘单元:主要用于对旋转因子与该输入该单元的数据进行复数相乘,并将乘积结果发送到第二复数相加单元;
第二复数相加单元:主要用于对输入该单元的两个数据进行复数相加,然后输出结果。
参考图4,现在以一个1536点输入为周期,对其实现过程进行说明:
(1)1536点数据按照流水依次进入512点FFT/IFFT处理模块,该模块对位于3的正整数倍位置上的512个点、位于3的正整数倍减2位置上的512个点及位于3的正整数倍减1位置上的512个点分别进行FFT/IFFT处理,然后输出3个FFT/IFFT处理结果;
(2)写控制单元分别对512点FFT/IFFT处理模块输出的3个处理结果进行写Ram操作,将对位于3的正整数倍减2位置上的512点数据进行FFT/IFFT处理后得到的结果A写入第一乒乓存储单元,将对位于3的正整数倍减1位置上的512点数据进行FFT/IFFT处理后得到的结果B写入第二乒乓存储单元,将位于3的正整数倍位置上的512点数据进行FFT/IFFT处理后得到的结果C写入第三乒乓存储单元;
(3)3组乒乓存储单元对输入数据进行乒乓操作,第1组1536点的输出都存储在Ram(即乒乓存储单元)的上半部,第2组1536点的输出都存储在Ram的下半部分;
(4)读控制单元对三个乒乓存储单元进行读控制,分别从第一乒乓存储单元读出结果A到第二复数相加单元,从第二乒乓存储单元读出结果B到第一复数相加单元,从第三乒乓存储单元读出结果C到复数相乘单元;
(5)旋转因子控制单元对旋转因子存储单元进行读控制,根据相应的相位顺序依次给出读地址控制;
(6)旋转因子存储单元根据旋转因子控制单元的读地址相应输出旋转因子;
(7)第一复数相乘单元对结果C与旋转因子进行复数相乘处理,然后将结果输出到第一复数相加单元;
(8)第一复数相加单元对结果B与第一复数相乘单元输出的复数进行相加处理,然后将结果输出到第二复数相乘单元;
(9)第二复数相乘单元对旋转因子与第一复数相加单元输出的复数进行相乘处理,然后将结果输出到第二复数相加单元;
(10)第二复数相加单元对第1组数据与第二复数相乘单元输出的复数相进行加处理,最后将结果输出。
整个实现过程都以流水线方式进行,输入数据不间断的输入。
综上所述,本发明采用基于核512点FFT/IFFT与基3的流水线相结合的方式,实现了1536点的FFT/IFFT的实现。通过上述优化设计,回避了3目复数加法的运算,同时减少了旋转因子的逻辑控制,可以极大的缩短项目开发的进度,大量减少FPGA设计逻辑资源,降低了设计的整体功耗。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (8)

1.一种1536点的快速傅里叶变换(FFT)/快速傅里叶逆变换(IFFT)的实现方法,其特征在于:
在1536点数据中,对位于3的正整数倍位置上的512个点、位于3的正整数倍减2位置上的512个点及位于3的正整数倍减1位置上的512个点分别进行FFT/IFFT处理,再对得到的3个数据进行基3运算,得到1536点的FFT/IFFT处理结果。
2.如权利要求1所述的方法,其特征在于,
所述对得到的3个数据进行基3运算具体包括以下步骤:将对位于3的正整数倍减1位置上的512个点经过FFT/IFFT处理后得到的数据与第一旋转因子相乘,将对位于3的正整数倍位置上的512个点经过FFT/IFFT处理后得到的数据与第二旋转因子相乘,然后再将上述两个乘积与对位于3的正整数倍减2位置上的512个点经过FFT/IFFT处理后得到的数据相加;其中,在进行FFT处理时,第一和第二旋转因子分别为
Figure F2009101729643C0000011
Figure F2009101729643C0000012
在进行IFFT处理时,第一和第二旋转因子分别为
Figure F2009101729643C0000013
Figure F2009101729643C0000014
3.如权利要求1所述的方法,其特征在于,
所述对得到的3个数据进行基3运算具体包括以下步骤:将对位于3的正整数倍位置上的512点数据经过FFT/IFFT处理后得到的数据与旋转因子相乘后再与对位于3的正整数倍减1位置上的512点数据经过FFT/IFFT处理后得到的数据相加,然后再将相加后得到的结果乘以旋转因子后,将该乘积与对位于3的正整数倍减2位置上的512点数据经过FFT/IFFT处理后得到的数据相加;其中,在进行FFT处理时,所述旋转因子为
Figure F2009101729643C0000015
在进行IFFT处理时,所述旋转因子为
Figure F2009101729643C0000016
4.如权利要求2或3所述的方法,其特征在于,
在计算位于第k+1位点的FFT/IFFT处理结果时,通过搜索查找表来得到对应旋转因子的值;其中,所述查找表中保存有k值及对应旋转因子的值的对应关系。
5.一种实现1536点的快速傅里叶变换(FFT)/快速傅里叶逆变换(IFFT)的装置,包括:512点FFT/IFFT处理模块和基3处理模块;
所述512点FFT/IFFT处理模块用于对位于3的正整数倍减2位置上的512个点、位于3的正整数倍减1位置上的512个点及位于3的正整数倍位置上的512个点分别进行FFT/IFFT处理,并将得到的处理结果A、B和C发送到所述基3处理模块;
所述基3处理模块用于对所述接收到的处理结果进行基3运算,得到1536点数据的FFT/IFFT处理结果。
6.如权利要求5所述的装置,其特征在于,
还包括一个数据选通器(MUX)通道选择器,其分别与所述512点FFT/IFFT处理模块和所述基3处理模块相连,用于根据配置的通道选择,在所述512点FFT/IFFT处理模块的输入数据为512点数据时,输出所述512点FFT/IFFT处理模块向其发送的512点FFT/IFFT处理结果;在所述512点FFT/IFFT处理模块的输入数据为1536点数据时,输出所述基3处理模块向其发送的1536点FFT/IFFT处理结果。
7.如权利要求5所述的装置,其特征在于,所述基3处理模块包括:
写控制单元:用于将对经过所述512点FFT/IFFT处理模块输出的数据进行写控制,将所述结果A写入第一乒乓存储单元,将所述结果B写入第二乒乓存储单元,将所述结果C写入第三乒乓存储单元;
第一、第二及第三乒乓存储单元:用于存储经过写控制单元的数据;
读控制单元:用于从第一乒乓存储单元读出所述结果A并发送到3目复数相加单元,从第二乒乓存储单元读出结果B并发送到第一复数相乘单元,从第三乒乓存储单元读出结果C并发送到第二复数相乘单元;
旋转因子存储单元:用于存储查找表,该查找表中保存有各个k值及对应的第一旋转因子值及第二旋转因子值的对应关系,其中,k=0,1,…1535;
旋转因子控制单元:当对位于1536点中第k+1位置上的点进行FFT/IFFT时,用于所述控制旋转因子存储单元相应地向第一复数相乘单元输出所述第一旋转因子
Figure F2009101729643C0000021
向第二复数相乘单元输出所述第二旋转因子
Figure F2009101729643C0000022
第一复数相乘单元:用于对输入的所述第一旋转因子与输入该单元的结果B进行复数相乘,并将乘积结果发送到3目复数相加单元;
第二复数相乘单元:用于对所述第二旋转因子与该输入该单元的结果C进行复数相乘,并将乘积结果发送到3目复数相加单元;
3目复数相加单元:用于对三组输入的数据进行3目复数相加后,输出结果。
8.如权利要求5所述的装置,其特征在于,
写控制单元:用于将对经过所述512点FFT/IFFT处理模块输出的数据进行写控制,将所述结果A写入第一乒乓存储单元,将所述结果B写入第二乒乓存储单元,将所述结果C写入第三乒乓存储单元;
第一、第二、第三乒乓存储单元:用于存储经过写控制单元的数据;
读控制单元:用于从第一乒乓存储单元读出所述结果A并发送到第二复数相加单元,从第二乒乓存储单元读出所述结果B并发送到第一复数相加单元,从第三乒乓存储单元读出所述结果C并发送到第一复数相乘单元;
旋转因子存储单元:用于存储查找表,该查找表中保存有各个k值及对应的旋转因子值的对应关系,其中,k=0,1,…1535;
旋转因子控制单元:当对位于1536点中第k+1位置上的点进行FFT/IFFT时,用于控制所述旋转因子存储单元相应地向第一复数相乘单元和第二复数相乘单元输出旋转因子
Figure F2009101729643C0000031
第一复数相乘单元:用于对所述旋转因子与输入该单元的结果C进行复数相乘,并将乘积结果发送到第一复数相加单元;
第一复数相加单元:用于对输入该单元的所述乘积结果及结果B进行复数相加,并将结果输入到第二复数相乘单元;
第二复数相乘单元:用于对所述旋转因子与该输入该单元的结果A进行复数相乘,并将乘积结果发送到第二复数相加单元;
第二复数相加单元:主要用于对输入该单元的两个数据进行复数相加,然后输出结果。
CN2009101729643A 2009-09-11 2009-09-11 一种1536点的fft/ifft实现方法及装置 Pending CN102025676A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101729643A CN102025676A (zh) 2009-09-11 2009-09-11 一种1536点的fft/ifft实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101729643A CN102025676A (zh) 2009-09-11 2009-09-11 一种1536点的fft/ifft实现方法及装置

Publications (1)

Publication Number Publication Date
CN102025676A true CN102025676A (zh) 2011-04-20

Family

ID=43866544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101729643A Pending CN102025676A (zh) 2009-09-11 2009-09-11 一种1536点的fft/ifft实现方法及装置

Country Status (1)

Country Link
CN (1) CN102025676A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955127A (zh) * 2011-08-31 2013-03-06 北京中电华大电子设计有限责任公司 一种用于大规模fpga设计中的调试方法
CN103077154A (zh) * 2012-12-31 2013-05-01 西安奇维科技股份有限公司 一种在fpga中实现任意点数fft的方法
CN103516656A (zh) * 2012-06-29 2014-01-15 中兴通讯股份有限公司 逆快速傅里叶变换实现方法及装置
CN103593327A (zh) * 2013-07-09 2014-02-19 北京理工大学 一种基于进制数转换的基3fft处理方法
CN104657335A (zh) * 2015-02-04 2015-05-27 航天科工深圳(集团)有限公司 一种基于fft的数据采样方法和装置
CN105183701A (zh) * 2015-09-06 2015-12-23 北京北方烽火科技有限公司 1536点fft处理方式及相关设备
CN105608054A (zh) * 2016-01-11 2016-05-25 北京北方烽火科技有限公司 基于lte系统的fft/ifft变换装置及方法
CN105630738A (zh) * 2016-01-11 2016-06-01 北京北方烽火科技有限公司 基于lte系统的fft/ifft变换装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1487681A (zh) * 2002-10-02 2004-04-07 ���ǵ�����ʽ���� 带3600点idft处理器的多载波发射系统及其信号处理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1487681A (zh) * 2002-10-02 2004-04-07 ���ǵ�����ʽ���� 带3600点idft处理器的多载波发射系统及其信号处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ALTER CORPORATION: "《1536-Point FFT for 3GPP Long Term Evolution》", 31 October 2007 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955127B (zh) * 2011-08-31 2015-04-22 北京中电华大电子设计有限责任公司 一种用于大规模fpga设计中的调试方法
CN102955127A (zh) * 2011-08-31 2013-03-06 北京中电华大电子设计有限责任公司 一种用于大规模fpga设计中的调试方法
CN103516656B (zh) * 2012-06-29 2018-03-27 中兴通讯股份有限公司 逆快速傅里叶变换实现方法及装置
CN103516656A (zh) * 2012-06-29 2014-01-15 中兴通讯股份有限公司 逆快速傅里叶变换实现方法及装置
CN103077154A (zh) * 2012-12-31 2013-05-01 西安奇维科技股份有限公司 一种在fpga中实现任意点数fft的方法
CN103077154B (zh) * 2012-12-31 2016-01-06 西安奇维科技股份有限公司 一种在fpga中实现任意点数fft的方法
CN103593327A (zh) * 2013-07-09 2014-02-19 北京理工大学 一种基于进制数转换的基3fft处理方法
CN104657335A (zh) * 2015-02-04 2015-05-27 航天科工深圳(集团)有限公司 一种基于fft的数据采样方法和装置
CN105183701A (zh) * 2015-09-06 2015-12-23 北京北方烽火科技有限公司 1536点fft处理方式及相关设备
CN105183701B (zh) * 2015-09-06 2018-06-26 北京北方烽火科技有限公司 1536点fft处理方式及相关设备
CN105630738A (zh) * 2016-01-11 2016-06-01 北京北方烽火科技有限公司 基于lte系统的fft/ifft变换装置
CN105608054A (zh) * 2016-01-11 2016-05-25 北京北方烽火科技有限公司 基于lte系统的fft/ifft变换装置及方法
CN105608054B (zh) * 2016-01-11 2018-10-16 北京北方烽火科技有限公司 基于lte系统的fft/ifft变换装置及方法
CN105630738B (zh) * 2016-01-11 2019-01-08 北京北方烽火科技有限公司 基于lte系统的fft/ifft变换装置

Similar Documents

Publication Publication Date Title
CN102025676A (zh) 一种1536点的fft/ifft实现方法及装置
CN101504637B (zh) 一种点数可变实时fft处理芯片
CN105045766B (zh) 基于3072点快速傅里叶变换的数据处理方法及处理器
CN101154215B (zh) 基23频域取样快速傅立叶变换的硬件结构
CN101571849B (zh) 一种快速傅立叶变换处理器及其方法
CN101729463A (zh) 一种实现快速傅立叶变换、反变换的硬件装置及方法
CN112100568B (zh) 定点傅里叶变换fft处理器及处理方法
CN101231632A (zh) 应用fpga进行浮点fft处理的方法
CN101937424A (zh) 基于fpga实现高速fft处理的方法
Xie et al. Hardware-efficient realization of prime-length DCT based on distributed arithmetic
CN101847986A (zh) 一种实现fft/ifft变换的电路及方法
Revanna et al. A scalable FFT processor architecture for OFDM based communication systems
CN101937423A (zh) 一种流水式fft/ifft的处理系统
CN103777896A (zh) 基于3d存储器的地址生成器
CN105095152A (zh) 一种可配置的128点fft装置
CN101582059A (zh) 基于fpga实现并行结构fft处理器的方法
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN102364456A (zh) 64点fft计算器
CN103176949B (zh) 实现fft/ifft变换的电路及方法
CN101262464A (zh) 正交频分复用系统中可重配置快速傅里叶变换的方法
CN101640522B (zh) 一种适用于抽取滤波器的数据抽取方法及装置
US9268744B2 (en) Parallel bit reversal devices and methods
Su et al. Reconfigurable FFT design for low power OFDM communication systems
CN102763101A (zh) 快速傅里叶变换电路
CN104657335A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110420