CN101587469B - 可变长度的快速傅立叶变换装置 - Google Patents
可变长度的快速傅立叶变换装置 Download PDFInfo
- Publication number
- CN101587469B CN101587469B CN2009101076613A CN200910107661A CN101587469B CN 101587469 B CN101587469 B CN 101587469B CN 2009101076613 A CN2009101076613 A CN 2009101076613A CN 200910107661 A CN200910107661 A CN 200910107661A CN 101587469 B CN101587469 B CN 101587469B
- Authority
- CN
- China
- Prior art keywords
- butterfly
- selection device
- unit
- output terminal
- butterfly computation
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种可变长度的快速傅立叶变换装置,包括至少一个固定基数的蝶形单元、可配置基数的蝶形单元、旋转单元和点数模式选择电路,点数模式选择电路分别连接固定基数的蝶形单元和可配置基数的蝶形单元,用于根据设定的快速傅立叶变换的点数控制输入数据对固定基数的蝶形单元旁通或选通,以及控制可配置基数的蝶形单元的基数配置。本发明基于单径延时反馈结构可以实现2n点可变长度,而且每个蝶形单元的结构都比较简单,电路面积较小、速度快,功耗也较小。
Description
技术领域
本发明涉及一种FFT(快速傅立叶变换)处理器,具体涉及一种可变长度的快速傅立叶变换装置。
背景技术
随着数字通信技术和半导体工艺的进步,OFDM(Orthogonal FrequencyDivision Multiplex:正交频分复用)作为高速调制解调方式,广泛应用于各种通信系统中。OFDM通信系统,通常需要一个可变长度的快速傅立叶变换(Fast Fourier Transform)处理器,从多个线性分布的音调生成多个时域符号,并从这些符号中恢复频率。下表1显示出常见的OFDM系统,其FFT的大小从64到8192。
表1
系统 | FFT点数 |
IEEE 802.1a | 64 |
WiMAX(OFDMA) | 128/512/1024/2048 |
VDSL | 512/1024/2048/4096/8192 |
DAB | 256/512/1024/2048 |
DVB-T | 2048/8192 |
FFT的点数通常由系统标准所决定,而支持可变长度的FFT硬件对于一个低成本的通信解决方案来说尤其重要,因为长度可配置FFT不仅能够减少面积,节省功耗,还能降低系统成本。
基于混合基实现的可配置快速傅立叶变换的实现方法,对N点快速傅立叶变换方程:
假设
N=r1×r2
从而
X(r2k1+k2)
通过将N点FFT拆分为r1点和r2点FFT实现,其中r2点FFT可以继续拆分,即N点FFT转化为:r2点FFT变换的结果与旋转因子乘积进行r1点FFT变换。根据N=r1×r2×r3×...×rm,将N点FFT分解为r1、r2、r3...,rm点FFT来实现。
FFT常见的VLSI实现结构有流水线结构和存储器结构。存储器结构计算过程中利用数据在存储器间的“乒乓”交换实现,FFT长度可配置容易实现,例如可实现16/32/64/128/256/512/1024点的可变长度的FFT,然而这种存储器结构因其延时的固有问题,难以满足高速实时的要求。
对于流水线结构,其有多径延时置换和单径延时反馈流水线结构。多径延时置换结构与单径延时反馈结构相比,存在着寄存器使用多,复数乘法器使用效率低的问题。单径延时反馈流水结构具有最小的乘法器和寄存器资源需求,同时其控制逻辑非常简单。
在国内公开的专利中,实现固定点FFT的专利较多,然而可变长度的FFT电路结构的专利却非常少,在2005年8月31日在中国公布的专利号CN1663208A中采用混合基实现了快速傅立叶变换,却未能实现点数可变,而且所采用的结构也是基于存储器,速度上天然受限。美国专利US2008/0155003A1说明了利用混合基实现FFT可变长度的思想,并给出了一种多径延时置换的实现方法,却也受限于多径延时置换实现结构的资源劣势。
发明内容
本发明要解决的主要技术问题是,提供一种可变长度的快速傅立叶变换装置,基于单径延时反馈结构,实现可变点数的快速傅立叶变换。
为解决上述技术问题,本发明提供一种可变长度的快速傅立叶变换装置,包括至少一个固定基数的蝶形单元、可配置基数的蝶形单元和点数模式选择电路,在所述固定基数的蝶形单元之间、所述固定基数的蝶形单元和可配置基数的蝶形单元之间分别连接有旋转单元,所述点数模式选择电路分别连接固定基数的蝶形单元,用于根据设定的快速傅立叶变换的点数控制输入数据对固定基数的蝶形单元旁通或选通,所述点数模式选择电路还输出配置控制信号至可配置基数的蝶形单元,用于控制可配置基数的蝶形单元的基数配置。
所述可配置基数的蝶形单元的最大配置基数为2N,所述可配置基数的蝶形单元包括N个蝶形运算器、与所述蝶形运算器一一对应的先入先出存储器和第一控制单元,其中N大于或等于2;所述先入先出存储器的输入端与其对应的蝶形运算器的输出端连接,所述先入先出存储器的输出端与其对应的蝶形运算器的输入端连接;在每两个蝶形运算器之间连接有多选器,所述多选器的输入端分别连接可配置基数的蝶形单元的数据输入端和所述两个蝶形运算器之中的前一级蝶形运算器的数据输出端,所述多选器的输出端连接所述两个蝶形运算器之中的后一级蝶形运算器的数据输入端,所述多选器的控制端耦合到所述点数模式选择电路,用于输入配置控制信号;所述第一控制单元分别连接每个蝶形运算器,用于控制蝶形运算器的数据处理,所述点数模式选择电路连接多选器的控制端,用于控制多选器的输入通道选择,以实现将可配置基数的蝶形单元配置为基数为2n的蝶形单元,其中n为大于或等于1且小于或等于N的任一整数。
本发明采用单径延时反馈结构实现,包括固定基数的蝶形单元和可配置基数的蝶形单元两部分,固定基数的蝶形单元内部固定,通过点数模式选择电路的控制选择旁通或选通从而进行配置,可配置基数的蝶形单元内部包括若干级蝶形运算器和若干多选器,通过点数模式选择电路的控制可灵活配置基数,形成混合基,从而两部分配合实现不同点数的FFT。本发明的快速傅立叶变换结构可以实现2n点可变长度,而且每个蝶形单元的结构都比较简单,电路面积较小、速度快,功耗也较小。本发明在OFDM通信系统中具有广泛的应用前景。
附图说明
图1是基8FFT算法的基本蝶形单元信号点图;
图2是不同FFT的长度对应的混合基组合;
图3是可配置基8蝶形单元选择个数和最后一级蝶形单元的配置选择;
图4是本发明的FFT的一种实施例的原理框图;
图5是可配置基数的蝶形单元的一种实施例的电路框图;
图6是固定基数的蝶形单元的一种实施例的电路框图;
图7是点数模式选择电路的译码信号对应图;
图8是利用可配置方法实现的16点FFT信号点图实例;
图9是利用可配置方法实现的32点FFT信号点图实例;
图10是利用可配置方法实现的64点FFT信号点图实例。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
在以下的描述中,包括了一些特定的技术细节,诸如特定的实施例、技术、硬件电路、装置等,这是为了更加清楚、全面地说明本发明,而不是限制本发明的应用范围。例如,本发明采用可配置基8蝶形单元作为可配置基的蝶形单元,并使用可变长度16/32/64/128/256/512/1024/2048/4096点FFT作为实施例。但是,这些实施例和结构仅是示意性的,并非本发明所要求的全部保护范围。
本发明的可变长度的快速傅立叶变换装置采用单径时反馈结构实现,主要包括固定基数的蝶形单元和可配置基数的蝶形单元两部分,在每两个蝶形单元之间连接有旋转单元,(这里请发明人简单描述旋转单元的作用),固定基数的蝶形单元可以有一个或若干个,每个固定基数的蝶形单元通过点数模式选择电路的控制可被输入数据旁通或选通,可配置基数的蝶形单元也可以有一个或多个,其通过点数模式选择电路的控制可进行内部配置,实现混合基数的蝶形单元和比较小基数的蝶形单元,固定基数的蝶形单元和可配置基数的蝶形单元配合实现快速傅立叶变换装置的可变长度。
下面以8点的FFT的实施例进行讲解。
从图1看出,8点的FFT信号点图,如果忽略第一级蝶形单元,8点FFT转变为2个并行的4点FFT;如果忽略前2级,8点FFT转变为4个并行的2点FFT。从而将基8的蝶形单元配置成为基4或基2蝶形单元。同时,基8处理单元的信号流程图中,需要用到的旋转因子有W8 1、W8 2和W8 3。
N点的FFT由r1,r2,r3,r4点FFT组合成,其中,N=r1×r2×r3×r4。基于可配置基设计的可变点数FFT的长度如图2所示。级高的蝶形单元被首先选择,同时在配置使用上,前级的蝶形单元选择最大基,利用最后级蝶形单元的基进行可配置设计,实现比其小的基,如基2蝶形和基4蝶形。当然实例不仅限于此中配置方式。可配置基8蝶形单元选择个数和最后一级蝶形单元的选择如图3所示。
下面说明实现本发明的电路结构图,请参考图4,图4所示为应用本发明的可变长度16/32/64/128/256/512/1024/2048/4096点FFT的实现实施例,本实施例中,固定基数的蝶形单元的个数是3个,可配置基数的蝶形单元的个数是1个,且设置在最后一级,即根据数据流的处理顺序,数据流先经过固定基数的蝶形单元,最后到达可配置基数的蝶形单元。
本实施例中,可配置基数的蝶形单元和固定基数的蝶形单元都采用基8蝶形单元,可变长度的快速傅立叶变换装置包括顺序设置的3个固定基数的蝶形单元BF8-1、BF8-2、BF8-3和可配置基数的蝶形单元BF8-4,每两个蝶形单元之间连接有旋转单元,即第一级蝶形单元BF8-1和第二级蝶形单元BF8-2之间连接有旋转单元10,第二级蝶形单元BF8-2和第三级蝶形单元BF8-3之间连接有旋转单元20,第三级蝶形单元BF8-3和第四级蝶形单元BF8-4之间连接有旋转单元30。每个蝶形单元设有与其自身对应的FIFO(先入先出存储器),FIFO 11连接在蝶形单元BF8-1的两端,FIFO 21连接在蝶形单元BF8-2的两端,FIFO 31连接在蝶形单元BF8-3的两端,FIFO 41连接在蝶形单元BF8-4的两端。点数模式选择电路100根据输入的信号(S1,S2,S3,S4)输出控制信号r8_s1至蝶形单元BF8-1,输出控制信号r8_s2至蝶形单元BF8-2,输出控制信号r8_s3至蝶形单元BF8-3,输出控制信号r8_r82r2和r8_r82r4至蝶形单元BF8-4,从而控制蝶形单元BF8-1、BF8-2、BF8-3的旁通或选通,控制蝶形单元BF8-4进行不同的基数配置,形成混合基。输入数据data_in由蝶形单元BF8-1的数据输入端输入,输出数据data_out由蝶形单元BF8-4的数据输出端输出。
在本实施例的一种具体实例中,每个基8蝶形单元都由3个FIFO和3个蝶形运算器组成,FIFO的深度为其前一个FIFO深度的1/2。例如:其中第一级蝶形单元BF8-1中3个FIFO的容量分别为2048、1024和512个字长,3个蝶形运算器分别为BF1-1、BF2-1和BF3-1;第二级蝶形单元BF8-2中3个FIFO的容量分别为256、128和64个字长,3个蝶形运算器分别为BF1-2、BF2-2和BF3-2;第三级蝶形单元BF8-3中3个FIFO容量分别为32、16和8个字长,3个蝶形运算器分别为BF1-3、BF2-3和BF3-3;第四级蝶形单元BF8-4中3个FIFO的容量分别为4、2和1个字长,3个蝶形运算器分别为BF1-4、BF2-4和BF3-4。
每个旋转单元包括复数乘法器和旋转因子生成器,所述复数乘法器连接在两个固定基数的蝶形单元之间或最后一个固定基数的蝶形单元和可配置基数的蝶形单元之间,所述旋转因子生成器将生成的旋转因子输出到复数乘法器。
具体的说,首先将输入数据序列x(n)传给第一级蝶形单元BF8-1的第一个蝶形运算器BF1-1,2048个字长的FIFO将蝶形单元的输出与输入连接起来。同样,第二个蝶形单元BF2-1和第三个蝶形单元BF3-1的输入和输出分别被FIFO连起来。乘法器将包括蝶形运算器BF1-1、BF2-1和BF3-1的第一级蝶形单元BF8-1与包括蝶形运算器BF1-2、BF2-2和BF3-2的第二级蝶形单元BF8-2连起来,并用旋转因子Wi乘数据流;第一级蝶形单元BF8-1与第二级蝶形单元BF8-2用多选器连接起来,输入数据选择多选器进行蝶形单元内部基的可配置,决定旁通或选择。蝶形运算器BF1-1、BF2-1和BF3-1和BF1-2、BF2-2和BF3-2的结构分别相同。乘法器将包括蝶形运算器BF1-2、BF2-2和BF3-2的第二级蝶形单元BF8-2与包括蝶形运算器BF1-3、BF2-3和BF3-3的第三级蝶形单元BF8-3连起来,并用旋转因子Wi乘数据流;第二级蝶形单元BF8-2与第三级蝶形单元BF8-3用多选器连接起来,输入数据选择多选器进行蝶形单元内部基的可配置,决定旁通或选择。蝶形运算器BF1-2、BF2-2和BF3-2和BF1-3、BF2-3和BF3-3的结构分别相同。乘法器将包括蝶形运算器BF1-3、BF2-3和BF3-3的第三级蝶形单元BF8-3与包括蝶形运算器BF1-4、BF2-4和BF3-4的第四级蝶形单元BF8-4连起来,并用旋转因子Wi乘数据流;第三级蝶形单元BF8-3与第四级蝶形单元BF8-4用多选器连接起来,输入数据选择多选器进行蝶形单元内部基的可配置,决定旁通或选择。蝶形运算器BF1-3、BF2-3和BF3-3和BF1-4、BF2-4和BF3-4的结构分别相同。第四级蝶形单元BF8-4的3个蝶形单元之间用三个多选器连接起来,实现最后一级基8蝶形单元BF8-4的配置,在点数模式选择电路100的控制下,可配置成不同基数的蝶形单元。就最大基数是8的可配置基数的蝶形单元而言,可配置成基8、基4或基2的蝶形单元。
可配置基8蝶形单元包括三级流水的蝶形运算器和若干个多选器。如图5所示为可配置基数的蝶形单元BF8-4的内部结构的一种具体实例,可配置基数的蝶形单元包括N个蝶形运算器、与所述蝶形运算器一一对应的先入先出存储器和第一控制单元,其中N大于或等于2。本实施例中,可配置基数的蝶形单元的最大基数为8,包括顺序连接的第一级蝶形运算器BF1、第一多选器MUX1-4、第二级蝶形运算器BF2、第二多选器MUX2-4、第三级蝶形运算器BF3、与第一级蝶形运算器BF1的输入输出端连接的第一先入先出存储器411、与第二级蝶形运算器BF2的输入输出端连接的第二先入先出存储器412和与第三级蝶形运算器BF3的输入输出端连接的第三先入先出存储器413。其中:
所述第一级蝶形运算器包括第一减法器42、第一加法器43、第十一多选器MUX1-1、第十二多选器MUX2-1、第一乘法单元48和第十三多选器MUX3-1,所述第一减法器42的输入端分别连接第一级蝶形运算器BF1的数据输入端和第一先入先出存储器411的输出端,所述第一加法器43的输入端分别连接第一级蝶形运算器BF1的数据输入端和第一先入先出存储器411的输出端,所述第十一多选器MUX1-1的输入端分别连接第一级蝶形运算器BF1的数据输入端和第一减法器42的输出端,所述第十一多选器MUX1-1的输出端连接第一先入先出存储器411的输入端,所述第十二多选器MUX2-1的输入端分别连接第一先入先出存储器411的输出端和第一加法器43的输出端,所述第十二多选器MUX2-1的输出端连接第一乘法单元48,所述第一乘法单元48包括1、a、-j和b四个乘法因子,所述第十三多选器MUX3-1的输入端分别连接第一乘法单元48的四个乘法因子的输出端,所述第一多选器MUX1-4的输入端分别连接所述第十三多选器MUX3-1的输出端和第一级蝶形运算器BF1的数据输入端,所述第一多选器MUX1-4的输出端连接所述第二级蝶形运算器BF2的数据输入端。
所述第二级蝶形运算器BF2包括第二减法器44、第二加法器45、第二十一多选器MUX1-2、第二十二多选器MUX2-2、第二乘法单元49和第二十三多选器MUX3-2,所述第二减法器44的输入端分别连接第二级蝶形运算器BF2的数据输入端和第二先入先出存储器412的输出端,所述第二加法器45的输入端分别连接第二级蝶形运算器BF2的数据输入端和第二先入先出存储器412的输出端,所述第二十一多选器MUX1-2的输入端分别连接第二级蝶形运算器BF2的数据输入端和第二减法器44的输出端,所述第二十一多选器的输出端连接第二先入先出存储器的输入端,所述第二十二多选器MUX2-2的输入端分别连接第二先入先出存储器412的输出端和第二加法器45的输出端,所述第二十二多选器MUX2-2的输出端连接第二乘法单元49,所述第二乘法单元49包括1、和-j两个乘法因子,所述第二十三多选器MUX3-2的输入端分别连接第二乘法单元49的两个乘法因子的输出端,所述第二多选器MUX2-4的输入端分别连接所述第二十三多选器MUX3-2的输出端和第一级蝶形运算器BF1的数据输入端,所述第二多选器MUX2-4的输出端连接所述第三级蝶形运算器BF3的数据输入端。
所述第三级蝶形运算器BF3包括第三减法器46、第三加法器47、第三十一多选器MUX1-3、第三十二多选器MUX2-3,所述第三减法器46的输入端分别连接第三级蝶形运算器BF3的数据输入端和第三先入先出存储器413的输出端,所述第三加法器47的输入端分别连接第三级蝶形运算器BF3的数据输入端和第三先入先出存储器413的输出端,所述第三十一多选器MUX1-3的输入端分别连接第三级蝶形运算器BF3的数据输入端和第三减法器46的输出端,所述第三十一多选器MUX1-3的输出端连接第三先入先出存储器413的输入端,所述第三十二多选器MUX2-3的输入端分别连接第三先入先出存储器413的输出端和第三加法器47的输出端,所述第三十二多选器MUX2-3的输出端连接第三级蝶形运算器BF3的数据输出端。
所述第一控制单元414分别连接第十一多选器MUX1-1的控制端、第十二多选器MUX2-1的控制端、第十三多选器MUX3-1的控制端、第二十一多选器MUX1-2的控制端、第二十二多选器MUX2-2的控制端、第二十三多选器MUX3-2的控制端、第三十一多选器MUX1-3的控制端和第三十二多选器MUX2-3的控制端。
点数模式选择电路100输出的配置控制信号r8_r82r2耦合到第一多选器MUX1-4的控制端,点数模式选择电路100输出的配置控制信号r8_r82r4耦合到第二多选器MUX2-4的控制端。
在第一级蝶形运算器中,两个加/减法器完成复数加减法运算,一个多选器完成输入数据存入FIFO,一个四选一的多选器完成(-j)乘法和两个常系数的乘法运算,一个多选器完成输入数据的选择以实现蝶形单元BF8的可配置性。在第二级蝶形运算器中,两个加/减法器完成复数加减法运算,一个多选器完成输入数据存入FIFO,一个多选器完成(-j)乘法运算,一个多选器完成输入数据的选择实现蝶形单元BF8的可配置性;在第三级蝶形运算器中,两个加/减法器完成复数加减法运算,一个多选器完成输入数据存入FIFO。
图6所示为固定基数的蝶形单元BF8-1、BF8-2、BF8-3的内部结构的一种实例。本实施例中,固定基数的蝶形单元为基8蝶形单元,包括顺序连接的三级蝶形运算器BF1、BF2、BF3,其结构与图5中的可配置基数的蝶形单元中的三级蝶形运算器相同。三级蝶形运算器BF1、BF2、BF3分别具有与其输入输出端连接的FIFO,与可配置基数的蝶形单元结构不同的是,固定基数的蝶形单元的两个蝶形运算器直接相连,其间没有多选器,而在运算器BF3之后设有第三多选器MUX1-4,所述第三多选器MUX1-4的输入端分别连接蝶形运算器BF1的数据输入端和蝶形运算器BF3的数据输出端,所述第三多选器MUX1-4的输出端连接下一级蝶形单元,例如第一级蝶形单元BF8-1的第三多选器的输出端连接第二级蝶形单元BF8-2的数据输入端,第二级蝶形单元BF8-2的第三多选器的输出端连接第三级蝶形单元BF8-3的数据输入端,第三级蝶形单元BF8-3的第三多选器的输出端连接第四级蝶形单元BF8-4的数据输入端。
所述点数模式选择电路100输出的控制信号r8_s1、r8_s2、r8_s3分别耦合到蝶形单元BF8-1、蝶形单元BF8-2、蝶形单元BF8-3的第三多选器MUX1-4的控制端。
所述第二控制单元114分别与蝶形运算器BF1、BF2、BF3中的各个多选器的控制端相连。
固定基蝶形单元可以由基2、基4、基8或基16等构成或组合而成的。所述的固定基蝶形单元内部不能配置成更低的运算基,只能选择旁通或经过该固定基蝶形单元。
可配置基8蝶形单元和固定基蝶形单元分别由第一控制单元414和第二控制单元114控制。所述的第一控制单元414和第二控制单元114分别主要包括一个计数器,计数器控制着蝶形单元FIFO的写入和读出,计数器还控制着旋转单元中旋转因子的生成。
第一控制单元414和第二控制单元114中的计数器包括若干寄存器构成的计数器,当所述计数器溢出后向所述第一控制单元或第二控制单元所在的蝶形单元的前一级蝶形单元输出进位信号,进位信号输入到前一级蝶形单元的控制单元的最后一个寄存器。
第二控制单元所在的蝶形单元为固定基数的蝶形单元,其向前一级蝶形单元输出的进位信号是计数器中的若干寄存器的与运算。
第一控制单元所在的蝶形单元为可配置基数的蝶形单元,其向前一级蝶形单元输出的进位信号根据可配置基数的蝶形单元的配置情况确定,以控制前一级蝶形单元具有合适的控制时序。第一控制单元的进位信号通过连接在可配置基数的蝶形单元和其前一级蝶形单元之间的进位多选器来选择,进位多选器的控制端耦合到所述点数模式选择电路,用于输入配置控制信号,以根据可配置基数的蝶形单元的配置情况控制所述进位多选器在最后一个寄存器的值、最后两个寄存器值的逻辑与、三个寄存器值的逻辑与、……、M个寄存器值的逻辑与中进行选择,其中M为计数器中的寄存器的个数。例如:如图5所示,可配置基8蝶形单元的第一控制单元414中的计数器,根据可配置基8蝶形单元的配置情况选择给上一级的进位信号,进位信号通过进位多选器415输出到上一级蝶形单元的控制单元中的最后一个寄存器。进位多选器415由来自于点数模式选择电路的配置控制信号r8_r82r2和r8_r82r4控制,所述的进位信号选择有最后一个寄存器值、最后两个寄存器值相与、三个寄存器值相与共三种选择,分别对应可配置基8蝶形单元配置成基2蝶形单元、基4蝶形单元和基8蝶形单元的情况。所述的控制单元不局限于上述结构。
以下具体说明图5和图6的工作原理。
在图6中,在第一个N/2周期中,蝶形运算器BF1中多选器MUX1-1转换至“0”,来自蝶形运算器BF1数据输入端的输入数据data_in被传至容量为N/2的FIFO中。在下一个N/2周期中,多选器MUX1-1转至位置“1”,BF1用输入的数据和存储在FIFO 111中的数据计算2点DFT,即将FIFO 111输出的数据减去BF1输入的数据经由多选器MUX1-1送至FIFO 111的输入端,同时将FIFO 111输出的数据加上BF1输入的数据经由多选器MUX2-1送至MUX2-1的输出端。在该N/2周期中,多选器MUX2-1输出端的数据经与多选器MUX3-1前的常系数(1、a、-j、b)相乘后,由多选器MUX3-1开关选择并传送至下一个蝶形运算器BF2的数据输入端。
在第一个N/2到3N/4周期之间,蝶形运算器BF2中多选器MUX1-2转至“0”,来自蝶形运算器BF1的输出的数据被传至容量为N/4的FIFO 112中。在下一个N/4周期中,多选器MUX1-2转至“1”,BF2用输入的数据和存储在FIFO112中数据计算2点DFT。即将FIFO 112输出的数据减去BF2输入的数据经由多选器MUX1-2送至FIFO 112的输入端,同时将FIFO 112输出的数据加上BF2输入的数据经由多选器MUX2-2送至MUX2-2的输出端。在该N/4周期中,多选器MUX2-2输出端的数据经与多选器MUX2-3前的(1,-j)相乘后,由多选器MUX2-2开关选择并传送至下一个蝶形运算器BF3的数据输入端。
在第一个3N/4到7N/8周期之间,蝶形运算器BF3中多选器MUX1-3转至“0”,来自蝶形运算器BF2的输出的数据被传送至容量为N/8的FIFO113中。在下一个N/8周期中,多选器MUX1-3转至“1”,BF3用输入的数据和存储在FIFO 113中数据计算2点DFT。即将FIFO 113输出的数据减去BF3输入的数据经由多选器MUX1-3送至FIFO的输入端,同时将FIFO 113输出的数据加上BF3输入的数据经由多选器MUX2-3送至MUX2-3的输出端。在该N/8周期中,多选器MUX2-3输出端的数据直接传出送至多选器MUX1-4。
多选器MUX1-4根据接收到的来自于点数模式选择电路的控制信号,可转至“0”或“1”,当多选器MUX1-4转至“0”时,多选器MUX1-4输出其所在的固定基数的蝶形单元输出的数据,即控制该固定基数的蝶形单元选通。当多选器MUX1-4转至“1”时,多选器MUX1-4输出最初的输入数据data_in,即将该固定基数的蝶形单元旁通。
在图5中,在控制信号r8_r82r4和r8_r82r4均为“0”的情况下,其工作原理同固定基数的蝶形单元BF8-1、BF8-2和BF8-3的工作相同。此时可配置基数的蝶形单元被配置为基8蝶形单元,其上一级蝶形单元的控制单元中寄存器的进位信号与正常情况一样,来自可配置基数的蝶形单元的三个寄存器的逻辑与,即Cnt2&Cnt1&Cnt0。当控制信号r8_r82r4为“1”和r8_r82r2为“0”时,蝶形运算器BF1被旁通,蝶形运算器BF2、BF3仍正常工作。这种情况下,可将基8蝶形单元配置成基4的蝶形单元。此时的上一级蝶形单元的控制单元中寄存器的进位信号来自可配置基数的蝶形单元的最后两个寄存器的逻辑与,即Cnt1&Cnt0。在r8_r82r4为“0”和r8_r82r2为“1”时,蝶形运算器BF1、BF2被旁通,蝶形运算器BF3仍正常工作。此时,可将基8蝶形单元配置成基2的蝶形。此时上一级蝶形单元的控制单元中寄存器进位信号来自可配置基数的蝶形单元的最后一个寄存器的值,即Cnt0。
上述实施例中,所述的FIFO用以存放输入数据和2点DFT计算的结果;所述的蝶形单元每一级都包含FIFO,且每一级的数据FIFO的深度均为前一级的1/2;所述的FIFO的读写由本级蝶形单元的控制单元来控制。
上述实施例中,两级蝶形单元之间串联的旋转单元包括复数乘法器和旋转因子生成器。所述旋转因子的生成根据最后一级的可配置基数的蝶形单元的配置情况而选择。所述的旋转因子生成方法是根据固定基与最后一级可配置基数的蝶形单元的已知旋转因子进行抽取。例如:可配置基数的蝶形单元为可配置基8蝶形单元,当可配置基8蝶形单元配置成基4蝶形单元时,配置后新的旋转因子根据原先旋转因子每两个抽选第一个构成;可配置基8蝶形单元配置成基2蝶形单元,配置后新的旋转因子根据原先旋转因子每四个抽选第一个构成。例如:配置后(如基8+基4的结构)的旋转因子根据原先已知的旋转因子(即基8+基8的,它为最基本最常见的结构)进行抽取得到的,抽取方法是:原先的旋转因子有8×8个,记为0~63编号,每两个抽选第一个构成,最后得到的旋转因子编号就是0、2、4…、60、62,共计32个旋转因子。再举个例子:配置后(如基8+基2的结构)的旋转因子根据原先的旋转因子(即基8+基8的最基本的常见结构)进行抽取得到的,抽取方法是:原先的旋转因子有8×8个,记为0~63编号,每四两个抽选第一个构成,最后得到的旋转因子编号就选择0、4、8…、60,共计16个旋转因子。这里利用最后一级的可配置基8蝶形单元,只要在设计上考虑全部都是基8蝶形单元的FFT的旋转因子,将其构成ROM,对于配置新的FFT点数,其旋转因子均可由该ROM中抽取选择,免去再另行设计新的旋转因子ROM,这样可有效节省设计面积和硬件资源。
对于采用最后一级为可配置基数的蝶形单元的可配置FFT变换结构,其配置控制简单,且旋转因子的生成方法也简化了控制,因此增个电路结构简单、处理速度快、功耗也小。
图7所示的是FFT点数模式选择电路在各种模式下的设置。
工作于16点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b0111,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b11010,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2旁通,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基2模式。其配置信号点图如图8所示。
工作于32点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1000,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b11001,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2旁通,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基4模式。其配置信号点图如图9所示。
工作于64点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1001,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b11000,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2旁通,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基8模式。其配置信号点图如图10所示。
工作于128点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1010,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b10001,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基2模式。
工作于256点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1011,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b10010,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基4模式。
工作于512点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1100,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b10000,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基8模式。
工作于1024点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1101,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b00001,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基2模式。
工作于2048点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1110,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b00010,即第一级蝶形单元BF8-1选择,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基4模式。
工作于4096点FFT模式下,选择模式选择信号{S4,S3,S2,S1}为4’b1111,得到的译码结果{r8_s3,r8_s2,r8_s1,r8_r82r4,r8_r82r2}为5’b00000,即第一级蝶形单元BF8-1选择,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基8模式。
上述实施例中,固定基数的蝶形单元除了采用基8蝶形单元,也可以采用其他基数的蝶形单元,可配置基数的蝶形单元除了采用基8蝶形单元,也可以采用其他基数的蝶形单元,例如基4或基16蝶形单元,其具体组成原理可以和上述实施例相同。
综上所述,本发明提出的可配置快速傅立叶变换,将N点FFT变换分解为基2、基4、基8和基16的混合基串联实现。对于点数N=r1×r2×r3×...×rm的FFT变换,需要进行log2 N次蝶形运算和(m-1)次旋转运算。一般蝶形选取基8也可以选取基4或基16。因此采用混合基可配置的FFT变换其硬件结构在减少旋转运算次数的同时,没有增加额外蝶形运算次数。同时,采用可配置的基8,不仅可以通过基的可配置达到FFT点数可变,而且基8仅包含加/减、(-j)乘法和常系数乘法运算,达到了运算简单且控制流程简洁、硬件资源消耗降低的效果,同时也达到了FFT点数或长度可配置的目的。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种可变长度的快速傅立叶变换装置,包括至少一个固定基数的蝶形单元,其特征在于还包括:可配置基数的蝶形单元和点数模式选择电路,在所述固定基数的蝶形单元之间、所述固定基数的蝶形单元和可配置基数的蝶形单元之间分别连接有旋转单元,所述点数模式选择电路分别连接固定基数的蝶形单元,用于根据设定的快速傅立叶变换的点数控制输入数据对固定基数的蝶形单元旁通或选通,所述点数模式选择电路还输出配置控制信号至可配置基数的蝶形单元,用于控制可配置基数的蝶形单元的基数配置;
所述可配置基数的蝶形单元的最大配置基数为2N,
所述可配置基数的蝶形单元包括N个蝶形运算器、与所述蝶形运算器一一对应的先入先出存储器和第一控制单元,其中N大于或等于2;
所述先入先出存储器的输入端与其对应的蝶形运算器的输出端连接,所述先入先出存储器的输出端与其对应的蝶形运算器的输入端连接;
在每两个蝶形运算器之间连接有多选器,所述多选器的输入端分别连接可配置基数的蝶形单元的数据输入端和所述两个蝶形运算器之中的前一级蝶形运算器的数据输出端,所述多选器的输出端连接所述两个蝶形运算器之中的后一级蝶形运算器的数据输入端,所述多选器的控制端耦合到所述点数模式选择电路,用于输入配置控制信号;
所述第一控制单元分别连接每个蝶形运算器,用于控制蝶形运算器的数据处理,所述点数模式选择电路连接多选器的控制端,用于控制多选器的输入通道选择,以实现将可配置基数的蝶形单元配置为基数为2n的蝶形单元,其中n为大于或等于1且小于或等于N的任一整数。
2.如权利要求1所述的可变长度的快速傅立叶变换装置,其特征在于,先入先出存储器的深度为其前一个先入先出存储器深度的1/2。
3.如权利要求2所述的可变长度的快速傅立叶变换装置,其特征在于,所述可配置基数的蝶形单元的最大基数为8,所述可配置基数的蝶形单元包括顺序连接的第一级蝶形运算器、第一多选器、第二级蝶形运算器、第二多选器、第三级蝶形运算器、与第一级蝶形运算器的输入输出端连接的第一先入先出存储器、与第二级蝶形运算器的输入输出端连接的第二先入先出存储器和与第三级蝶形运算器的输入输出端连接的第三先入先出存储器。
4.如权利要求3所述的可变长度的快速傅立叶变换装置,其特征在于,
所述第一级蝶形运算器包括第一减法器、第一加法器、第十一多选器、第十二多选器、第一乘法单元和第十三多选器,所述第一减法器的输入端分别连接第一级蝶形运算器的数据输入端和第一先入先出存储器的输出端,所述第一加法器的输入端分别连接第一级蝶形运算器的数据输入端和第一先入先出存储器的输出端,所述第十一多选器的输入端分别连接第一级蝶形运算器的数据输入端和第一减法器的输出端,所述第十一多选器的输出端连接第一先入先出存储器的输入端,所述第十二多选器的输入端分别连接第一先入先出存储器的输出端和第一加法器的输出端,所述第十二多选器的输出端连接第一乘法单元,所述第一乘法单元包括1、a、-j和b四个乘法因子,所述第十三多选器的输入端分别连接第一乘法单元的四个乘法因子的输出端,所述第一多选器的输入端分别连接所述第十三多选器的输出端和第一级蝶形运算器的数据输入端,所述第一多选器的输出端连接所述第二级蝶形运算器的数据输入端;
所述第二级蝶形运算器包括第二减法器、第二加法器、第二十一多选器、第二十二多选器、第二乘法单元和第二十三多选器,所述第二减法器的输入端分别连接第二级蝶形运算器的数据输入端和第二先入先出存储器的输出端,所述第二加法器的输入端分别连接第二级蝶形运算器的数据输入端和第二先入先出存储器的输出端,所述第二十一多选器的输入端分别连接第二级蝶形运算器的数据输入端和第二减法器的输出端,所述第二十一多选器的输出端连接第二先入先出存储器的输入端,所述第二十二多选器的输入端分别连接第二先入先出存储器的输出端和第二加法器的输出端,所述第二十二多选器的输出端连接第二乘法单元,所述第二乘法单元包括1、和-j两个乘法因子,所述第二十三多选器的输入端分别连接第二乘法单元的两个乘法因子的输出端,所述第二多选器的输入端分别连接所述第二十三多选器的输出端和第一级蝶形运算器的数据输入端,所述第二多选器的输出端连接所述第三级蝶形运算器的数据输入端;
所述第三级蝶形运算器包括第三减法器、第三加法器、第三十一多选器、第三十二多选器,所述第三减法器的输入端分别连接第三级蝶形运算器的数据输入端和第三先入先出存储器的输出端,所述第三加法器的输入端分别连接第三级蝶形运算器的数据输入端和第三先入先出存储器的输出端,所述第三十一多选器的输入端分别连接第三级蝶形运算器的数据输入端和第三减法器的输出端,所述第三十一多选器的输出端连接第三先入先出存储器的输入端,所述第三十二多选器的输入端分别连接第三先入先出存储器的输出端和第三加法器的输出端,所述第三十二多选器的输出端连接第三级蝶形运算器的数据输出端;
所述第一控制单元分别连接第十一多选器的控制端、第十二多选器的控制端、第十三多选器的控制端、第二十一多选器的控制端、第二十二多选器的控制端、第二十三多选器的控制端、第三十一多选器的控制端和第三十二多选器的控制端。
5.如权利要求1至4中任一项所述的可变长度的快速傅立叶变换装置,其特征在于,所述第一控制单元包括若干寄存器构成的计数器,当所述计数器溢出后向所述第一控制单元所在的可配置基数的蝶形单元的前一级蝶形单元输出进位信号,所述可配置基数的蝶形单元还包括连接在可配置基数的蝶形单元和其前一级蝶形单元之间的进位多选器,所述进位多选器的控制端耦合到所述点数模式选择电路,用于输入配置控制信号,以根据可配置基数的蝶形单元的配置情况控制所述进位多选器在最后一个寄存器的值、最后两个寄存器值的逻辑与、三个寄存器值的逻辑与中选择一个作为进位信号。
6.如权利要求3所述的可变长度的快速傅立叶变换装置,其特征在于,
所述固定基数的蝶形单元为基8蝶形单元,所述基8蝶形单元包括顺序连接的第四级蝶形运算器、第五级蝶形运算器、第六级蝶形运算器、第三多选器,和与第四级蝶形运算器的输入输出端连接的第四先入先出存储器、与第五级蝶形运算器的输入输出端连接的第五先入先出存储器、与第六级蝶形运算器的输入输出端连接的第六先入先出存储器和第二控制单元;
所述第四级蝶形运算器与第一级蝶形运算器结构相同,所述第五级蝶形运算器与第二级蝶形运算器结构相同,所述第六级蝶形运算器与第三级蝶形运算器结构相同;
所述第二控制单元分别与第四级蝶形运算器、第五级蝶形运算器、第六级蝶形运算器相连;
所述第五先入先出存储器的深度为第四先入先出存储器深度的1/2,所述第六先入先出存储器的深度为第五先入先出存储器深度的1/2;
所述第三多选器的输入端分别连接第四级蝶形运算器的数据输入端和第六级蝶形运算器的数据输出端,所述第三多选器的输出端连接下一级蝶形单元,所述点数模式选择电路连接第三多选器的控制端。
7.如权利要求6所述的可变长度的快速傅立叶变换装置,其特征在于,所述第二控制单元包括若干寄存器构成的计数器,当所述计数器溢出后向所述第二控制单元所在的固定基数的蝶形单元的前一级蝶形单元进位。
8.如权利要求1所述的可变长度的快速傅立叶变换装置,其特征在于,所述固定基数的蝶形单元的个数为3个,所述可配置基数的蝶形单元设置在最后一级。
9.如权利要求8所述的可变长度的快速傅立叶变换装置,其特征在于,所述旋转单元包括复数乘法器和旋转因子生成器,所述复数乘法器连接在两个固定基数的蝶形单元之间或最后一个固定基数的蝶形单元和可配置基数的蝶形单元之间,所述旋转因子生成器将生成的旋转因子输出到复数乘法器,所述旋转因子根据固定基与最后一级可配置基数的蝶形单元的已知旋转因子进行抽取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101076613A CN101587469B (zh) | 2009-06-03 | 2009-06-03 | 可变长度的快速傅立叶变换装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101076613A CN101587469B (zh) | 2009-06-03 | 2009-06-03 | 可变长度的快速傅立叶变换装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101587469A CN101587469A (zh) | 2009-11-25 |
CN101587469B true CN101587469B (zh) | 2011-11-16 |
Family
ID=41371719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101076613A Expired - Fee Related CN101587469B (zh) | 2009-06-03 | 2009-06-03 | 可变长度的快速傅立叶变换装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101587469B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840393B (zh) * | 2010-02-26 | 2012-10-17 | 联芯科技有限公司 | 混合基离散傅立叶变换的处理方法及装置 |
CN101794275B (zh) * | 2010-03-22 | 2012-04-25 | 华为技术有限公司 | 快速傅立叶变换运算的设备 |
CN102004720B (zh) * | 2010-11-09 | 2013-04-03 | 无锡中星微电子有限公司 | 可变长快速傅立叶变换电路及实现方法 |
CN102567282B (zh) * | 2010-12-27 | 2016-03-30 | 北京国睿中数科技股份有限公司 | 通用dsp处理器中fft计算实现装置和方法 |
CN102768654A (zh) * | 2011-05-05 | 2012-11-07 | 中兴通讯股份有限公司 | 具有fft基2蝶运算处理能力的装置及其实现运算的方法 |
CN104268122B (zh) * | 2014-09-12 | 2017-03-22 | 安徽四创电子股份有限公司 | 一种可变点数的浮点fft处理器 |
CN105095152B (zh) * | 2015-08-04 | 2018-12-21 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种可配置的128点fft装置 |
CN107291657A (zh) * | 2016-04-05 | 2017-10-24 | 中国科学院微电子研究所 | 一种信号处理的方法及系统 |
CN107908389A (zh) * | 2017-11-21 | 2018-04-13 | 天津大学 | 小点数fft旋转因子复数乘法加速器 |
CN111027013B (zh) * | 2019-12-10 | 2023-05-26 | 重庆邮电大学 | 一种支持dab和cdr的多模式可配置fft处理器及方法 |
CN111428187B (zh) * | 2020-03-24 | 2024-08-27 | 深圳职业技术学院 | 一种反馈装置及fft/ifft处理器 |
CN111562900A (zh) * | 2020-07-20 | 2020-08-21 | 长沙海格北斗信息技术有限公司 | 用于高精度导航的fft计算方法、计算模块及其芯片 |
CN112307423B (zh) * | 2020-11-19 | 2023-09-22 | 天津大学 | 基于基2sdf流水线型的fft处理器及其在aco-ofdm系统的实现方法 |
-
2009
- 2009-06-03 CN CN2009101076613A patent/CN101587469B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101587469A (zh) | 2009-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101587469B (zh) | 可变长度的快速傅立叶变换装置 | |
CN103970718A (zh) | 一种快速傅里叶变换实现装置及方法 | |
Chen et al. | Continuous-flow parallel bit-reversal circuit for MDF and MDC FFT architectures | |
Glittas et al. | A normal I/O order radix-2 FFT architecture to process twin data streams for MIMO | |
CN101149730B (zh) | 使用主要因素算法的最佳离散傅利叶转换方法及装置 | |
CN105975251B (zh) | 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 | |
CN110765709A (zh) | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 | |
CN109522674A (zh) | 基2-2算法的快速傅里叶变换硬件设计方法 | |
KR100989797B1 (ko) | Fft/ifft 연산코어 | |
CN104268124A (zh) | 一种fft实现装置和方法 | |
CN101894096A (zh) | 一种适用于cmmb和dvb-h/t的fft运算电路结构 | |
CN112231626A (zh) | 一种fft处理器 | |
CN101617306A (zh) | 快速傅立叶变换结构 | |
CN104699624A (zh) | 面向fft并行计算的无冲突存储访问方法 | |
Liu et al. | Design of low-power, 1GS/s throughput FFT processor for MIMO-OFDM UWB communication system | |
Kim et al. | High speed eight-parallel mixed-radix FFT processor for OFDM systems | |
CN105095152A (zh) | 一种可配置的128点fft装置 | |
KR101696987B1 (ko) | Fft/dft의 역순 배열 시스템과 방법 및 그 연산 시스템 | |
Badar et al. | High speed FFT processor design using radix− 4 pipelined architecture | |
Kim et al. | Novel shared multiplier scheduling scheme for area-efficient FFT/IFFT processors | |
CN101937332A (zh) | 基于基24算法的多路fft处理器中乘法器的复用方法 | |
Su et al. | Reconfigurable FFT design for low power OFDM communication systems | |
CN105975436A (zh) | 一种SoC系统中通用可配置加速单元的IP电路 | |
Li et al. | Efficient circuit for parallel bit reversal | |
Wang et al. | An area-efficient design of variable-length fast Fourier transform processor |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111116 Termination date: 20180603 |
|
CF01 | Termination of patent right due to non-payment of annual fee |