一种基于GPU计算的干涉数据快速傅里叶变换方法技术

技术编号:15095194 阅读:57 留言:0更新日期:2017-04-07 22:36
本发明专利技术了一种基于GPU计算的干涉数据快速傅里叶变换方法。首先对傅里叶变换光谱仪采集到干涉图像进行预处理,得到预处理后的二维干涉数据,根据二维干涉数据的横维像素点数创建一维索引空间,并将一维索引空间映射到GPU,计算快速傅里叶变换所需的旋转因子表,然后在GPU内部开辟多块缓存并建立流水线结构,然后将干涉数据映射到GPU的二维索引空间进行多重逆序操作,最后将干涉数据映射到GPU的二维索引空间进行多重迭代蝶形运算得到复原光谱数据。该方法能够提高光谱复原中快速傅里叶变换的效率,实现了干涉数据快速处理的通用化,适用于大规模干涉数据的处理。

A fast Fourier transform method for interferometric data based on GPU

The invention relates to a fast Fourier transform method for interferometric data based on GPU calculation. Firstly, Fu Liye transform spectrometer acquisition to preprocess the interference images obtained after pretreatment of the two-dimensional interferometric data, according to the cross dimensional 2D interference pixels data to create a one-dimensional index space, and one dimensional index space is mapped to the GPU table, calculate the rotation factor fast Fu Liye transform is required, then open up multi block cache and line the structure of GPU in the inner space and then two-dimensional index data is mapped to the GPU interference of multiple reverse operation, two dimensional index space finally interference data mapped to GPU multiple iterative butterfly operation to recover the spectral data. This method can improve the efficiency of fast Fourier transform in the spectrum restoration, and realize the fast processing of the interference data.

【技术实现步骤摘要】

