快速傅立叶变换/快速傅立叶反变换处理器及其处理方法

文档序号:7917295阅读:338来源:国知局
专利名称:快速傅立叶变换/快速傅立叶反变换处理器及其处理方法
技术领域
本发明涉及通信领域,具体而言,涉及一种FFT/IFFT (Fast Fourier Transform, 快速傅立叶变换/Inverse Fast Fourier Transform,快速傅立叶反变换)处理器及其处理方法。
背景技术
在目前的数字多媒体中,通信系统需要使用任意偶数长度、多 种才莫式的FFT/IFFT,例i口 LTE ( Long-Term Evolution,长期演进) 系统的调制、解调和信道估计都需要使用12点-1200点的34种长 度的FFT/IFFT,如<可在FPGA ( Field Programmable Gate Array, 3见 场可纟扁考呈门卩车列)或ASIC ( Application Specific Integrated Circuit, 专用集成电路)中实现兼容多种才莫式的FFT/IFFT是整个系统实现 的关4定之一,目前,实现这一功能有如下的困难(1 )没有可用的FFT IP (Intellectual Property,知识产片又)核, 现有的IP核都只支持长度是2的N次幂的FFT/IFFT,例如512、 1024和2048点的FFT/IFFT;(2) 兼容模式多、控制结构复杂、设计难度较大;(3) 速度要求非常高,例如LTE系统需要在41.66微秒内完 成总长度为1200点的FFT/IFFT;(4 )在实际应用中,要求FFT/IFFT能够在不同的FPGA上实 现,因此FFT/IFFT处理器架构必须有4交高的可移才直性。基于上述困难,现有技术还没有能够提供任意偶数长度、多种 模式的FFT/IFFT处理器。发明内容针对现有技术还没有能够提供任意偶数长度、多种模式的 FFT/IFFT处理器的问题而提出本发明,为此,本发明旨在提供一种 FFT/IFFT处理器及其处理方法,以解决上述问题。根据本发明的一个方面,提供了 一种快速傅立叶变换/快速傅立 叶反变换处理器。根据本发明的快速傅立叶变换/快速傅立叶反变换处理器包括 控制信号和地址信号产生器,用于产生控制信号和地址信号;随机 存储器模块,用于存储输入数据和中间运算结果;只读存储器模块, 用于存储旋转因子;数据处理模块,用于根据控制信号和旋转因子 对输入数据进行蝶形运算,并将中间运算结果送回随机存储器模块 进行存储。优选地,地址信号包括随枳存储器地址信号和只读存储器地址 信号,控制信号包括随机存储器控制信号、只读存储器控制信号、 数据处理模块控制信号。优选地,随机存储器模块根据随机存储器地址信号和随机存储 器控制信号向数据处理模块发送输入数据。优选地,只读存储器模块根据只读存储器地址信号和只读存储 器控制信号读取向数据处理模块发送的旋转因子。优选地,随机存储器模块包括两个四端口随机存储器。优选地,四端口随才几存储器包括工作频率为处理器系统时钟 频率2倍的两端口随机存储器、寄存器和多路复用器。优选地,控制信号和地址信号产生器还用于进行变换长度设置, 两个四端口随机存储器分别根据变换长度设置来写入输入数据。优选地,数据处理模块包括两个蝶形运算器和多路复用器。根据本发明的另 一个方面,提供了 一种快速傅立叶变换/快速傅 立叶反变换处理器的处理方法。根据本发明的快速傅立叶变换/快速傅立叶反变换处理器的处 理方法包括随机存储器模块在控制信号和地址信号产生器的控制 下装载输入数据,并将输入数据送入数据处理模块;数据处理模块 根据控制信号和地址信号产生器产生的控制信号和只读存储器模块 送入的旋转因子,对输入数据进行蝶形运算,并将中间运算结果送 回随机存储器模块进行存储;随机存储器模块在控制信号和地址信 号产生器的控制下卸载凄t据。优选地,地址信号包括随机存储器地址信号和只读存4诸器地址 信号,控制信号包括随机存储器控制信号、只读存储器控制信号、 数据处理模块控制信号。优选地,随机存储器模块根据P逭机存储器地址信号和随机存储 器控制信号向数据处理模块发送输入数据。优选地,只读存储器才莫块才艮据只读存储器地址信号和只读存储 器控制信号读取向数据处理模块发送的旋转因子。优选地,在进4于蝶形运算之前,上述方法还包括控制信号和 地址信号产生器进行变换长度设置;根据变换长度设置,将输入数 据分为长度相等的第 一组数据和第二组数据,将第 一组数据按顺序 写入第一个四端口随机存储器,将第二组数据按顺序写入第二个四 端口随机存储器。优选地,上述方法还包括步骤1,随机存储器模块从第一个 四端口随机存储器中读取第一组数据的第一数据和第二数据,从第 二个四端口随才几存储器中读取第二组凄t据的第 一凄t据和第二数据, 其中,第一组数据的第一数据和第二数据与第二组凝:据的第一数据 和第二数据的地址相同;步骤2,随机存储器才莫块将第一组数据的 第 一数据和第二组数据的第 一数据送入数据处理模块的第 一个蝶形 运算器进行蝶形运算,将第 一组数据的第二数据和第二组数据的第 二数据送入数据处理模块的第二个蝶形运算器进行蝶形运算;重复 步骤1和步骤2,直至读取了第一组数据和第二组数据中的全部数 据。优选地,在读取了第一组数据和第二组数据中的全部数据之后, 上述方法还包括步骤3,随机存储器模块从第一个四端口随机存 储器中读取第 一组数据的两个数据,并将第 一组数据的两个数据送 入数据处理模块的第一个蝶形运算器进行蝶形运算;步骤4,随机 存储器模块从第二个四端口随机存储器中读取第二组数据的两个数 据,并将第二组数据的两个数据送入数据处理模块的第二个蝶形运 算器进行蝶形运算,其中,第二组数据的两个数据与第一组数据的 两个数据的地址相同;重复步骤3和步骤4,直至读取了第一组数 据和第二组数据中的待处理的全部数据。优选地,在数据处理一莫块将运算结果送回随机存储器模块进行 存储之后,上述方法进一步包括随机存储器才莫块按照读取地址与存储地址对应的方式存储并输出运算结果,其中,读取地址是得到 运算结果所使用的输入数据在随机存储器模块中的地址。通过本发明,解决了现有技术还没有能够提供任意偶数长度、多种模式的FFT/IFFT处理器的问题,实现了可兼容长度大于等于 四的任何偶数点的IFFT/FFT变换。


