CN102419741A - 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 - Google Patents

一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 Download PDF

Info

Publication number
CN102419741A
CN102419741A CN2011103055290A CN201110305529A CN102419741A CN 102419741 A CN102419741 A CN 102419741A CN 2011103055290 A CN2011103055290 A CN 2011103055290A CN 201110305529 A CN201110305529 A CN 201110305529A CN 102419741 A CN102419741 A CN 102419741A
Authority
CN
China
Prior art keywords
cachel
wfta
modules
dimensional
shared storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103055290A
Other languages
English (en)
Inventor
张鹏
刘昌银
蒋蓝祥
陈晋伦
周德扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING GUANGXUN TECHNOLOGY CO LTD
SHENZHEN WINSTART BROADCASTING TECHNOLOGY CO LTD
Communication University of China
Original Assignee
BEIJING GUANGXUN TECHNOLOGY CO LTD
SHENZHEN WINSTART BROADCASTING TECHNOLOGY CO LTD
Communication University of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING GUANGXUN TECHNOLOGY CO LTD, SHENZHEN WINSTART BROADCASTING TECHNOLOGY CO LTD, Communication University of China filed Critical BEIJING GUANGXUN TECHNOLOGY CO LTD
Priority to CN2011103055290A priority Critical patent/CN102419741A/zh
Publication of CN102419741A publication Critical patent/CN102419741A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置,其特征在于,所述处理装置包括:3780个复数的共享存储器Cache1;常规的4点WFTA模块;常规的5点WFTA模块;常规的7点WFTA模块;修改的27点二维Cooley-Tukey模块,用于执行140次27点二维Cooley-Tukey傅里叶变换,它从Cache1读取数据的地址顺序与它向Cache1写入结果的地址顺序相同,也就是说,修改的27点二维Cooley-Tukey模块读写Cache1是同址的。

Description

