CN103106181B - 一种大点数fft在处理器上的实现方法 - Google Patents

一种大点数fft在处理器上的实现方法 Download PDF

Info

Publication number
CN103106181B
CN103106181B CN201310034812.3A CN201310034812A CN103106181B CN 103106181 B CN103106181 B CN 103106181B CN 201310034812 A CN201310034812 A CN 201310034812A CN 103106181 B CN103106181 B CN 103106181B
Authority
CN
China
Prior art keywords
fft
processor
data
row
cache
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.)
Expired - Fee Related
Application number
CN201310034812.3A
Other languages
English (en)
Other versions
CN103106181A (zh
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 Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201310034812.3A priority Critical patent/CN103106181B/zh
Publication of CN103106181A publication Critical patent/CN103106181A/zh
Application granted granted Critical
Publication of CN103106181B publication Critical patent/CN103106181B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种大点数FFT在处理器上的实现方法,能够解决传统FFT算法在处理器上实现大点数快FFT时没有充分考虑Cache丢失对执行效率影响的问题,改进了传统Winograd算法处理速度有限的问题。该方法包括:将一维序列存储为二维矩阵;处理器先列FFT:每次从二维矩阵中读取i列数据,读取的i列数据分次处理,则处理器共读取并处理次;其中,在保证列长度的基础上,使行长度M小于或等于处理器所用Cache的容量;处理器再进行行FFT,一次一行,且采用新的旋转因子,并将结果按照列方向输出。

Description

一种大点数FFT在处理器上的实现方法
技术领域
本发明涉及一种改进型快速傅立叶变换(FFT)算法在处理器上实现大点数FFT的方法,属于信号处理领域。
背景技术
快速傅里叶变换(FFT)广泛应用于雷达、通信和图像处理等科学技术领域,这使得FFT的工程实现具有十分重要的意义。特别是,在雷达系统中高分辨大测绘带宽的合成孔径雷达的飞速发展,对信号处理系统大数据的高速实时处理提出了更高的要求,这就需要信号处理中大点数FFT的快速实现。在实际应用中,一般采用专用数字信号处理器(DSP)来实现。
TS201是美国模拟器件公司的一款高性能、高并行的静态超标量处理器。在TS201处理器中,其内部嵌入了24Mbit的嵌入式DRMA,整个DRAM划分为6个存储块,每个存储块都通过交叉连接器分别连接4套128位宽的内部总线,因此处理器能够在同一个时钟内实现对4个存储块的访问。这些交叉连接器包含预取数缓冲、读缓冲、回存缓冲和高速缓冲,其连接图1所示。TS201通过地址总线和数据总线对DRAM进行读写数据操作时,首先会将数据缓存到缓冲区(Cache)内,内核在读取数据时会先直接从Cache中读取数据,如果不能在Cache中命中数据,再从DRAM中读取数据。因此,通过Cache的预缓存作用可以提高内核对DRAM的读写效率。但是Cache的大小有限,当进行大点数FFT处理时,Cache不能容纳整个序列的数据,那么一部分在Cache中另一部分在DRAM中,将会带来读取速度较慢,以及访问错误等问题。
现有多种FFT算法在TS201上实现,例如Winograd算法。现将该算法介绍如下:设FFT变换前的序列为x(n),FFT变换后的序列为X(k):
X ( k ) = Σ n = 0 N - 1 x ( n ) W N n k , k , n = 0 , 1 , ... , N - 1 - - - ( 1 )
其中,Wn为旋转因子,Wn=e-j2π/nN为序列中元素总数,FFT变换前后序列元素数目不变。
传统的Winograd算法实现FFT的思想是将大点数的FFT尽量拆分成小点数来计算,将一维序列x(n)和X(k)分别在时域和频域映射成二维矩阵形式。以时域x(n)为例,将其拆分为L×M的二维矩阵,L为行数,M为列数,那么FFT变换后频域X(k)表示为M×L的二维矩阵。
设n1和n0分别为时域二维矩阵的行、列序号,k0和k1分别为频域二维矩阵的行、列序号,则有如下关系:
n = Mn 1 + n 0 ; k = Lk 1 + k 0 n 0 = 0 , 1 , ... , M - 1 ; n 1 = 0 , 1 , ... , L - 1 k 0 = 0 , 1 , ... , L - 1 ; k 1 = 0 , 1 , ... , M - 1 - - - ( 2 )
将(2)式代入公式(1)中得:
X ( k ) = X ( k 1 , k 0 ) = Σ n 0 = 0 M - 1 Σ n 1 = 0 L - 1 x ( Mn 1 + n 0 ) W N ( Mn 1 + n 0 ) ( Lk 1 + k 0 ) = Σ n 0 = 0 M - 1 ( { Σ n 1 = 0 L - 1 x ( n 1 , n 0 ) W L n 1 k 0 } W N n 0 k 0 ) W M n 0 k 1 - - - ( 3 )
其中,与式(1)的形式类似,相当于对一点数据进行FFT,设 X s ( n 0 ) = Σ n 1 = 0 L - 1 x ( n 1 , n 0 ) W L n 1 k 0 , Σ n 0 = 0 M - 1 ( X s ( n 0 ) · W N n 0 k 0 ) W M n 0 k 1 也与式(1)的形式类似,相当于对Xs(n0)乘以旋转因子后再进行一次FFT。
可见,由公式(3)可以得到Winograd算法实现FFT的步骤:
1)将一维序列x(n)拆分成L×M的二维矩阵序列,并转置为M×L;
2)对二维矩阵,按照行方向计算L点FFT,共处理M条线;
3)对步骤2)的变换结果乘以旋转因子
4)对步骤3)的处理结果进行转置,变换为L×M的矩阵;
5)对步骤4)的变换结果,按照列方向计算M点FFT,共处理L条线;
6)将处理结果进行转置,得到计算结果。
该Winograd算法的问题是,需要单独执行一个乘以旋转因子的步骤,并进行3次显性转置,从而引入了额外运算,因此会降低处理速度。
发明内容
有鉴于此,本发明提供了一种大点数FFT在处理器上的实现方法,能够解决传统FFT算法在处理器上实现大点数快FFT时没有充分考虑Cache丢失对执行效率影响的问题,并且通过优化矩阵行列读取方法,并进行蝶形运算重构,改进了传统Winograd算法处理速度有限的问题。
该大点数FFT在处理器上的实现方法包括如下步骤:
步骤一、将待处理的一维序列x(n)分L段存储为L×M的二维矩阵,L为列的长度,M为行的长度;设定后续步骤二中每次读取i列数据,i为正整数,则在保证的基础上,使行长度M小于或等于CacheLength;CacheLength为处理器所用Cache的容量;
步骤二、处理器进行列FFT;
处理器每次从L×M二维矩阵中读取i列数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取数据并进行列FFT,并将结果原位存回L×M二维矩阵;假设根据处理器数据宽度的限制,处理器每次处理数据量为w列,则i的取值为w的整数倍;读取的i列数据分次处理;处理器共读取次数据并进行列FFT,从而实现M次L点的列FFT;
步骤三、处理器进行行FFT;
处理器每次从步骤二处理后的L×M二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取缓存数据并进行行FFT,并将结果按照列方向输出;处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT;
本步骤的行FFT运算时第b级蝶形运算所用的旋转因子W(b,u)由下式确定:
W ( b , u ) = W P ( b ) k 0 · W Q ( b ) u
其中,WP(b)=e-j2π/P(b),WQ(b)=e-j2π/Q(b),P(b)=N/2c-b,Q(b)=M/2c-b
b表示FFT算法中蝶形运算的当前级数;
c表示FFT算法中所包含蝶形运算的总级数,c=log2(M);
u表示b级蝶形运算输出序列的序号,取值范围是u=0,1,...,Q(b)-1;
k0为当前进行FFT变换的行数据的行序号,即FFT变换后得到的频域二维矩阵的列序号;
所述处理器为TS201处理器。
有益效果:
本发明提供了一种应改进型Winograd算法处理器上实现大点数FFT的方法,与现有的FFT实现方法相比,具有以下优点:通过优化矩阵行列读写效率,来避免数据读写时Cache的频繁丢失对FFT执行效率的影响,同时采用改进型Winograd算法进行蝶形运算重构将乘旋转因子隐藏在蝶形运算中,减少了数据相乘带来的时间开销,因此,本发明方法可以显著提高了FFT的运行效率。
附图说明
图1为TS201处理器内部框图。
图2为矩阵列方向访问时的示意图。
图3为矩阵行方向访问时的示意图。
图4为本发明流程图。
图5为本发明方法与现有几种算法实现不同浮点数FFT时,执行时间的曲线对比图。
具体实施方式
本发明通过以下两个方面对现有技术进行改进:
(一)相对于传统Winograd算法中引入单独一个乘以旋转因子的步骤的问题,本发明采取重构蝶形运算将旋转因子运算隐藏在第二次FFT处理中。
(二)相对于传统Winograd算法有三次显性转置的问题,本发明改变对二维矩阵的读取顺序来实现转置,但考虑到按列读取时,行切换会带来额外时间开销,则本发明通过优化矩阵行列读写效率来避免,且行列读写时尽量充分利用Cache,从而提高Cache命中率,以提高FFT执行效率。
下面结合附图对上述两个改进点进行详细说明,并且采用TS201处理器为例。在实际中,本发明不限于采用哪种处理器。
(一)将旋转因子运算隐藏在第二次FFT处理中的方案设计。
由于FFT算法中包括多级蝶形运算,每次蝶形运算都需要乘以旋转因子,因此,可以通过重构FFT算法中的蝶形运算将第(3)步和第(5)步进行合并,只是蝶形运算所乘的旋转因子不同。新旋转因子的推导过程如下:
设:
X s ( n 0 ) = Σ n 1 = 0 L - 1 x ( n 1 , n 0 ) W L n 1 k 0 - - - ( 4 )
将式(4)代入公式(3)有:
X ( k 1 , k 0 ) = Σ n 0 = 0 M - 1 ( X s ( n 0 ) W N n 0 k 0 W M n 0 k 1 ) - - - ( 5 )
对公式(5)的变换序列按照奇偶分解,可表示为:
X ( k 1 , k 0 ) = Σ h = 0 M / 2 - 1 X S ( 2 h ) W N 2 hk 0 W M 2 hk 1 + Σ h = 0 M / 2 - 1 X S ( 2 h + 1 ) W N ( 2 h + 1 ) k 0 W M ( 2 h + 1 ) k 1 = H ( k 1 ) + H ′ ( k 1 ) W N k 0 W M k 1 - - - ( 6 )
其中:
H ( k 1 ) = Σ h = 0 M / 2 - 1 X S ( 2 h ) W N 2 hk 0 W M / 2 hk 1 H ′ ( k 1 ) = Σ h = 0 M / 2 - 1 X S ( 2 h + 1 ) W N 2 hk 0 W M / 2 hk 1 - - - ( 7 )
由以上推导可以看出:
当k1=0,1...M/2-1时:
X ( k 1 , k 0 ) = H ( k 1 ) + H ′ ( k 1 ) W N k 0 W M k 1 - - - ( 8 )
当k1=M/2+0,...,M/2+u,...M-1时:
X ( M 2 + u , k 0 ) = H ( u ) - H ′ ( u ) W N k 0 W M u - - - ( 9 )
其中,u=0,1,2...M/2-1。
通过公式(7)可以求出序列H(k1)和H'(k1)在区间(0~M/2-1)内的各个值,进而利用公式(8)和(9)得到所有的X(k1,k0)。对于序列H(k1)和H'(k1)的计算可根据前面推导过程继续分解,直到分解为两个数据参与运算为止,该推导过程与基二FFT变换相同。
由公式(8)和(9)可以看出,第b级旋转因子为
此时,u的取值为u=0,1,2...M/2-1;
继续推导,由公式(7)可知,令k1=u,代入可知
H ( μ ) = Σ h = 0 M / 2 - 1 X S ( h ) W N / 2 hk 0 W M / 2 hk 1
将变换序列按照奇偶分解
H ( μ ) = Σ l = 0 M / 4 - 1 X S ( 2 l ) W N / 2 2 lk 0 W M / 2 2 lk 1 + Σ l = 0 M / 4 - 1 X S ( 2 l + 1 ) W N / 2 ( 2 l + 1 ) k 0 W M / 2 ( 2 l + 1 ) k 1 = H ( η ) + H ′ ( η ) W N / 2 k 0 W M / 2 k 1
其中:
H ( η ) = Σ l = 0 M / 4 - 1 X S ( 2 l ) W N / 2 2 lk 0 W M / 2 2 hk 1 H ′ ( η ) = Σ l = 0 M / 4 - 1 X S ( 2 l + 1 ) W N / 2 2 lk 0 W M / 2 2 lk 1
由此可以看出,第(b-1)级旋转因子为
此时u的取值为(0~M/4-1);
以此类推,直到两个数据参与蝶形运算,设第b级蝶形计算所乘的旋转因子,那么该旋转因子可表示为:
W ( b , u ) = W P ( b ) k 0 W Q ( b ) u - - - ( 10 )
其中,u=0,1,...,Q(b)-1,Q(b)=M/2c-b,P(b)=N/2c-b,c=log2(M)。
W(b,u)表示第b级蝶形计算所乘的旋转因子;
b表示蝶形运算的级数;
c表示FFT算法中所包含蝶形运算的总级数;
u表示b级蝶形运算时输出序列的序号;第b级蝶形运算时u会取遍u=0,1,...,Q(b)-1。
k0为当前进行行FFT变换的行数据的行序号,即FFT变换后得到的频域二维矩阵的列序号。
可见,通过重构第二次FFT中蝶形运算所乘的旋转因子W(b,u),从而将旋转因子隐藏在新的蝶形运算中,从而解决了引入额外运算的问题。
(二)解决三次显性转置的方案设计。
为了解决显性转置对处理效率的影响,可以采用变换行列号方式实现对二维矩阵的访问。具体来说,第一步,将一维序列x(n)拆分为L×M的二维矩阵,在不进行转置的情况下,处理器按列从L×M二维矩阵中读取列数据,通过Cache的缓存放入内存的指定空间,再指定空间读取列数据并进行列FFT,并将结果原位存回L×M二维矩阵。第二步,处理器按照行方向进行L个M点的行FFT,行FFT运算中各级蝶形运算所用的旋转因子由公式(10)确定,Cache的使用方法与第一步相同。
从以上处理可以看出,并没有进行显性转置操作。但是其带来的问题是,读取一列数据时,需要每读一个数据均进行行切换,而行切换需要切换时间。读取一行数据时,行数据不能太长,如果超出Cache的容量,则会出现因无法从Cache命中数据带来的各种问题。基于此,对二维矩阵的访问优化为如下方案:
对于列处理:
为了尽量少的行切换,可以在第一步中一次读取几列数据,读取列数的多少以及每列含数据量大小均需要根据Cache的容纳量计算,以实现对Cache的充分利用。为了实现高效并行处理和减少Cache丢失,必须满足两个条件:
(1)一次读取i列数据,如图2所示。考虑到处理器数据宽度的限制,每次可以处理w列数据,则读取的数据列数i需要是w的整数倍,本实施例中,设w=4,则i为4的整数倍。处理器一次的处理量w和该处理器总线带宽有关系,根据处理器每次可以读取数据的长度来决定w的值。
(2)总和考虑i和列长度L,使得i×L小于CacheLength,但尽可能贴近CacheLength,那么CacheLength为Cache的容量。这样,可以保证每打开一个页面(page)尽可能多读数据到缓存,以减少开/关页面引起的时延。
图2右图示出了从二维矩阵中读取i列数据的示意图,图2左图示出了i列数据在Cache中的分布。
对于行处理:
在第二步中每次读取一行进行FFT时,为了充分利用Cache,且行方向的点数在划分时也需要考虑Cache的容纳量。只有当读一行的数据尽可能填充Cache空间才能充分利用Cache的优势,协助数据访问。图3右图示出了从二维矩阵中读取一行数据的示意图,图3左图示出了该行数据在Cache中的分布。
可见,由于经过拆分后列方向数据访问跳变步长较小,处理数据缓存在Cache中,因此通过行列号变换方式访问矩阵,仅在每列处理的第一级和最后一级存在Cache丢失,后续处理中因数据位于缓存中而不会有额外开销。同时采取变换行列号的方法属于原位操作,可省去额外的转置空间,故采用该方法访问二维矩阵,要优于直接使用三次显性转置。然而,直接通过行列号进行访问矩阵数据时仍会因行列拆分不同引起Cache频繁丢失,这时就需要限制行列的拆分规则来发挥行列读取对Cache的利用率。
根据以上分析,本发明改进型FFT算法在TS201上实现的具体流程包括以下步骤,参见图4:
步骤一、将待处理的一维序列x(n)拆分为L段,存储L×M的二维矩阵,L为列的长度,M为行的长度;设定后续步骤中每次读取i列数据,i为正整数,且i为w的倍数,w为处理器每次处理数据的列数值;在保证的基础上,使行长度M小于或等于TS201Cache大小,以M=CacheLength为最佳。
步骤二、处理器按照列方向进行列FFT处理。
在处理过程中,处理器每次从L×M二维矩阵中读取i列的数据,通过Cache的缓存放入内存的指定空间,该指定空间是为计算中间量分配的存储空间;然后,处理器从指定空间读取数据并进行列FFT,并将结果原位存回L×M二维矩阵。由于(i×L)小于CacheLength,因此i×L点的数据均存储在Cache中,处理器每次从指定空间读取所需数据时,都能从Cache中命中。
由于处理器数据总线宽度有限,因此处理器在每次处理i列数据时,分多次处理,假设每次处理4列,则需处理次。处理器共读取次数据并进行FFT,从而实现M次L点的列FFT;
步骤三、对步骤二的结果,处理器按照行方向进行行FFT处理。
在处理过程中,处理器每次从L×M二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间;然后处理器从指定空间读取缓存数据并进行行FFT,并将结果按照列方向顺序输出到内存中用于存储FFT变换结果的位置。处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT。同理,由于M小于或等于CacheLength,因此M点数据均存储在Cache中,处理器每次从指定空间读取所需数据时,都能从Cache中命中。
并且,本步骤的行FFT所用的旋转因子由公式(10)决定。
至此,本流程结束。
对不同浮点数FFT利用现有方法和本实施例中的方法得到的执行时间对比曲线,如图5所示;相比于传统的Winograd算法的执行效率提高了至少30%,比SingLeton算法的执行效率也提高了近15%。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种大点数FFT在处理器上的实现方法,其特征在于,包括:
步骤一、设FFT变换前的序列为x(n),将待处理的一维序列x(n)分L段存储为L×M的二维矩阵,n=0,1,…,N-1,L为列的长度,M为行的长度,N为序列中元素总数;设定后续步骤二中每次读取i列数据,i为正整数,则在保证的基础上,使行长度M小于或等于CacheLength;CacheLength为处理器所用Cache的容量;
步骤二、处理器进行列FFT;
处理器每次从L×M二维矩阵中读取i列数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取数据并进行列FFT,并将结果原位存回L×M二维矩阵;假设根据处理器数据宽度的限制,处理器每次处理数据量为w列,则i的取值为w的整数倍;读取的i列数据分次处理;处理器共读取次数据并进行列FFT,从而实现M次L点的列FFT;
步骤三、处理器进行行FFT;
处理器每次从步骤二处理后的L×M二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取缓存数据并进行行FFT,并将结果按照列方向输出;处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT;
本步骤的行FFT运算时第b级蝶形运算所用的旋转因子W(b,u)由下式确定:
W ( b , u ) = W p ( b ) k 0 · W Q ( b ) u
其中,WP(b)=e-j2π/P(b),WQ(b)=e-j2π/Q(b),P(b)=N/2c-b,Q(b)=M/2c-b
b表示FFT算法中蝶形运算的当前级数;
c表示FFT算法中所包含蝶形运算的总级数,c=log2(M);
u表示b级蝶形运算输出序列的序号,取值范围是u=0,1,...,Q(b)-1;
k0为当前进行FFT变换的行数据的行序号;
所述处理器为TS201处理器。
CN201310034812.3A 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法 Expired - Fee Related CN103106181B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310034812.3A CN103106181B (zh) 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310034812.3A CN103106181B (zh) 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法

