首页> 中国专利> 基于Turbo结构的快速傅立叶DFT变换系统

基于Turbo结构的快速傅立叶DFT变换系统

摘要

本发明公开了一种基于Turbo结构的快速傅立叶DFT变换系统,重排列模块,完成数据排列次序和向量生成;基于折叠的质数点DFT变换模块,重用原始质数点的DFT运算单元,得到幂次级的DFT变换单元,利用迭代结构将Turbo结构不断进行迭代,以生成幂次更高的DFT变换单元;后处理模块,完成重排列模块中的数据排列次序以及向量生成;乘法运算单元,完成数据处理流程,乘法器完成运算阵列;本发明采用了迭代的算法,重用了硬件结构,设计了类似Turbo的系统结构,本发明对任意点的DFT都能进行快速实现。

著录项

  • 公开/公告号CN102253923A

    专利类型发明专利

  • 公开/公告日2011-11-23

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201110211675.7

  • 发明设计人 胡剑浩;陈杰男;

    申请日2011-07-27

  • 分类号G06F17/14;

  • 代理机构四川力久律师事务所;

  • 代理人林辉轮

  • 地址 611731 四川省成都市高新(西)区西源大道2006号

  • 入库时间 2023-12-18 03:43:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-08-14

    授权

    授权

  • 2012-01-04

    实质审查的生效 IPC(主分类):G06F17/14 申请日:20110727

    实质审查的生效

  • 2011-11-23

    公开

    公开

说明书

技术领域

本发明属于数字信号处理的领域,特别是涉及一种基于Turbo结构的快速 傅立叶DFT变换系统。

背景技术

传统的DFT技术将转换的点数进行分解。如果转换点数是基于2次幂的, 则采用FFT(快速傅立叶)变换的方法进行转换,这样一个长度很长的DFT变 换可以通过FFT的蝶形结的形式通过级联的形式简化计算复杂度,但是对于非 2的幂次级点数的DFT快速算法目前没有很好的解决方法。如果转换点数是质 数,则可以直接利用快速循环卷积进行优化。如果点数是基于互质数的乘积点 时,则可以将其分解为其质数点短DFT进行转换,然后再级联实现大数的DFT 变换,最后再根据快速循环卷积的方法对短DFT变换进行优化,这样大大减少 了实现复杂度。

传统DFT变换器的主要缺点:由于传统DFT变换对转换的点数有严格的要 求,基于2次幂的或者本身是质数以及能被互质的整数分解的,因此传统的DFT 变换对其他大量的DFT点数无法利用快速有效的方法进行实现。详细内容见。 [文件1]Valentin Boriakoff,FFT Computation With Systolic Arrays,A New  Architecture,IEEE Transactions On Circuits And Systems-II:Analog and  Digital Signal Processing,VOL 41,NO.4,April 1994,278-284;[文件2] Chao Cheng,Keshab K.Parhi,Low-Cost Fast VLSI Algorithm for Discrete  Fourier Transform,IEEE Transactions On Circuits And Systems-I:Regular  Papers,VOL.54,NO.4,April 2007,791-806;[文件3]H.S.Silverman,“An introduction to programming the Winograd Fourier transform algorithm,” IEEE Trans.Acoust.,Speech,Signal Proces s.,vol.ASSP-25,no.2,pp. 152 165,Feb.1977.然而现在的信号处理过程中,有大量的DFT转换长度 是不满足传统DFT转换的约束条件的。比如像LTE(Long Term Evolution)标 准中有大量的不满足传统DFT约束条件的转换点数。

发明内容

本发明的的目的是提供一种基于Turbo结构的快速傅立叶DFT变换系统。 它可以基于任意点分解的DFT实现系统。该系统能够突破传统方法的约束,对 任意不满足传统转换点数的DFT进行分解,实现快速转换,并且利用Turbo的 结构降低硬件开销。

