一种应用于fft/ifft的基4蝶形单元电路及其处理方法

文档序号:6353422阅读:687来源:国知局
专利名称:一种应用于fft/ifft的基4蝶形单元电路及其处理方法
技术领域
本发明属于数字信号与系统技术领域,涉及快速傅里叶变换FFT以及快速傅立叶 逆变换IFFT,以及基4蝶形电路,具体涉及采用基4算法或含有基4算法的分裂基算法的 FFT/IFFT处理,为一种应用于FFT/IFFT的基4蝶形单元电路及其处理方法。
背景技术
在现代无线通信中,频谱资源越来越紧缺,提高频谱利用率一直是人们关注的焦 点之一,通信系统正采用比以前更加复杂的调制信号。正交频分复用OFDM是一种高效的多 载波调制技术,具有非常高的频谱利用率。目前,OFMD广泛应用于非对称的数字用户环路 ADSL、ETSI标准的数字音频广播DAB、地面数字视频电视DVB-T、高清晰度电视HDTV、无线局 域网WLAN等。OFDM利用离散傅立叶反变换和离散傅里叶变换(IDFT/DFT)代替多载波调制和解 调的实现,即在发射端对待调制数据进行IFFT运算来实现调制,接收端对接收到的数据进 行FFT运算实现解调,从而大大降低了系统实现的复杂度,因此调制解调的核心是快速傅
立叶运算单元。在OFDM系统中,为了保证数据的精度,其核心模块FFT/IFFT运算的数据格式采用 单精度浮点数或双精度浮点数。由于浮点数格式的加/减法运算的复杂度以及关键路径的 延时远大于相同位数的定点数加/减法运算,而FFT/IFFT运算中需要进行大量的加法运 算,使得需要大量的硬件资源,因此FFT/IFFT的实现可以通过减少浮点数加/减法器的数 量来减少芯片面积。通常,FFT运算的处理长度为2n,可以通过基2蝶形来实现FFT/IFFT运算,而基4 蝶形只能实现长度为4n&FFT/IFFT运算,无法单独实现长度为128,512等非纩的? 170^丁 运算。但是基4蝶形与基2蝶形相比,其运算速度快,运算级数少,具有较大的优势,对于长 度非4n的FFT/IFFT运算可以采用分裂基算法,即混合使用基2蝶形与基4蝶形结构以减少 FFT/IFFT级数和提高运算速度。因此采用基4算法或分裂基算法的FFT/IFFT处理单元具 有较大的优势。关于FFT算法中的基4算法和分裂基算法可以参考《快速算法》(国防科技 大学出版社,1993年12月)中的“基4-FFT算法”以及“分裂基算法”。目前基4蝶形结构往往采用加/减法器全并行结构来提高FFT/IFFT的处理速度, 但是需要大量的加/减法器。本发明提出了一种加/减法器全串行的基4蝶形单元电路, 该结构通过对加/减法器的复用大大减少了加/减法器的数量,同时在电路中插入寄存器 实现流水线结构,提高基4蝶形单元的处理速度。