一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法
技术领域
本发明涉及数字地面电视广播技术,特别涉及一种DTMB系统中3780点离散傅里叶变换(Discrete Fourier Transform,DFT)的实现方法。
背景技术
随着无线通信业务的不断增长,可利用的频谱资源日益紧张。为了提高频谱利用率和通信质量,现代无线通信系统广泛采用对频率选择性衰落具有较强免疫力的正交频分复用(Orthogonal Frequency Duplex Multiplexing,OFDM)技术。OFDM技术的核心是DFT。数字地面电视广播(Digital Television Terrestrial Multimedia Broadcasting,DTMB)标准采用了OFDM技术,需要进行3780点DFT。直接计算3780点DFT的运算量很大,乘法和加法次数都与3780的平方成正比。
素因子算法(Prime Factor Algorithm,PFA)是一种嵌套多维的非2幂次快速傅里叶变换(Fast Fourier Transform,FFT),能有效降低计算复杂度。对于N点DFT,假设N可分解为M个两两互素因子的乘积,即N=N1N2…NM。N点PFA的基本原理是,把一维大点数DFT映射成M维小点数DFT,第i(i=1,2,…,M)维DFT进行N/Ni次Ni点小点数FFT。小点数FFT可借助于Cooley-Tukey算法、Winograd傅里叶变换算法(Winograd Fourier Transform Algorithm,WFTA)以及其它高效算法。
在某些情况下,PFA需要重新排序。根据在计算过程中所处的位置,重新排序具体分为预扰乱和后扰乱。不考虑Ni(i=1,2,...,M)点FFT的内部机制,如果第i维DFT无需重新排序,那么它是同址的;否则,它是变址的,重新排序是在Ni点序列内进行的,预扰乱和后扰乱分别在Ni点FFT之前和之后执行。类似地,不考虑每维DFT的内部机制,如果N点PFA整体上无需重新排序,那么它是同序的;否则,它是变序的,重新排序是在N点序列内进行的,预扰乱和后扰乱分别在第一维DFT开始前和最后一维DFT结束后执行。这样,PFA可分为4种:变址变序、变址同序、同址同序和同址变序。
目前,关于3780点DFT的实现方案主要分为两大类:第一类是顶层采用Cooley-Tukey算法,底层采用PFA和WFTA,这类方法的主要缺点是需要较大的旋转因子表;第二类是顶层采用PFA,底层采用WFTA和Cooley-Tukey算法。目前,这两类实现方案涉及的PFA要么是变址同序的,要么是同址变序的,不可避免地引入了重新排序操作。众所周知,重新排序意味着必须增加一级缓冲区,需要消耗较多的存储器资源,会提高硬件成本。此外,重新排序还会降低运算速度,增加控制的复杂度。
发明内容
关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
本发明的主要目的在于,提供一种基于同址同序PFA的3780点DFT处理器。同址同序PFA无需重新排序,从而能简化控制逻辑,提高运算速度,减少存储器资源,降低硬件成本。
基于上述目的,本发明采用嵌套多维的同址同序PFA实现3780点DFT。具体而言,是二重嵌套,第一重是四维,第二重是二维。3780被分解为3780=4*5*7*27,这4个因子互素。这样一来,一维3780点DFT就被转化成四维小点数DFT。其中,第一、二、三维DFT分别采用常规的4点、5点、7点WFTA,第四维DFT采用修改的二维27点Cooley-Tukey算法。27被分解为27=3*9。为满足同址同序PFA的需要,必须修改常规二维27点Cooley-Tukey算法的旋转因子表及其涉及的3点WFTA和9点WFTA。旋转因子表和两种WFTA的修改方法都非常简单,都是修改常规的角度参数。修改旋转因子表是将基本旋转因子的角度参数θ从常规的2π/27修改为10π/27。修改3点WFTA是将角度参数θ从常规的2π/3修改为4π/3。修改9点WFTA是将角度参数从常规的2π/9修改为10π/9。
本发明使用3780个复数的共享存储器Cachel来存储3780点复数序列,从外部将数据输入到Cachel的顺序与从Cachel将数据输出到外部的顺序相同,并且是按照自然顺序的,也就是说,从外部读写Cachel是同序的。当进行3780点DFT时,先进行945次常规的4点同址Winograd傅里叶变换,然后进行756次常规的5点同址Winograd傅里叶变换,再进行540次常规的7点同址Winograd傅里叶变换,最后进行140次修改的27点同址二维Cooley-Tukey傅里叶变换。每次执行修改的27点二维Cooley-Tukey傅里叶变换时,先进行9次修改的3点同址Winograd傅里叶变换,然后将所得数据与修改的27点旋转因子表相乘,再进行3次修改的9点同址Winograd傅里叶变换。可见,整个3780点DFT的过程是同址同序的。
关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
附图说明
图1是常规的N4=27点二维Cooley-Tukey算法的旋转因子表;
图2是修改的N4=27点二维Cooley-Tukey算法的旋转因子表;
图3给出了常规的N1=4点WFTA模块的矩阵构成和功能框图;
图4给出了常规的N2=5点WFTA模块的矩阵构成和功能框图;
图5给出了常规的N3=7点WFTA模块的矩阵构成和功能框图;
图6给出了常规的N5=3点WFTA模块的矩阵构成和功能框图;
图7给出了常规的N6=9点WFTA模块的矩阵构成和功能框图;
图8给出了修改的N5=3点WFTA模块的矩阵构成和功能框图;
图9给出了修改的N6=9点WFTA模块的矩阵构成和功能框图;
图10描述了修改的N4=27点二维Cooley-Tukey算法的流程;
图11是基于同址同序PFA的N=3780点DFT的完整结构示意图;
图12给出了采用共享存储器机制实现基于同址同序PFA的N=3780点DFT的功能框图。
图13给出了采用共享存储器机制实现基于同址变序PFA的N=3780点DFT处理器的功能框图(预扰乱)
图14给出了采用共享存储器机制实现基于同址变序PFA的N=3780点DFT处理器的功能框图(后扰乱)
图15给出了采用共享存储器机制实现基于变址同序PFA的N=3780点DFT处理器的功能框图(预扰乱)
图16给出了采用共享存储器机制实现基于变址同序PFA的N=3780点DFT处理器的功能框图(后扰乱)
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
N点序列x(n)的离散傅里叶变换(Discrete Fourier Transform,DFT)为
X ( k ) = Σ n = 0 N - 1 x ( n ) W N nk - - - ( 1 )
其中,n,k=0,1,…,N-1,WN=e-j2π/N。直接计算N点DFT的乘法和加法运算量都与N的平方成正比。当N较大时,运算量很大。
为了降低计算复杂度,当N不是2的幂次时,可采用嵌套多维的素因子算法(PrimeFactor Algorithm,PFA)实现N点DFT。假设N可分解为M个两两互素因子的乘积,即N=N1N2…NM。也就是说,任意两个因子Ni和Nj(i,j=1,2,…,M,且i≠j)的最大公约数是1。注意,Ni未必是素数。N点PFA的基本原理是,把一维大点数DFT映射成M维小点数DFT,第i维DFT进行N/Ni次Ni点小点数快速傅里叶变换(Fast FourierTransform,FFT)。小点数FFT可借助于Cooley-Tukey算法、Winograd傅里叶变换算法(Winograd Fourier Transform Algorithm,WFTA)以及其它高效算法。
为了使PFA总体上是同序的,在一维DFT映射成M维DFT时,根据中国余数定理,输入索引n和输出索引k采用如下相同的映射方式:
n = < &Sigma; i = 1 M ( N / N i ) n i > N - - - ( 2 )
k = < &Sigma; i = 1 M ( N / N i ) k i > N - - - ( 3 )
其中,符号<>N表示模N运算,ni,ki=0,1,…,Ni-1。将式(2)和(3)代入式(1),整理可得:
X ^ ( k 1 , k 2 , &CenterDot; &CenterDot; &CenterDot; , k M ) = &Sigma; n M = 0 N M - 1 &CenterDot; &CenterDot; &CenterDot; &Sigma; n 2 = 0 N 2 - 1 &Sigma; n 1 = 0 N 1 - 1 x ^ ( n 1 , n 2 , &CenterDot; &CenterDot; &CenterDot; , n M ) W N 1 ( N / N 1 ) n 1 k 1 W N 2 ( N / N 2 ) n 2 k 2 &CenterDot; &CenterDot; &CenterDot; W N M ( N / N M ) n M k M - - - ( 4 )
其中,
X ^ ( k 1 , k 2 , &CenterDot; &CenterDot; &CenterDot; , k M ) = X ( < &Sigma; i = 1 M ( N / N i ) k i > N ) = X ( k )
x ^ ( n 1 , n 2 , &CenterDot; &CenterDot; &CenterDot; , n M ) = x ( < &Sigma; i = 1 M ( N / N i ) n i > N ) = x ( n )
对比式(2)和(3)容易发现,索引n和k的映射方式本质上完全相同。因此,只要式(4)中每维DFT的索引ni和ki都是自然顺序的,N点PFA就是同序的。
在式(4)中,第i(i=1,2,…,M)维DFT的傅里叶变换因子可写作
W N i ( N / N i ) n i k i = W N i n i < < N / N i > N i k i > N i = W N i n i k i &prime; - - - ( 5 )
W N i ( N / N i ) n i k i = W N i < < N / N i > N i n i > N i k i = W N i n i &prime; k i - - - ( 6 )
式中,
k i &prime; = < < N / N i > N i k i > N i - - - ( 7 )
n i &prime; = < < N / N i > N i n i > N i - - - ( 8 )
Figure BSA000005885172000410
时,k′i≠ki,n′i≠ni。众所周知,常规的Ni点FFT算法的输入和输出都是按照自然顺序的。如果式(4)中的第i维DFT采用常规的Ni点FFT算法,那么式(5)是按照ni的自然顺序输入、k′i的自然顺序输出,式(6)则是按照n′i的自然顺序输入、ki的自然顺序输出。然而,由式(2)和(3)可知,同序PFA要求式(4)中的第i维DFT按照ni的自然顺序输入、ki的自然顺序输出。可见,当
Figure BSA00000588517200051
时,如果式(4)中的第i维DFT采用常规的Ni点FFT算法,那么必须重新排序。具体而言,式(5)和(6)分别根据式(7)和(8)中的规则进行后扰乱和预扰乱。可见,当时,式(4)中的第i维DFT是变址的。变址通过重新排序实现。为了去掉重新排序这一额外操作、实现同址同序PFA,我们必须修改常规的Ni点FFT算法,将重新排序操作吸纳其中。注意,当
Figure BSA00000588517200053
时,式(4)中的第i维DFT是同址的,无需修改常规的Ni点FFT算法。
对于3780点DFT,N=3780。3780可被分解为M=4个两两互素因子的乘积,即3780=4*5*7*27。令N1=4,N2=5,N3=7,N4=27,则有N=N1*N2*N3*N4。将上述参数代入式(4),则有
X ^ ( k 1 , k 2 , k 3 , k 4 ) = &Sigma; n 4 = 0 26 &Sigma; n 3 = 0 6 &Sigma; n 2 = 0 4 &Sigma; n 1 = 0 3 x ^ ( n 1 , n 2 , n 3 , n 4 ) W 4 n 1 k 1 W 5 n 2 k 2 W 7 n 3 k 3 W 27 5 n 4 k 4 - - - ( 9 )
在上式中,第一、二、三维DFT的点数较小,因此它们可分别采用N1=4点WFTA、N2=5点WFTA、N3=7点WFTA。第四维DFT的点数是较大的复合数N4=27,27可被分解为2个因子的乘积,即27=3*9。令N5=3,N6=9,则有N4=N5*N6。因为N5与N6不互素,所以27点DFT可用二维Cooley-Tukey算法实现。
在式(9)中, < N / N 1 > N 1 = < 3780 / 4 > 4 = 1 , < N / N 2 > N 2 = < 3780 / 5 > 5 = 1 , < N / N 3 > N 3 = < 3780 / 7 > 7 = 1 , < N / N 4 > N 4 = < 3780 / 27 > 27 = 5 . 显然,如果第一、二、三维DFT分别采用常规的4点WFTA、5点WFTA、7点WFTA,那么这三维DFT都是同址的。如果第四维DFT采用常规的27点二维Cooley-Tukey算法,那么第四维DFT是变址的。这是因为
Figure BSA00000588517200057
导致第四维DFT的指数是5n4k4而不是常规的n4k4。变址通过重新排序实现。为了去掉重新排序这一额外操作、实现同址同序PFA,我们必须修改常规的27点二维Cooley-Tukey算法,将重新排序操作吸纳其中。
对于常规的N4=27点二维Cooley-Tukey算法,N4=N5*N6=3*9。索引n4和k4分别采用如下不同的映射方式:
n4=n5+N5n6    (10)
k4=N6k5+k6    (11)
其中,n5,k5=0,1,…,N5-1,n6,k6=0,1,…,N6-1。基于上述索引映射方式,常规的N4=27点二维Cooley-Tukey算法为
X ^ ( k 5 , k 6 ) = &Sigma; n 6 = 0 8 [ [ &Sigma; n 5 = 0 2 x ^ ( n 5 , n 6 ) W 3 n 5 k 5 ] W 27 n 6 k 5 ] W 9 n 6 k 6 - - - ( 12 )
其中, X ^ ( k 5 , k 6 ) = X ( N 6 k 5 + k 6 ) , x ^ ( n 5 , n 6 ) = x ( n 5 + N 5 n 6 ) , W27=ej2π/27是基本旋转因子,其角度参数是θ=2π/27,是旋转因子。通过穷举k5和n6可得到
Figure BSA000005885172000511
的所有值,即常规的N4=27点二维Cooley-Tukey算法的旋转因子表,如图1所示。
在式(9)中,第四维DFT的指数是5n4k4而不是常规的n4k4。因此,我们必须将式(12)中的所有指数都乘以5。化简后,修改的N4=27点二维Cooley-Tukey算法为
X ^ ( k 5 , k 6 ) = &Sigma; n 6 = 0 8 [ [ &Sigma; n 5 = 0 2 x ^ ( n 5 , n 6 ) W 3 5 n 5 k 5 ] W 27 5 n 6 k 5 ] W 9 5 n 6 k 6
(13)
= &Sigma; n 6 = 0 8 [ [ &Sigma; n 5 = 0 2 x ^ ( n 5 , n 6 ) W 3 2 n 5 k 5 ] W 27 5 n 6 k 5 ] W 9 5 n 6 k 6
对比式(12)和(13)容易发现,基本旋转因子的角度参数扩大为常规的5倍,从常规的θ=2π/27变为θ=10π/27,旋转因子从常规的
Figure BSA00000588517200063
变为
Figure BSA00000588517200064
图2是修改的N4=27点二维Cooley-Tukey算法的旋转因子表。
在式(13)中,修改的N4=27点二维Cooley-Tukey算法的第一、二维DFT的点数较小,因此它们可分别采用N5=3点WFTA和N6=9点WFTA。因为第一维DFT的指数是2n5k5而不是常规的n5k5,所以如果第一维DFT采用常规的N5=3点WFTA,那么第一维DFT是变址的。因为第二维DFT的指数是5n6k6而不是常规的n6k6,所以如果第二维DFT采用常规的N6=9点WFTA,那么第二维DFT是变址的。为了去掉变址引入的重新排序、实现同址同序PFA,我们必须修改常规的N5=3点WFTA和N6=9点WFTA,将重新排序操作吸纳其中。
Ni(i=1,2,3,5,6)点WFTA可用向量与矩阵的连乘表示,即
V=ODIv            (14)
其中,v和V分别是由Ni点输入和输出序列构成的向量,I和O分别是输入和输出矩阵,D是对角矩阵。通常,矩阵I和O中的元素都只可能是0、±1和±j,与向量相乘时不涉及实质性乘法。对于对角矩阵D,除对角上的元素非零外,其它位置上的元素均为0,且对角上的元素取决于角度参数θ=2π/Ni
图3给出了常规的N1=4点WFTA的矩阵构成和功能框图。4点输入序列构成向量v4,它先与矩阵I4相乘,运算所得向量再与对角矩阵D4相乘,运算所得向量最后与矩阵O4相乘,运算所得向量V4即为4点输出序列。
图4给出了常规的N2=5点WFTA的矩阵构成和功能框图。注意,对角矩阵D5中的角度参数是θ=2π/5。5点输入序列构成向量v5,它先与矩阵I5相乘,运算所得向量再与对角矩阵D5相乘,运算所得向量最后与矩阵O5相乘,运算所得向量V5即为5点输出序列。
图5给出了常规的N3=7点WFTA的矩阵构成和功能框图。注意,对角矩阵D7中的角度参数是θ=2π/7。7点输入序列构成向量v7,它先与矩阵I7相乘,运算所得向量再与对角矩阵D7相乘,运算所得向量最后与矩阵O7相乘,运算所得向量V7即为7点输出序列。
图6给出了常规的N5=3点WFTA的矩阵构成和功能框图。注意,对角矩阵D3中的角度参数是θ=2π/3。3点输入序列构成向量v3,它先与矩阵I3相乘,运算所得向量再与对角矩阵D3相乘,运算所得向量最后与矩阵O3相乘,运算所得向量V′3即为3点输出序列。
图7给出了常规的N6=9点WFTA的矩阵构成和功能框图。注意,对角矩阵D9中的角度参数是θ=2π/9。9点输入序列构成向量v9,它先与矩阵I9相乘,运算所得向量再与对角矩阵D9相乘,运算所得向量最后与矩阵O9相乘,运算所得向量V′9即为9点输出序列。
如前所述,为了使N=3780点DFT能实现同址同序PFA,必须修改常规的N5=3点WFTA和N6=9点WFTA。下面详细介绍常规的N5=3点WFTA和N6=9点WFTA的修改方法。
对于修改的N5=3点WFTA,矩阵I3和O3中的元素保持不变,只需将对角矩阵D3中的角度参数θ扩大为常规的2倍,从常规的θ=2π/3变为θ=4π/3。图8给出了修改的N5=3点WFTA的矩阵构成和功能框图。注意,对角矩阵D3中的角度参数是θ=4π/3。3点输入序列构成向量v3,它先与矩阵I3相乘,运算所得向量再与对角矩阵D3相乘,运算所得向量最后与矩阵O3相乘,运算所得向量V3即为3点输出序列。修改的N5=3点WFTA将对角矩阵D3中的角度参数从常规的θ=2π/3修改为θ=4π/3,从而把修改的N4=27点二维Cooley-Tukey算法的第一维DFT涉及的重新排序操作吸纳进来,达到了同址运算的目的。
对于修改的N6=9点WFTA,矩阵I9和O9中的元素保持不变,只需将对角矩阵D9中的角度参数θ扩大为常规的5倍,从常规的θ=2π/9变为θ=10π/9。图9给出了修改的N6=9点WFTA的矩阵构成和功能框图。注意,对角矩阵D9中的角度参数是θ=10π/9。9点输入序列构成向量v9,它先与矩阵I9相乘,运算所得向量再与对角矩阵D9相乘,运算所得向量最后与矩阵O9相乘,运算所得向量V9即为9点输出序列。修改的N6=9点WFTA将对角矩阵D9中的角度参数从常规的θ=2π/9修改为θ=10π/9,从而把修改的N4=27点二维Cooley-Tukey算法的第二维DFT涉及的重新排序操作吸纳进来,达到了同址运算的目的。
利用上述修改的N5=3点WFTA和N6=9点WFTA,我们能给出修改的N4=27点二维Cooley-Tukey算法的流程,如图10所示。其具体步骤是:
第一步,按照从左到右、从上到下的顺序将27点输入序列写入3行9列的二维数组中,二维数组中的数字0~26表示写入的先后顺序;
第二步,按照从左至右的顺序对二维数组逐列执行修改的3点WFTA,共9次;
第三步,将二维数组中的元素乘以修改的27点旋转因子表的对应元素,二维数组中的数值表示修改的旋转因子表的内容;
第四步,按照从上到下的顺序对二维数组逐行执行修改的9点WFTA,共3次;
第五步,按照从上到下、从左至右的顺序从二维数组中读出运算结果,二维数组中的数字0~26表示读出的先后顺序。
至此,我们能给出基于同址同序PFA的N=3780点DFT的完整结构示意图,如图11所示。显然,它是一种二重嵌套多维结构,第一重是四维,第二重是二维。处理步骤是:首先进行945次常规的4点同址WFTA,然后进行756次常规的5点同址WFTA,再进行540次常规的7点同址WFTA,最后进行140次修改的27点同址二维Cooley-Tukey算法。每次执行修改的27点同址二维Cooley-Tukey算法时,先进行9次修改的3点同址WFTA,然后将所得数据与修改的27点旋转因子表相乘,再进行3次修改的9点同址WFTA。
图12是一种采用共享存储器机制实现基于同址同序PFA的N=3780点DFT的功能框图。
所述系统的3780点离散傅里叶变换处理器主要包括:3780个复数的共享存储器Cachel,用于存储3780点复数序列,从外部将数据输入到Cachel的顺序与从Cachel将数据输出到外部的顺序相同,并且是按照自然顺序的,也就是说,从外部读写Cachel是同序的;常规的4点WFTA模块,用于执行945次4点Winograd傅里叶变换,它从Cachel读取数据的地址顺序与它向Cachel写入结果的地址顺序相同,也就是说,常规的4点WFTA模块读写Cachel是同址的;常规的5点WFTA模块,用于执行756次5点Winograd傅里叶变换,它从Cachel读取数据的地址顺序与它向Cachel写入结果的地址顺序相同,也就是说,常规的5点WFTA模块读写Cachel是同址的;常规的7点WFTA模块,用于执行540次7点Winograd傅里叶变换,它从Cachel读取数据的地址顺序与它向Cachel写入结果的地址顺序相同,也就是说,常规的7点WFTA模块读写Cachel是同址的;修改的27点二维Cooley-Tukey模块,用于执行140次27点二维Cooley-Tukey傅里叶变换,它从Cachel读取数据的地址顺序与它向Cachel写入结果的地址顺序相同,也就是说,修改的27点二维Cooley-Tukey模块读写Cachel是同址的。
具体步骤为:
第一步,按照自然顺序将3780点复数序列x(n)写入共享存储器Cachel中;
第二步,调用常规的4点同址WFTA模块,对共享存储器Cachel的内容进行945次4点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第三步,调用常规的5点同址WFTA模块,对共享存储器Cachel的内容进行756次5点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第四步,调用常规的7点同址WFTA模块,对共享存储器Cachel的内容进行540次7点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第五步,调用修改的27点同址二维Cooley-Tukey模块,对共享存储器Cachel的内容进行140次27点二维Cooley-Tukey傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第六步,按照自然顺序将3780点复数序列X(k)从共享存储器Cachel中读出。同序运算决定了第一步和第六步中Cachel与外部数据交换的顺序相同。
必须指出的是,由于采用了同序运算,这就允许在输出3780点复数序列X(k)的同时写入3780点复数序列x(n),从而提高数字信号的处理速度。
在图12中,修改的27点同址二维Cooley-Tukey模块执行以下步骤:
第一步,从共享存储器Cachel中读出27点复数序列,按照自然顺序写入共享存储器Cache2中,并把共享存储器Cache2视作一个3行9列的二维复数数组;
第二步,调用修改的3点同址WFTA模块,按照从左至右的顺序对二维复数数组Cache2逐列执行9次3点Winograd傅里叶变换,同址运算决定了从二维复数数组Cache2读出和写入的顺序相同;
第三步,将二维复数数组Cache2中的元素乘以修改的27点旋转因子表的对应元素;
第四步,调用修改的9点同址WFTA模块,按照从上到下的顺序对二维复数数组Cache2逐行执行3次9点Winograd傅里叶变换,同址运算决定了从二维复数数组Cache2读出和写入的顺序相同;
第五步,按照从上到下、从左至右的顺序从二维复数数组Cache2中读出运算结果,并写入到共享存储器Cachel中。注意,同址运算决定了从共享存储器Cachel读出和写入的顺序相同。
如果采用同址变序PFA实现3780点DFT,那么需要在3780点序列内进行1次重新排序。对于此方案,重新排序要么是在4点Winograd傅里叶变换之前进行预扰乱,如图13所示,要么是在27点二维Cooley-Tukey傅里叶变换之后进行后扰乱,如图14所示。无论是预扰乱还是后扰乱,重新排序都要求增加3780个复数的存储器。如果复数的实部和虚部都是16比特的精度,那么此方案必须增加120,960比特的大存储器,这样会提高硬件成本。此外,重新排序还会降低运算速度,增加控制的复杂度。
如果采用变址同序PFA实现3780点DFT,那么需要在27点序列内进行重新排序,共需140次。对于此方案,重新排序要么是在27点二维Cooley-Tukey傅里叶变换之前进行预扰乱,如图15所示,要么是其后进行后扰乱,如图16所示。无论是预扰乱还是后扰乱,重新排序都要求增加27个复数的存储器。如果复数的实部和虚部都是16比特的精度,那么此方案必须增加864比特的存储器。虽然存储器增加不多,但重新排序会降低运算速度,增加控制的复杂度。
与同址变序PFA和变址同序PFA相比,本发明无需重新排序,从而能简化控制逻辑,提高运算速度,减少存储器资源,降低硬件成本。
以上通过具体实施方式和实施例对本发明进行了详细的说明,对于本领域的技术人员来说,在不脱离本发明原理的情况下,还可做出若干变形和改进,这些也应视为本发明的保护范围。