本专利技术属于傅里叶变换光谱仪数据处理领域,特别是一种基于GPU计算的干涉数据快速傅里叶变换方法
技术介绍
干涉数据光谱复原基于傅里叶变换光谱学理论,傅里叶变换光谱学表明,干涉图与光谱图之间是傅里叶变换对关系,由此可通过对干涉数据进行傅里叶变换得到光谱图。目前研究和工程中为提高光谱复原效率,一般采用基于硬件实现的干涉数据处理技术,如中国科学院西安光学精密机械研究所殷世民、相里斌、周锦松等提出了一种基于FPGA的干涉式成像光谱仪实时数据处理系统研究[J](红外与毫米波学报,2007,26(4):274-278),该方法提高了光谱复原效率,但基于FPGA硬件编程实现,配置困难,不易复用。而通用GPU计算(GeneralPurposeGraphicsProcessingComputing)通过利用GPU的成百上千的计算单元做分布式计算,不仅可以提高数据处理的速率,而且计算任务的实现基于软件算法,便于通用化处理。由于在光谱复原中,干涉图数据中各像素点间关系相对独立,具备像素间并行处理的特点,因此可以将干涉图数据分配给GPU众多的计算单元做分布式FFT计算,以提高干涉图数据进行快速傅里叶变换的效率。
技术实现思路
本专利技术的目的在于提供一种基于GPU计算的干涉数据快速傅里叶变换方法,解决了传统基于硬件的实时光谱复原技术实现复杂,难以通用化的问题。实现本专利技术目的的技术解决方案为:一种基于GPU计算的干涉数据快速傅里叶变换方法,步骤如下:步骤1:对傅里叶变换光谱仪采集到干涉图像进行预处理,得到预处理后的二维干涉数据,根据二维干涉数据的横维像素点数创建一维索引空间,并将一维索引空间映射到GPU,计算快速傅里叶变换所需的旋转因子表:对于横维为L点的,结构为(n×m)×L的预处理后的二维干涉数据,n为单幅干涉图横向像素点数,m为单幅干涉图横向像素点数,L为依据实际所需光谱分辨率选定的干涉图数目,n为单幅干涉图横向像素点数,m为单幅干涉图纵向像素点数,需计算拥有L/2个元素的旋转因子表;创建并行一维索引空间NDRange(L/2,1,1),空间大小为L/2,将上述一维索引空间映射到GPU,GPU分配L/2个处理单元用于计算旋转因子,L/2个处理单元计算L/2个元素时,仅需单个处理单元计算一个元素的时间,待处理单元计算完毕,得到旋转因子表。步骤2:在GPU内部开辟t块缓存并建立流水线结构。步骤3:将二维干涉数据映射到GPU的二维索引空间进行多重逆序操作:对于结构为的二维干涉数据,k为干涉数据的分割因子,创建多重逆序二维索引空间其中X维大小为L,Y维大小为将所述多重逆序二维索引空间映射到GPU,GPU分配个处理单元对缓存中的组数据同时进行逆序操作。步骤4:将干涉数据映射到GPU的二维索引空间进行多重迭代蝶形运算,得到复原光谱数据:对于结构为的二维干涉数据,创建多重迭代蝶形运算二维索引空间其中X维大小为L/2,Y维大小为将多重迭代蝶形二维索引空间映射到GPU,GPU分配个处理单元,对缓存中的组干涉数据同时进行迭代蝶形运算,得到复原光谱数据。所述步骤1中,对干涉图像预处理方法如下:对傅里叶变换光谱仪采集到的干涉图像,进行消直流和切趾。所述步骤2中,建立流水线结构,实现方法如下:在GPU内部开辟t块缓存,t为大于0的整数,将步骤1中的结构为(n×m)×L的预处理后的二维干涉数据分解为tk个批次,k为干涉数据的分割因子,且k为大于0的整数;将分解后的结构为的各块二维干涉数据分别送入GPU中开辟的t块缓存中,单块缓存对应结构为的二维干涉数据;按此顺序操作缓存,GPU内第一块缓存读出数据时,正值第二块缓存执行数据处理,同时第三块缓存开始写入数据,以此类推,在t块缓存中形成异步操作。本专利技术与现有技术相比,其显著优点在于:(1)能够提高光谱复原中快速傅里叶变换的效率,适用于通用化处理。(2)流水线结构适用于大规模光谱数据的处理。附图说明图1为本专利技术基于GPU计算的干涉数据快速傅里叶变换方法的流程图。图2为本专利技术在GPU内部开辟t块缓存并建立流水线结构示意图。图3为本专利技术二维索引空间示意图。具体实施方式下面结合附图对本专利技术作进一步详细描述。结合图1~图3,一种基于GPU计算的干涉数据快速傅里叶变换方法,步骤如下:步骤1:对傅里叶变换光谱仪采集到干涉图像进行预处理,得到预处理后的二维干涉数据,根据二维干涉数据的横维像素点数创建一维索引空间,并将一维索引空间映射到GPU,计算快速傅里叶变换所需的旋转因子表:对傅里叶变换光谱仪采集到的干涉图像,进行消直流和切趾得到二维干涉数据,常用的消直流方法有最小二乘法、差分法、低通滤波法等方法,常用的切趾函数有三角窗、矩形窗、Happ-Genzel窗等。对于横维为L点的,结构为(n×m)×L的预处理后的二维干涉数据,n为单幅干涉图横向像素点数,m为单幅干涉图横向像素点数,L为依据实际所需光谱分辨率选定的干涉图数目,n为单幅干涉图横向像素点数,m为单幅干涉图纵向像素点数,需计算拥有L/2个元素的旋转因子表;创建并行一维索引空间NDRange(L/2,1,1),空间大小为L/2,将上述一维索引空间映射到GPU,GPU分配L/2个处理单元用于计算旋转因子,L/2个处理单元计算L/2个元素时,仅需单个处理单元计算一个元素的时间,待处理单元计算完毕,得到旋转因子表。步骤2:在GPU内部开辟t块缓存并建立流水线(overlap)结构:在GPU内部开辟t块缓存,t为大于0的整数,将步骤1中的结构为(n×m)×L的预处理后的二维干涉数据分解为tk个批次,k为干涉数据的分割因子,且k为大于0的整数;将分解后的结构为的各块二维干涉数据分别送入GPU中开辟的t块缓存中,单块缓存对应结构为的二维干涉数据;按此顺序操作缓存,GPU内第一块缓存读出数据时,正值第二块缓存执行数据处理,同时第三块缓存开始写入数据,以此类推,在t块缓存中形成异步操作,如图2所示。步骤3:将二维干涉数据映射到GPU的二维索引空间进行多重逆序操作:对于结构为的二维干涉数据,创建多重逆序二维索引空间如图3所示,其中X维大小为L,Y维大小为将所述多重逆序二维索引空间映射到GPU,GPU将分配个处理单元对缓存中的组数据同时进行逆序操作。步骤4:将干涉数据映射到GPU的二维索引空间进行多重迭代蝶形运算,得到复原光谱数据:对于结构为的二维干涉数据,创建多重迭代蝶形运算二维索引空间如图3所示,其中X维大小为L/2,Y维大小为将多重迭代蝶形二维索引空间映射到GPU,GPU将分配个处理单元,对缓存中的组干涉数据同时进行迭代蝶形运算,得到复原光谱数据。实施例1以基于Sagnac干涉成像光谱仪采样的干涉数据进行快速傅里叶变换为例,针对单幅干涉图大小512×512像素,取512幅干涉图的情况,处理步骤如下:步骤1:对傅里叶变换光谱仪采集到干涉图像进行预处理,得到预处理后本文档来自技高网...

