CN101110803B - 一种基于快速傅立叶变换和反变换联合运算的实现方法 - Google Patents

一种基于快速傅立叶变换和反变换联合运算的实现方法 Download PDF

Info

Publication number
CN101110803B
CN101110803B CN2006100888047A CN200610088804A CN101110803B CN 101110803 B CN101110803 B CN 101110803B CN 2006100888047 A CN2006100888047 A CN 2006100888047A CN 200610088804 A CN200610088804 A CN 200610088804A CN 101110803 B CN101110803 B CN 101110803B
Authority
CN
China
Prior art keywords
branch road
fast fourier
fourier transform
butterfly unit
frequency domain
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
CN2006100888047A
Other languages
English (en)
Other versions
CN101110803A (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.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
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 Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN2006100888047A priority Critical patent/CN101110803B/zh
Publication of CN101110803A publication Critical patent/CN101110803A/zh
Application granted granted Critical
Publication of CN101110803B publication Critical patent/CN101110803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于快速傅立叶变换和反变换联合运算的实现方法,所述运算为包括快速傅立叶变换、频域加权以及快速傅立叶反变换的联合运算,包括:(a)将频域加权因子按照其序列号的奇偶性分成两部分;(b)将序列号为奇数的频域加权因子与快速傅立叶变换的最后一级进行点乘结合;和/或将序列号为偶数的频域加权因子与快速反傅立叶变换的第一级点乘结合。本发明还公开了一种扩展碟形单元。与现有技术相比,本发明具有如下显著优点:(1)减少了频域加权运算时间,从而减少了整个运算流程的计算时间;(2)频域加权被结合到FFT和IFFT中,简化了控制流程。

Description

一种基于快速傅立叶变换和反变换联合运算的实现方法 
技术领域
本发明涉及快速傅立叶变换,特别地涉及一种基于快速傅立叶变换和反变换联合运算的实现方法。 
背景技术
快速傅立叶变换(FFT)和快速傅立叶反变换(IFFT)技术,广泛地应用于无线通信、移动通信及数字信号系统等领域。基于FFT和IFFT的联合运算 
Figure G06188804720060804D000011
也越来越多地得到应用,该算法在实现过程中通常分为三个运算步骤:(1)FFT;(2)频域加权;(3)IFFT,其运算流程如图1所示。 
从图1可以看出,基于FFT和IFFT联合运算的流程包括两个傅立叶变换,现有技术中,FFT通常采用现场可编程门阵列(Field Programmable GateArray,FPGA)或者特定用途集成电路(Application Specific Integrated Circuit,ASIC)等硬件方法实现,这些方法可以根据特定的设计要求进行设计,因而具有更优化的效能资源比。 
上述基于FFT和IFFT联合运算 
Figure G06188804720060804D000012
的实现方法,通常采用占用资源较少,并且在单次运算所用的时间也不长的递归结构,由于FFT单元和IFFT单元在使用中是可以复用的,实质上可以看作同一个运算,对该联合运算进行计算时,先递归实现FFT,然后对FFT结果进行点乘运算,然后再递归实现IFFT。 
从上述递归结构的实现方法可以看出,由于该算法中存在频域加权,需要占用时间进行点乘运算,且FFT、频域加权、IFFT单独计算,控制流程也较复杂。 
发明内容
本发明即是针对上述现有技术中存在的缺点而提出的一种基于快速傅立叶变换和反变换联合运算的实现方法,该方法能够有效地减少整个运算流程 的计算时间,简化控制流程。 
为达到上述发明目的,本发明提供一种基于快速傅立叶变换和反变换联合运算的实现方法,所述运算为包括快速傅立叶变换、频域加权以及快速傅立叶反变换的联合运算,包括: 
(a)将频域加权因子按照其序列号的奇偶性分成两部分; 
(b)将序列号为奇数的频域加权因子与快速傅立叶变换的最后一级进行点乘结合;和/或将序列号为偶数的频域加权因子与快速反傅立叶变换的第一级点乘结合。 
进一步地,所述的步骤(b)是通过扩展蝶形算法实现,所述的扩展蝶形算法为: 
快速傅立叶变换的最后一级之前为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]Wp; 
快速傅立叶变换的最后一级为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]wj; 
快速傅立叶反变换的第一级为:Xm+1(i)=wiXm(i)+Xm(j),Xm+1(j)=wiXm(i)-Xm(j); 
快速傅立叶反变换的第一级以后各级为: X m + 1 ( i ) = X m ( i ) + W c p X m ( j ) , X m + 1 ( j ) = X m ( i ) - W c p X m ( j ) ;
其中:Xm(i)、Xm(j)分别为一个蝶形单元输入端上支路和下支路数据;Xm+1(i)、Xm+1(j)分别为该蝶形单元输出端上支路和下支路数据;Wp为快速傅立叶变换过程中的旋转因子;Wc p为快速傅立叶反变换过程中的旋转因子,wi和wj为频域加权因子。 
为达到上述发明目的,本发明提还提供一种扩展蝶形单元,包括:前置蝶形单元、后置蝶形单元、延迟单元以及复数乘法器,所述的前置蝶形单元的输出端上支路数据经过延迟单元处理后输出作为后置蝶形单元输入端上支路的数据,下支路数据在复数乘法器中与外部输入数据进行复数乘法运算处理后输出作为后置蝶形单元输入端下支路的数据; 
所述的前置蝶形单元,用于在第一设定状态下,输出端上支路和下支路的数据分别为a0、b0,在第二设定状态下,上支路和下支路输出数据分别为 a0+b0、a0-b0,其中:a0、b0分别为输入端上支路和下支路的数据; 
所述的后置蝶形单元,用于在第三设定状态下,输出端上支路和下支路的数据分别为c0、d0,在第四设定状态下,上支路和下支路输出数据分别为d0-c0、d0+c0,在第五设定状态下,上支路和下支路输出数据分别为c0+d0、c0-d0,其中:c0、d0分别为输入端上支路和下支路的数据; 
所述的延迟单元的延迟拍数为计算一个复数乘法所需的时钟拍数。 
进一步地,所述的复数乘法器的外部输入值为快速傅立叶变换和快速傅立叶反变换时的旋转因子或者频域加权因子。 
进一步地,所述的复数乘法器的外部输入值由外部控制单元确定。 
与现有技术相比,本发明具有如下显著优点: 
(1)减少了频域加权运算时间,从而减少了整个运算流程的计算时间; 
(2)频域加权被结合到FFT和IFFT中,简化了控制流程。 
附图说明
图1为基于FFT和IFFT的联合运算的运算流程示意图; 
图2为基于FFT和IFFT的联合运算的运算流程展开图; 
图3为现有技术中FFT过程中蝶形单元的运算图; 
图4为现有技术中IFFT过程中蝶形单元的运算图; 
图5为本发明具体实施例中扩展蝶形单元的结构图。 
具体实施方式
图3所示为现有技术中按频率抽取(Decimation-in-Frequency,DIF)的FFT算法中采用的蝶形单元的运算图,从该图中可以看出,任何一级的蝶形单元中按照下述方法进行计算: 
Xm+1(i)=Xm(i)+Xm(j); 
Xm+1(j)=[Xm(i)-Xm(j)]Wp; 
其中:Xm(i)为FFT中一个蝶形单元输入端上支路数据; 
Xm(j)为FFT中一个蝶形单元输入端下支路数据; 
Xm+1(i)为FFT中上述蝶形单元输出端上支路数据; 
Xm+1(j)为FFT中上述蝶形单元输出端下支路数据; 
Wp为该级运算过程中的旋转因子。 
图4所示为现有技术中按时间抽取(Decimation-in-Time,DIT)的IFFT算法中采用的蝶形单元的运算图,从该图中可以看出,任何一级的蝶形单元中按照下述方法进行计算: 
X m + 1 ( i ) = X m ( i ) + W c p X m ( j ) ;
X m + 1 ( j ) = X m ( i ) - W c p X m ( j ) ;
其中:Xm(i)为IFFT中一个蝶形单元输入端上支路数据; 
Xm(j)为IFFT中一个蝶形单元输入端下支路数据; 
Xm+1(i)为IFFT中该蝶形单元输出端上支路数据; 
Xm+1(j)为IFFT中该蝶形单元输出端下支路数据; 
Wc p为该级运算过程中的的旋转因子。 
根据上述的在FFT运算过程中采用的蝶形单元和IFFT运算过程中采用的蝶形单元的计算规则,可知图2所示的基于FFT和IFFT的联合运算的运算流程展开图中FFT的最后一级中的旋转因子W0和IFFT第一级中的旋转因子Wc 0都是1,这表明FFT的最后一级和IFFT第一级中的复数乘法器都是处于空闲状态的。根据FFT和IFFT的联合运算的这个特点,可以将频域加权因子分别合并到FFT和IFFT的运算中,使得基于FFT和IFFT的联合运算 
Figure G06188804720060804D000043
的实现过程中不再存在点乘运算环节,且FFT和IFFT中的每一级运算的每一蝶形单元中都有且仅有一个支路利用了乘法器。 
为了方便基于快速傅立叶变换和反变换联合运算 的实现,本发明提出了一种扩展蝶形单元,该扩展蝶形单元的结构图如图5所示,包括一个前置蝶形单元,一个后置蝶形单元,一个复数乘法器M,一个延迟器D,其中:延迟器D延迟的时钟拍数等于计算一个复数乘法所需要的时钟拍数,从而保证后置蝶形单元的不同输入端的数据输入时间一致,前置蝶形单元的输出端上支路数据经过延迟单元处理后输出作为后置蝶形单元输入端上支路的数据,前置蝶形单元的输出端下支路数据在复数乘法器中与外部输入数据进行复数乘法运算处理后输出作为后置蝶形单元输入端下支路的数据。 
在前置蝶形单元中,输入端上下支路的数据分别为a0、b0,前置蝶形单元在不同的控制状态下可以有不同的输出数值,设定该单元在状态“0”时, 其输出端上下支路的数据为a0、b0;在状态“1”时,其输出端上下支路的数据为a0+b0、a0-b0。 
在后置蝶形单元中,输入端上下支路的数据分别为c0、d0,后置蝶形单元在不同的控制状态下可以有不同的输出数值,设定该单元在状态“00”时,其输出端上下支路的数据为c0、d0;在状态“01”时,其输出端上下支路的数据为d0-c0、d0+c0;在状态“10”时,其输出端上下支路的数据为c0+d0、c0-d0。 
在上述的前置蝶形单元和后置蝶形单元中,状态可以由外部控制单元设定,内部的计算过程可以通过FPGA或者ASIC等硬件方法实现。 
下面结合图2中所示的运算流图分别对FFT和IFFT阶段中扩展蝶形单元的不同状态设定来实现基于FFT和IFFT的联合运算 的实现方法加以详细说明,但不作为对本发明的限定,其中:图2中频域加权因子中的乘法按照虚线所述分为两级,也即按照频域加权因子序列号的奇偶性进行分割,将频域加权因子序列号为奇数的部分和频域加权因子序列号为偶数的部分分别合并到FFT运算的最后一级和IFFT运算的第一级中。 
在FFT阶段,前置蝶形单元始终工作在“1”状态,后置蝶形单元工作在“00”状态,在FFT阶段最后一级运算之前,乘法器的输入数据m0取值为传统FFT运算中的旋转因子Wp,可见此时,扩展蝶形单元的计算方法与传统FFT运算中的蝶形单元的计算方法一样,该扩展蝶形单元的计算过程为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]Wp;在FFT阶段的最后一级运算时,依照传统FFT运算,m0应该取值W0,而W0实际数值是1,此时以加权因子wj代替W0,此时,该扩展蝶形单元的计算过程变为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]wj。 
在IFFT阶段,前置蝶形单元始终工作在“0”状态,在IFFT的第一级时,依照传统的IFFT运算,m0应该取值Wc 0,而Wc 0实际数值是1,此时以加权因子wi代替Wc 0,此时,该扩展蝶形单元的计算过程变为:Xm+1(i)=wiXm(i)+Xm(j),Xm+1(j)=wiXm(i)-Xm(j);此时后置蝶形单元工作在工作在“01”状态;从IFFT的第二级运算直到运算完成,后置蝶形单元将工作在“10”状态,该扩展蝶形单元的计算过程为: X m + 1 ( i ) = X m ( i ) + W c p X m ( j ) , X m + 1 ( j ) = X m ( i ) - W c p X m ( j ) .
综合前述FFT和IFFT阶段的描述可以看出,通过控制扩展蝶形单元的工作状态和乘法器的输入m0的选择,可以将 
Figure G06188804720060804D000062
中的频域加权因子分割后分别并入FFT的最后一级和IFFT的第一级中,从而达到减少整个运算时间的目的,在该扩展蝶形单元中,各级的运算方法如下: 
快速傅立叶变换的最后一级之前为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]Wp; 
快速傅立叶变换的最后一级为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]wi; 
快速傅立叶反变换的第一级为:Xm+1(i)=wiXm(i)+Xm(j),Xm+1(j)=wiXm(i)-Xm(j); 
快速傅立叶反变换的第一级以后各级为: X m + 1 ( i ) = X m ( i ) + W c p X m ( j ) , X m + 1 ( j ) = X m ( i ) - W c p X m ( j ) ;
其中:Xm(i)、Xm(j)分别为一个蝶形单元输入端上支路和下支路数据;Xm+1(i)、Xm+1(j)分别为该蝶形单元输出端上支路和下支路数据;Wp为快速傅立叶变换过程中的旋转因子;Wc p为快速傅立叶反变换过程中的旋转因子,wi和wj为频域加权因子。 
另一实施例中,频域加权因子还可以进行部分分割,即只采用点乘与FFT的最后一级结合,或者IFFT的第一级结合。 
与现有技术相比,本发明具有如下显著优点: 
(1)减少了频域加权运算时间,从而减少了整个运算流程的计算时间; 
(2)频域加权被结合到FFT和IFFT中,简化了控制流程。 