Claims (10)

1.一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置,其特征在于,所述处理装置包括:
3780个复数的共享存储器Cachel,用于存储3780点复数序列,从外部读写Cachel的顺序相同,都是按照自然顺序的;
常规的4点WFTA模块,用于执行945次4点Winograd傅里叶变换,它读写Cachel的地址顺序相同;
常规的5点WFTA模块,用于执行756次5点Winograd傅里叶变换,它读写Cachel的地址顺序相同;
常规的7点WFTA模块,用于执行540次7点Winograd傅里叶变换,它读写Cachel的地址顺序相同;
修改的27点二维Cooley-Tukey模块,用于执行140次27点二维Cooley-Tukey傅里叶变换,它读写Cachel的地址顺序相同。
2.如权利要求1所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的27点二维Cooley-Tukey模块包括:
27个复数的共享存储器Cache2,用于暂存需要进行27点二维Cooley-Tukey算法的复数序列;
修改的3点WFTA模块,每次执行27点二维Cooley-Tukey傅里叶变换时用于执行9次3点Winograd傅里叶变换,它读写Cache2的地址顺序相同;
修改的27点旋转因子表,用于与经9次3点Winograd傅里叶变换后的27个数据分别相乘;
以及修改的9点WFTA模块,每次执行27点二维Cooley-Tukey傅里叶变换时用于执行3次9点Winograd傅里叶变换,它读写Cache2的地址顺序相同。
3.如权利要求1、2所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的27点二维Cooley-Tukey模块所使用的修改的27点旋转因子表,是将基本旋转因子的角度参数扩大为常规的5倍,从常规的θ=2π/27变为θ=10π/27,旋转因子从常规的
Figure FSA00000588517100011
变为
Figure FSA00000588517100012
4.如权利要求2所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的3点WFTA模块,输入、输出矩阵中的元素保持不变,将对角矩阵中的角度参数θ扩大为常规的2倍,从常规的θ=2π/3变为θ=4π/3,达到同址运算的目的。
5.如权利要求2所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的9点WFTA模块,输入、输出矩阵中的元素保持不变,将对角矩阵中的角度参数θ扩大为常规的5倍,从常规的θ=2π/9变为θ=10π/9,达到同址运算的目的。
6.一种基于同址同序素因子算法的3780点离散傅里叶变换处理方法,其特征在于,所述处理方法包括以下步骤:
第一步,按照自然顺序将需要进行变换的3780点复数序列从外部写入共享存储器Cachel中;
第二步,调用常规的4点WFTA模块,对共享存储器Cachel的内容进行945次4点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第三步,调用常规的5点WFTA模块,对共享存储器Cachel的内容进行756次5点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第四步,调用常规的7点WFTA模块,对共享存储器Cachel的内容进行540次7点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第五步,调用修改的27点二维Cooley-Tukey模块,对共享存储器Cachel的内容进行140次27点二维Cooley-Tukey傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同;
第六步,按照自然顺序将3780点复数输出序列从共享存储器Cachel中读出送到外部。同序运算决定了第一步和第六步中Cachel与外部数据交换的顺序相同。
7.如权利要求6所述的3780点离散傅里叶变换处理方法,其特征在于,所述修改的27点二维Cooley-Tukey傅里叶变换包括以下步骤:
第一步,从共享存储器Cachel中读出27点复数序列,按照自然顺序写入共享存储器Cache2中,并把共享存储器Cache2视作一个3行9列的二维复数数组;
第二步,调用修改的3点WFTA模块,按照从左至右的顺序对二维复数数组Cache2逐列执行9次3点Winograd傅里叶变换,同址运算决定了从共享存储器Cache2读出和写入的顺序相同;
第三步,将二维复数数组Cache2中的元素乘以修改的27点旋转因子表的对应元素;
第四步,调用修改的9点WFTA模块,按照从上到下的顺序对二维复数数组Cache2逐行执行3次9点Winograd傅里叶变换,同址运算决定了从共享存储器Cache2读出和写入的顺序相同;
第五步,按照从上到下、从左至右的顺序从二维复数数组Cache2中读出运算结果,并写入到共享存储器Cachel中。同址运算决定了第一步和第五步中修改的27点二维Cooley-Tukey傅里叶变换模块与Cachel数据交换的顺序相同。
8.如权利要求6、7所述的3780点离散傅里叶变换处理方法,其特征在于,所述修改的27点二维Cooley-Tukey模块所使用的修改的27点旋转因子表,是将基本旋转因子的角度参数扩大为常规的5倍,从常规的θ=2π/27变为θ=10π/27,旋转因子从常规的
Figure FSA00000588517100031
变为
Figure FSA00000588517100032
9.如权利要求7所述的3780点离散傅里叶变换处理方法,其特征在于,所述修改的3点WFTA模块,输入、输出矩阵中的元素保持不变,将对角矩阵中的角度参数θ扩大为常规的2倍,从常规的θ=2π/3变为θ=4π/3,达到同址运算的目的。
10.如权利要求7所述的3780点离散傅里叶变换处理方法,其特征在于,所述修改的9点WFTA模块,输入、输出矩阵中的元素保持不变,将对角矩阵中的角度参数θ扩大为常规的5倍,从常规的θ=2π/9变为θ=10π/9,达到同址运算的目的。
CN2011103055290A 2011-11-30 2011-11-30 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 Pending CN102419741A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103055290A CN102419741A (zh) 2011-11-30 2011-11-30 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103055290A CN102419741A (zh) 2011-11-30 2011-11-30 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法