【技术保护点】
一种基于GPU计算的干涉数据快速傅里叶变换方法,其特征在于,步骤如下:步骤1:对傅里叶变换光谱仪采集到干涉图像进行预处理,得到预处理后的二维干涉数据,根据二维干涉数据的横维像素点数创建一维索引空间,并将一维索引空间映射到GPU,计算快速傅里叶变换所需的旋转因子表:对于横维为L点的,结构为(n×m)×L的预处理后的二维干涉数据,n为单幅干涉图横向像素点数,m为单幅干涉图横向像素点数,L为依据实际所需光谱分辨率选定的干涉图数目,n为单幅干涉图横向像素点数,m为单幅干涉图纵向像素点数,需计算拥有L/2个元素的旋转因子表;创建并行一维索引空间NDRange(L/2,1,1),空间大小为L/2,将上述一维索引空间映射到GPU,GPU分配L/2个处理单元用于计算旋转因子,L/2个处理单元计算L/2个元素时,仅需单个处理单元计算一个元素的时间,待处理单元计算完毕,得到旋转因子表;步骤2:在GPU内部开辟t块缓存并建立流水线结构;步骤3:将二维干涉数据映射到GPU的二维索引空间进行多重逆序操作:对于结构为的二维干涉数据,k为干涉数据的分割因子,创建多重逆序二维索引空间其中X维大小为L,Y维大小为将所述多重逆序二维索引空间映射到GPU,GPU分配个处理单元对缓存中的组数据同时进行逆序操作;步骤4:将干涉数据映射到GPU的二维索引空间进行多重迭代蝶形运算,得到复原光谱数据:对于结构为的二维干涉数据,创建多重迭代蝶形运算二维索引空间其中X维大小为L/2,Y维大小为将多重迭代蝶形二维索引空间映射到GPU,GPU分配个处理单元,对缓存中的组干涉数据同时进行迭代蝶形运算,得到复原光谱数据。...

【技术特征摘要】
1.一种基于GPU计算的干涉数据快速傅里叶变换方法,其特征在于,步骤
如下:
步骤1:对傅里叶变换光谱仪采集到干涉图像进行预处理,得到预处理后的
二维干涉数据,根据二维干涉数据的横维像素点数创建一维索引空间,并将一维
索引空间映射到GPU,计算快速傅里叶变换所需的旋转因子表:
对于横维为L点的,结构为(n×m)×L的预处理后的二维干涉数据,n为单
幅干涉图横向像素点数,m为单幅干涉图横向像素点数,L为依据实际所需光谱
分辨率选定的干涉图数目,n为单幅干涉图横向像素点数,m为单幅干涉图纵向
像素点数,需计算拥有L/2个元素的旋转因子表;创建并行一维索引空间
NDRange(L/2,1,1),空间大小为L/2,将上述一维索引空间映射到GPU,GPU
分配L/2个处理单元用于计算旋转因子,L/2个处理单元计算L/2个元素时,仅
需单个处理单元计算一个元素的时间,待处理单元计算完毕,得到旋转因子表;
步骤2:在GPU内部开辟t块缓存并建立流水线结构;
步骤3:将二维干涉数据映射到GPU的二维索引空间进行多重逆序操作:
对于结构为的二维干涉数据,k为干涉数据的分割因子,创建
多重逆序二维索引空间其中X维大小为L,Y维大小
为将所述多重逆序二维索引空间映射到GPU,GPU分配个

【专利技术属性】
技术研发人员:李建欣王昊沈燕柏财勋
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏;32

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

1