可变长度的快速傅立叶变换装置的制作方法

文档序号:6576346阅读:246来源:国知局

专利名称::可变长度的快速傅立叶变换装置的制作方法
技术领域
:本发明涉及一种FFT(快速傅立叶变换)处理器,具体涉及一种可变长度的快速傅立叶变换装置。
背景技术
:随着数字通信技术和半导体工艺的进步,OFDM(OrthogonalFrequencyDivisionMultiplex:正交频分复用)作为高速调制解调方式,广泛应用于各种通信系统中。0FDM通信系统,通常需要一个可变长度的快速傅立叶变换(FastFourierTransform)处理器,从多个线性分布的音调生成多个时域符号,并从这些符号中恢复频率。下表l显示出常见的OFDM系统,其FFT的大小从64到8192。表l<table>tableseeoriginaldocumentpage6</column></row><table>FFT的点数通常由系统标准所决定,而支持可变长度的FFT硬件对于一个低成本的通信解决方案来说尤其重要,因为长度可配置FFT不仅能够减少面积,节省功耗,还能降低系统成本。基于混合基实现的可配置快速傅立叶变换的实现方法,对N点快速傅立叶变换方程<formula>formulaseeoriginaldocumentpage6</formula>假设<formula>formulaseeoriginaldocumentpage6</formula><formula>formulaseeoriginaldocumentpage7</formula>通过将N点FFT拆分为rl点和r2点FFT实现,其中r2点FFT可以继续拆分,即N点FFT转化为r2点FFT变换的结果与旋转因子乘积进行rl点FFT变换。根据W^lxi"2xr3x…x、将N点FFT分解为rl、r2、r3...,^点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;所述先入先出存储器的输入端与其对应的蝶形运算器的输出端连接,所述先入先出存储器的输出端与其对应的蝶形运算器的输入端连接;在每两个蝶形运算器之间连接有多选器,所述多选器的输入端分别连接可配置基数的蝶形单元的数据输入端和所述两个蝶形运算器之中的前一级蝶形运算器的数据输出端,所述多选器的输出端连接所述两个蝶形运算器之中的后一级蝶形运算器的数据输入端,所述多选器的控制端耦合到所述点数模式选择电路,用于输入配置控制信号;所述第一控制单元分别连接每个蝶形运算器,用于控制蝶形运算器的数据处理,所述点数模式选择电路连接多选器的控制端,用于控制多选器的输入通道选择,以实现将可配置基数的蝶形单元配置为基数为2"的蝶形单元,其中n为大于或等于1且小于或等于N的任一整数。本发明采用单径延时反馈结构实现,包括固定基数的蝶形单元和可配置基数的蝶形单元两部分,固定基数的蝶形单元内部固定,.通过点数模式选择电路的控制选择旁通或选通从而进行配置,可配置基数的蝶形单元内部包括若干级蝶形运算器和若干多选器,通过点数模式选择电路的控制可灵活配置基数,形成混合基,从而两部分配合实现不同点数的FFT。本发明的快速傅立叶变换结构可以实现2"点可变长度,而且每个蝶形单元的结构都比较简单,电路面积较小、速度快,功耗也较小。本发明在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处理单元的信号流程图中,需要用到的旋转因子有《、《和《。其中《=^(1—刀,力,《=^(-1-/)。涉及到的乘法部分有f(-1-力和f(l-力,它们能够使用移位相加操作实现。因而将基8的蝶形单元配置成为基4或基2蝶形单元很容易实现。N点的FFT由巧,r2,r3,r4点FFT组合成,其中,W=。xr2xr3xr4。基于可配置基设计的可变点数FFT的长度如图2所示。级高的蝶形单元被首先选择,同时在配置使用上,前级的蝶形单元选择最大基,利用最后级蝶形单元的基进行可配置设计,实现比其小的基,如基2蝶形和基4蝶形。当然实例不仅限于此中配置方式。可配置基8蝶形单元选择个数和最后一级蝶形单元的选择如图3所示。下面说明实现本发明的电路结构图,请参考图4,图4所示为应用本发明的可变长度16/32/64/128/256/512/1024/2048/4096点FFT的实现实施例,本实施例中,固定基数的蝶形单元的个数是3个,可配置基数的蝶形单元的个数是l个,且设置在最后一级,即根据数据流的处理顺序,数据流先经过固定基数的蝶形单元,最后到达可配置基数的蝶形单元。本实施例中,可配置基数的蝶形单元和固定基数的蝶形单元都采用基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(先入先出存储器),FIF011连接在蝶形单元BF8-1的两端,FIFO21连接在蝶形单元BF8-2的两端,FIFO31连接在蝶形单元BF8-3的两端,FIFO41连接在蝶形单元BF8-4的两端。点数模式选择电路100根据输入的信号(Sl,S2,S3,S4)输出控制信号r8—sl至蝶形单元BF8-1,输出控制信号r8_s2至蝶形单元BF8-2,输出控制信号r8—s3至蝶形单元BF8-3,输出控制信号r8—r82r2和r8—r82r4至蝶形单元BF8-4,从而控制蝶形单元BF8-1、BF8-2、BF8-3的旁通或选通,控制蝶形单元BF8-4进行不同的基数配置,形成混合基。输入数据datajn由蝶形单元BF8-l的数据输入端输入,输出数据data_0Ut由蝶形单元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个FIF0的容量分别为256、128和64个字长,3个蝶形运算器分别为BFl-2、BF2-2和BF3-2;第三级蝶形单元BF8-3中3个FIFO容量分别为32、16和8个字长,3个蝶形运算器分别为BFl-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与包括蝶形运算器BFl-2、BF2-2和BF3-2的第二级蝶形单元BF8-2连起来,并用旋转因子巧乘数据流;第一级蝶形单元BF8_1与第二级蝶形单元BF8-2用多选器连接起来,输入数据选择多选器进行蝶形单元内部基的可配置,决定旁通或选择。蝶形运算器BF1-1、BF2-1和BF3-1和BFl-2、BF2-2和BF3-2的结构分别相同。乘法器将包括蝶形运算器BFl-2、BF2-2和BF3-2的第二级蝶形单元BF8-2与包括蝶形运算器BFl-3、BF2-3和BF3-3的第三级蝶形单元BF8-3连起来,并用旋转因子^乘数据流;第二级蝶形单元BF8-2与第三级蝶形单元BF8-3用多选器连接起来,输入数据选择多选器进行蝶形单元内部基的可配置,决定旁通或选择。蝶形运算器BFl-2、BF2-2和BF3-2和BFl-3、BF2-3和BF3-3的结构分别相同。乘法器将包括蝶形运算器BFl-3、BF2-3和BF3-3的第三级蝶形单元BF8-3与包括蝶形运算器BFl-4、BF2-4和BF3-4的第四级蝶形单元BF8-4连起来,并用旋转因子巧乘数据流;第三级蝶形单元BF8-3与第四级蝶形单元BF8-4用多选器连接起来,输入数据选择多选器进行蝶形单元内部基的可配置,决定旁通或选择。蝶形运算器BFl-3、BF2-3和BF3-3和BFl-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、第一多选器MUXl-4、第二级蝶形运算器BF2、第二多选器MUX2-4、第三级蝶形运算器BF3、与第一级蝶形运算器BF1的输入输出端连接的第一先入先出存储器411、与第二级蝶形运算器BF2的输入输出端连接的第二先入先出存储器412和与第三级蝶形运算器BF3的输入输出端连接的第三先入先出存储器413。其中所述第一级蝶形运算器包括第一减法器42、第一加法器43、第十一多选器MUX1-1、第十二多选器MUX2-1、第一乘法单元48和第十三多选器MUX3-l,所述第一减法器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、第二H^—多选器MUX1-2、第二十二多选器MUX2-2、第二乘法单元49和第二十三多选器MUX3-2,所述第二减法器44的输入端分别连接第二级蝶形运算器BF2的数据输入端和第二先入先出存储器412的输出端,所述第二加法器45的输入端分别连接第二级蝶形运算器BF2的数据输入端和第二先入先出存储器412的输出端,所述第二十一多选器MUXl-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、第三十一多选器MUXl-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的控制端、第二十一多选器MUXl-2的控制端、第二十二多选器MUX2-2的控制端、第二十三多选器MUX3-2的控制端、第三十一多选器MUX1-3的控制端和第三十二多选器MUX2-3的控制端。点数模式选择电路100输出的配置控制信号r8—r82r2耦合到第一多选器MUX卜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分别具有与其输入输出端连接的FIF0,与可配置基数的蝶形单元结构不同的是,固定基数的蝶形单元的两个蝶形运算器直接相连,其间没有多选器,而在运算器BF3之后设有第三多选器MUXl-4,所述第三多选器MUX1-4的输入端分别连接蝶形运算器BF1的数据输入端和蝶形运算器BF3的数据输出端,所述第三多选器MUX1-4的输出端连接下一级蝶形单元,例如第一级蝶形单元BF8-1的第三多选器的输出端连接第二级蝶形单元BF8-2的数据输入端,第二级蝶形单元BF8-2的第三多选器的输出端连接第三级蝶形单元BF8-3的数据输入端,第三级蝶形单元BF8-3的第三多选器的输出端连接第四级蝶形单元BF8-4的数据输入端。所述点数模式选择电路100输出的控制信号r8—sl、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转至位置"l",BF1用输入的数据和存储在FIFO111中的数据计算2点DFT,即将FIFO111输出的数据减去BF1输入的数据经由多选器MUX1-1送至FIFO111的输入端,同时将FIFO111输出的数据加上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的FIFO112中。在下一个N/4周期中,多选器MUX1-2转至"1",BF2用输入的数据和存储在FIF0112中数据计算2点DFT。即将FIFO112输出的数据减去BF2输入的数据经由多选器MUX1-2送至FIF0112的输入端,同时将FIF0112输出的数据加上BF2输入的数据经由多选器MUX2-2送至MUX2-2的输出端。在该N/4周期中,多选器MUX2-2输出端的数据经与多选器MUX2-3前的(l,-j)相乘后,由多选器固X2-2开关选择并传送至下一个蝶形运算器BF3的数据输入端。在第一个3N/4到7N/8周期之间,蝶形运算器BF3中多选器MUX1-3转至"0",来自蝶形运算器BF2的输出的数据被传送至容量为N/8的FIFO113中。在下一个N/8周期中,多选器MUX1-3转至"1",BF3用输入的数据和存储在FIFO113中数据计算2点DFT。即将FIFO113输出的数据减去BF3输入的数据经由多选器MUX1-3送至FIFO的输入端,同时将FIFO113输出的数据加上BF3输入的数据经由多选器MUX2-3送至MUX2-3的输出端。在该N/8周期中,多选器MUX2-3输出端的数据直接传出送至多选器MUX1-4。多选器MUXl-4根据接收到的来自于点数模式选择电路的控制信号,可转至"0"或"1",当多选器MUXl-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&Cntl&CntO。当控制信号r8—r82r4为"1"和r8—r82r2为"0"时,蝶形运算器BF1被旁通,蝶形运算器BF2、BF3仍正常工作。这种情况下,可将基8蝶形单元配置成基4的蝶形单元。此时的上一级蝶形单元的控制单元中寄存器的进位信号来自可配置基数的蝶形单元的最后两个寄存器的逻辑与,即Cntl&CntO。在r8_r82r4为"0"和r8—r82r2为"1"时,蝶形运算器BF1、BF2被旁通,蝶形运算器BF3仍正常工作。此时,可将基8蝶形单元配置成基2的蝶形。此时上一级蝶形单元的控制单元中寄存器进位信号来自可配置基数的蝶形单元的最后一个寄存器的值,即CntO。上述实施例中,所述的FIFO用以存放输入数据和2点DFT计算的结果;所述的蝶形单元每一级都包含FIFO,且每一级的数据FIFO的深度均为前一级的1/2;所述的FIFO的读写由本级蝶形单元的控制单元来控制。上述实施例中,两级蝶形单元之间串联的旋转单元包括复数乘法器和旋转因子生成器。所述旋转因子的生成根据最后一级的可配置基数的蝶形单元的配置情况而选择。所述的旋转因子生成方法是根据固定基与最后一级可配置基数的蝶形单元的已知旋转因子进行抽取。例如可配置基数的蝶形单元为可配置基8蝶形单元,当可配置基8蝶形单元配置成基4蝶形单元时,配置后新的旋转因子根据原先旋转因子每两个抽选第一个构成;可配置基8蝶形单元配置成基2蝶形单元,配置后新的旋转因子根据原先旋转因子每四个抽选第一个构成。例如配置后(如基8+基4的结构)的旋转因子根据原先已知的旋转因子(即基8+基8的,它为最基本最常见的结构)进行抽取得到的,抽取方法是原先的旋转因子有8X8个,记为063编号,每两个抽选第一个构成,最后得到的旋转因子编号就是0、2、4…、60、62,共计32个旋转因子。再举个例子配置后(如基8+基2的结构)的旋转因子根据原先的旋转因子(即基8+基8的最基本的常见结构)进行抽取得到的,抽取方法是原先的旋转因子有8X8个,记为063编号,每四两个抽选第一个构成,最后得到的旋转因子编号就选择0、4、8…、60,共计16个旋转因子。这里利用最后一级的可配置基8蝶形单元,只要在设计上考虑全部都是基8蝶形单元的FFT的旋转因子,将其构成R0M,对于配置新的FFT点数,其旋转因子均可由该ROM中抽取选择,免去再另行设计新的旋转因子R0M,这样可有效节省设计面积和硬件资源。对于采用最后一级为可配置基数的蝶形单元的可配置FFT变换结构,其配置控制简单,且旋转因子的生成方法也简化了控制,因此增个电路结构简单、处理速度快、功耗也小。图7所示的是FFT点数模式选择电路在各种模式下的设置。工作于16点FFT模式下,选择模式选择信号(S4,S3,S2,Sli为4,b0111,得到的译码结果(r8—s3,r8—s2,r8_sl,r8—r82r4,r8—r82r2}为5'b11010,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2旁通,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基2模式。其配置信号点图如图8所示。工作于32点FFT模式下,选择模式选择信号{S4,S3,S2,Sll为4,b1000,得到的译码结果{r8—s3,r8—s2,r8—sl,r8一r82r4,r8_r82r2}为5,b11001,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2旁通,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基4模式。其配置信号点图如图9所示。工作于64点FFT模式下,选择模式选择信号{S4,S3,S2,Sll为4,b1001,得到的译码结果(r8_s3,r8_s2,r8_sl,r8一r82r4,r8—r82r2)为5'b11000,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2旁通,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基8模式。其配置信号点图如图10所示。工作于128点FFT模式下,选择模式选择信号{S4,S3,S2,Sl)为4,b1010,得到的译码结果(r8—s3,r8—s2,r8—sl,r8—r82r4,r8—r82r2}为5,b10001,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基2模式。工作于256点FFT模式下,选择模式选择信号{S4,S3,S2,S"为4,b1011,得到的译码结果(r8—s3,r8_s2,r8—sl,r8—r82r4,r8—r82r2}为5,b10010,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基4模式。工作于512点FFT模式下,选择模式选择信号{S4,S3,S2,S^为4,b1100,得到的译码结果(r8—s3,r8一s2,r8—si,r8_r82r4,r8—r82r2}为5'b10000,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基8模式。工作于1024点FFT模式下,选择模式选择信号{S4,S3,S2,Sl)为4,b1101,得到的译码结果(r8—s3,r8—s2,r8_sl,r8_r82r4,r8_r82r2}为5,b00001,即第一级蝶形单元BF8-1旁通,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基2模式。工作于2048点FFT模式下,选择模式选择信号{S4,S3,S2,Sl)为4,b1110,得到的译码结果(r8_s3,r8_s2,r8_sl,r8_r82r4,r8—r82r2)为5,bOOOlO,即第一级蝶形单元BF8-1选择,第二级蝶形单元BF8-2选择,第三级蝶形单元BF8-3选择,第四级可配置蝶形单元BF8-4配置成基4模式。工作于4096点FFT模式下,选择模式选择信号(S4,S3,S2,Sl)为4,bllll,得到的译码结果(r8—s3,r8_s2,r8—sl,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的混合基串联实现。对于点数^^xr"rHm的FFT变换,需要进行bgf次蝶形运算和(m-l)次旋转运算。一般蝶形选取基8也可以选取基4或基16。因此采用混合基可配置的FFT变换其硬件结构在减少旋转运算次数的同时,没有增加额外蝶形运算次数。同时,采用可配置的基8,不仅可以通过基的可配置达到FFT点数可变,而且基8仅包含加/减、(-J)乘法和常系数乘法运算,达到了运算简单且控制流程简洁、硬件资源消耗降低的效果,同时也达到了FFT点数或长度可配置的目的。以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。权利要求1.一种可变长度的快速傅立叶变换装置,包括至少一个固定基数的蝶形单元,其特征在于还包括可配置基数的蝶形单元和点数模式选择电路,在所述固定基数的蝶形单元之间、所述固定基数的蝶形单元和可配置基数的蝶形单元之间分别连接有旋转单元,所述点数模式选择电路分别连接固定基数的蝶形单元,用于根据设定的快速傅立叶变换的点数控制输入数据对固定基数的蝶形单元旁通或选通,所述点数模式选择电路还输出配置控制信号至可配置基数的蝶形单元,用于控制可配置基数的蝶形单元的基数配置。2.如权利要求1所述的可变长度的快速傅立叶变换装置,其特征在于,所述可配置基数的蝶形单元的最大配置基数为2N,所述可配置基数的蝶形单元包括N个蝶形运算器、与所述蝶形运算器一一对应的先入先出存储器和第一控制单元,其中N大于或等于2;所述先入先出存储器的输入端与其对应的蝶形运算器的输出端连接,所述先入先出存储器的输出端与其对应的蝶形运算器的输入端连接;在每两个蝶形运算器之间连接有多选器,所述多选器的输入端分别连接可配置基数的蝶形单元的数据输入端和所述两个蝶形运算器之中的前一级蝶形运算器的数据输出端,所述多选器的输出端连接所述两个蝶形运算器之中的后一级蝶形运算器的数据输入端,所述多选器的控制端耦合到所述点数模式选择电路,用于输入配置控制信号;所述第一控制单元分别连接每个蝶形运算器,用于控制蝶形运算器的数据处理,所述点数模式选择电路连接多选器的控制端,用于控制多选器的输入通道选择,以实现将可配置基数的蝶形单元配置为基数为2"的蝶形单元,其中n为大于或等于1且小于或等于N的任一整数。3.如权利要求2所述的可变长度的快速傅立叶变换装置组,其特征在于,先入先出存储器的深度为其前一个先入先出存储器深度的1/2。4.如权利要求3所述的可变长度的快速傅立叶变换装置组,其特征在于,所述可配置基数的蝶形单元的最大基数为8,所述可配置基数的蝶形单元包括顺序连接的第一级蝶形运算器、第一多选器、第二级蝶形运算器、第二多选器、第三级蝶形运算器、与第一级蝶形运算器的输入输出端连接的第一先入先出存储器、与第二级蝶形运算器的输入输出端连接的第二先入先出存储器和与第三级蝶形运算器的输入输出端连接的第三先入先出存储器。5.如权利要求4所述的可变长度的快速傅立叶变换装置组,其特征在于,所述第一级蝶形运算器包括第一减法器、第一加法器、第十一多选器、第十二多选器、第一乘法单元和第十三多选器,所述第一减法器的输入端分别连接第一级蝶形运算器的数据输入端和第一先入先出存储器的输出端,所述第一加法器的输入端分别连接第一级蝶形运算器的数据输入端和第一先入先出存储器的输出端,所述第十一多选器的输入端分别连接第一级蝶形运算器的数据输入端和第一减法器的输出端,所述第十一多选器的输出端连接第一先入先出存储器的输入端,所述第十二多选器的输入端分别连接第一先入先出存储器的输出端和第一加法器的输出端,所述第十二多选器的输出端连接第一乘法单元,所述第一乘法单元包括l、a、-j和b四个乘法因子,所述第十三多选器的输入端分别连接第一乘法单元的四个乘法因子的输出端,所述第一多选器的输入端分别连接所述第十三多选器的输出端和第一级蝶形运算器的数据输入端,所述第一多选器的输出端连接所述第二级蝶形运算器的数据输入端;所述第二级蝶形运算器包括第二减法器、第二加法器、第二十一多选器、第二十二多选器、第二乘法单元和第二十三多选器,所述第二减法器的输入端分别连接第二级蝶形运算器的数据输入端和第二先入先出存储器的输出端,所述第二加法器的输入端分别连接第二级蝶形运算器的数据输入端和第二先入先出存储器的输出端,所述第二十一多选器的输入端分别连接第二级蝶形运算器的数据输入端和第二减法器的输出端,所述第二十一多选器的输出端连接第二先入先出存储器的输入端,所述第二十二多选器的输入端分别连接第二先入先出存储器的输出端和第二加法器的输出端,所述第二十二多选器的输出端连接第二乘法单元,所述第二乘法单元包括l、和-j两个乘法因子,所述第二十三多选器的输入端分别连接第二乘法单元的两个乘法因子的输出端,所述第二多选器的输入端分别连接所述第二十三多选器的输出端和第一级蝶形运算器的数据输入端,所述第二多选器的输出端连接所述第三级蝶形运算器的数据输入端;所述第三级蝶形运算器包括第三减法器、第三加法器、第三十一多选器、第三十二多选器,所述第三减法器的输入端分别连接第三级蝶形运算器的数据输入端和第三先入先出存储器的输出端,所述第三加法器的输入端分别连接第三级蝶形运算器的数据输入端和第三先入先出存储器的输出端,所述第三十一多选器的输入端分别连接第三级蝶形运算器的数据输入端和第三减法器的输出端,所述第三十一多选器的输出端连接第三先入先出存储器的输入端,所述第三十二多选器的输入端分别连接第三先入先出存储器的输出端和第三加法器的输出端,所述第三十二多选器的输出端连接第三级蝶形运算器的数据输出端;所述第一控制单元分别连接第十一多选器的控制端、第十二多选器的控制端、第十三多选器的控制端、第二十一多选器的控制端、第二十二多选器的控制端、第二十三多选器的控制端、第三十一多选器的控制端和第三十二多选器的控制端。6.如权利要求2至5中任一项所述的可变长度的快速傅立叶变换装置,其特征在于,所述第一控制单元包括若干寄存器构成的计数器,当所述计数器溢出后向所述第一控制单元所在的可配置基数的蝶形单元的前一级蝶形单元输出进位信号,所述可配置基数的蝶形单元还包括连接在可配置基数的蝶形单元和其前一级蝶形单元之间的进位多选器,所述进位多选器的控制端耦合到所述点数模式选择电路,用于输入配置控制信号,以根据可配置基数的蝶形单元的配置情况控制所述进位多选器在最后一个寄存器的值、最后两个寄存器值的逻辑与、三个寄存器值的逻辑与中选择一个作为进位信号。7.如权利要求4所述的可变长度的快速傅立叶变换装置,其特征在于,所述固定基数的蝶形单元为基8蝶形单元,所述基8蝶形单元包括顺序连接的第四级蝶形运算器、第五级蝶形运算器、第六级蝶形运算器、第三多选器,和与第四级蝶形运算器的输入输出端连接的第四先入先出存储器、与第五级蝶形运算器的输入输出端连接的第五先入先出存储器、与第六级蝶形运算器的输入输出端连接的第六先入先出存储器和第二控制单元;所述第四级蝶形运算器与第一级蝶形运算器结构相同,所述第五级蝶形运算器与第二级蝶形运算器结构相同,所述第六级蝶形运算器与第三级蝶形运算器结构相同;所述第二控制单元分别第四级蝶形运算器、第五级蝶形运算器、第六级蝶形运算器相连;所述第五先入先出存储器的深度为第四先入先出存储器深度的1/2,所述第六先入先出存储器的深度为第五先入先出存储器深度的1/2;所述第三多选器的输入端分别连接第四级蝶形运算器的数据输入端和第六级蝶形运算器的数据输出端,所述第三多选器的输出端连接下一级蝶形单元,所述点数模式选择电路连接第三多选器的控制端。8.如权利要求7所述的可变长度的快速傅立叶变换装置,其特征在于,所述第二控制单元包括若干寄存器构成的计数器,当所述计数器溢出后向所述第二控制单元所在的固定基数的蝶形单元的前一级蝶形单元进位。9.如权利要求1至8中任一项所述的可变长度的快速傅立叶变换装置,其特征在于,所述固定基数的蝶形单元的个数为3个,所述可配置基数的蝶形单元设置在最后一级。10.如权利要求9所述的可变长度的快速傅立叶变换装置,其特征在于,所述旋转单元包括复数乘法器和旋转因子生成器,所述复数乘法器连接在两个固定基数的蝶形单元之间或最后一个固定基数的蝶形单元和可配置基数的蝶形单元之间,所述旋转因子生成器将生成的旋转因子输出到复数乘法器,所述旋转因子根据固定基与最后一级可配置基数的蝶形单元的已知旋转因子进行抽取。全文摘要本发明公开了一种可变长度的快速傅立叶变换装置,包括至少一个固定基数的蝶形单元、可配置基数的蝶形单元、旋转单元和点数模式选择电路,点数模式选择电路分别连接固定基数的蝶形单元和可配置基数的蝶形单元,用于根据设定的快速傅立叶变换的点数控制输入数据对固定基数的蝶形单元旁通或选通,以及控制可配置基数的蝶形单元的基数配置。本发明基于单径延时反馈结构可以实现2<sup>n</sup>点可变长度,而且每个蝶形单元的结构都比较简单,电路面积较小、速度快,功耗也较小。文档编号G06F17/14GK101587469SQ20091010766公开日2009年11月25日申请日期2009年6月3日优先权日2009年6月3日发明者卢庆旺,王新安,胡子一,陈剑锋申请人:北京大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1