Publications (2)

Publication Number Publication Date
CN103106181A CN103106181A (zh) 2013-05-15
CN103106181B true CN103106181B (zh) 2016-03-02

Family

ID=48314048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310034812.3A Expired - Fee Related CN103106181B (zh) 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法

Country Status (1)

Country Link
CN (1) CN103106181B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615582B (zh) * 2015-02-06 2018-02-02 中国人民解放军国防科学技术大学 面向gpdsp的大点数一维fft向量化计算的方法
CN108229654B (zh) * 2016-12-14 2020-08-14 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
CN106649199A (zh) * 2016-12-23 2017-05-10 东华大学 一种基于smp的足球机器人超大点数fft算法
CN114090951A (zh) * 2021-11-26 2022-02-25 北京睿芯众核科技有限公司 一种面向数据流处理器芯片的傅里叶变化优化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013811A (ja) * 2002-06-11 2004-01-15 Sharp Corp 高速フーリエ変換のための回転因子表およびそれを用いた高速フーリエ変換装置
CN101504637A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种点数可变实时fft处理芯片
CN101930425A (zh) * 2009-06-24 2010-12-29 华为技术有限公司 信号处理方法、数据处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013811A (ja) * 2002-06-11 2004-01-15 Sharp Corp 高速フーリエ変換のための回転因子表およびそれを用いた高速フーリエ変換装置
CN101504637A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种点数可变实时fft处理芯片
CN101930425A (zh) * 2009-06-24 2010-12-29 华为技术有限公司 信号处理方法、数据处理方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Parallel Implementation of Fixed-Point FFTs on TigerSHARC Processors;Boris Lerner;《Analog Devices,Engineer-to-Engineer Note》;20050203;1-12 *
Writing Efficient Floating-Point FFTs for ADSP-TS201 TigerSHARC;Boris Lerner;《Analog Devices(Engineer-to-Engineer Note)》;20040304;1-16 *
二维级联流水结构大点数FFT运算器实现研究;王晓君 等;《信号与信息处理》;20101105;第40卷(第11期);19-22 *
定点FFT在TS201上的高效实现;李欣 等;《北京理工大学学报》;20100115;88-91 *