Claims (4)

1.一种基于快速傅立叶变换和反变换联合运算的实现方法,所述运算为包括快速傅立叶变换、频域加权以及快速傅立叶反变换的联合运算,包括:
(a)将频域加权因子按照其序列号的奇偶性分成两部分;
(b)将序列号为奇数的频域加权因子与快速傅立叶变换的最后一级进行点乘结合;和将序列号为偶数的频域加权因子与快速反傅立叶变换的第一级点乘结合。
2.如权利要求1所述的方法,其特征在于,所述的步骤(b)是通过扩展蝶形算法实现,所述的扩展蝶形算法为:
快速傅立叶变换的最后一级之前为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]Wp
快速傅立叶变换的最后一级为:Xm+1(i)=Xm(i)+Xm(j),Xm+1(j)=[Xm(i)-Xm(j)]wj
快速傅立叶反变换的第一级为;Xm+1(i)=wiXm(i)+Xm(j),Xm+1(j)=wiXm(i)-Xm(j);
快速傅立叶反变换的第一级以后各级为: 
Figure FSB00000460944300011
Figure FSB00000460944300012
其中:Xm(i)、Xm(j)分别为一个蝶形单元输入端上支路和下支路数据,,Xm+1(i)、Xm+1(j)分别为该蝶形单元输出端上支路和下支路数据;Wp为快速傅立叶变换过程中的旋转因子; 为快速傅立叶反变换过程中的旋转因子,wi和wj为频域加权因子。
3.一种扩展蝶形单元,其特征在于,该扩展蝶形单元包括前置蝶形单元、后置蝶形单元、延迟单元以及复数乘法器,所述的前置蝶形单元的输出端上支路数据经过延迟单元处理后输出作为后置蝶形单元输入端上支路的数据,下支路数据在复数乘法器中与外部输入数据进行复数乘法运算处理后输出作为后置蝶形单元输入端下支路的数据;
所述的前置蝶形单元,用于在第一设定状态下,输出端上支路和下支路的数据分别为a0、b0,在第二设定状态下,上支路和下支路输出数据分别为a0+b0、a0-b0,其中:a0、b0分别为输入端上支路和下支路的数据;所述的后置蝶形单元,用于在第三设定状态下,输出端上支路和下支路的数据分别为c0、d0,在第四设定状态下,上支路和下支路输出数据分别为d0-c0、d0+c0,在第五设定状态下,上支路和下支路输出数据分别为c0+d0、c0-d0,其中:c0、d0分别为输入端上支路和下支路的数据;所述的延迟单元的延迟拍数为计算一个复数乘法所需的时钟拍数;所述外部输入数据为快速傅立叶变换和快速傅立叶反变换时的旋转因子或者频域加权因子。
4.如权利要求3所述的扩展蝶形单元,其特征在于,所述外部输入数据由外部控制单元确定。
CN2006100888047A 2006-07-18 2006-07-18 一种基于快速傅立叶变换和反变换联合运算的实现方法 Active CN101110803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2006100888047A CN101110803B (zh) 2006-07-18 2006-07-18 一种基于快速傅立叶变换和反变换联合运算的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006100888047A CN101110803B (zh) 2006-07-18 2006-07-18 一种基于快速傅立叶变换和反变换联合运算的实现方法