本发明采用技术方案为:一种基于Turbo结构的快速傅立叶DFT变换系统, 包括

重排列模块,完成数据排列次序和向量生成;

基于折叠的质数点DFT变换模块,重用原始质数点的DFT运算单元,得到 幂次级的DFT变换单元,利用迭代结构将Turbo结构不断进行迭代,以生成幂 次更高的DFT变换单元;

后处理模块,完成重排列模块中的数据排列次序以及向量生成;

乘法运算单元,完成数据处理流程,乘法器完成运算阵列;

输出的重排列单元,输出数据重排列。

所述重排列模块的排列和向量生成方法为:

1、将abi点的输入X按0到abi-1进行顺序排号;

2、生成排序集合Sl={i mod a=l;for i=0 to abi-1}l=0,1,…a-1,这样共产生 了l个集合,每个集合里包含了abi-1个数据;

3、将集合Sl里的元素由小及大进行排序;

4、将向量X里的元素按照集合Sl里元素所对应的顺序进行排序并且按集合 进行分组得到X′l

所述后处理模块中的排列和向量生成方法为:

1、对于收到的每组向量Y2i,放到宽度为abi-1长度为a的缓存器中;

2、然后分别将每组向量的第1个元素,第2个元素,一直到第abi-1个元 素提取出来,组成abi-1个新的向量Tj={y1j,y2j…ya-1j};

3、将向量Tj的元素与向量组Hj中的对应进行点乘得到向量Kj; 所述乘法器运算阵列,

其中Hj={W(0*j),W(1*j),W(2*j),…W((a-1)*j)}

所述乘法器采用优化的复数乘法器,先横向处理再纵向处理。

所述输出的重排列单元输出数据重排列的方法为:

1、将Zj按j=0,1,…abi-1的顺序展开到一个长度为abi的集合Z′中,并 从0到abi进行编号。

2、生成a个集合Pl={i mod a=l;for i=0 to abi}将集合Pl中的元素由小到大排列, 再将Pl按1=0,1,…a的顺序展开到一个长度为abi的集合Q中。

3、将集合Z′中的元素按照集合Q中标号排好。得到输出向量Y 所述基于折叠的质数点DFT变换模块是重用原始质数点的DFT运算单元,得到 幂次级的DFT变换单元。

所述基于折叠的质数点DFT变换模块,利用迭代结构将Turbo结构不断进行迭 代,以生成幂次更高的DFT变换单元。

所述本发明系统结合WFTA算法相结合,得到任意点DFT的快速算法。

本发明主要针对不满足传统约束的DFT点数进行分解。对于任意一个非质 数(对于质数点的DFT可以直接采用快速循环卷积实现,见[文件2])的整数 可以分解为质数次幂的乘积形式:N=a1b1×a2b2×…anbn。将此分解后由于ai 之间互质,其bi的次幂之间也互质。因此,可以采用WFTA的算法进行分解, 见[文件3]。所以本系统需要重点解决的则是对aibi点数的DFT设计快速算法。

本发明的算法是基于迭代的方式,首先设计出质数ai的快速转换模块,然 后通过迭代得到ai2的快速转换模块,继续通过迭代使得ai的幂次增加,最后 得到bi的幂次。

本发明中,克服了传统DFT快速算法对分解的点数有严格要求的限制,提 出了一种对于任意点数的分解快速DFT算法,解决了非2的幂次级点数的DFT 快速算法。采用了迭代的算法,重用了硬件结构,设计了类似Turbo的系统结 构。其中利用了矩阵变换,折叠,快速卷积等优化算法,使得硬件开销大大降 低。本系统对于LTE等要求可配置的DFT点数的要求也有很好的支持,对于其 要求的DFT点数变换可以重用一个硬件系统,而不需要单独设计。与传统DFT 快速算法有各种限制相比,本发明对任意点的DFT都能进行快速实现。

