CN101110803B - 一种基于快速傅立叶变换和反变换联合运算的实现方法 - Google Patents
一种基于快速傅立叶变换和反变换联合运算的实现方法 Download PDFInfo
- 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
Links
Images
Abstract
本发明公开了一种基于快速傅立叶变换和反变换联合运算的实现方法,所述运算为包括快速傅立叶变换、频域加权以及快速傅立叶反变换的联合运算,包括:(a)将频域加权因子按照其序列号的奇偶性分成两部分;(b)将序列号为奇数的频域加权因子与快速傅立叶变换的最后一级进行点乘结合;和/或将序列号为偶数的频域加权因子与快速反傅立叶变换的第一级点乘结合。本发明还公开了一种扩展碟形单元。与现有技术相比,本发明具有如下显著优点:(1)减少了频域加权运算时间,从而减少了整个运算流程的计算时间;(2)频域加权被结合到FFT和IFFT中,简化了控制流程。
Description
技术领域
本发明涉及快速傅立叶变换,特别地涉及一种基于快速傅立叶变换和反变换联合运算的实现方法。
背景技术
快速傅立叶变换(FFT)和快速傅立叶反变换(IFFT)技术,广泛地应用于无线通信、移动通信及数字信号系统等领域。基于FFT和IFFT的联合运算 也越来越多地得到应用,该算法在实现过程中通常分为三个运算步骤:(1)FFT;(2)频域加权;(3)IFFT,其运算流程如图1所示。
从图1可以看出,基于FFT和IFFT联合运算的流程包括两个傅立叶变换,现有技术中,FFT通常采用现场可编程门阵列(Field Programmable GateArray,FPGA)或者特定用途集成电路(Application Specific Integrated Circuit,ASIC)等硬件方法实现,这些方法可以根据特定的设计要求进行设计,因而具有更优化的效能资源比。
上述基于FFT和IFFT联合运算 的实现方法,通常采用占用资源较少,并且在单次运算所用的时间也不长的递归结构,由于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);
快速傅立叶反变换的第一级以后各级为:
其中: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算法中采用的蝶形单元的运算图,从该图中可以看出,任何一级的蝶形单元中按照下述方法进行计算:
其中: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的联合运算 的实现过程中不再存在点乘运算环节,且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”状态,该扩展蝶形单元的计算过程为:
综合前述FFT和IFFT阶段的描述可以看出,通过控制扩展蝶形单元的工作状态和乘法器的输入m0的选择,可以将 中的频域加权因子分割后分别并入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);
快速傅立叶反变换的第一级以后各级为:
其中: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);
其中: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所述的扩展蝶形单元,其特征在于,所述外部输入数据由外部控制单元确定。
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)
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)
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. | 無線通信装置および無線通信方法 |
-
2006
- 2006-07-18 CN CN2006100888047A patent/CN101110803B/zh active Active
Patent Citations (4)
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 |