Publications (2)

Publication Number Publication Date
CN101110803A CN101110803A (zh) 2008-01-23
CN101110803B true CN101110803B (zh) 2011-06-01

Family

ID=39042698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100888047A Active CN101110803B (zh) 2006-07-18 2006-07-18 一种基于快速傅立叶变换和反变换联合运算的实现方法

Country Status (1)

Country Link
CN (1) CN101110803B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100989797B1 (ko) 2008-06-09 2010-10-29 (주)에프씨아이 Fft/ifft 연산코어
CN104753834B (zh) * 2013-12-27 2018-04-17 电信科学技术研究院 一种信道估计方法和装置
CN112597432A (zh) * 2020-12-28 2021-04-02 华力智芯(成都)集成电路有限公司 基于fft算法的复序列互相关在fpga上的加速实现方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5270953A (en) * 1991-05-23 1993-12-14 Rockwell International Corporation Fast convolution multiplier
CN1249099A (zh) * 1996-10-31 2000-03-29 迪维安公司 使用正交频分复用的数字接收机的单片超大规模集成电路实现
KR20040002762A (ko) * 2002-06-27 2004-01-07 삼성전자주식회사 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치
WO2006011360A1 (ja) * 2004-07-30 2006-02-02 Matsushita Electric Industrial Co., Ltd. 無線通信装置および無線通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5270953A (en) * 1991-05-23 1993-12-14 Rockwell International Corporation Fast convolution multiplier
CN1249099A (zh) * 1996-10-31 2000-03-29 迪维安公司 使用正交频分复用的数字接收机的单片超大规模集成电路实现
KR20040002762A (ko) * 2002-06-27 2004-01-07 삼성전자주식회사 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치
WO2006011360A1 (ja) * 2004-07-30 2006-02-02 Matsushita Electric Industrial Co., Ltd. 無線通信装置および無線通信方法