本发明的优点是:可以重用硬件结构,ai的0次幂一直到bi次幂都可以运 用同一硬件结构实现,不需要针对不同的bi设计不同的硬件,这样的设计对 于像LTE这类需要配置的不同DFT点数的设计要求大大减少硬件开销。其次采 用了优化的算法使得算法复杂度减少了。

附图说明

图1是整个系统的设计框图;

图2是采用了折叠结构的复数DFT转换器;

图3是后处理的原理图;

图4是优化后的复数乘法器;

图5-图8是后处理的流程图;

图9是Turbo结构的实现电路图。

具体实施方式

下面结合具体实施方式对本发明的上述发明内容作进一步的详细描述。

但不应将此理解为本发明上述主题的范围仅限于下述实施例。在不脱离本 发明上述技术思想情况下,根据本领域普通技术知识和惯用手段,做出各种替 换和变更,均应包括在本发明的范围内。

见图1-图9所示,一种基于Turbo结构的快速傅立叶DFT变换系统,包括

重排列模块,完成数据排列次序和向量生成;

基于折叠的质数点DFT变换模块,重用原始质数点的DFT运算单元,得到 幂次级的DFT变换单元,利用迭代结构将Turbo结构不断进行迭代,以生成幂 次更高的DFT变换单元;

后处理模块,完成重排列模块中的数据排列次序以及向量生成;

乘法运算单元,完成数据处理流程,乘法器完成运算阵列;

输出的重排列单元,输出数据重排列。

所述重排列模块的排列和向量生成方法为:

1、将abi点的输入X按0到abi-1进行顺序排号;

2、生成排序集合Sl={i mod a=l;for i=0 to abi-1}l=0,1,…a-1,这样共产生 了l个集合,每个集合里包含了abi-1个数据;

3、将集合Sl里的元素由小及大进行排序;

4、将向量X里的元素按照集合Sl里元素所对应的顺序进行排序并且按集合 进行分组得到X′l

所述后处理模块中的排列和向量生成方法为:

1、对于收到的每组向量Y2i,放到宽度为abi-1长度为a的缓存器中;

2、然后分别将每组向量的第1个元素,第2个元素,一直到第abi-1个元 素提取出来,组成abi-1个新的向量Tj={y1j,y2j…ya-1j};

3、将向量Tj的元素与向量组Hj中的对应进行点乘得到向量Kj; 所述乘法器运算阵列,

其中Hj={W(0*j),W(1*j),W(2*j),…W((a-1)*j)}

所述乘法器采用优化的复数乘法器,先横向处理再纵向处理。

所述输出的重排列单元输出数据重排列的方法为:

1、将Zj按j=0,1,…abi-1的顺序展开到一个长度为abi的集合Z′中,并 从0到abi进行编号。

2、生成a个集合Pl={i mod a=l;for i=0 to abi}将集合Pl中的元素由小到大排列, 再将Pl按1=0,1,…a的顺序展开到一个长度为abi的集合Q中。

3、将集合Z′中的元素按照集合Q中标号排好。得到输出向量Y 所述基于折叠的质数点DFT变换模块是重用原始质数点的DFT运算单元,得到 幂次级的DFT变换单元。

所述基于折叠的质数点DFT变换模块,利用迭代结构将Turbo结构不断进行迭 代,以生成幂次更高的DFT变换单元。

所述本发明系统结合WFTA算法相结合,得到任意点DFT的快速算法。

图2中复数DFT转换器其N-DFT内部的结构可以参见[文件2]进行设计。这 个模块能完成质数点的DFT运算,整个的设计系统如图1所示是基于迭代的算 法。当得到bi-1的DFT模块后,只需要以bi-1为基本模块就可以用迭代的方 法得到bi的DFT模块。如果只需要bj<bi次幂的转换模块时,只需将bj后的 模块Bypass即可。每个迭代过程其结构都是相似的。

假设已经设计出了abi-1模块,需要设计abi模块。

首先对于需要转换的向量X进行重排列。重排列的顺序方法如下:

