专利名称:3780点快速傅立叶变换处理器及运算控制方法
技术领域:
本发明涉及数字电视地面广播传输领域,特别是涉及一种用于数字电 视地面广播传输的快速傅里叶变换(FFT)处理器;本发明还涉及该FFT 处理器的运算控制方法。
背景技术:
我国自主推出的数字电视地面广播国家标准GB20600-2006——数字 地面多媒体广播的系统(DTMB Digital Terrestrial Multimedia Broadcasting数字地面多媒体广播),包括多载波和单载波两种模式。其 中多载波传输模式中采取时域同步正交频分复用(TDS-OFDM)的方式对 3780个载波传输信号进行调制和解调。在接收机设计中,不仅需要对多 载波模式下接收到的数据进行3780点快速傅里叶变换(FFT)运算,而且 对于单载波模式下接收到的数据也需要进行快速傅里叶变换和反变换处 理以进行频域均衡。快速傅里叶变换处理器占据了 DTMB接收机系统大量 的运算时间及资源,从而在很大程度上决定了 DTMB接收机系统的功耗和 复杂度。因此如何有效实现3780点快速傅里叶变换处理器,对整个DTMB 接收机系统的实现有很大影响。
中国发明专利申请公布说明书CN 101136891A (
公开日2008年3 月5日)公开了一种流水线结构的3780点快速傅里叶变换处理器。它采 用Cooley-Turkey算法将所述3780点FFT分解为60点FFT模块和63点FFT模块,并用素因子算法将63点分解成7点和9点,将60点分解为3、 5和4点Winograd傅里叶变换(WFTA)模块。采用流水线结构,使输入数 据可以不间断地进行FFT运算,并不断输出运算结果。 它所存在的缺点是
1、 需要存储由于分解算法所需要的3780个旋转因子,消耗了大量的 存储空间。
2、 虽然采用流水线结构能够获得很高的吞吐量,但是需要存储7560 个中间变换数据,而DTMB接收机系统的应用并不需要流水线结构所提供 的吞吐量。
3、 9点FFT的处理方式采用了直接9点WFTA实现的方式,与多项式 分解或者采用Cooley-Turkey算法分解为3x3点WFTA的方式相比浪费资 源。
4、 需要消耗大量的硬件存储资源,同时也会增加电路的复杂度和耗 电量,使得芯片的成本增加。
发明内容
本发明要解决的技术问题是提供一种3780点快速傅里叶变换处理 器,能够显著降低硬件实现的复杂度和芯片的功耗;为此,本发明还要提 供一种该FFT处理器的运算控制方法。
为解决上述技术问题,本发明的3780点快速傅里叶变换处理器,包
括
输入置换单元,用于对输入数据进行缓存以及顺序调整,以配合后续 电路的处理要求;63点FFT运算单元,与输入置换单元连接,用于对输入数据执行63 点FFT;
旋转因子存储单元,用于存储945个旋转因子;
旋转因子映射单元,与旋转因子存储单元连接,将945个旋转因子映 射回3780个旋转因子;
复数乘法单元,与63点FFT运算单元及旋转因子映射单元连接,将 经过63点FFT运算单元变换处理的输入数据和旋转因子的复数,进行乘 法运算;
中间结果存储单元,与复数乘法单元连接,用于存储复数乘法单元的 运算结果,即3780个复数数据;
60点FFT运算单元,与中间结果存储单元连接,对存储于中间结果 存储单元的复数数据进行60点FFT处理;
输出置换单元,与60点FFT运算单元连接,对输出的数据进行缓存 和顺序调整;
读写地址控制单元,与输入置换单元、63点FFT运算单元、旋转因 子存储单元、中间结果存储单元、60点FFT运算单元和输出置换单元连 接,产生读写地址和控制信号,用于数据读写及上述各单元的动作使能控 制;
FFT/IFFT运算控制单元,与63点FFT运算单元、复数乘法单元和60 点FFT运算单元连接,用于控制FFT运算和IFFT运算的切换;
所述63点FFT运算单元和60点FFT运算单元在FFT/IFFT运算控制 单元的控制下,按乒乓方式分时交替动作。所述的3780点快速傅里叶变换处理器运算控制方法,包括如下步骤:
步骤一、根据读写地址控制单元所生成的地址,从输入置换单元读取
63个数据输入给63点FFT运算单元,进行63点FFT运算;
步骤二 、旋转因子映射单元从旋转因子存储单元中读取经过优化压縮
的945个旋转因子并反向映射回原始的3780个旋转因子,然后,与63
点FFT运算单元输出的63点FFT运算结果进行复数相乘; 步骤三、将复数乘法结果写入中间结果存储单元; 步骤四、重复步骤一至三60次,完成对输入至输入置换单元中的3780
点数据的63点FFT运算;
步骤五、根据读写地址控制单元所生成的地址,从中间结果存储单元
中读出60个数据,送入60点FFT运算单元进行60点FFT的运算; 步骤六、将完成的60点FFT运算的数据写入输出置换单元; 步骤七、重复步骤五至六63次,完成对中间结果的3780点数据的
60点FFT运算。
采用本发明的3780点快速傅里叶变换处理器后,所述FFT/IFFT运算 控制单元能使本发明既可工作于FFT模式,也可工作于IFFT模式。3780 点FFT被分解为63点FFT和60点FFT运算;并且63点FFT运算和60 点FFT运算按乒乓方式分时交替动作。由于采用乒乓方式动作,所述中间 结果存储单元只需要存储3780个经过63点FFT运算单元变换处理后的中 间结果。
3780个旋转因子经优化压縮后,所述旋转因子存储单元只需要存储 945个旋转因子,存储量仅为原始存储量的1/4,节约了存储旋转因子的存储资源。
本发明能够完全能够克服现有的3780点快速傅里叶变换处理器所存 在的缺点,大大降低硬件实现的复杂度和芯片的功耗,得到更为优化的 3780点快速傅里叶变换处理器。
下面结合附图与具体实施方式
对本发明作进一步详细的说明 图1是本发明的3780点快速傅里叶变换处理器结构示意图; 图2是本发明中63点FFT运算单元结构示意图; 图3是本发明中60点FFT运算单元结构示意图; 图4是本发明中7点FFT运算单元结构示意图; 图5是本发明中基于多项式分解的9点FFT运算单元结构示意图; 图6是本发明中采用Cooley-Turkey算法分解为3x3点WFTA运算的 9点FFT运算单元结构示意图。
具体实施例方式
由于快速傅里叶变换处理和快速傅里叶反变换处理是对称的,仅在数 据置换处理和旋转因子的选择方面略有不同,因此以下说明主要针对快速 傅里叶变换处理进行说明。
下面以3780点快速傅里叶变换处理的一个周期为例,对本发明进行 说明
参见图1所示,在本发明的一种具体实现方式中,包括输入置换单元 103、 63点FFT运算单元104、旋转因子存储单元105、中间结果存储单 元108、 60点FFT运算单元109和输出置换单元110。读写地址控制单元102与上述单元分别进行连接,用于产生读写地址和控制信号,用于数据 读写及上述各单元的动作使能控制。
输入置换单元103,按顺序存储输入的数据,用于数据的重新排序,
以配合后续电路的处理要求。
63点FFT运算单元104,与输入置换单元连接,用于对输入数据执行 63点FFT。读写地址控制单元102所生成的读地址,从输入置换单元103 读取63个数据给63点FFT运算单元104进行63点FFT运算。
旋转因子存储单元105,用于存储位于第一象限的945个旋转因子。
旋转因子映射单元106,与旋转因子存储单元105连接,将945个旋 转因子映射回3780个旋转因子。
复数乘法单元107,与63点FFT运算单元104及旋转因子映射单元 107连接,将经过63点FFT运算单元104变换处理的输入数据和旋转因 子映射单元106映射的旋转因子的复数,进行乘法运算。
中间结果存储单元108,与复数乘法单元107连接,用于存储复数乘 法单元107的运算结果,即3780个复数数据。
60点FFT运算单元109,与中间结果存储单元108连接,对存储于中 间结果存储单元108的复数数据进行60点FFT处理。
输出置换单元IIO,与60点FFT运算单元109连接,对输出的数据 进行缓存和顺序调整。
FFT/IFFT运算控制单元101,与63点FFT运算单元104、复数乘法 单元107和60点FFT运算单元109连接,用于控制FFT运算和IFFT运算 的切换;所述63点FFT运算单元和60点FFT运算单元在FFT/IFFT运算控制单元的控制下,按乒乓方式分时交替动作。
本发明的3780点快速傅里叶变换处理器的运算控制过程如下-步骤一、根据读写地址控制单元102所生成的地址,从输入置换单元
103读取63个数据输入给63点FFT运算单元104,进行63点FFT运算。 步骤二、旋转因子映射单元106从旋转因子存储单元105中读取经过
优化压縮的945个旋转因子并反向映射回原始的3780个旋转因子,然后,
与63点FFT运算单元104输出的63点FFT运算结果进行复数相乘。 步骤三、将复数乘法结果写入中间结果存储单元108。 步骤四、重复步骤一至三60次,完成对输入至输入置换单元103中
的3780点数据的63点FFT运算。
步骤五、根据读写地址控制单元102所生成的地址,从中间结果存储
单元108中读出60个数据,送入60点FFT运算单元109进行60点FFT
的运算。
步骤六、将完成的60点FFT运算的数据写入输出置换单元110。 步骤七、重复步骤五至六63次,完成对中间结果的3780点数据的 60点FFT运算。
上述运算控制过程按时钟节奏进行,先计算63点FFT,然后再计算 60点FFT;在一个处理周期内,只有一半的电路处于激活状态,即63点 FFT运算和60点FFT运算按兵乓方式分时交替动作。
采用本发明完成3780个输入数据的63点FFT运算所需要的时间为 3780个时钟,处理3780个中间结果的60点FFT运算所需要的时间为3780 个时钟,再加上一些输入输出缓存等所导致的延迟,完成整个3780点FFT运算所需要的时间为大概为7800个时钟。在DTMB接收机系统的多载波模 式中,基带符号速率为7.56Msps, 一个OFDM符号的长度为3780个符号, 再加上长度为m (m可能为420、 595、 945)的帧头, 一帧的数据总长是 (3780+m)个符号。因此一个数据帧的时间长度为
Tframe =(3780 +m)/7.56e6 公式(1)
当m取最小值420时,则有T^e =(3780 + 420 )/7.56e6 "556fe。 因此,要保证在一个数据帧的时间内完成一个OFDM符号的3780点的快速
傅里叶变换处理,要求快速傅里叶变换处理的时钟频率满足以下条件
fclk > 7800/Tframe 14MHz 公式(2 )
这个时钟频率的要求对于现有的数据信号处理的硬件实现技术来说 是非常容易满足的。一般的数字通信系统都采用远远高于这个频率的时钟
频率进行数字信号处理运算。因此,按照本发明,63点FFT运算和60点 FFT运算按乒乓方式分时交替进行,所实现的3780点快速傅里叶变换处 理器的吞吐量完全能够满足DTMB接收机系统的处理要求。
由于63点FFT运算和60点FFT运算按兵乓方式分时交替进行,因此 中间结果存储单元108不需要釆用双缓存的结构,只需要存储3780个中 间变换结果即可。与按流水线结构操作的3780点快速傅里叶变换处理器 中需要采用双缓存以存储7560个中间变换结果相比,节省了 3780个复数 存储单元。
再参见图2所示。所述63点FFT运算单元104包括7点FFT运算单 元201、双缓存单元202和9点FFT运算单元203。另外,选择进行FFT 运算,还是进行IFFT运算,也是由所述的FFT/IFFT控制单元101进行控制的;而读写地址和控制信号等同样由所述的读写地址控制单元102产 生。
所述63点FFT运算单元104的运算控制过程如下 步骤l、按照读写地址控制单元102所产生的控制信号,将63个输 入数据按顺序每7个为一组输入到7点FFT运算单元201,进行7点FFT运算。
步骤2、将7点FFT运算的中间结果数据写入双缓存单元202中。 步骤3、重复步骤1至2共9次,完成63个输入数据的共9次7点 FFT运算。
步骤4、根据读写地址产生单元102产生的地址,从双缓存单元202 中读出9个数据输入到9点FFT运算单元203,进行9点FFT运算。
步骤5、重复步骤4共7次,完成对63个7点FFT运算的中间结果 数据的7次9点FFT运算。
进行63点FFT运算时,数据的输入和输出均按照时钟节奏进行,7 点FFT运算和9点FFT运算按照纯流水线方式进行计算。比如说,对第一 个输入的63点数据完成7点FFT运算后,由9点FFT运算单元203进行 9点FFT运算的同时,7点FFT运算单元201进行第二个输入的63点数据 的7点FFT运算,以下依次类推。正因为这种流水线的动作方式,存储中 间结果数据的双缓存单元202需要采用双缓存结构。
结合图3所示。所述60点FFT运算单元109包括3点FFT运算单元 301、第二双缓存单元302、 5点FFT运算单元303、第三双缓存单元304、 4点FFT运算单元305。另外,选择进行FFT运算,还是进行IFFT运算,也是由所述的 FFT/IFFT控制单元101进行控制的;而读写地址和控制信号等同样由所 述的读写地址控制单元102产生。
所述60点FFT运算单元的的运算控制过程如下
步骤(1)、按照读写地址控制单元102所产生的控制信号,将输入的 60个数据按顺序每3个为一组,输入到3点FFT运算单元301中,进行3 点FFT运算。
步骤(2)、将3点FFT运算的结果数据写入第二双缓存单元302中。
步骤(3)、重复步骤(1) (2)共20次,完成对60个输入数据共 20次3点FFT运算。
步骤(4)、根据读写地址控制单元102所生成的地址信号从第二双缓 存单元302中读出数据,输入到5点FFT运算单元303,进行5点FFT运 算,并将运算结果写入第三双缓存单元304。
步骤(5)、重复步骤(4)共12次,完成对60个3点FFT运算的中 间结果数据的12次5点FFT运算。
步骤(6)、根据读写地址控制单元102所生成的地址信号从第三双缓 存单元304中读出数据,输入到4点FFT运算单元305进行4点FFT运算。
步骤(7)、重复步骤(6)共15次,完成对60个5点FFT运算的中 间结果数据的15次4点FFT运算。
进行60点FFT运算时,数据的输入和输出均按照时钟节奏进行,3 点FFT运算、4点FFT运算以及5点FFT运算按照纯流水线方式进行计算。 比如说3点FFT运算单元对第三个输入的60点数据进行3点FFT运算的同时,5点FFT运算单元则对第二个输入的60点数据的经过3点FFT运算所得的中间结果进行5点FFT运算,同时,4点FFT运算单元则对第一个输入的60点数据的经过3点FFT运算和5点FFT运算所得的中间结果进行4点FFT运算,以下依次类推。
正因为这种流水线的动作方式,存储中间结果数据的第二双缓存单元302和第三双缓存单元304需要采用双缓存结构。在本发明中,所述3点、4点、5点和7点FFT运算均采用WFTA算法实现。
结合图4所示。所述7点FFT运算单元201包括输入存储单元401、串并转换单元402、 7点WFTA运算单元403、并串转换单元404、输出存储单元405。另外,选择进行FFT运算,还是进行IFFT运算,也是由所述的FFT/IFFT控制单元101进行控制的;而读写地址和控制信号等同样由所述的读写地址控制单元102产生。
输入数据首先被写入输入存储单元401。 FFT运算开始后,输入数据从输入存储单元401中被读出,并经过串并转换单元402进行串并转换,即将串行读出的数据按并行的方式输出给7点WFTA运算单元403进行7点WFTA运算,运算结果经并串转换单元404进行并串转换,即将7点WFTA运算单元403的并行输出数据按串行方式写入输出存储单元405。
在本发明中,3点、4点和5点FFT运算单元与7点FFT运算单元201的结构相似,只需要分别以3点、4点和5点WFTA运算单元替换图4中的7点WFTA运算单元403即可。运算控制过程相同,因此不再赘述。
另外,WFTA算法及其实现方式对于本领域的技术人员是公知的技术,故此处不再详细说明。在以上描述中,3780点FFT运算是按先进行63点FFT运算,后进行60点FFT运算的顺序进行;63点FFT运算是按先进行7点FFT运算,后进行9点FFT运算的顺序进行;60点FFT运算是按先进行3点FFT运算,然后进行5点FFT运算,最后进行4点FFT运算的顺序进行的;但是这些顺序并非唯一的和必然的,本领域的技术人员根据本发明的描述可以很容易地得到其它任何顺序安排的实现方式。
本发明中的一个实施例中,9点FFT运算采用多项式分解的方式进行,其结构如图5所示。具体包括第二输入存储单元50K第二串并转换单元502、 9点多项式分解计算单元503、第二并串转换单元504、第二输出存储单元505。
另外,选择进行FFT运算,还是进行IFFT运算,也是由所述的FFT/IFFT控制单元101进行控制的;而读写地址和控制信号等同样由所述的读写地址控制单元102产生。
输入数据首先被写入第二输入存储单元501。 FFT运算开始后,输入数据从第二输入存储单元501中被读出,并经过第二串并转换单元502进行串并转换后,输入给9点多项式分解计算单元503进行9点FFT运算,运算结果经过第二并串转换单元504进行并串转换后写入第二输出存储单元505。
9点多项式分解计算的公式如下所示其中"=2"/9, x。 、 x,、…、^等表示输入信号,Xo、 Z、…、T8等表示变换结果。[…、6。, m。、…、W。, A、…、 等表示变换的中间结果数据。<formula>formula see original document page 18</formula>在本发明的另一个实施例中,9点FFT运算采用Cooley-Turkey算法分解为3x3点FFT运算,其结构参见图6。具体包括第二 3点FFT运算单元601、调序单元602、第二复数乘法单元603、第二旋转因子存储单元604、第二调序单元605和第三3点FFT运算单元606。另外,选择进行FFT运算,还是进行IFFT运算,也是由所述的FFT/IFFT控制单元101进行控制的;而读写地址和控制信号等同样由所述的读写地址控制单元102产生。具体的运算控制步骤如下
步骤A、将数据送入第二 3点FFT运算单元601进行3点FFT运算。步骤B、将完成3点FFT运算的数据输入到调序单元602,对数据进行顺序调整。
步骤C、重复步骤A至B共三次,完成9个输入数据的3点FFT运算。步骤D、第二复数乘法单元603从第二旋转因子存储单元605中读出
旋转因子与经过调序单元602进行顺序调整过的数据复数相乘。
步骤E、将完成复数乘法的数据输入到第二调序单元605,再次进行
顺序调整。
步骤F、将从第二调序单元605输出的数据输入到第三3点FFT运算单元606,再次进行3点FFT运算。
步骤G、重复步骤D至F共三次,完成9个中间结果数据的3点FFT运算。
其中,3点FFT运算单元采用WFTA算法实现,其实现方式对于本领域的技术人员是公知的技术,故此处不再赘述。
下面的表一给出了 9点FFT运算的三种实现方式资源消耗的对比结果。从表一中可以看出,3x3点WFTA实现方式消耗的资源最少,其次是 多项式分解实现方式,消耗资源最多的是直接的9点WFTA实现方式。
表一
9点FFT运算的实现方式乘法器个数加法器个数旋转因子个数
9点WFTA13440
多项式分解11440
分解为3x3点WFTA3*26*29
在本发明中,将3780点FFT运算分解为63x60点FFT运算后,63点 FFT运算与60点FFT运算之间对中间运算结果进行复数乘法运算所需要 的3780个旋转因子压縮为945个旋转因子进行存储。
以下说明压縮处理的具体推导过程。原始的3780个旋转因子可以表 示为『378。 =e—2ir,,0 2_/《3779,N = 3780},以下的描述中均以N表示
3780。
^ = cos卩_ 2w, + /. sin卩_ 2兀/A9 公式(3 )
由于三角函数有以下关系
cos(;r —") = — cos a
cos(;r + a) = — cos" 公式(4)
cos(2;r —") = cos"
sin(;r - a) = sin a
sin(;r + a) = — sina 公式(5)
sin(2;r —a) = — sin"
因此针对『378。中的3780个旋转因子,可以只保存其位于第一象限的 945个旋转因子《、《、……P^44,而其它三个象限的旋转因子则可以 通过序号对应关系基于第一象限的旋转因子求得。具体计算方法如下
第二象限的旋转因子包括^7 =e-2一,945S^1889,根据公式(4)、 (5),
其实部和虚部分别可以表示为Re(『")=COS(—2tt7W) = -cos(- 2兀(1890 —力W) = —Re(《聊力)公式(6 ) Im(『")=sin(-27yW) = sin(- 2兀(1890 —力M) = Im(ff"890—J)
对于945"、1889必然有1《1890-7、945,因此除了《45以外,其他第 二象限的旋转因子均可以根据第一象限的旋转因子和适当的序号对应关 系求得。
同样的道理可以得到第三象限、第四象限的旋转因子与第一象限的旋 转因子的对应关系如下
对于第三象限的旋转因子^ =e_2,,189(^ ^ 2834 ,有 R徘-R化。)
Im—N0=-Im—"-鹏) A式^
对于第四象限的旋转因子^ =e-2一,2835< y《3779,有
N ,37。?、 公式(8)
Im(『N。=-Im—N37
公式(6)、公式(7)和公式(8)中,Re(,)表示一个复数的实部,Im(,)
表示一个复数的虚部,j表示旋转因子序号。
综上所述,在本发明中,只需要存储位于第一象限的945个旋转因子, 然后基于公式(6)、 (7)和(8),就可以求得所有第二象限、第三象限和 第四象限的旋转因子,这一映射处理由图1中的旋转因子映射单元106 完成。比如说,根据运算的需要要读取序号为1814的旋转因子,读写地 址控制单元102根据序号判断该旋转因子位于第二象限,因此根据公式 (6)输出读取地址addr=1890-1814=76,从旋转因子存储单元105中读 取第76个地址所存储的数据tfactor[76卜x + j*y,然后,旋转因子映 射单元106根据公式(6)经过变换得到序号为1814的旋转因子 tfactor〔1814]=- x + j*y,并输出给复数乘法单元107。在以上描述中,旋转因子存储单元105存储的是第一象限的945个旋 转因子,事实上存储任何其它象限的旋转因子都可以,因为按照公式(6)、 (7)和(8)的类似的变换方法,基于任何一个象限的旋转因子都可以通 过序号关系变换得到其他三个象限的旋转因子。
综上所述,本发明只需要存储945个旋转因子,只需要一块中间结果 存储单元存储3780个经63点FFT变换处理后的中间结果,并且9点FFT 运算采用更加优化的实现方式,从而减少了资源消耗,降低了处理器的功 耗,大大降低芯片实现的成本。
以上通过具体实施方式
和实施例对本发明进行了详细的说明,对于本 领域的普通技术人员来说,在不脱离本发明原理的情况下,还可做出若干 变形和改进,这些也应视为属于本发明的保护范围。
权利要求
1、一种3780点快速傅里叶变换处理器,其特征在于,包括输入置换单元,用于对输入数据进行缓存以及顺序调整;63点FFT运算单元,与输入置换单元连接,用于对输入数据执行63点FFT;旋转因子存储单元,用于存储945个旋转因子;旋转因子映射单元,与旋转因子存储单元连接,将945个旋转因子映射回3780个旋转因子;复数乘法单元,与63点FFT运算单元及旋转因子映射单元连接,将经过63点FFT运算单元变换处理的输入数据和旋转因子的复数,进行乘法运算;中间结果存储单元,与复数乘法单元连接,用于存储复数乘法单元的运算结果;60点FFT运算单元,与中间结果存储单元连接,对存储于中间结果存储单元的复数数据进行60点FFT处理;输出置换单元,与60点FFT运算单元连接,对输出的数据进行缓存和顺序调整;读写地址控制单元,与输入置换单元、63点FFT运算单元、旋转因子存储单元、中间结果存储单元、60点FFT运算单元和输出置换单元连接,产生读写地址和控制信号,用于数据读写及上述各单元的动作使能控制;FFT/IFFT运算控制单元,与63点FFT运算单元、复数乘法单元和60点FFT运算单元连接,用于控制FFT运算和IFFT运算的切换;所述63点FFT运算单元和60点FFT运算单元按乒乓方式分时交替动作。
2、 如权利要求1所述的3780点快速傅里叶变换处理器,其特征在于, 所述63点FFT运算单元和60点FFT运算单元的运算顺序任意安排。
3、 如权利要求1所述的3780点快速傅里叶变换处理器,其特征在于, 所述63点FFT运算单元包括7点FFT运算单元和9点FFT运算单元,其 中,7点FFT运算单元采用WFTA算法实现,9点FFT运算单元采用多项式 分解方式或者采用Cooley-Turkey算法将其分解为3x3点WFTA算法的方 式实现。
4、 如权利要求3所述的3780点快速傅里叶变换处理器,其特征在于, 所述7点FFT运算单元和9点FFT运算单元的运算顺序任意安排。
5、 如权利要求1所述的3780点快速傅里叶变换处理器,其特征在于, 所述60点FFT运算单元包括3点FFT运算单元、5点FFT运算单元和4 点FFT运算单元,均采用WFTA算法进行实现。
6、 如权利要求5所述的3780点快速傅里叶变换处理器,其特征在于, 所述3点FFT运算单元、5点FFT运算单元和4点FFT运算单元的运算顺 序任意安排。
7、 如权利要求1所述的3780点快速傅里叶变换处理器,其特征在于, 所述旋转因子存储单元存储的945个旋转因子,可以位于第一象限、第二 象限、第三象限或第四象限。
8、 一种如权利要求1所述的3780点快速傅里叶变换处理器运算控制 方法,其特征在于,包括如下步骤步骤一、根据读写地址控制单元所生成的地址,从输入置换单元读取63个数据输入给63点FFT运算单元,进行63点FFT运算;步骤二、旋转因子映射单元从旋转因子存储单元中读取经过优化压縮的945个旋转因子并反向映射回原始的3780个旋转因子,然后,与63点FFT运算单元输出的63点FFT运算结果进行复数相乘; 步骤三、将复数乘法结果写入中间结果存储单元; 步骤四、重复步骤一至三60次,完成对输入至输入置换单元中的3780点数据的63点FFT运算;步骤五、根据读写地址控制单元所生成的地址,从中间结果存储单元中读出60个数据,送入60点FFT运算单元进行60点FFT的运算; 步骤六、将完成的60点FFT运算的数据写入输出置换单元; 步骤七、重复步骤五至六63次,完成对中间结果的3780点数据的60点FFT运算。
9、如权利要求8所述的运算控制方法,其特征在于,基于第一象限的旋转因子通过序号关系变换得到第二象限的旋转因子的计算方法为Refe。)=-Re(C) Im(『/78o)-Im(『力)基于第一象限的旋转因子通过序号关系变换得到第三象限的旋转因子的计算方法为R化。)-Re(C) Im—/78。)=-Im(d基于第一象限的旋转因子通过序号关系变换得到第四象限的旋转因 子的计算方法为Re—4。)=Re(d Im(『/,)=—Im—其中j表示旋转因子序号,『/78。表示第j个旋转因子,Re()和Im()分别表示 一个复数的实部和虚部。
10、如权利要求8所述的运算控制方法,其特征在于,基于任何一个象限的旋转因子通过序号关系变换都能得到其他三个象限的旋转因子。
全文摘要
本发明公开了一种3780点快速傅里叶变换处理器及其运算控制方法,包括输入置换单元、63点FFT运算单元、旋转因子存储单元、旋转因子映射单元、复数乘法单元、中间结果存储单元、60点FFT运算单元、输出置换单元、读写地址控制单元和FFT/IFFT运算控制单元;旋转因子存储单元存储经优化压缩的945个旋转因子,63点FFT运算单元和60点FFT运算单元按乒乓操作的方式分时交替动作。本发明能够显著降低硬件实现的复杂度和芯片的功耗。
文档编号H04L27/26GK101667984SQ20081004376
公开日2010年3月10日 申请日期2008年9月4日 优先权日2008年9月4日
发明者飞 余, 王天兵, 瑞 石, 陈小元 申请人:上海明波通信技术有限公司