一种大点数FFT在处理器上的实现方法技术

技术编号:8705201 阅读:220 留言:0更新日期:2013-05-16 19:25
本发明专利技术公开了一种大点数FFT在处理器上的实现方法,能够解决传统FFT算法在处理器上实现大点数快FFT时没有充分考虑Cache丢失对执行效率影响的问题,改进了传统Winograd算法处理速度有限的问题。该方法包括:将一维序列存储为二维矩阵;处理器先列FFT:每次从二维矩阵中读取i列数据,读取的i列数据分次处理,则处理器共读取并处理次;其中,在保证列长度的基础上,使行长度M小于或等于处理器所用Cache的容量;处理器再进行行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):权利要求1.一种大点数FFT在处理器上的实现方法,其特征在于,包括: 步骤一、将待处理的一维序列x(n)分L段存储为LXM的二维矩阵,L为列的长度,M为行的长度;设定后续步骤二中每次读取i列数据,i为正整数,则在保证Z ^ cacheYngth的基础上,使行长度M小于或等于CacheLength ;CacheLength为处理器所用Cache的容量; 步骤二、处理器进行列FFT ; 处理器每次从LXM 二维矩阵中读取i列数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取数据并进行列FFT,并将结果原位存回LXM 二维矩阵;假设根据处理器数据宽度的限制,处理器每次处理数据量为w列,则i的取值为w的整数倍;读取的i列数据分I次处理;处理器共读取I次数据并进行列FFT,从而实现M次L点的列FFT ; 步骤三、处理器进行行FFT ; 处理器每次从步骤二处理后的L X M 二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取缓存数据并进行行FFT,并将结果按照列方向输出;处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT ; 本步骤的行FFT运算时第b级蝶形运算所用的旋转因子W(b,u)由下式确定:W(b,u) = W^(b)-W^其中,Wn=e~2 n,P(b) = N/2c_b, Q(b) = M/2c_b ; b表示FFT算法中蝶形运算的当前级数;` c表示FFT算法中所包含蝶形运算的总级数,c = 1g2 (M); U表示b级蝶形运算输出序列的序号,取值范围是u = 0,1,...,Q(b)-1 ; k0为当前进行FFT变换的行数据的行序号。全文摘要本专利技术公开了一种大点数FFT在处理器上的实现方法,能够解决传统FFT算法在处理器上实现大点数快FFT时没有充分考虑Cache丢失对执行效率影响的问题,改进了传统Winograd算法处理速度有限的问题。该方法包括将一维序列存储为二维矩阵;处理器先列FFT每次从二维矩阵中读取i列数据,读取的i列数据分次处理,则处理器共读取并处理次;其中,在保证列长度的基础上,使行长度M小于或等于处理器所用Cache的容量;处理器再进行行FFT,一次一行,且采用新的旋转因子,并将结果按照列方向输出。文档编号G06F17/14GK103106181SQ20131003481公开日2013年5月15日 申请日期2013年1月29日 优先权日2013年1月29日专利技术者高立宁, 刘峰, 马潇, 刘腾飞 申请人:北京理工大学本文档来自技高网...

【技术保护点】
一种大点数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 其中,Wn=e‑j2π/n,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变换的行数据的行序号。FDA00002790658600011.jpg,FDA00002790658600012.jpg,FDA00002790658600013.jpg...

【技术特征摘要】

【专利技术属性】
技术研发人员:高立宁刘峰马潇刘腾飞
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1