此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其说明用于解释本发明,并 不构成对本发明的不当限定。在附图中图1是4艮据本发明实施例的FFT/IFFT处理器的结构的示意图;图2是根据本发明实施例的FFT/IFFT处理器的处理方法的流 程图;图3是才艮据本发明实施例的FFT/IFFT处理器的凄t据通^各结构 的示意图。
具体实施方式
根据本发明实施例,提供了一种FFT/IFFT处理器及其处理 方法,其可以应用于数字多媒体中的通信系统、通信方法以及加 工产品,适用于通信系统的偶数长度、变换长度可变的FFT/IFFT 的处理。在本发明中,引入了四端口存储模块、蝶形运算器(简称 为BF)等,可以实现在非脉动阵列结构下,使用双通道对数据实现 连续不间断的处理,在降4氐处理器对芯片面积需求的同时,可以4吏 用较低的时钟频率完成所需的FFT/IFFT运算。下面将参考附图并 结合实施例来详细说明装置实施例根据本发明的实施例,提供了一种FFT/IFFT处理器。图l是 根据本发明实施例的FFT/IFFT处理器的结构的示意图,如图1所 示,该处理器包括控制信号和地址信号产生器102、 RAM模块104、 ROM才莫块106、数据处理才莫块108,下面对该处理器的结构进行详控制信号和地址信号产生器102,用于产生控制信号和地址信 号,其中,地址信号包4舌RAM (Random-Access Memory,随才几存 储器)地址信号和ROM (Read-Only Memory,只读存储器)地址 信号,控制信号包括RAM控制信号、ROM控制信号、数据处理才莫 块控制信号;该控制信号和地址信号产生器102还用于进行变换长 度设置(选择),即,将输入数据的长度分为长度相等的两部分。RAM^^莫块104,连接至控制信号和地址信号产生器102,用于 存储输入数据;RAM模块可以包括两个四端口 RAM,其中,每个 四端口 RAM老卩包4舌工作频率为处理器系统时4中频率2倍的两端口 RAM、附加寄存器和多路复用器;这两个四端口 RAM分别根据控 制信号和地址信号产生器102的变换长度^:置来写入输入数据,并 根据控制信号和地址信号产生器102产生的RAM地址信号和RAM 控制信号向数据处理模块发送输入数据。具体地,将变换长度设置 的前一部分的数据写入第一个四端口 RAM,将后一部分的数据写入 第二个四端口 RAM。ROM^莫块106,连接至控制信号和地址信号产生器102、数据 处理模块108,用于存储旋转因子,并根据控制信号和地址信号产 生器102产生的ROM地址信号和ROM控制信号读取向数据处理 模块发送该旋转因子。数据处理模块108,连接至控制信号和地址信号产生器102、 RAM模块104、 ROM模块106,包括两个BF和多路复用器,用于 根据控制信号和地址信号产生器102产生的控制信号和ROM模块 106送入的旋转因子对RAM模块104送入的输入数据进行蝶形运 算,并将运算结果送回RAM才莫块104进行存l诸。通过该实施例4是供的处理器,包括两个相同的四端口 RAM和 两个相同的BF,对其控制几乎完全一致,这种结构佳/没计简单化; 该处理器可兼容长度大于等于四的任何偶数点的IFFT/FFT变换, 使用四端口 RAM实现四个数据的连续读写,不仅提高了处理速度, 更为简化控制单元的设计提供了基础。方法实施例才艮据本发明的实施例,才是供了一种FFT/IFFT处理器的处理方 法。图2是根据本发明实施例的FFT/IFFT处理器的处理方法的流 禾呈图,4o图2所示,该方法包4舌步骤S202, RAM模块在控制信号和地址信号产生器的控制下 装载输入数据,并将输入数据送入数据处理模块;步骤S204,数据处理模块根据控制信号和地址信号产生器产生 的控制信号和ROM才莫块送入的旋转因子,对输入数据进行蝶形运 算,并将中间运算结果送回RAM模块进行存储;此后,RAM模块读取地址是得到运算结果所使用的输入数据在RAM模块中的地址;步骤S206, RAM才莫块在控制信号和地址信号产生器的控制下 卸载数据。在步骤S204之前,上述方法还包括(42)控制信号和地址信号产生器进行变换长度设置;(44 ) RAM才莫块冲艮据RAM地址信号和RAM控制信号向凄t据 处理模块发送输入数据;(46 ) ROM才莫块才艮据ROM地址信号和ROM控制信号读取向 数据处理模块发送的旋转因子。具体地,处理(44)具体可以包括如下才喿作(202 )根据变换长度设置,将输入数据分为长度相等的第 一组 数据和第二组凄t据,将第一组数据纟耍顺序写入第一个四端口 RAM (简称为4-Port RAMI),将第二组数据按顺序写入第二个四端口 RAM (简称、为4-Port RAM2 );(204) RAM才莫块从4-Port RAMI中读取第一组彩:据的第一数 据和第二数据,从第二个四端口 RAM中读取第二组数据的第一数 据和第二数据,其中,第一组数据的第一数据和第二数据与第二组 数据的第 一数据和第二凝:据的地址相同;(206 ) RAM模块将第一组数据的第一数据和第二组数据的第 一数据送入数据处理模块的第一个蝶形运算器(简称为BF1 )进行 蝶形运算,将第 一组数据的第二数据和第二组数据的第二数据送入 数据处理模块的第二个蝶形运算器(简称为BF2)进行蝶形运算;(208)重复步骤(204)和步骤(206),直至读取了第一组数 据和第二组凝:据中的全部数据;(210) RAM模块从4-Port RAMI中读取第一组数据的两个数 据,并将第一组数据的两个数据送入数据处理模块的BF1进行蝶形 运算;(212) RAM模块从第二个四端口 RAM中读取第二组数据的 两个数据,并将第二组数据的两个数据送入数据处理才莫块的BF2进 行蝶形运算,其中,第二组数据的两个数据与第一组数据的两个数 据的地址相同;(214)重复步骤(210)和步骤(212),直至读取了第一组数 据和第二组数据中待处理的全部数据。通过该实施例,对运算过程的控制比较简单,对于任意基数的 运算,对应的运算结果回到读出数据的位置,中间无需任何置换, 节省了时钟周期。下面结合图3,以12点FFT运算为例结合