发明内容
本发明要解决的问题为在FFT/IFFT处理系统中,采用基4算法或分裂基算法的 FFT/IFFT处理单元具有较大的优势,但目前基4蝶形结构采用加/减法器全并行结构来提 高FFT/IFFT的处理速度,需要大量的加/减法器。
本发明的技术方案为一种应用于FFT/IFFT的基4蝶形单元电路,FFT/IFFT单 元向基4蝶形单元电路提供输入使能信号、4路输入数据A、B、C、D以及旋转因子,基4蝶 形单元电路包括一个加模块,一个乘模块和一个控制模块,一路输入数据A直接提供给加 模块,其余输入数据B、C、D和旋转因子输入乘模块,乘模块的运算结果提供给中间寄存器 组,再输出至加模块,控制模块输出控制信号至加模块,并在完成加/减法运算完成时输出 使能信号至FFT/IFFT单元,加模块输出最终运算结果,乘模块还输出乘运算已完成信号至 FFT/IFFT单元、加模块、控制模块和中间寄存器组,其中加模块包括第一至第四4个数据选 择器、第一加寄存器组、第二加寄存器组和加/减法器组,控制模块分别输出控制信号至各 个数据选择器、加寄存器组和加/减法器组,中间寄存器组输出至第一数据选择器,输入数 据A提供给第一加寄存器组,再进入第二数据选择器,第二加寄存器组输出至第三数据选 择器,第一数据选择器、第二数据选择器和第三数据选择器的输出共同输入至第四数据选 择器,第四数据选择器输出至加/减法器组,加/减法器组由2个加/减法器组成,分别输出 加/减运算结果的实部和虚部,其运算结果还返回给第一加寄存器组和第二加寄存器组。第一数据选择器由4个3选1选择器构成,第二数据选择器由4个2选1选择器构 成,第三数据选择器由4个4选1选择器构成,第四数据选择器由4个3选1选择器构成。上述的应用于FFT/IFFT的基4蝶形单元电路的处理方法,控制模块通过计数器计 数的方式产生加模块中各个数据选择器的控制信号、加/减法器组的运算符和各个加寄存 器组的使能信号,控制加模块中加/减法器的操作数选择、操作符选择和运算结果的保存, 并产生输出使能;加模块在控制模块的控制下,对乘模块运算结果执行加/减法运算,利用 2个加/减法器完成基4蝶形运算的全部加/减法运算,得到最终运算结果;乘模块对输 入数据B、C、D进行并行的实数乘法运算;当乘模块的乘运算完成信号有效时,控制模块开 始工作,控制模块内部的计数器启动计数,根据计数器的计数值产生加模块需要的控制信 号当计数值为0 2时,控制信号控制第四数据选择器选通第一数据选择器,控制第 一数据选择器选择待运算数据,控制加/减法器组执行加法运算或减法运算,使能第一加 寄存器组寄存加/减法器组的运算结果;当计数值为3 6时,控制信号控制第四数据选择器选通第二数据选择器,控制第 二数据选择器选择待运算数据,控制加/减法器组执行加法运算或减法运算,使能第二加 寄存器组寄存加/减法器组的运算结果;当计数值为7 10时,控制信号控制第四数据选择器选通数据选择器,控制数据 选择器选择待运算数据,控制加/减法器组执行加法运算或减法运算,使输出使能有效。本发明为了减少FFT/IFFT中的基4蝶形单元中加/减法器的数量,提出一种应用 于FFT/IFFT的基4蝶形单元电路结构,该结构能有效的减少加/减法器的数量,同时能提 高处理速度。本发明中所实现的基4蝶形单元的数据格式为单精度浮点或双精度浮点数, 具有较高的精度。本发明只需要2个加/减法器,通过对2个加/减法器的复用,减少了加/减法器
的数量。按时间抽取的基4-FFT的推导公式为A' = A + BWP+ CW2p +DW3p A' = (A + CW2p ) + (BWp +DW'P)
B'= A + jBWp -CW2p - jDW3P B'= (A-CW2p) + j(BWp -DW3p) ,、(1)
C1 = A-BWp + CW2p -DW3p C' = (A + CW2p)-(BWp-DW3p)
D'= A- jBWp -CW2p + jDW3P D' = (A-CW2p)- j(BWp +DW3p)其中,A、B、C、D为基4蝶形运算单元的四路输入数据,WP、W2p和W3p为旋转因子, A’、B’、C’、D’为蝶形运算单元的四路输出数据。对于IFFT运算同样可以采用公式(1)来 计算,只需要对送入FFT的数据进行共轭,对FFT输出的数据进行共轭并除以点数,其结果 即为IFFT运算结果。其中BWP、CW2P和DW3p为复数乘法结果,分别需要进行四次实数乘法和 2次实数加/减法运算。将乘法操作和加/减法操作相分离,以单精度浮点数为例,需要对 尾数进行M次移位相加,计算完成后得到12个结果,完成整个乘法运算一共需要M个周 期和12个实数乘法器。完成乘法运算后开始进行加/减法运算。第一阶段需要3个时钟周期,将实数乘 法运算得到的12个结果进行加/减法运算分别得到BWP、Cff2p和DW3p ;第二阶段需要4个 时钟周期,对A、Bffp, Cff2p和DW3p进行加/减法运算得到(A+CW2P)、(A-Cff2p)、(BWP+DW3P)和 (Bffp-Dff3p)。第三个阶段需要 4 个时钟周期,对(A+CW2P)、(A-Cff2p)、(BWP+DW3P)和(BWp-DW3p) 进行加/减法运算得到最后的运算结果A’、B’、C’、D’。完成基4蝶形的整个加/减法运算 一共需要11个时钟周期和2个加/减法器。由此,通过对2个加/减法器的复用,虽然使得加/减法运算时钟周期数从原来全 并行结构的3个时钟周期增加至11个时钟周期,但该时钟周期数仍然小于乘法运算的M 个时钟周期。由于乘法运算和加法运算之间具有一定的独立性,因此可以使乘法运算和加 /减法运算并行工作,即完成第一组数的乘法运算后,开始进行第一组数的加法运算,同时 开始第二组数的乘法运算,第一组数的加法运算在第二组数的乘法运算完成前完成,使基4 蝶形运算时钟周期数缩短为乘法运算的时钟周期数。本发明中通过对2个加/减法器的复用,大大减少了加/减法器的数量,在定点数 表示的位数> 11或浮点数表示的尾数位数> 11的情况下,实数乘运算的时钟周期数> 11, 可以通过寄存器构造流水线处理的结构,使基4蝶形运算的时钟周期数保持为实数乘运算 的时钟周期数,省去了加/减法运算的时间,提高FFT/IFFT的处理速度。


图1为基4蝶形单元应用于FFT/IFFT处理器的结构图。图2为现有的加/减法器全并行的基4蝶形单元结构。图3为本发明中基4蝶形单元的结构。图4为本发明乘模块中的实数乘法关系图。图5为本发明中控制模块的具体实施结构图。图6为本发明中加模块的具体实施结构图。
具体实施例方式如图3,为本发明的基4蝶形单元电路的具体实施示意图,包括一个加模块801,一 个乘模块803和一个控制模块802,一路输入数据A直接输入加模块801,其余输入数据B、C、D和旋转因子输入乘模块803,乘模块803的运算结果输入中间寄存器组813,再输出至加 模块801,控制模块输出控制信号至加模块801,并输出使能信号至FFT/IFFT单元,加模块 801输出最终运算结果,乘模块803还输出乘运算完成信号至FFT/IFFT单元、加模块801、 控制模块802和中间寄存器组813,其中加模块801包括第一至第四4个数据选择器、第一 加寄存器组804、第二加寄存器组805和加/减法器组810,控制模块802分别输出控制信 号至各个数据选择器、各个加寄存器组和加/减法器组,中间寄存器组813输出至第一数据 选择器806,输入数据A输入第一加寄存器组804,再输入第二数据选择器807,第二加寄存 器组805输出至第三数据选择器808,第一数据选择器806、第二数据选择器807和第三数 据选择器808的输出共同输入第四数据选择器809,第四数据选择器809输出至加/减法器 组810,加/减法器组810由2个加/减法器组成,分别输出加/减法运算结果的实部和虚 部,其运算结果还返回输入第一加寄存器组804和第二加寄存器组805。为了更好地理解本发明,下面结合具体实施方式
对本发明的基4蝶形单元电路中 的各个模块及其处理方法进行更为详细的描述。图1为本发明基4蝶形单元应用于FFT/IFFT处理器的结构图,待运算数据为A、 B、C、D,作为输入数据输入基4蝶形单元电路,旋转因子为Wp、W2P、W3p,当输入使能有效时, 启动基4蝶形单元;当乘模块的乘运算完成信号有效时,输入下一组数据;当输出使能有效 时,将最终运算结果A\B\C\『写入运算结果RAM中。图2为现有的加/减法器全并行基4蝶形单元的结构,图中“j”的方框部分表示 该数据与虚数j相乘。以单精度浮点数为例,加/减法器全并行基4蝶形单元完成一次复 数乘法需要M个时钟周期的实数乘和1个时钟周期的加运算,一次蝶形运算需要25+1+1 共计27个时钟周期。虽然该结构也可以通过时序调整以流水线的方式进行运算工作,但是 仍然需要22个加法器。图3是本发明基4蝶形单元一种具体实施方式
的结构图。在本实施例中,控制模 块802根据乘模块803的完成乘运算信号产生加模块801中的加/减运算信号、第一加寄 存器组使能信号、第二加寄存器组使能信号,以及第一至第四数据选择器的控制信号,来控 制加模块801中的各个功能部件的工作。图4为乘模块803中的12个实数乘法器,采用常见的移位相加的方式来实现,对 输入数据B、C、D,旋转因子W1P、W2P、W3p进行乘法运算,其中表示该数的实部,*表示该数, *1表示该数的虚部,和*R2分别表示相乘得到的两个实部,和分别表示相乘得到 的两个虚部。其工作过程描述如下当输入有效时,开始进行实数乘法运算;当乘模块完成 乘法运算时,产生乘运算完成信号给FFT/IFFT单元,通知输入下一组数据,继续进行下一 组的乘法运算;同时利用乘运算完成信号将实数乘运算结果寄存到中间寄存器组、将输入 数据A存入第一加寄存器组804中,以及启动控制模块802。图5为控制模块802的具体实现结构,当乘运算完成信号有效时,启动控制模块内 部的计数器,该计数器的计数值CNT从0计数到10,然后计数器清零,等待下一次乘运算完 成信号来重新启动计数。控制模块802利用计数值来产生加模块中各数据选择器控制信 号、各加寄存器使能信号、加/减法器的操作符和输出使能信号。图6为加模块801的具体实现结构,其中第一数据选择器806由4个3选1选择 器构成,第二数据选择器807由4个2选1选择器构成,第三数据选择器808由4个4选1选择器构成,第四数据选择器809由4个3选1选择器构成;各个加寄存器组分别对运算结 果进行存储,加/减法器根据控制模块产生的操作符执行加法运算或减法运算。整个加模块801在控制模块802的控制信号下分为3个阶段进行工作,根据计数 器的计数值对当前阶段进行判断,产生第四数据选择器809控制信号。当计数值CNT为0、 1、2时,第四数据选择器809控制信号为100,选通第一数据选择器806 ;当计数值CNT为3、 4、5、6时,第四数据选择器809控制信号为010,选通第二数据选择器807 ;当计数值CNT为 7、8、9、10时,第四数据选择器809控制信号为001,选通第三数据选择器808。下面结合图 5和图6说明各个阶段的工作过程第一阶段当CNT为0时,第一数据选择器806控制信号为100,选通数据BWPR1、 BWPR2、BWPI1、BWPI2,同时加/减操作符为00,加/减法器组810中的2个加/减法器,第一 加/减法器811和第二加/减法器812执行加法运算。同时第一加寄存器组804使能信号 为100,将运算结果存入第一加寄存器组804,记为BWpR和BWpI,也就是将运算结果的实部 和虚部存入第一加寄存器组,同理可以得到CNT为1和2时的情况。第二阶段当CNT为3时,第二数据选择器807控制信号为10,选通数据AR、Al、 CW2pRXW2pI,同时加/减操作符为00,加/减法器组810中的2个加/减法器执行加法运算。 同时第二加寄存器组805使能信号为1000,将运算结果存入第二寄存器805,记为ACOR和 AC0I,也就是将运算结果的实部和虚部存入第二加寄存器。当CNT为4时,第二数据选择器 807控制信号仍为10,加/减操作符为11,第一加/减法器811和第二加/减法器812执行 减法运算,第二加寄存器组805使能信号为0100,将运算结果存入第二寄存器组,记为AClR 和AC1I。同理可以得到CNT为5禾Π 6时的情况。第三阶段当CNT为7时,第三数据选择器808控制信号为1000,选通数据AC0R、 BDOR、ACOI, BDOI,同时加/减操作符为00,加/减法器组810中的2个加/减法器执行加 法运算,输出使能信号有效,得到运算结果Α’ ;当CNT为8时,第三数据选择器808控制信 号为0100,选通数据AC1R、BD1I、AC1I、BD1R,同时加/减操作符为10,第一加/减法器811 和第二加/减法器812分别执行减法和加法操作,输出使能有效,得到运算结果B’ ;当CNT 为9时,第三数据选择器808控制信号为0010,选通数据ACOR、BD1R、AC0I、BD0I,同时加/ 减操作符为11,第一加/减法器811和第二加/减法器812执行减法操作,输出使能有效, 得到运算结果C’ ;当CNT为10时,第三数据选择器808控制信号为0001,选通数据AC1R、 BDOI, AClI, BD0R,同时加/减操作符为01,第一加/减法器811和第二加/减法器812分 别执行加法和减法操作,输出使能有效,即得到运算结果D’。至此整个加/减法运算完成, 控制模块802中的计数器清零并停止工作,等待下一个乘运算完成信号的有效。从具体实施方式
可以看出,本发明中加/减法器的复用使得需要11个周期来完成 基4蝶运算的全部加/减法运算,而在定点数表示的位数> 11或浮点数表示的尾数位数 ^ 11的情况下,实数乘运算的时钟周期数> 11,因此可通过增加控制电路、数据选择器和 中间寄存器,使得基4蝶形运算的时钟周期数从图2的全并行基4蝶形单元的Τ·τ+3个时 钟周期减少至Τ·τ个时钟周期,其中Tmuu为完成一次实数乘法的时钟周期数,提高了基4蝶 形的运算速度,同时加/减法器数量从22个减少至2个,大大减少了硬件资源。
权利要求
1.一种应用于FFT/IFFT的基4蝶形单元电路,FFT/IFFT单元向基4蝶形单元电路提供 输入使能信号、4路输入数据A、B、C、D以及旋转因子,其特征是基4蝶形单元电路包括一个 加模块(801),一个乘模块(80 和一个控制模块(802),一路输入数据A直接提供给加模 块(801),其余输入数据B、C、D和旋转因子输入乘模块(803),乘模块(803)的运算结果提 供给中间寄存器组(813),再输出至加模块(801),控制模块输出控制信号至加模块(801), 并在完成加/减法运算完成时输出使能信号至FFT/IFFT单元,加模块(801)输出最终运 算结果,乘模块(80 还输出乘运算已完成信号至FFT/IFFT单元、加模块(801)、控制模块 (802)和中间寄存器组(813),其中加模块(801)包括第一至第四4个数据选择器、第一加 寄存器组(804)、第二加寄存器组(80 和加/减法器组(810),控制模块(80 分别输出控 制信号至各个数据选择器、加寄存器组和加/减法器组,中间寄存器组(81 输出至第一数 据选择器(806),输入数据A提供给第一加寄存器组(804),再进入第二数据选择器(807), 第二加寄存器组(80 输出至第三数据选择器(808),第一数据选择器(806)、第二数据选 择器(807)和第三数据选择器(808)的输出共同输入至第四数据选择器(809),第四数据选 择器(809)输出至加/减法器组(810),加/减法器组(810)由2个加/减法器组成,分别 输出加/减运算结果的实部和虚部,其运算结果还返回给第一加寄存器组(804)和第二加 寄存器组(805)。
2.根据权利要求1所述的一种应用于FFT/IFFT的基4蝶形单元电路,其特征是第一数 据选择器(806)由4个3选1选择器构成,第二数据选择器(807)由4个2选1选择器构 成,第三数据选择器(808)由4个4选1选择器构成,第四数据选择器(809)由4个3选1 选择器构成。
3.权利要求1或2所述的应用于FFT/IFFT的基4蝶形单元电路的处理方法,其特征 是控制模块(80 通过计数器计数的方式产生加模块(801)中各个数据选择器的控制信 号、加/减法器组的运算符和各个加寄存器组的使能信号,控制加模块(801)中加/减法器 的操作数选择、操作符选择和运算结果的保存,并产生输出使能;加模块(801)在控制模块 (802)的控制下,对乘模块(80 运算结果执行加/减法运算,利用2个加/减法器完成基 4蝶形运算的全部加/减法运算,得到最终运算结果;乘模块(80 对输入数据B、C、D进行 并行的实数乘法运算;当乘模块(803)的乘运算完成信号有效时,控制模块(80 开始工 作,控制模块(802)内部的计数器启动计数,根据计数器的计数值产生加模块(801)需要的 控制信号当计数值为0 2时,控制信号控制第四数据选择器(809)选通第一数据选择器(806),控制第一数据选择器(806)选择待运算数据,控制加/减法器组(810)执行加法运 算或减法运算,使能第一加寄存器组(804)寄存加/减法器组(810)的运算结果;当计数值为3 6时,控制信号控制第四数据选择器(809)选通第二数据选择器(807),控制第二数据选择器(807)选择待运算数据,控制加/减法器组(810)执行加法运 算或减法运算,使能第二加寄存器组(80 寄存加/减法器组(810)的运算结果;当计数值 为7 10时,控制信号控制第四数据选择器(809)选通第三数据选择器(808),控制第三数 据选择器(808)选择待运算数据,控制加/减法器组(810)执行加法运算或减法运算,使输 出使能有效。
全文摘要
一种应用于FFT/IFFT的基4蝶形单元电路及其处理方法,所述基4蝶形单元包括乘模块、加模块和控制模块,其中乘模块并行完成12个实数乘操作,其结果送给加模块;加模块对实数乘运算结果执行三个阶段的加/减法运算,控制模块控制加模块中加/减法器在各个阶段的操作数选择和操作符选择、运算结果的保存以及产生输出使能,通过复用2个加/减法器完成基4蝶形单元中的全部加/减法运算,大大地减少硬件资源。同时本发明在乘模块和加模块之间插入中间寄存器,构造乘模块和加模块在整体上的流水线处理结构,提高基4蝶形运算单元的运算速度,从而提高FFT/IFFT的处理速度。
文档编号G06F17/14GK102073621SQ20111002207
公开日2011年5月25日 申请日期2011年1月19日 优先权日2011年1月19日
发明者丁小军, 吴建辉, 周传海, 周应栋, 张萌, 戴亮, 时龙兴, 李红, 罗毅 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1