Also Published As

Publication number Publication date
CN103106181A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
CN103106181B (zh) 一种大点数fft在处理器上的实现方法
CN110765709B (zh) 一种基于fpga的基2-2快速傅里叶变换硬件设计方法
US8880575B2 (en) Fast fourier transform using a small capacity memory
US9317481B2 (en) Data access method and device for parallel FFT computation
US20090063529A1 (en) Method and structure for fast in-place transformation of standard full and packed matrix data formats
CN101847986A (zh) 一种实现fft/ifft变换的电路及方法
CN111723336B (zh) 一种采用循环迭代方式的基于cholesky分解的任意阶矩阵求逆硬件加速系统
CN104484234A (zh) 一种基于gpu的多波前潮流计算方法和系统
US20140089369A1 (en) Multi-granularity parallel fft computation device
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN109446478B (zh) 一种基于迭代和可重构方式的复协方差矩阵计算系统
US9268744B2 (en) Parallel bit reversal devices and methods
US6728742B1 (en) Data storage patterns for fast fourier transforms
US9317480B2 (en) Method and apparatus for reduced memory footprint fast fourier transforms
CN109669666B (zh) 乘累加处理器
CN105373497A (zh) 基于dsp芯片的矩阵转置装置
US20230297337A1 (en) System and method for accelerating training of deep learning networks
Farzaneh et al. An efficient storage format for large sparse matrices
CN101764778B (zh) 一种基带处理器和基带处理方法
Bakos et al. Exploiting matrix symmetry to improve FPGA-accelerated conjugate gradient
CN112947854B (zh) 一种基于双通道ddr3的sar数据存储和访问方法及装置
CN104615582A (zh) 面向gpdsp的大点数一维fft向量化计算的方法
CN108872990B (zh) 合成孔径雷达实时成像转置处理方法
CN110889259A (zh) 针对排列的块对角权重矩阵的稀疏矩阵向量乘法计算单元
CN112953549B (zh) 一种稀疏矩阵的存储处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160302

Termination date: 20170129

CF01 Termination of patent right due to non-payment of annual fee