CN101763337A - N点fft/ifft/ifft/ifft方法和装置 - Google Patents
N点fft/ifft/ifft/ifft方法和装置 Download PDFInfo
- Publication number
- CN101763337A CN101763337A CN200810044188A CN200810044188A CN101763337A CN 101763337 A CN101763337 A CN 101763337A CN 200810044188 A CN200810044188 A CN 200810044188A CN 200810044188 A CN200810044188 A CN 200810044188A CN 101763337 A CN101763337 A CN 101763337A
- Authority
- CN
- China
- Prior art keywords
- idft
- point
- dft
- ifft
- fft
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了N点FFT/IFFT的装置,包括串连的ri1点FFT/IFFT单元和ri2点FFT/IFFT单元组成的mi点FFT/IFFT单元;与复数乘法器相连接产生和存储旋转因子相位旋转因子单元;用于对mi点FFT/IFFT运算单元的输出使用旋转因子进行加权的复数乘法器。本发明还公开了一种N点FFT/IFFT的方法,1,把N点FFT/IFFT分解为m1、m2、……、mK点FFT/IFFT,mi=ri1×ri2,为每一级FFT/IFFT的基数;2,将ri1点DFT/IDFT与ri2点DFT/IDFT级联起来,实现mi点DFT/IDFT;3,将mi点DFT/IDFT级联起来,得到N点DFT/IDFT。本发明在N个采样周期可实现两次以上的运算,提高信号分析和处理的速度,并且采用储存器复用,提高单位存储器的利用率。
Description
技术领域
本发明涉及信号处理领域,特别是快速傅立叶变换(Fast FourierTransform,以下简称FFT)/快速傅立叶逆变换(Inverse Fast FourierTransform,以下简称IFFT)实现的方法,以及实现该方法的装置。
背景技术
在现代工程技术,尤其是在通信***中,信号的处理和分析起至关重要的作用,傅立叶变换可用于将时域信号影射到频域,而逆傅立叶变换可用于将频域信号影射到时域,因此傅立叶变换、逆傅立叶变换对信号分析尤为有用。在通信***,如正交频分复用(Orthogonal Frequency DivisionMultiplexing,简称OFDM)***中,可利用傅立叶变换的性质,将基带信号进行逆傅立叶变换以获得时域上多路正交的子载波。
目前,傅立叶变换的实现方法中,使用资源量最小的方法主要是基于2n点的FFT/IFFT,n为自然数。这种基于2n点的FFT/IFFT,在不考虑输出的情况下,需要N字节的存储器(N=2n)。然而这些方法不能用于实现非2n点的FFT/IFFT。傅立叶变换的实现方法中,可实现任意N点FFT/IFFT的方法大致可分为两种。第一种:用3个N字节的存储器轮换着存储输入数据以及存储运算的中间结果,这样的N点FFT/IFFT方法需要3N字节的存储器开销。第二种:通过混合基算法将N点FFT/IFFT逐级分解,以小点的FFT/IFFT实现大点数的FFT/IFFT,中间以旋转因子加权的形式对每一级的计算结果进行加权,N点的输入数据完成所有小点数的FFT/IFFT之后的结果,即N点FFT/IFFT的结果。该方法使用旋转因子加权,由此需要多个复数乘法器;此外,该方法的运算需要N个采样周期,因此当N个采样周期时间内需要完成多个N点FFT/IFFT时,需要多个这样的N点FFT/IFFT,从而提高了***需要的资源量。
在中国数字电视地面广播标准GB 20600-2006《数字电视地面广播传输***帧结构、信道编码和调制》中,采取时域同步正交频分复用(TimeDomain Synchronous Orthogonal Frequency-Division-Multiplex,以下简称TDS-OFDM)的方式对3780个多载波传输信号进行调制和解调。因此在国家标准数字电视地面广播***中,多载波传输中必然需要进行3780点快速傅立叶变换(FFT/IFFT)运算。采用现有的方法在对信号进行分析时采用傅立叶变换和傅立叶逆变换需要消耗很大的存储空间,不利于降低成本,而且现有的傅立叶变换和傅立叶逆变换的运算速度较慢,对整个TDS-OFDM通信***的实现有很大影响。
发明内容
本发明所要解决的技术问题是提供一种N点快速傅立叶变换和快速傅立叶逆变换的方法,加快傅立叶变换和傅立叶逆变换的速度,增加***的信号分析和处理速度,增强***的实时性,为此,本发明还提供一种傅立叶变换和傅立叶逆变换的装置。
为解决上述技术问题,本发明N点FFT/IFFT的装置的技术方案是,包括:
用于完成mi点FFT/IFFT的mi点FFT/IFFT单元,其中,K为mi点FFT/IFFT的级数,mi∈[m1,m2,…,mK],mi=rt1×rt2,为每一级FFT/IFFT的基数,所述的mi点FFT/IFFT单元由串连的ri1点DFT/IDFT单元和ri2点DFT/IDFT单元组成;
相位旋转因子单元,与复数乘法器相连接,用于产生和存储旋转因子;用于对mi点FFT/IFFT运算单元的输出使用相位旋转因子进行加权的复数乘法器。
作为本发明的进一步改进是,当ri1与ri2互素时,所述的mi点FFT/IFFT单元包括:
采样存储器,存储输入的采样、ri1点FFT/IFFT单元的输出,以及ri2点FFT/IFFT单元的输出;
ri1点DFT/IDFT单元,输入端和输出端分别与采样存储器相连接,用于完成ri1点DFT/IDFT运算;
ri2点DFT/IDFT单元,输入端和输出端分别与采样存储器相连接,用于完成ri2点DFT/IDFT运算;
输入/输出控制单元和读/写地址单元分别与采样存储器相连接,用于控制采样存储器向ri1点DFT/IDFT单元或ri2点DFT/IDFT单元分别输出ri1或ri2个采样,以及ri1点DFT/IDFT单元或ri2点DFT/IDFT单元的输出回写至采样存储器。
作为本发明另一种进一步改进是,当ri1与ri2不互素时,所述的mi点DFT/IDFT单元包括:
采样存储器,采样存储器用于存储输入的采样、ri1点DFT/IDFT单元的输出,以及ri2点DFT/IDFT单元的输出;
ri1点DFT/IDFT单元,输入端和输出端分别与采样存储器相连接,用于完成ri1点DFT/IDFT运算;
ri2点DFT/IDFT单元,通过复数乘法器与采样存储器相连接,用于完成ri2点DFT/IDFT运算;
输入/输出控制单元和读/写地址单元分别与采样存储器相连接,用于控制采样存储器向ri1点DFT/IDFT单元或ri2点DFT/IDFT单元分别输出ri1或ri2个采样,以及ri1点DFT/IDFT单元或ri2点DFT/IDFT单元的输出回写至采样存储器;
相位旋转因子单元,与复数乘法器相连接,用于产生或存储旋转因子;
复数乘法器,输入端与采样存储器、相位旋转因子单元的输出端相连接,输出端与采样存储器相连接,用于对ri1点DFT/IDFT的输出使用旋转因子进行加权。
本发明N点FFT/IFFT的方法的技术方案是,包括以下步骤:
第一步,把N点FFT/IFFT分解为m1、m2、……、mK点FFT/IFFT,K为FFT/IFFT的级数,其中mi=ri1×ri2,为每一级FFT/IFFT的基数;
第二步,将ri1点DFT/IDFT与ri2点DFT/IDFT级联起来,实现mi点DFT/IDFT;
第三步,将mi点DFT/IDFT通过混合基算法级联起来,得到N点DFT/IDFT
作为本发明的进一步改进是,第二步包括以下步骤:
1)将mi点FFT/IFFT分解为ri1点DFT/IDFT和ri2点DFT/IDFT,其中mi=ri1×ri2;
3)把需要进行变换的采样按顺序写入采样存储器;
5)从采样存储器中读取ri2个采样,进行ri2点DFT/IDFT,将ri2点DFT/IDFT的计算结果按原地址回写至采样存储器;完成所有ri2点DFT/IDFT之后,在新的数据写入存储器的某个单元之前输出该单元存储的ri2点DFT/IDFT的结果。
本发明通过ri1点DFT/IDFT与ri2点DFT/IDFT通过混合基算法或素因子算法级联起来,实现mi点FFT/IFFT。K级mi点FFT/IFFT,通过混合基算法级联起来,从而实现N点FFT/IFFT。采用本发明可以加快FFT/IFFT的变换速度,增加***的信号分析和处理能力。本发明的N点FFT/IFFT装置,一个存储器同时用做输入存储器和两级运算的运算存储器,能够用更少的存储器进行信号分析处理,减少所占用的存储器,节约成本。
附图说明
下面结合附图和实施例对本发明作进一步详细的说明:
图1为N点FFT装置的功能框图;
图2为ri1与ri2互素时mi点FFT的功能框图;
图3为ri1与ri2不互素时mi点FFT的功能框图;
图4a和b为N点FFT的实现流程图;
图5为3780点FFT的功能框图;
图6为3780点FFT的数据在采样存储器I中的排列示意图;
图7为9级7点DFT的计算次序示意图;
图8为7级9点DFT的计算次序示意图;
图9为7点、9点DFT素因子算法实现的63点FFT输出排列示意图;
图10a和b为12级DFT5的运算次序示意图;
图11a和b为5级DFT12的运算次序示意图;
图12为5点、12点DFT素因子算法实现的60点FFT输出排列示意图。
图中附图标记中采样存储器为001、ri1点FFT运算单元为002、ri2点FFT运算单元为003、输入/输出控制单元为004、读/写地址单元为005,复数乘法器为006、相位旋转因子单元为007。
具体实施方式
以下参照附图并结合具体实施例对本发明的技术特征进行进一步描述。具体实施例只是优选的范例,在不脱离本发明的基本精神和本质特征的情况下可以多种形式实施,本发明并不被实施例中的细节限制。
如图1所示,包括K级mi点FFT单元,K为FFT/IFFT的级数,接收数据的数据输入端,它用于完成mi点FFT的mi点FFT单元。从数据输入端输入的数据经过mi点FFT单元得到mi点FFT,包括相位旋转因子单元,用于产生或存储旋转因子,还包括复数乘法器,用于对mi点FFT运算单元的输出使用旋转因子进行加权计算,数据输出端与最后一级mi点FFT单元相连接,输出计算结果。
在N点FFT中,N=m1×m2×…×mK,其中mi∈[m1,m2,…,mK],mi=ri1×ri2。将N点FFT分解为K级运算,每级运算都由mi点FFT组成,通过混合基算法级联起来,实现N点FFT。mi点FFT由ri1点DFT和ri2点DFT通过素因子算法或混合基算法组成,若ri2=1,则实际上只进行了ri1点DFT。
因为FFT与IFFT具有对称性,通过对图1所示的模块进行很小的改变就可以作为IFFT使用,也就是将图1中的mi点FFT用mi点IFFT代替,相位旋转因子单元存储或生成的旋转因子与N点FFT的旋转因子共轭。因此在本发明中,不另外用图标是傅里叶逆变换的模块图。图1中的模块,可以使用ASIC(application-specific integrated circuit)实现,可以用多个相互通信的组件实现,也可以使用软件实现。
上述mi点FFT单元包括:采样存储器、ri1点DFT运算单元、ri2点DFT运算单元、输入/输出控制单元、读/写地址单元,当ri1与ri2不互素时,该模块还包含复数乘法器和相位旋转因子单元。其中,采样存储器,用于存储输入的采样、ri1点FDFT运算单元和ri2点DFT运算单元的输出;ri1点DFT单元、ri2点DFT运算单元,用于完成ri1点DFT和ri2点DFT;输入/输出控制单元、读/写地址单元,用于控制采样存储器向ri1点DFT单元或ri2点DFT单元输出ri1或ri2个采样,以及ri1点DFT或ri2点DFT的输出回写至采样存储器。
如图13所示,当ri1与ri2互素的情况下,mi点FFT的功能框图包括以下部分,采样存储器001,与输出/输出控制单元004以及读/写地址单元005相连接,并分别与ri1点DFT单元的输入输出端以及ri2点DFT单元的输入输出端相连接,用于存储输入的采样、ri1点DFT单元的输出,以及ri2点DFT/IDFT单元的输出;
ri1点DFT单元002,与采样存储器001相连接,用于完成ri1点DFT运算;
ri2点DFT单元003,与采样存储器001相连接,用于完成ri2点DFT运算;
输入/输出控制单元004和读/写地址单元005分别与采样存储器001相连接,用于控制采样存储器001向ri1点DFT单元002或ri2点DFT单元003分别输出ri1或ri2个采样,以及ri1点DFT单元或ri2点DFT单元的输出回写至采样存储器001。
采样存储器001的大小可基于N、i、mi来选择。对于第i级的mi点FFT模块,一个循环所需要处理的采样数量为i-1级的mi-1点FFT模块采样存储器一行存储的采样数量,因此第i级的mi点FFT模块采样存储器的大小选择为mi行,每行存储个采样。
图3为ri1与ri2不互素的情况下,mi点FFT的功能框图。由采样存储器001、ri1点DFT运算单元002、ri2点DFT运算单元003、输入/输出控制单元004、读/写地址单元005、复数乘法器006、相位旋转因子单元007组成。当ri1与ri2互素的情况下,mi点FFT的功能框图包括以下部分,采样存储器001,与输出/输出控制单元004以及读/写地址单元005相连接,并分别与ri1点DFT单元的输入输出端以及ri2点DFT单元的输入输出端相连接,用于存储输入的采样、ri1点DFT单元的输出,以及ri2点DFT/IDFT单元的输出;
ri1点DFT单元002,与采样存储器001相连接,用于完成ri1点DFT运算;
ri2点DFT单元003,与采样存储器001相连接,用于完成ri2点DFT运算;
输入/输出控制单元004和读/写地址单元005分别与采样存储器001相连接,用于控制采样存储器001向ri1点DFT单元002或ri2点DFT单元003分别输出ri1或ri2个采样,以及ri1点DFT单元或ri2点DFT单元的输出回写至采样存储器001。
采样存储器001的大小可基于N、i、mi来选择。对于第i级的mi点FFT模块,一个循环所需要处理的采样数量为i-1级的mi-1点FFT模块采样存储器一行存储的采样数量,因此第i级的mi点FFT模块采样存储器的大小选择为mi行,每行存储个采样。
相位旋转因子单元007,与复数乘法器006相连接,用于产生或存储相位旋转因子。
复数乘法器006,输入端与采样存储器001相连接,输出端与复数乘法器006的输入端相连接,用于对采样使用旋转因子进行加权。
利用本发明的N点FFT/IFFT装置进行N点的FFT/IFFT时,包括以下步骤:
第一步,把N点FFT/IFFT分解为m1、m2、……、mK点FFT/IFFT,K为FFT/IFFT的级数,其中mi=ri1×ri2,为每一级FFT/IFFT的基数。
第二步,将ri1点DFT/IDFT与ri2点DFT/IDFT通过混合基算法或素因子算法级联起来,实现mi点FFT/IFFT。在将ri1点DFT/IDFT与ri2点DFT/IDFT通过素因子算法级联起来时,依据素因子算法得到参与ri2层ri1点DFT/IDFT与ri1层ri2点DFT/IDFT计算的数据序号,分别对ri1点DFT/IDFT的ri2层运算以及ri2点DFT/IDFT的ri1层运算设计运算次序,使新的数据需要占用存储器的某个位置时,完成占用该位置的上一次数据的ri1点DFT/IDFT与ri2点DFT/IDFT。
将输入数据按照行优先次序写入采样存储器,存储器分为mi行,列,不同行的数据可以同时读出。为了方便说明,在本申请中,后面提及的mi个数据均属于同一列。根据素因子算法得到参与ri1点DFT/IDFT的mi个数据,这些数据可以分为ri2组,每组ri1个数据。假设mi个数据输入的顺序依次排列,选取每一组最大的序号标记ri2组数据,按照标记的大小,从小到大进行排列,当输入的mi个数据中序号与标记一致,则进行该组ri1点DFT/IDFT,当输入mi个数据之后,完成ri2组ri1点DFT/IDFT。根据素因子算法得到参与ri2点DFT/IDFT的mi个数据,这些数据可以分为ri1组,每组ri2个数据。假设mi个数据输入的顺序依次排列,选取每一组最小的序号标记ri1组数据,按照标记的大小,从小到大进行排列,当输入新的mi个数据中序号与标记一致,则进行该组ri2点DFT/IDFT,当输入新的mi个数据中的前ri1个数据之后,完成ri1组ri2点DFT/IDFT。
上述第二步,包括以下步骤:
1)将mi点FFT/IFFT分解为ri1点DFT/IDFT和ri2点DF/IDFT,其中mi=ri1×ri2。
4)从采样存储器中读取ri1个采样,进行ri1点DFT/IDFT,ri1点DFT/IDFT的结果按原地址回写至采样存储器,完成一个循环的所有ri1点DFT/IDFT,其中,ri1点DFT/IDFT的实现方法,采用WFTA,或者多项式分解算法、DFT/IDFT,或者FFT/IFFT。
5)从采样存储器中读取ri2个采样,进行ri2点DFT/IDFT,将ri2点DFT/IDFT的计算结果按原地址回写至采样存储器,将ri2点DFT/IDFT的结果中序号为1的数据输出,其中,ri2点DFT/IDFT的实现方法,采用WFTA,或者多项式分解算法、DFT/IDFT,或者FFT/FFT。
第三步,将mi点FFT/IFFT通过混合基算法级联起来,得到N点FFT/IFFT。
具体来说,如图4a所示,本发明实现N点FFT/IFFT的步骤如下:
步骤一:把N点FFT/IFFT分解为m1、m2、……、mK点FFT/IFFT,其中mi点FFT/IFFT进一步分解为ri1点DFT/IFFT和ri2点FFT/IFFT,其中mi=ri1×ri2。
步骤二:进行mi点FFT/IFFT。
步骤三:判断mi点FFT/IFFT是否是最后一级运算,如果是最后一级运算,则输出mi点FFT/IFFT的运算结果;如果不是最后一级运算,则进行步骤三。
步骤四:利用旋转因子对mi点FFT/IFFT的运算结果进行加权,令i=i+1,然后返回步骤二。
如图4b所示,在上述实现N点FFT/IFFT的步骤中,进行mi点FFT/IFFT的步骤如下:
第二步:判断是否进行了所有的ri2层运算,若进行了所有的ri2层运算,则进行第三步;否则令p=p+1,返回第一步。
第三步:若ri1与ri2互素,则进行下一步骤;否则,使用旋转因子对ri2点DFT/IDFT的输入进行加权。
第五步:判断是否进行了所有的ri1层运算,若进行了所有的ri1层运算,则进行第六步;否则q=q+1,返回第四步。
第六步:按采样输入存储器的顺序,逐个输出;若此时有新的数据输入,按先读后写的顺序进行操作;在完全输出所有数据之前,若出现满足下一次mi点FFT/IFFT执行的条件,可从第一步开始进行运算,与本步骤无冲突。
下面以3780点为例具体说明如何利用本发明实现快速傅立叶变换运算。利用本发明的方法和装置可以以较小的存储器开销实现3780点FFT。由于3780的分解方法很多,这里仅以3780=(9×7)×(5×12)为例,进行说明。由此将3780点FFT分解为2级运算,第一级由9点DFT、7点DFT通过素因子算法构成63点FFT,第二级由12点DFT、5点DFT通过素因子算法构成60点FFT,功能框图如图5所示。
使用63点FFT、60点FFT混合积算法实现3780点FFT,若先进行63点FFT,需要将输入数据按排列的优先次序将3780点FFT模块的输入数据按行优先的顺序依次排列成60行63列的矩阵形式,如图6所示。
第一级运算所使用的采样存储器分为63行,每行存储60个采样,即采样存储器分为63行、60列。用9点DFT、7点DFT通过素因子算法实现63点FFT,则需要将63个数据按所示的地址进行排列,其中序号0-62指行号。
按照行优先或列优先的原则,进行9级7点DFT与7级9点DFT或进行7级9点DFT与9级7点DFT,DFT的读写地址相同。若先进行9级7点DFT,则在完成全部的9级7点DFT运算之前,不能进行7级9点DFT的运算;同样的,若先进行7级9点DFT,在完成全部的7级9点DFT运算之前,不能进行9级7点DFT的运算。下面以优先9级7点DFT为例说明具体运算步骤。
由于9级7点DFT全部完成之后,7级9点DFT才能开始运算,因此9级7点DFT之间的先后顺序不影响7级9点DFT。因此可以对9级7点DFT按如图7b)所示的优先顺序进行排列。
从图7b)不难看出,第一级7点DFT只与前55行数据有关,当第55行数据开始到来时就可以计算第一级的7点DFT,每来一个属于第55行的数据进行一次7点DFT,每一行有60个数据,因此进行60次第一级的7点DFT;第二级7点DFT只与前56行数据有关,当第56行数据到来时就可以计算第二级7点DFT;当最后一行数据到来时计算第9级7点DFT。由于计算7点DFT时,没有新的数据输入,因此7点DFT的输出可以复用存储单元。
7点DFT全部完成之后,9点DFT才能开始运算。由于此时有新的数据输入,需要按序号0-62逐行占用采样存储器,因此对7级9点DFT按图8b)的优先顺序进行排列:
如图从图8b)所示,第一级9点DFT的9个操作数中,存在占用采样存储器第一行的数据,当属于第1行某一列的数据到来之前,完成此次第一级9点DFT。每完成一次此级的9点DFT都可以得到9个完成63点FFT的数据,选择输出需要占用第一行采样存储器的数据,其余按原地址写回采样存储器。第二级9点DFT的9个操作数中,存在占用采样存储器第二行的数据,当属于第1行某一列的数据到来之前,完成此次9点DFT。每完成一次此级的9点DFT都可以得到9个完成63点FFT的数据,选择输出需要占用第二行采样存储器的数据,其余按原地址写回采样存储器。当完成第7级9点DFT之后,63点FFT完全结束。由于计算9点DFT时,采用先读、后写的顺序,新输入的数据与原来存储的数据并没有发生冲突,且输出与新输入数据冲突的9点DFT计算结果,因此9点DFT的输出中其余8个可以复用存储单元。
63点FFT素因子数据排列模块:63点FFT的输出并不是顺序的,需要将63个数据整序,将地址变换为:x′1[i]=x1[(i*(7+9))%63],i∈[0,63),以变换之后的地址对63个数据进行整序,如图9所示。由于63点FFT输出数据的顺序只影响60点FFT的63次运算的先后顺序,而不影响计算结果,因此将63点FFT素因子数据排列放在60点FFT之后进行。
用12点DFT、5点DFT通过素因子算法实现60点FFT,需要将60个数据按图10a)所示的地址进行排列,图10中序号0-59为输入数据的序号。
在5点DFT模块中:对图10a)的每列5个数据进行5点DFT,即总共进行12级5点DFT。由于5点DFT须全部完成之后才能进行12点DFT的运算,因此5点DFT次序可以由设计者规定。将5点DFT的运算次序按图10b)进行。
如图10b)所示,第一级5点DFT只与前49个数据有关,当第49个数据到来时就可以计算第一级5点DFT;第二级5点DFT只与前50个数据有关,当第50个数据到来时就可以计算第二级5点DFT;当最后一个数据到来时计算第12级5点DFT。由于计算5点DFT时,没有新的数据输入,因此5点DFT的输出可以复用输入端的存储单元。
5点DFT全部完成之后,12点DFT才能开始运算。由于此时有新的数据输入,需要按序号0-59逐个占用存储单元,因此对12点DFT按图11b)所示的优先顺序进行排列。
如图11b)所示,12点DFT模块对的每行12个数据进行12点DFT,即要把图11b)中的每行的12个数据进行5级12点DFT。第一级12点DFT使用即将被占用的存储单元0的数据,完成此级12点DFT则可以得到12个完成60点FFT的数据,选择输出需要占用第0个存储单元的数据,其余继续存储在读出的存储单元;第二级12点DFT使用即将被占用的存储单元1的数据,完成此次12点DFT则可以得到12个完成60点FFT的数据,选择输出需要占用第1个存储单元的数据,其余继续存储在读出的存储单元;当完成第5级12点DFT之后,60点FFT完全结束。由于计算12点DFT时,输入缓存采用先读、后写的顺序,新输入的数据与原来存储的数据并没有发生冲突,且输出与新输入数据冲突的12点DFT计算结果,因此12点DFT的输出中其余11个可以复用存储单元。
60点FFT素因子数据排列模块:60点FFT的输出并不是顺序的,需要将60个数据整序,将地址变换为:x′2[i]=x2[(i*(12+5))%60],i∈[0,60),即对图11的60个数据进行整序,如图12所示。
若对操作数采用并行的方式进行读写,从上面的介绍可以看出完成63点FFT的时间仅占(7+9)*60个采样周期,而60点FFT的处理所占用的时间为63点FFT计算结果输出的时间,若提高63点FFT计算结果输出的速度以及60点FFT的处理速度,则可以在3780个采样周期内完成多次运算。
使用本发明实现的3780点FFT只需要3780+60=3840个字节的存空间,只使用1个复数乘法器,且可以在3780个采样周期内完成多次运算。就3780点DFT分解为9×7×5×12而言,使用本发明比完全使用混合积分解的算法相比,可以节省两个复数乘法器。本发明与其他使用素因子算法的方法相比,由于在运算上进行优化,可以至少节省3780*2个字节的存储空间。
本发明通过将N点FFT分解为K级mi点FFT,通过混合基算法级联起来,从而实现N点FFT。ri1点DFT与ri2点DFT通过混合基算法或素因子算法级联起来,实现mi点FFT,在N个采样周期可以实现两次或两次以上的运算,保证FFT进行每帧无间断输入输出的连续运算,从而加快了运算的速度,有利于提高***进行信号分析和处理的速度。同时本发明采用储存器复用,一个存储器同时用做输入存储器和两级运算的运算存储器,提高了单位存储器的利用率,降低了相同的信息处理量所需要占用的存储器,降低了信号分析和处理***的存储器消耗,降低成本,提高生产效率。
本发明的FFT/IFFT运算方法和装置能够应用在任何一种需要对数据信息进行分析处理或者计算的装置或***中,能对***的信号处理速度,***的运行速度起有利的作用,并且因为运算时间的加快,信号处理速度的增加,能够降低***出错的几率,增加***运行的安全性。同时本发明的FFT/IFFT运算方法和装置,能够降低任何一个需要进行数据处理***的存储器消耗,降低成本,从而提高生产效率。
Claims (10)
1.一种N点FFT/IFFT的装置,其特征在于,包括:
用于完成mi点FFT/IFFT的mi点FFT/IFFT单元,其中,K为mi点FFT/IFFT的级数,mi∈[m1,m2,…,mK],mi=ri1×ri2,为每一级FFT/IFFT的基数,所述的mi点FFT/IFFT单元由串连的ri1点DFT/IDFT单元和ri2点DFT/IDFT单元组成;
相位旋转因子单元,与复数乘法器相连接,用于产生和存储旋转因子;
用于对mi点FFT/IFFT运算单元的输出使用相位旋转因子进行加权的复数乘法器。
2.根据权利要求1所述的一种N点FFT/IFFT的装置,其特征在于,当ri1与ri2互素时,所述的mi点FFT/IFFT单元包括:
采样存储器,存储输入的采样、ri1点FFT/IFFT单元的输出,以及ri2点FFT/IFFT单元的输出;
ri1点DFT/IDFT单元,输入端和输出端分别与采样存储器相连接,用于完成ri1点DFT/IDFT运算;
ri2点DFT/IDFT单元,输入端和输出端分别与采样存储器相连接,用于完成ri2点DFT/IDFT运算;
输入/输出控制单元和读/写地址单元分别与采样存储器相连接,用于控制采样存储器向ri1点DFT/IDFT单元或ri2点DFT/IDFT单元分别输出ri1或ri2个采样,以及ri1点DFT/IDFT单元或ri2点DFT/IDFT单元的输出回写至采样存储器。
3.根据权利要求1所述的一种N点DFT/IDFT的装置,其特征在于,当ri1与ri2不互素时,所述的mi点DFT/IDFT单元包括:
采样存储器,采样存储器用于存储输入的采样、ri1点DFT/IDFT单元的输出,以及ri2点DFT/IDFT单元的输出;
ri1点DFT/IDFT单元,输入端和输出端分别与采样存储器相连接,用于完成ri1点DFT/IDFT运算;
ri2点DFT/IDFT单元,通过复数乘法器与采样存储器相连接,用于完成ri2点DFT/IDFT运算;
输入/输出控制单元和读/写地址单元分别与采样存储器相连接,用于控制采样存储器向ri1点DFT/IDFT单元或ri2点DFT/IDFT单元分别输出ri1或ri2个采样,以及ri1点DFT/IDFT单元或ri2点DFT/IDFT单元的输出回写至采样存储器;
相位旋转因子单元,与复数乘法器相连接,用于产生或存储相位旋转因子;
复数乘法器,输入端与采样存储器、相位旋转因子单元的输出端相连接,输出端与采样存储器相连接,用于对ri1点DFT/IDFT的输出使用相位旋转因子进行加权。
5.一种N点FFT/IFFT的方法,其特征在于,包括以下步骤:
第一步,把N点FFT/IFFT分解为m1、m2、……、mK点FFT/IFFT,K为FFT/IFFT的级数,其中mi=ri1×ri2,为每一级FFT/IFFT的基数;
第二步,将ri1点DFT/IDFT与ri2点DFT/IDFT级联起来,实现mi点DFT/IDFT;
第三步,将mi点DFT/IDFT通过混合基算法级联起来,得到N点DFT/IDFT。
6.根据权利要求5所述的一种N点FFT/IFFT的方法,其特征在于,第二步中,通过混合基算法或素因子算法将ri1点DFT/IDFT与ri2点DFT/IDFT级联起来。
7.根据权利要求6所述的一种N点FFT/IFFT的方法,其特征在于,第二步中,在将ri1点DFT/IDFT与ri2点DFT/IDFT通过素因子算法级联起来时,依据素因子算法得到参与ri2层ri1点DFT/IDFT与ri1层ri2点DFT/IDFT计算的数据序号,分别对ri1点DFT/IDFT的ri2层运算以及ri2点DFT/IDFT的ri1层运算设计运算次序,使新的数据需要占用存储器的某个位置时,完成占用该位置的上一次数据的ri1点DFT/IDFT与ri2点DFT/IDFT。
8.根据权利要求5所述的一种N点FFT/IFFT的方法,其特征在于,第二步包括以下步骤:
1)将mi点FFT/IFFT分解为ri1点DFT/IDFT和ri2点DFT/IDFT,其中mi=ri1×ri2;
3)把需要进行变换的采样按顺序写入采样存储器;
5)从采样存储器中读取ri2个采样,进行ri2点DFT/IDFT,将ri2点DFT/IDFT的计算结果按原地址回写至采样存储器;完成所有ri2点DFT/IDFT之后,在新的数据写入存储器的某个单元之前输出该单元存储的ri2点DFT/IDFT的结果。
9.根据权利要求8所述的一种N点FFT/IFFT的方法,其特征在于,步骤3)中为把需要进行变换的采样按顺序写入采样存储器的每一行,每行存储个采样。
10.根据权利要求8所述的一种N点FFT/IFFT的方法,其特征在于,步骤4)和步骤5)中的ri1点DFT/IDFT与ri2点DFT/IDFT的实现方法,采用WFTA,或者多项式分解算法、DFT/IDFT、或者FFT/IFFT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810044188A CN101763337A (zh) | 2008-12-25 | 2008-12-25 | N点fft/ifft/ifft/ifft方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810044188A CN101763337A (zh) | 2008-12-25 | 2008-12-25 | N点fft/ifft/ifft/ifft方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101763337A true CN101763337A (zh) | 2010-06-30 |
Family
ID=42494502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810044188A Pending CN101763337A (zh) | 2008-12-25 | 2008-12-25 | N点fft/ifft/ifft/ifft方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101763337A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488611A (zh) * | 2013-09-02 | 2014-01-01 | 电子科技大学 | 基于IEEE802.11.ad协议的FFT处理器 |
CN103810144A (zh) * | 2012-11-08 | 2014-05-21 | 无锡汉兴电子有限公司 | 一种质数长度fft/ifft方法和装置 |
CN106339353A (zh) * | 2015-07-13 | 2017-01-18 | 无锡华润矽科微电子有限公司 | 一种支持4375点和3780点fft/ifft的方法及其处理器 |
WO2018018412A1 (zh) * | 2016-07-26 | 2018-02-01 | 中国科学院自动化研究所 | 混合基dft/idft并行读取及计算方法和装置 |
CN112822139A (zh) * | 2021-02-04 | 2021-05-18 | 展讯半导体(成都)有限公司 | 数据输入、数据转换方法及装置 |
-
2008
- 2008-12-25 CN CN200810044188A patent/CN101763337A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810144A (zh) * | 2012-11-08 | 2014-05-21 | 无锡汉兴电子有限公司 | 一种质数长度fft/ifft方法和装置 |
CN103810144B (zh) * | 2012-11-08 | 2018-12-07 | 无锡汉兴电子有限公司 | 一种质数长度fft/ifft方法和装置 |
CN103488611A (zh) * | 2013-09-02 | 2014-01-01 | 电子科技大学 | 基于IEEE802.11.ad协议的FFT处理器 |
CN106339353A (zh) * | 2015-07-13 | 2017-01-18 | 无锡华润矽科微电子有限公司 | 一种支持4375点和3780点fft/ifft的方法及其处理器 |
CN106339353B (zh) * | 2015-07-13 | 2019-04-09 | 无锡华润矽科微电子有限公司 | 一种支持4375点和3780点fft/ifft的处理器 |
WO2018018412A1 (zh) * | 2016-07-26 | 2018-02-01 | 中国科学院自动化研究所 | 混合基dft/idft并行读取及计算方法和装置 |
US10698973B2 (en) | 2016-07-26 | 2020-06-30 | Institute Of Automation, Chinese Academy Of Sciences | Method and apparatus for concurrent reading and calculation of mixed radix DFT/IDFT |
CN112822139A (zh) * | 2021-02-04 | 2021-05-18 | 展讯半导体(成都)有限公司 | 数据输入、数据转换方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100563226C (zh) | 利用混合基数快速付里叶变换的调制设备 | |
CN102419741A (zh) | 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 | |
CN101763337A (zh) | N点fft/ifft/ifft/ifft方法和装置 | |
CN103699515B (zh) | 一种fft并行处理装置和方法 | |
CN101454772A (zh) | 多端口混合基fft | |
CN101083643A (zh) | 一种低存储器开销的混合基fft处理器及其方法 | |
CN101847986A (zh) | 一种实现fft/ifft变换的电路及方法 | |
CN111737638A (zh) | 基于傅里叶变换的数据处理方法及相关装置 | |
CN101894096A (zh) | 一种适用于cmmb和dvb-h/t的fft运算电路结构 | |
CN101667984A (zh) | 3780点快速傅立叶变换处理器及运算控制方法 | |
CN107563955A (zh) | 一种基于gpu的并行地图切片方法及*** | |
CN102214159A (zh) | 一种实现3780点fft/ifft的方法及其处理器 | |
CN105095152A (zh) | 一种可配置的128点fft装置 | |
Guo et al. | A 60-mode high-throughput parallel-processing FFT processor for 5G/4G applications | |
CN104268124B (zh) | 一种fft实现装置和方法 | |
CN101331479A (zh) | 循环快速傅里叶变换 | |
CN1348141A (zh) | 3780点离散傅里叶变换处理器***及其结构 | |
CN101719117A (zh) | 一种fft运算装置及其制造方法 | |
CN101937332A (zh) | 基于基24算法的多路fft处理器中乘法器的复用方法 | |
CN102238348B (zh) | 一种可变数据个数的fft/ifft处理器的基4模块 | |
CN101764778A (zh) | 一种基带处理器和基带处理方法 | |
CN102880592A (zh) | 一种顺序输出的高精度3780点fft处理装置和方法 | |
CN101833540A (zh) | 信号处理方法和装置 | |
Baek et al. | New address generation scheme for memory-based FFT processor using multiple radix-2 butterflies | |
CN102104773B (zh) | 用于实现可变数据个数的fft/ifft处理器的基4模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20100630 |