Publications (1)

Publication Number Publication Date
CN102419741A true CN102419741A (zh) 2012-04-18

Family

ID=45944158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103055290A Pending CN102419741A (zh) 2011-11-30 2011-11-30 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法

Country Status (1)

Country Link
CN (1) CN102419741A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880592A (zh) * 2012-10-09 2013-01-16 苏州威士达信息科技有限公司 一种顺序输出的高精度3780点fft处理装置和方法
CN102929840A (zh) * 2012-11-06 2013-02-13 苏州威士达信息科技有限公司 一种无需重新排序的8点wfta处理器和方法
CN102929839A (zh) * 2012-11-05 2013-02-13 苏州威士达信息科技有限公司 一种无需重新排序的5点wfta处理器和方法
CN102929838A (zh) * 2012-11-05 2013-02-13 苏州威士达信息科技有限公司 一种无需重新排序的4点wfta处理器和方法
CN102968402A (zh) * 2012-11-05 2013-03-13 苏州威士达信息科技有限公司 一种无需重新排序的3点wfta处理器和方法
CN102982006A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的16点wfta处理器和方法
CN102982003A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的7点wfta处理器和方法
CN102982005A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的11点wfta处理器和方法
CN102982004A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的9点wfta处理器和方法
CN106339353A (zh) * 2015-07-13 2017-01-18 无锡华润矽科微电子有限公司 一种支持4375点和3780点fft/ifft的方法及其处理器
CN111385232A (zh) * 2019-12-18 2020-07-07 中国传媒大学 简化非2幂次离散傅里叶变换的升采样方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1750206A1 (en) * 2005-08-04 2007-02-07 THOMSON Licensing 3780-point Discrete Fourier Transformation processor
CN101630308A (zh) * 2008-07-16 2010-01-20 财团法人交大思源基金会 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法
CN102214159A (zh) * 2010-11-11 2011-10-12 福州大学 一种实现3780点fft/ifft的方法及其处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1750206A1 (en) * 2005-08-04 2007-02-07 THOMSON Licensing 3780-point Discrete Fourier Transformation processor
CN101630308A (zh) * 2008-07-16 2010-01-20 财团法人交大思源基金会 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法
CN102214159A (zh) * 2010-11-11 2011-10-12 福州大学 一种实现3780点fft/ifft的方法及其处理器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐晓青等: "3780点FFT处理器的算法研究", 《中国传媒大学学报自然科学版》, vol. 17, no. 4, 31 December 2010 (2010-12-31), pages 21 - 24 *
杨旭霞等: "3780点FFT处理器的研究", 《电视技术》, no. 11, 30 November 2005 (2005-11-30), pages 32 - 34 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880592A (zh) * 2012-10-09 2013-01-16 苏州威士达信息科技有限公司 一种顺序输出的高精度3780点fft处理装置和方法
CN102929839A (zh) * 2012-11-05 2013-02-13 苏州威士达信息科技有限公司 一种无需重新排序的5点wfta处理器和方法
CN102929838A (zh) * 2012-11-05 2013-02-13 苏州威士达信息科技有限公司 一种无需重新排序的4点wfta处理器和方法
CN102968402A (zh) * 2012-11-05 2013-03-13 苏州威士达信息科技有限公司 一种无需重新排序的3点wfta处理器和方法
CN102982006A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的16点wfta处理器和方法
CN102982003A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的7点wfta处理器和方法
CN102982005A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的11点wfta处理器和方法
CN102982004A (zh) * 2012-11-05 2013-03-20 苏州威士达信息科技有限公司 一种无需重新排序的9点wfta处理器和方法
CN102929840A (zh) * 2012-11-06 2013-02-13 苏州威士达信息科技有限公司 一种无需重新排序的8点wfta处理器和方法
CN106339353A (zh) * 2015-07-13 2017-01-18 无锡华润矽科微电子有限公司 一种支持4375点和3780点fft/ifft的方法及其处理器
CN106339353B (zh) * 2015-07-13 2019-04-09 无锡华润矽科微电子有限公司 一种支持4375点和3780点fft/ifft的处理器
CN111385232A (zh) * 2019-12-18 2020-07-07 中国传媒大学 简化非2幂次离散傅里叶变换的升采样方法

