CN102982006A - 一种无需重新排序的16点wfta处理器和方法 - Google Patents

一种无需重新排序的16点wfta处理器和方法 Download PDF

Info

Publication number
CN102982006A
CN102982006A CN2012104360721A CN201210436072A CN102982006A CN 102982006 A CN102982006 A CN 102982006A CN 2012104360721 A CN2012104360721 A CN 2012104360721A CN 201210436072 A CN201210436072 A CN 201210436072A CN 102982006 A CN102982006 A CN 102982006A
Authority
CN
China
Prior art keywords
matrix
vector
wfta
vectorial
complex multiplier
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
CN2012104360721A
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.)
SUZHOU WEISHIDA INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SUZHOU WEISHIDA INFORMATION TECHNOLOGY Co Ltd
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 SUZHOU WEISHIDA INFORMATION TECHNOLOGY Co Ltd filed Critical SUZHOU WEISHIDA INFORMATION TECHNOLOGY Co Ltd
Priority to CN2012104360721A priority Critical patent/CN102982006A/zh
Publication of CN102982006A publication Critical patent/CN102982006A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种无需重新排序的16点WFTA处理器,其特征在于,所述处理器主要由输入矩阵I、可变对角矩阵A、输出矩阵O和复数乘法器M1~M3四部分组成。输入矩阵I通过复数乘法器M1与输入向量v相乘得到向量p,可变对角矩阵A通过复数乘法器M2与向量p相乘得到向量q,输出矩阵O通过复数乘法器M3与向量q相乘得到输出向量V。本发明去除了N点变址同序素因子算法中16点WFTA涉及的重新排序操作,简化了控制逻辑,提高了运算速度,节约了存储器消耗,降低了硬件成本。

Description