1、将abi点的输入X按0到abi-1进行顺序排号。

2、生成排序集合Sl={i mod a=l;for i=0 to abi-1}l=0,1,…a-1。这样共产生 了a个集合,每个集合里包含了abi-1个数据。

3、将集合Sl里的元素由小及大进行排序。

4、将向量X里的元素按照集合Sl里元素所对应的顺序进行排序并且按集合 进行分组得到X′l

比如当a=3,bi=2时。

S0={0 3 6},S1={1 4 7},S2={2 5 7}X′0={x0,x3,x6}X′1={x1,x4,x7}X′2={x2,x5,x7}

然后按照X′0,X′1,…X′a-1的顺序进行a次的abi-1DFT运算。得到a组的结果 Y20,Y21,…Y2a-1。注意这里可以采用一个缓存器进行调度。Y2i={yi0,yi1,…yiabi-1}

下一步需要对Y20,Y21,…Y2a-1进行后处理如图3所示。具体步骤为:

1、对于收到的每组向量Y2i,放到宽度为abi-1长度为a的缓存器中。

2、然后分别将每组向量的第1个元素,第2个元素,一直到第abi-1个元素 提取出来,组成abi-1个新的向量Tj={y1j,y2j…ya-1j}。

3、将向量Tj的元素与向量组Hj中的对应进行点乘得到向量Kj

其中Hj={W(0*j),W(1*j),W(2*j),…W((a-1)*j)}可以看出所有 Hj的第一项都为1,因此只需要a-1次乘法。

其中点乘的运算是基于复数域的,可以采用快速算法为

Rex=a(c-d)+d(a-b)Imy=b(c+d)+d(a-b)其中c+d c-d可以预先算好放在寄存器中。

每一次运算需要三次乘法和三次加法。结构如图4所示

每个向量Tj有a-1个数据需要进行乘法,但是由于数据并不会同时到来,也 不会同时输出,因此并不需要3(a-1)个乘法器。这里只需要a+c(c=a mod3)个 乘法器,每个计算周期这个乘法器组可以处理M=(a+c)/3个数据。假设在t=a 时钟周期前,乘法器组采用如图5,6所示的方式,横向对Tj进行处理。

当t=a时所有的数据到达了寄存器组,这时Tj中至少有M个数据已经处理了, 对应向量组Hj来说的话,就是有M个Hj已经处理完了,用阴影,所示这时前M 个Hj可以输出了如图7,8所示。同时控制乘法器组,改变处理方向,对纵向 的M个数据进行处理,每一个纵行处理完后,向后处理后一纵行如图,直到所 有的数据处理完成。加法器可以根据需要类似的进行设计。

根据实验,按这种方式进行处理,当后处理完成时,Hj正好全部输出。

这样后处理就结束了

是一个包含a个元素的向量,将这个向量

经过后处理的向量Kj={y′1j,y′2j…y′a-1j}是一个包含a个元素的向量,将这个向 量送回a点的DFT模块进行变换。

当abi-1个向量Kj进行完了a点的DFT后,此时的输出Zj就是abi点的DFT结 果。但是还要重新对其顺序进行排列才是最后X所对应的DFT

其步骤为:

1、将Zj按j=0,1,…abi-1的顺序展开到一个长度为abi的集合Z′中,并从0 到abi进行编号。

2、生成a个集合Pl={i mod a=l;for i=0 to abi}将集合Pl中的元素由小到大排列, 再将Pl按l=0,1,…a的顺序展开到一个长度为abi的集合Q中。

3、将集合Z′中的元素按照集合Q中标号排好。得到输出向量Y

此时Y就是最后abi点的DFT转换。

整个的系统架构如图9所示。一个类似Turbo的结构。

这样对任意非质数点进行分解后,将有指数项的点数利用本设计得到。然 后再利用WFTA的快速算法,这样可以对任意点的DFT进行快速变换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号