CN107168928A - 无需重新排序的八点Winograd傅里叶变换器 - Google Patents
无需重新排序的八点Winograd傅里叶变换器 Download PDFInfo
- Publication number
- CN107168928A CN107168928A CN201710303794.2A CN201710303794A CN107168928A CN 107168928 A CN107168928 A CN 107168928A CN 201710303794 A CN201710303794 A CN 201710303794A CN 107168928 A CN107168928 A CN 107168928A
- Authority
- CN
- China
- Prior art keywords
- matrix
- vectorial
- complex multiplier
- vector
- multiplied
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种无需重新排序的八点Winograd傅里叶变换器,其特征在于,所述处理器主要由输入矩阵I、可变对角矩阵A、输出矩阵O和复数乘法器M1~M3四部分组成。输入矩阵I通过复数乘法器M1与输入向量v相乘得到向量p,可变对角矩阵A通过复数乘法器M2与向量p相乘得到向量q,输出矩阵O通过复数乘法器M3与向量q相乘得到输出向量V。本发明去除了N点变址同序素因子算法中八点Winograd傅里叶变换涉及的重新排序操作,简化了控制逻辑,提高了运算速度,节约了存储器消耗,降低了硬件成本。
Description
技术领域
本发明涉及数字信号处理领域,特别涉及一种无需重新排序的小点数Winograd快速傅里叶变换算法(Winograd Fourier Transform Algorithm,WFTA)的实现方法。
背景技术
随着无线通信业务的不断增长,可利用的频谱资源日益紧张。为了提高频谱利用率和通信质量,现代无线通信***广泛采用对频率选择性衰落具有较强免疫力的正交频分复用(Orthogonal Frequency Duplex Multiplexing,OFDM)技术。OFDM技术的核心是FFT。FFT的点数分为2的幂次和非2幂次两种。点数是2的幂次的FFT算法和实现比较成熟。相比之下,非2幂次点数的FFT更为灵活,近年来在DRM、DTMB、LTE***中开始得到应用。因此,非2幂次点数FFT的算法和实现值得深入研究。
目前,素因子算法(Prime Factor Algorithm,PFA)是最有效的非2幂次FFT,它采用嵌套多维结构,能有效降低计算复杂度。对于N点非2幂次FFT,假设N可分解为s个两两互素因子的乘积,即N=N1N2…Ns。N点PFA的基本原理是,把一维大点数FFT映射成s维小点数FFT,第i(i=1,2,…,s)维FFT进行N/Ni次Ni点小点数FFT。小点数FFT可借助于Cooley-Tukey算法、WFTA以及其它高效算法。
在某些情况下,PFA需要重新排序。根据在计算过程中所处的位置,重新排序分为预扰乱和后扰乱。不考虑Ni(i=1,2,…,s)点FFT的内部机制,如果第i维FFT无需重新排序,那么它是同址的;否则,它是变址的,重新排序是在Ni点序列内进行的,预扰乱和后扰乱分别在Ni点FFT之前和之后执行。类似地,不考虑每维FFT的内部机制,如果N点PFA整体上无需重新排序,那么它是同序的;否则,它是变序的,重新排序是在N点序列内进行的,预扰乱和后扰乱分别在第一维FFT开始前和最后一维FFT结束后执行。这样,PFA理论上可分为4种:变址变序、变址同序、同址同序和同址变序。
目前,PFA要么是变址同序的,要么是同址变序的,不可避免地引入了重新排序操作。众所周知,重新排序意味着必须增加一级缓冲区,需要消耗较多的存储器资源,会增加硬件成本。此外,重新排序还会降低运算速度,增加控制的复杂度。与同址变序PFA相比,变址同序PFA消耗较少的存储器资源,两者重新排序的总延时完全相同,都是N个时钟周期,因此,变址同序PFA更可取。
发明内容
针对PFA的现有实现方案中存在的需要重新排序这一技术缺点,本发明提供了无需重新排序的八点Winograd傅里叶变换器。当N点非2幂次FFT采用变址同序PFA实现时,如果N的某一互素因子Ni=8(i=1,2,…,s),那么使用本专利无需对第i维FFT重新排序。
为了去除第i维8点FFT的重新排序操作,需要修改常规的8点WFTA。常规的8点WFTA的对角矩阵是固定不变的,本发明将对角矩阵对角线上的各元素表示成角度参数θ=2π/8*<N/8>8的函数,其中,<N/8>8表示对N/8取模8操作。对于不同的N,修改的8点WFTA的对角矩阵不尽相同。
对于第i维FFT,需进行N/8次无需重新排序的8点WFTA,无需重新排序,简化了控制逻辑,共节约了N/8*8=N个时钟周期,提高了运算速度,存储器消耗减少了一半,降低了硬件成本。
关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
附图说明
图1是常规的八点Winograd傅里叶变换器的功能框图;
图2是输入矩阵I的具体构成;
图3是输出矩阵O的具体构成;
图4是对角矩阵D对角线上的具体构成;
图5是预扰乱的八点Winograd傅里叶变换器的结构示意图;
图6是后扰乱的八点Winograd傅里叶变换器的结构示意图;
图7是无需重新排序的八点Winograd傅里叶变换器的功能框图;
图8是可变对角矩阵A对角线上的具体构成。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
N点序列x(n)的FFT为
其中,n,k=0,1,…,N-1,WN=e-j2π/N。直接计算N点FFT的乘法和加法运算量都与N的平方成正比。当N较大时,运算量很大。
为了降低计算复杂度,当N不是2的幂次时,可采用嵌套多维的PFA实现N点FFT。假设N可分解为s个两两互素因子的乘积,即N=N1N2…Ns。也就是说,任意两个因子Ni和Nj(i,j=1,2,…,s,且i≠j)的最大公约数是1。注意,Ni未必是素数。N点PFA的基本原理是,把一维大点数FFT映射成s维FFT,第i维FFT进行N/Ni次Ni点小点数FFT。小点数FFT可借助于Cooley-Tukey算法、WFTA以及其它高效算法。
为了使PFA总体上是同序的,在一维FFT映射成s维FFT时,根据中国余数定理,输入索引n和输出索引k采用如下相同的映射方式:
其中,符号<>N表示模N运算,ni,ki=0,1,…,Ni-1。将式(2)和(3)代入式(1),整理可得:
其中,
对比式(2)和(3)容易发现,索引n和k的映射方式本质上完全相同。因此,只要式(4)中每维FFT的索引ni和ki都是自然顺序的,N点PFA就是同序的。
在式(4)中,第i(i=1,2,…,s)维FFT的傅里叶变换因子可写作
或
式中,
众所周知,常规的Ni点FFT算法的输入和输出都是按照自然顺序的。如果式(4)中的第i维FFT采用常规的Ni点FFT算法,那么式(5)是按照ni的自然顺序输入、ki′的自然顺序输出,式(6)则是按照ni′的自然顺序输入、ki的自然顺序输出。然而,由式(2)和(3)可知,同序PFA要求式(4)中的第i维FFT按照ni的自然顺序输入、ki的自然顺序输出。可见,如果式(4)中的第i维FFT采用常规的Ni点FFT算法,那么必须重新排序。具体而言,式(5)和(6)分别根据式(7)和(8)中的规则进行后扰乱和预扰乱。可见,式(4)中的第i维FFT是变址的。变址通过重新排序实现。为了去掉重新排序这一额外操作,我们必须修改常规的Ni点FFT算法,将重新排序操作吸纳其中。
常规的Ni点WFTA可用向量与矩阵的连乘表示,即
V=O*D*I*v (9)
其中,v和V分别是由Ni点输入和输出序列构成的向量,I和O分别是输入和输出矩阵,D是对角矩阵。通常,矩阵I和O中的元素都只可能是0、±1和±j,与向量相乘时不涉及实质性乘法。对于对角矩阵D,除对角上的元素非零外,其它位置上的元素均为0。
当Ni=8时,N点变址同序PFA的第i维FFT可采用8点WFTA。图1给出了常规的八点Winograd傅里叶变换器的功能框图。8点输入序列构成向量v,它先与矩阵I相乘,运算所得向量再与对角矩阵D相乘,运算所得向量最后与矩阵O相乘,运算所得向量V即为8点输出序列。图2和3分别给出了输入矩阵I和输出矩阵O的具体构成。图4给出了对角矩阵D对角线上的具体构成,从左上角到右下角的元素分别是d0~d7。
变址同序PFA第i维FFT的变址是通过重新排序实现的。当Ni=8时,图5和6分别给出了预扰乱和后扰乱的八点Winograd傅里叶变换器的结构示意图。为了去掉预扰乱或后扰乱中的重新排序操作,我们必须修改常规的Ni=8点WFTA,将重新排序操作吸纳其中。
图7给出了无需重新排序的八点Winograd傅里叶变换器的功能框图,它主要由输入矩阵I、可变对角矩阵A、输出矩阵O和复数乘法器四种功能模块组成。输出向量与输入向量满足:V=O*A*I*v。与常规的8点WFTA相比,无需重新排序的8点WFTA的矩阵I和O均保持不变,对角矩阵不再是常数,其对角线上的各元素修改为角度参数θ=2π/8*<N/8>8的函数,其中,<N/8>8表示对N/8取模8操作。图8给出了可变对角矩阵A对角线上的具体构成,从左上角到右下角的元素分别是a0~a7。对于不同的N,无需重新排序的8点WFTA的对角矩阵不尽相同。
本发明提供了一种去除变址同序PFA中8点WFTA重新排序的方法,当Ni=8时,N点变址同序PFA的第i维FFT可通过N/8次无需重新排序的8点WFTA加以实现,其步骤如下:
(1)根据N确定角度参数θ=2π/8*<N/8>8的具体取值,在此基础上初始化可变对角矩阵A对角线上各元素的数值,使A变为常数,初始化变量l=0(0≤l<N/8);
(2)从输入序列x[n]中读取8个数据,它们的索引是n=<N/8*m+8*l>N(0≤m<8),它们构成向量v;
(3)通过复数乘法器M1,输入矩阵I与向量v相乘,得到向量p;
(4)通过复数乘法器M2,可变对角矩阵A与向量p相乘,得到向量q;
(5)通过复数乘法器M3,输出矩阵O与向量q相乘,得到向量V;
(6)将向量V中的8个数据依次写入到输出序列X[k]中,写入的索引与读取的索引完全相同,仍然是k=<N/8*m+8*l>N;
(7)以1为步长递增改变l的取值,重复步骤(2)~(6),直到完成N/8次无需重新排序的8点WFTA。
如果N点变址同序PFA的第i维FFT采用常规的8点WFTA,那么每次重新排序需要8个时钟周期,这意味执行N/8次常规的8点WFTA共需N/8*8=N个时钟周期进行重新排序。可见,若N点变址同序PFA的第i维FFT采用本发明,则无需重新排序,从而简化控制逻辑,可节约N个时钟周期,提高了运算速度,存储器需求可减少一半,降低了硬件成本。
以上通过具体实施方式和实施例对本发明进行了详细的说明,对于本领域的技术人员来说,在不脱离本发明原理的情况下,还可做出若干变形和改进,这些也应视为本发明的保护范围。
Claims (4)
1.无需重新排序的八点Winograd傅里叶变换器,它嵌套于s维的N点变址同序素因子算法,其中,N=N1N2…Ns,任意两个不同因子Ni和Nj互素,i=1,2,…,s,j=1,2,…,s,当某一因子Ni=8时,所述处理器可用于去除N点变址同序素因子算法第i维FFT的重新排序操作,其特征在于,所述处理器包括:
复数乘法器M1~M3,它们完成矩阵与向量的乘法运算;
输入矩阵I,它通过复数乘法器M1与输入向量v相乘得到向量p;
可变对角矩阵A,它通过复数乘法器M2与向量p相乘得到向量q;
输出矩阵O,它通过复数乘法器M3与向量q相乘得到输出向量V。
2.如权利要求1所述的八点Winograd傅里叶变换器,其特征在于,所述输入矩阵I和输出矩阵O与常规的八点Winograd傅里叶变换器相同,而对角矩阵由常规的常数矩阵修改为可变矩阵A。
3.如权利要求1所述的八点Winograd傅里叶变换器,其特征在于,所述可变对角矩阵A对角线上的各元素是角度参数θ=2π/8*<N/8>8的函数,其中,<N/8>8表示对N/8取模8操作。
4.一种去除N点变址同序素因子算法第i维FFT重新排序操作的八点Winograd傅里叶变换方法,其中,N=N1N2…Ns,任意两个不同因子Ni和Nj互素,i=1,2,…,s,j=1,2,…,s,Ni=8,其特征在于,所述处理方法包括以下步骤:
(1)根据N确定角度参数θ=2π/8*<N/8>8的具体取值,在此基础上初始化可变对角矩阵A对角线上各元素的数值,使A变为常数,初始化变量l=0,其中,0≤l<N/8,<N/8>8表示对N/8取模8操作;
(2)从输入序列x[n]中读取8个数据,它们的索引是n=<N/8*m+8*l>N,它们构成向量v,其中,0≤m<8,<N/8*m+8*l>N表示对N/8*m+8*l取模N操作;
(3)通过复数乘法器M1,输入矩阵I与向量v相乘,得到向量p;
(4)通过复数乘法器M2,可变对角矩阵A与向量p相乘,得到向量q;
(5)通过复数乘法器M3,输出矩阵O与向量q相乘,得到向量V;
(6)将向量V中的8个数据依次写入到输出序列X[k]中,写入的索引与读取的索引完全相同,仍然是k=<N/8*m+8*l>N;
(7)以1为步长递增改变l的取值,重复步骤(2)~(6),直到完成N/8次无需重新排序的8点WFTA。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710303794.2A CN107168928A (zh) | 2017-05-03 | 2017-05-03 | 无需重新排序的八点Winograd傅里叶变换器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710303794.2A CN107168928A (zh) | 2017-05-03 | 2017-05-03 | 无需重新排序的八点Winograd傅里叶变换器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107168928A true CN107168928A (zh) | 2017-09-15 |
Family
ID=59814023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710303794.2A Withdrawn CN107168928A (zh) | 2017-05-03 | 2017-05-03 | 无需重新排序的八点Winograd傅里叶变换器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168928A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082747A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
-
2017
- 2017-05-03 CN CN201710303794.2A patent/CN107168928A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082747A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108805266A (zh) | 一种可重构cnn高并发卷积加速器 | |
Cheng et al. | High-throughput VLSI architecture for FFT computation | |
WO2017000756A1 (zh) | 基于3072点快速傅里叶变换的数据处理方法及处理器、存储介质 | |
CN103294446B (zh) | 一种定点乘累加器 | |
CN102419741A (zh) | 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 | |
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
US8917588B2 (en) | Fast Fourier transform and inverse fast Fourier transform (FFT/IFFT) operating core | |
CN109597647A (zh) | 数据处理方法及设备 | |
CN107168928A (zh) | 无需重新排序的八点Winograd傅里叶变换器 | |
CN111178513B (zh) | 神经网络的卷积实现方法、卷积实现装置及终端设备 | |
JP2015503785A (ja) | Fft/dftの逆順ソーティングシステム、方法およびその演算システム | |
US9268744B2 (en) | Parallel bit reversal devices and methods | |
CN107193777A (zh) | 无需重新排序的七点Winograd傅里叶变换器 | |
CN107168929A (zh) | 无需重新排序的九点Winograd傅里叶变换器 | |
CN107180012A (zh) | 无需重新排序的五点Winograd傅里叶变换器 | |
CN107038145A (zh) | 无需重新排序的四点Winograd傅里叶变换器 | |
CN107193778A (zh) | 无需重新排序的三点Winograd傅里叶变换器 | |
Srinivasaiah et al. | Low power and area efficient FFT architecture through decomposition technique | |
CN115544438A (zh) | 数字通信***中的旋转因子生成方法、装置和计算机设备 | |
Shi et al. | Design of an 8-channel FFT processor for IEEE 802.11 ac MIMO-OFDM WLAN system | |
CN104683096B (zh) | 动态s盒变换方法及*** | |
More et al. | FPGA implementation of FFT processor using vedic algorithm | |
CN102929840A (zh) | 一种无需重新排序的8点wfta处理器和方法 | |
KR101249372B1 (ko) | Ofdm 시스템을 위한 mrmdc 구조의 고속 푸리에 변환 장치 | |
CN102982003A (zh) | 一种无需重新排序的7点wfta处理器和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170915 |
|
WW01 | Invention patent application withdrawn after publication |