一种无需重新排序的16点WFTA处理器和方法
技术领域
本发明涉及数字信号处理领域,特别涉及一种无需重新排序的小点数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的现有实现方案中存在的需要重新排序这一技术缺点,本发明提供了无需重新排序的16点WFTA处理器。当N点非2幂次FFT采用变址同序PFA实现时,如果N的某一互素因子Ni=16(i=1,2,…,s),那么使用本专利无需对第i维FFT重新排序。
为了去除第i维16点FFT的重新排序操作,需要修改常规的16点WFTA。常规的16点WFTA的对角矩阵是固定不变的,本发明将对角矩阵对角线上的各元素表示成角度参数θ=2π/16*<N/16>16的函数,其中,<N/16>16表示对N/16取模16操作。对于不同的N,修改的16点WFTA的对角矩阵不尽相同。
对于第i维FFT,需进行N/16次无需重新排序的16点WFTA,无需重新排序,简化了控制逻辑,共节约了N/16*16=N个时钟周期,提高了运算速度,存储器消耗减少了一半,降低了硬件成本。
关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
附图说明
图1是常规的16点WFTA处理器的功能框图;
图2是输入矩阵I的具体构成;
图3是输出矩阵O的具体构成;
图4是对角矩阵D对角线上的具体构成;
图5是预扰乱的16点WFTA处理器的结构示意图;
图6是后扰乱的16点WFTA处理器的结构示意图;
图7是无需重新排序的16点WFTA处理器的功能框图;
图8是可变对角矩阵A对角线上的具体构成。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
N点序列x(n)的FFT为
X ( k ) = &Sigma; n = 0 N - 1 x ( n ) W N nk - - - ( 1 )
其中,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 = < &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)中每维FFT的索引ni和ki都是自然顺序的,N点PFA就是同序的。
在式(4)中,第i(i=1,2,…,s)维FFT的傅里叶变换因子可写作
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 )
众所周知,常规的Ni点FFT算法的输入和输出都是按照自然顺序的。如果式(4)中的第i维FFT采用常规的Ni点FFT算法,那么式(5)是按照ni的自然顺序输入、k′i自然顺序输出,式(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=16时,N点变址同序PFA的第i维FFT可采用16点WFTA。图1给出了常规的16点WFTA处理器的功能框图。16点输入序列构成向量v,它先与矩阵I相乘,运算所得向量再与对角矩阵D相乘,运算所得向量最后与矩阵O相乘,运算所得向量V即为16点输出序列。图2和3分别给出了输入矩阵I和输出矩阵O的具体构成。图4给出了对角矩阵D对角线上的具体构成,从左上角到右下角的元素分别是d0~d17
变址同序PFA第i维FFT的变址是通过重新排序实现的。当Ni=16时,图5和6分别给出了预扰乱和后扰乱的16点WFTA处理器的结构示意图。为了去掉预扰乱或后扰乱中的重新排序操作,我们必须修改常规的Ni=16点WFTA,将重新排序操作吸纳其中。
图7给出了无需重新排序的16点WFTA处理器的功能框图,它主要由输入矩阵I、可变对角矩阵A、输出矩阵O和复数乘法器四种功能模块组成。输出向量与输入向量满足:V=O*A*I*v。与常规的16点WFTA相比,无需重新排序的16点WFTA的矩阵I和O均保持不变,对角矩阵不再是常数,其对角线上的各元素修改为角度参数θ=2π/16*<N/16>16的函数,其中,<N/16>16表示对N/16取模16操作。图8给出了可变对角矩阵A对角线上的具体构成,从左上角到右下角的元素分别是a0~a17。对于不同的N,无需重新排序的16点WFTA的对角矩阵不尽相同。
本发明提供了一种去除变址同序PFA中16点WFTA重新排序的方法,当Ni=16时,N点变址同序PFA的第i维FFT可通过N/16次无需重新排序的16点WFTA加以实现,其步骤如下:
(1)根据N确定角度参数θ=2π/16*<N/16>16的具体取值,在此基础上初始化可变对角矩阵A对角线上各元素的数值,使A变为常数,初始化变量l=0(0≤l<N/16);
(2)从输入序列x[n]中读取16个数据,它们的索引是n=<N/16*m+16*l>N(0≤m<16),它们构成向量v;
(3)通过复数乘法器M1,输入矩阵I与向量v相乘,得到向量p;
(4)通过复数乘法器M2,可变对角矩阵A与向量p相乘,得到向量q;
(5)通过复数乘法器M3,输出矩阵O与向量q相乘,得到向量V;
(6)将向量V中的16个数据依次写入到输出序列X[k]中,写入的索引与读取的索引完全相同,仍然是k=<N/16*m+16*l>N
(7)以1为步长递增改变l的取值,重复步骤(2)~(6),直到完成N/16次无需重新排序的16点WFTA。
如果N点变址同序PFA的第i维FFT采用常规的16点WFTA,那么每次重新排序需要16个时钟周期,这意味执行N/16次常规的16点WFTA共需N/16*16=N个时钟周期进行重新排序。可见,若N点变址同序PFA的第i维FFT采用本发明,则无需重新排序,从而简化控制逻辑,可节约N个时钟周期,提高了运算速度,存储器需求可减少一半,降低了硬件成本。
以上通过具体实施方式和实施例对本发明进行了详细的说明,对于本领域的技术人员来说,在不脱离本发明原理的情况下,还可做出若干变形和改进,这些也应视为本发明的保护范围。

Claims (4)

1.一种无需重新排序的16点Winograd快速傅里叶变换处理器,它嵌套于s维的N点变址同序素因子算法,其中,N=N1N2…Ns,任意两个不同因子Ni和Nj互素,i=1,2,…,s,j=1,2,…,s,当某一因子Ni=16时,所述处理器可用于去除N点变址同序素因子算法第i维FFT的重新排序操作,其特征在于,所述处理器包括:
复数乘法器M1~M3,它们完成矩阵与向量的乘法运算;
输入矩阵I,它通过复数乘法器M1与输入向量v相乘得到向量p;
可变对角矩阵A,它通过复数乘法器M2与向量p相乘得到向量q;
输出矩阵O,它通过复数乘法器M3与向量q相乘得到输出向量V。
2.如权利要求1所述的16点Winograd快速傅里叶变换处理器,其特征在于,所述输入矩阵I和输出矩阵O与常规的16点Winograd快速傅里叶变换处理器相同,而对角矩阵由常规的常数矩阵修改为可变矩阵A。
3.如权利要求1所述的16点Winograd快速傅里叶变换处理器,其特征在于,所述可变对角矩阵A对角线上的各元素是角度参数θ=2π/16*<N/16>16的函数,其中,<N/16>16表示对N/16取模16操作。
4.一种去除N点变址同序素因子算法第i维FFT重新排序操作的16点Winograd快速傅里叶变换处理方法,其中,N=N1N2…Ns,任意两个不同因子Ni和Nj互素,i=1,2,…,s,j=1,2,…,s,Ni=16,其特征在于,所述处理方法包括以下步骤:
(1)根据N确定角度参数θ=2π/16*<N/16>16的具体取值,在此基础上初始化可变对角矩阵A对角线上各元素的数值,使A变为常数,初始化变量l=0,其中,0≤l<N/16,<N/16>16表示对N/16取模16操作;
(2)从输入序列x[n]中读取16个数据,它们的索引是n=<N/16*m+16*l>N,它们构成向量v,其中,0≤m<16,<N/16*m+16*l>N表示对N/16*m+16*l取模N操作;
(3)通过复数乘法器M1,输入矩阵I与向量v相乘,得到向量p;
(4)通过复数乘法器M2,可变对角矩阵A与向量p相乘,得到向量q;
(5)通过复数乘法器M3,输出矩阵O与向量q相乘,得到向量V;
(6)将向量V中的16个数据依次写入到输出序列X[k]中,写入的索引与读取的索引完全相同,仍然是k=<N/16*m+16*l>N
(7)以1为步长递增改变l的取值,重复步骤(2)~(6),直到完成N/16次无需重新排序的16点WFTA。
CN2012104360721A 2012-11-05 2012-11-05 一种无需重新排序的16点wfta处理器和方法 Pending CN102982006A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012104360721A CN102982006A (zh) 2012-11-05 2012-11-05 一种无需重新排序的16点wfta处理器和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012104360721A CN102982006A (zh) 2012-11-05 2012-11-05 一种无需重新排序的16点wfta处理器和方法

Publications (1)

Publication Number Publication Date
CN102982006A true CN102982006A (zh) 2013-03-20

Family

ID=47856049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012104360721A Pending CN102982006A (zh) 2012-11-05 2012-11-05 一种无需重新排序的16点wfta处理器和方法

Country Status (1)

Country Link
CN (1) CN102982006A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419741A (zh) * 2011-11-30 2012-04-18 中国传媒大学 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法
CN102609396A (zh) * 2012-01-19 2012-07-25 中国传媒大学 一种drm系统中离散傅里叶变换处理装置和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419741A (zh) * 2011-11-30 2012-04-18 中国传媒大学 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法
CN102609396A (zh) * 2012-01-19 2012-07-25 中国传媒大学 一种drm系统中离散傅里叶变换处理装置和方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
C.SIDNEY BURRUS,ET AL.: "AN IN-PLACE, IN-ORDER PRIME FACTOR FFT ALGORITHM", 《IEEE TRANSACTIONS ON ACOUSTICS, AND SIGNAL PROCESSING》 *
DEAN P.KOLBA,ET AL.: "A PRIME FACTOR FFT ALGORITHM USING USING HIGH-SPEED CONVOLUTION", 《IEEE TRANSACTIONS ON ACOUSTICS,SPEECH, AND SIGNAL PROCESSING》 *
S.WINOGRAD: "ON COMPUTING THE DISCRETE FOURIER TRANSFORM", 《MATHEMATICS OF COMPUTATION》 *
何苗等: "DRM系统中OFDM模块的高效实现", 《电子科技大学学报》 *
张鹏等: "DRM系统中OFDM解调的高效实现", 《电声技术》 *

Similar Documents

Publication Publication Date Title
CN102609396A (zh) 一种drm系统中离散傅里叶变换处理装置和方法
CN108009126B (zh) 一种计算方法及相关产品
CN102419741A (zh) 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法
CN103970720B (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN103970718A (zh) 一种快速傅里叶变换实现装置及方法
CN107579811A (zh) 一种基于sm3密码杂凑算法的硬件优化方法
CN101221491B (zh) 椭圆曲线密码系统的点加系统
CN103761068A (zh) 优化的蒙哥马利模乘方法、模平方方法和模乘硬件
CN103984677A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN107943756B (zh) 一种计算方法及相关产品
Chang et al. Towards design methodology of efficient fast algorithms for accelerating generative adversarial networks on FPGAs
CN104699624A (zh) 面向fft并行计算的无冲突存储访问方法
CN103853524A (zh) 一种乘法器装置和实现乘法运算的方法
CN104123431A (zh) 一种元素的模逆计算方法及装置
CN104503730A (zh) 一种基于指令的大数点加、倍点运算电路及实现方法
CN103262067B (zh) 一种数据处理方法、数据处理装置和通信系统
CN102982006A (zh) 一种无需重新排序的16点wfta处理器和方法
CN102982005A (zh) 一种无需重新排序的11点wfta处理器和方法
CN102982003A (zh) 一种无需重新排序的7点wfta处理器和方法
CN102982004A (zh) 一种无需重新排序的9点wfta处理器和方法
EP4152681A1 (en) Low overhead side channel protection for number theoretic transform
CN102968402A (zh) 一种无需重新排序的3点wfta处理器和方法
CN102929839A (zh) 一种无需重新排序的5点wfta处理器和方法
CN102929838A (zh) 一种无需重新排序的4点wfta处理器和方法
CN102929840A (zh) 一种无需重新排序的8点wfta处理器和方法

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: 20130320