Similar Documents

Publication Publication Date Title
CN102419741A (zh) 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法
CN102609396A (zh) 一种drm系统中离散傅里叶变换处理装置和方法
CN1909529B (zh) 3780点离散傅立叶变换处理器
Jiang An area-efficient FFT architecture for OFDM digital video broadcasting
CN103970718A (zh) 一种快速傅里叶变换实现装置及方法
US8917588B2 (en) Fast Fourier transform and inverse fast Fourier transform (FFT/IFFT) operating core
US20120166508A1 (en) Fast fourier transformer
CN104699624A (zh) 面向fft并行计算的无冲突存储访问方法
CN102025676A (zh) 一种1536点的fft/ifft实现方法及装置
CN103544111A (zh) 一种基于实时性处理的混合基fft方法
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
Park et al. Design of 2K/4K/8K-point FFT processor based on CORDIC algorithm in OFDM receiver
US20140365547A1 (en) Mixed-radix pipelined fft processor and fft processing method using the same
CN101763337A (zh) N点fft/ifft/ifft/ifft方法和装置
CN101937332A (zh) 基于基24算法的多路fft处理器中乘法器的复用方法
Siu et al. Operating frequency improvement on FPGA implementation of a pipeline large-FFT processor
CN101764778B (zh) 一种基带处理器和基带处理方法
Wang et al. An implementation of pipelined radix-4 FFT architecture on FPGAs
Wenqi et al. Design of fixed-point high-performance FFT processor
CN102880592A (zh) 一种顺序输出的高精度3780点fft处理装置和方法
CN102955760A (zh) 基于dif的基-2并行fft处理器及其处理方法
Moon et al. Area-efficient memory-based architecture for FFT processing
CN107168928A (zh) 无需重新排序的八点Winograd傅里叶变换器
Xiu-fang et al. Design and Implement of FFT Processor for OFDMA system using FPGA
US11531497B2 (en) Data scheduling register tree for radix-2 FFT architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120418