Also Published As

Publication number Publication date
CN101110803A (zh) 2008-01-23

Similar Documents

Publication Publication Date Title
Cheng et al. High-throughput VLSI architecture for FFT computation
CN110765709A (zh) 一种基于fpga的基2-2快速傅里叶变换硬件设计方法
CN101110803B (zh) 一种基于快速傅立叶变换和反变换联合运算的实现方法
Boopal et al. A reconfigurable FFT architecture for variable-length and multi-streaming OFDM standards
CN100390782C (zh) 一种实时快速傅立叶变换电路
US20120166508A1 (en) Fast fourier transformer
CN108021781A (zh) 一种可参数化的fft ip核设计和优化方法
CN101836202A (zh) 快速傅立叶变换/反快速傅立叶变换运算核
CN109783766A (zh) 一种基2算法的快速傅里叶变换硬件设计方法
CN103345379B (zh) 一种复数乘法器及其实现方法
CN101937332B (zh) 基于基-24算法的多路fft处理器中乘法器的复用方法
EP1372085B1 (en) Method for performing fast fourier transform and inverse fast fourier transform
US20070180011A1 (en) Fast fourier transform processor
CN101430737B (zh) 提升小波变换的vlsi结构设计方法
KR20140142927A (ko) 혼합 기수 파이프라인 fft 프로세서 및 이를 이용한 fft 프로세싱 방법
CN101741801B (zh) 一种32路并行数据dft的实现结构
JP2848134B2 (ja) 可変高速フーリエ変換回路
CN104657334A (zh) 一种快速傅里叶变化的基2-4-8混合基蝶算器及其应用
CN113901389A (zh) 一种信号处理方法、装置、电子设备及可读存储介质
Parhi et al. Canonic real-valued FFT structures
EP1881415A1 (en) Folding of input data values to a transform function
CN103198055B (zh) 一种分裂基fft结构设计方法
CN103488612A (zh) 一种应用于数字滤波的沃什-新梅森数快速变换方法
KR100617248B1 (ko) 고속 푸리에 변환 장치 및 방법
CN110069746A (zh) 一种应用于td-lte中点数可变的ifft处理装置

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