本发明实施 例的具体实现过程。图3是根据本发明实施例的FFT/IFFT处理器 的数据通路结构的示意图。在图3中,4陽Port RAM包4舌4-Port RAMI和4-Port RAM2,在 4-Port RAMI和4-Port RAM2中,分别包4舌PortA和PortB两部分, 其中,PortA包括Addr (连接至Addra—out和Addrb—out或者 Addrc—out和Addrd—out,用于读取,人4-Port RAMI或4-Port RAM2 输出至数据处理单元的数据的地址信号)和Dout (连接至A douta 和B doutb或者C doutc和D doutd,用于向凄t据处理才莫块送入lt据), PortB包括Din (连接至输入A和B或者输入C和D )和Addr (连 4妄至Addra—in和Addrb—in或者Addrc—in甘口 Addrd—in,用于读取丰lr 入至4-Port RAMI或4-Port RAM2的凄t据的地址信号);数据处理 单元包括BF1和BF2; ROM用于向数据处理才莫块4是供旋转因子。^口图3所示,包4舌如下步骤步骤1,处理器装载数据,将数据[x0, xl, x2, x3, x4, x5] 从Din写入4-Port RAMI;步骤2,将数据[x6, x7, x8, x9, xlO, xll]从Din写入4-Port RAM2;步艰《3 , 乂人A douta和B doutb分别读取4立于4-Port RAMI中;也 址0, 1的凄t据xO和xl,从C doutc和D doutd分别读取位于4-Port RAM2中;也址0, 1的凄史才居x6和x7; x0与x6送入BF1 , 4寻xl 与x7送入BF2进行蝶形运算;将x0与x6的运算结果从A和C写 入4-Port RAMI和4-Port RAM2的地址0,将xl与x7的运算结果 /人B和D写入4-Port RAMI和4-Port RAM2的;也址1;步骤4,变换地址,按照步骤3的方法完成x2与x8, x3与x9, 以及x4与xlO, x5与xll的蝶形运算;步骤5 , /人A douta和B doutb分别读取孑立于4-Port RAMI ;也址 0, 3的数据,送入BF1进行蝶形运算,并将运算结果从A和B写 回地址0, 3;同时/人C doutc和D doutd分別读取4立于4-Port RAM2 地址O, 3的数据,送入BF2进行蝶形运算,并将运算结果从C和 D写回地J止0, 3;步骤6,变换地址,按照步骤5中的方法,对4-PortRAMl和 4-Port RAM2分别完成地址1与4,以及地址2与5中数据的蝶形 运算;步-骤7,变换^也址,4要照步骤5中的方法,对4-PortRAMl和 4-Port RAM2分別完成地址1与2,以及地址4与5中数据的蝶形 运算;步骤8,变换地址,按照步骤5中的方法,对4-PortRAMl和 4-Port RAM2分别完成地址0与1,以及地址3与4中数据的蝶形 运算;步骤9,变换地址,按照步骤5中的方法,对4-PortRAMl和 4-Port RAM2分别完成地址1与2,以及地址4与5中数据的i莱形 运算;步骤10,卸载数据(从Output输出),卸载地址顺序为[O 6 3 9 1 7 4 10 2 8 5 11],其中,;也址0-5》于应4-Port RAMI i也址0-5, i也 址6-11对应4-PortRAM2地址0-5。通过本发明实施例提供的处理器,运算速度快,处理过程比较 简单,处理1200点FFT/IFFT需要6600个时钟周期,在主频160MHz 下耗时41.27微秒,在主频246MHz下耗时26.83孩i秒;此架构适 用基于不同厂家、不同类型FPGA或ASIC的实现;此架构适用长 度大于等于四的4壬^H禺凄t点的FFT/IFFT,因此不4又可用于LTE系 纟克,也可用于其它4吏用 OFDM (Orthogonal Frequency Division Multiplexing ,正交频分复用)l支术的系统。显然,本领域的技术人员应该明白,上述的本发明的各模块或 各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算 装置上,或者分布在多个计算装置所组成的网络上,可选地,它们 可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成 电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模 块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述4又为本发明的优选实施例而已,并不用于限制本发明, 对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在 本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1.一种快速傅立叶变换/快速傅立叶反变换处理器,其特征在于,包括控制信号和地址信号产生器,用于产生控制信号和地址信号;随机存储器模块,用于存储输入数据和中间运算结果;只读存储器模块,用于存储旋转因子;数据处理模块,用于根据所述控制信号和所述旋转因子对所述输入数据进行蝶形运算,并将所述中间运算结果送回所述随机存储器模块进行存储。
2. 根据权利要求1所述的处理器,其特征在于,所述地址信号包括随机存储器地址信号和只读存储器地 址信号,所述控制信号包括随才几存储器控制信号、只读存储器 控制信号、数据处理模块控制信号。
3. 根据权利要求2所述的处理器,其特征在于,所述随机存储器模块根据所述随机存储器地址信号和所 述随机存储器控制信号向所述数据处理模块发送所述输入数 据。
4. 根据权利要求2所述的处理器,其特征在于,所述只读存储器模块根据所述只读存储器地址信号和所 述只读存储器控制信号读取向所述数据处理模块发送的所述 旋转因子。
5. 根据权利要求1所述的处理器,其特征在于,所述随机存储器 模块包括两个四端口随机存储器。
6. 根据权利要求5所述的处理器,其特征在于,所述四端口随机 存储器包括工作频率为处理器系统时钟频率2倍的两端口随 机存储器、寄存器和多路复用器。
7. 根据权利要求5所述的处理器,其特征在于,所述控制信号和 地址信号产生器还用于进行变换长度纟殳置,所述两个四端口随 机存储器分别根据所述变换长度设置来写入所述输入数据。
8. 才艮据一又利要求1所述的处理器,其特征在于,所述凄t据处理才莫 块包括两个蝶形运算器和多路复用器。
9. 一种快速傅立叶变换/快速傅立叶反变换处理器的处理方法, 其特征在于,包括随机存储器模块在控制信号和地址信号产生器的控制下 装载输入数据,并将所述输入数据送入数据处理^^块;所述数据处理模块根据所述控制信号和地址信号产生器 产生的控制信号和只读存储器模块送入的旋转因子,对所述输 入数据进行蝶形运算,并将中间运算结果送回所述随机存储器 模块进行存储;所述随机存储器模块在所述控制信号和地址信号产生器 的控制下卸载数据。
10. 根据权利要求9所述的方法,其特征在于,所述地址信号包括随^L存^f诸器地址信号和只读存储器地 址信号,所述控制信号包括随一几存储器控制信号、只读存储器 控制信号、数据处理模块控制信号。
11. 根据权利要求IO所述的方法,其特征在于,所述随机存储器模块根据所述随机存储器地址信号和所 述随机存储器控制信号向所述数据处理模块发送所述输入数 据。
12. 根据权利要求IO所述的方法,其特征在于,所述只读存储器模块根据所述只读存储器地址信号和所 述只读存储器控制信号读取向所述数据处理才莫块发送的所述 旋转因子。
13. 根据权利要求12所述的方法,其特征在于,在进行蝶形运算 之前,所述方法还包4舌所述控制信号和地址信号产生器进行变换长度设置;根据所述变换长度设置,将所述输入数据分为长度相等的 第 一组数据和第二组数据,将所述第 一组数据按顺序写入第一 个四端口随才几存储器,将所述第二组数据按顺序写入第二个四 端口随机存储器。
14. 根据权利要求13所述的方法,其特征在于,还包括步骤l,所述随才几存储器才莫块乂人所述第一个四端口随才几存 储器中读取第一组数据的第一数据和第二数据,从所述第二个 四端口随才几存储器中读取第二组凄t据的第 一凄t据和第二数据, 其中,所述第一组数据的第一数据和第二数据与所述第二組数 据的第一凄t据和第二翁:据的地址相同;步骤2,所述随机存储器模块将所述第一组数据的第一数 据和所述第二组数据的第 一数据送入所述数据处理模块的第 一个蝶形运算器进行蝶形运算,将所述第一组数据的第二数据和所述第二组凄t据的第二凄史据送入所述数据处理;漠块的第二 个蝶形运算器进行蝶形运算;重复所述步骤1和所述步骤2,直至读取了所述第一组数 据和所述第二组数据中的全部数据。
15. 根据权利要求14所述的方法,其特征在于,在读取了所述第 一组凄t据和所述第二组数据中的全部数据之后,所述方法还包 括步骤3,所述随机存储器模块从所述第 一个四端口随机存 储器中读取第 一组数据的两个数据,并将所述第 一组数据的两 个数据送入所述数据处理模块的第 一 个蝶形运算器进行蝶形 运算;步骤4,所述随才几存储器才莫块乂人所述第二个四端口随才几存 储器中读取第二组数据的两个凄t据,并将所述第二组凄t据的两 个数据送入所述数据处理模块的第二个蝶形运算器进行蝶形 运算,其中,所述第二组^t据的两个^t据与所述第一组^t据的两个^t据的地址相同;重复所述步骤3和所述步-骤4,直至读取了所述第一组凄t 据和所述第二组数据中的待处理的全部数据。
16. 根据权利要求9所述的方法,其特征在于,在所述数据处理模 块将运算结果送回所述随机存储器模块进行存储之后,所述方 法进一步包括所述随才几存卞者器才莫块4妄照读取地址与存+者地址对应的方 式存储并输出所述运算结果,其中,所述读取地址是得到所述 运算结果所使用的输入数据在所述随机存储器模块中的地址。
全文摘要
本发明公开了一种快速傅立叶变换/快速傅立叶反变换处理器及其处理方法,其中,上述处理器包括控制信号和地址信号产生器,用于产生控制信号和地址信号;随机存储器模块,用于存储输入数据和中间运算结果;只读存储器模块,用于存储旋转因子;数据处理模块,用于根据控制信号和旋转因子对输入数据进行蝶形运算,并将中间运算结果送回随机存储器模块进行存储。本发明实现了可兼容长度大于等于四的任何偶数点的IFFT/FFT变换。
文档编号H04L27/26GK101330489SQ20081013460
公开日2008年12月24日 申请日期2008年7月28日 优先权日2008年7月28日
发明者圆 周 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1