一种基于CUDA的多体制信号频率快速捕获实现方法技术

技术编号:10738030 阅读:141 留言:0更新日期:2014-12-10 13:04
一种基于CUDA的多体制信号频率快速捕获实现方法,其特点在于:基于高性能PC,利用CUDA架构,以并行的方式实现多体制信号频率的快速捕获;实现步骤包括:设置多普勒及多普勒变化率分段,确定各GPU内核函数的线程块数目和每个线程块中的线程数目,将信号数据读入GPU卡全局存储空间,启动下变频和积分模块,进行并行FFT运算,以并行归约方式查找最大值谱线及对应的多普勒变化率分段和多普勒分段,计算载波频偏和多普勒变化率估值完成捕获。本发明专利技术使信号频率快速捕获算法符合CUDA架构和GPU工作特点,能够充分发挥GPU并行计算能力,同时适合多种体制的信号,有效提高捕获速度且易于实现。

【技术实现步骤摘要】
一种基于CUDA的多体制信号频率快速捕获实现方法
本专利技术涉及一种信号频率快速捕获实现方法,特别是一种基于CUDA的多体制信号频率快速捕获方法。
技术介绍
信号的快速捕获是测控通信的关键技术之一,随着深空探测技术的发展,信号捕获技术的难度和复杂度大大增加,当信号极其微弱且多普勒动态范围大、变化率高时,信号捕获一般采用二维FFT捕获方法,即首先对多普勒分段,再在每个多普勒频点对多普勒变化率分段,并在每个分段上进行相关、积分和FFT运算,查找最大谱线,这使得信号捕获过程的运算量呈级数增长。现有的研究中一般采用高性能FPGA来实现这种二维FFT信号频率快速捕获算法,这种方式需要开发专门的硬件板卡,实现复杂,且FPGA的资源有限,一般一次只能实现一种体制信号的捕获,通用性差、可扩展性差。近年来,随着商用高性能计算机系统的普及,基于现代高性能PC或服务器平台的信号处理技术成为新的研究热点,并且,统一计算设备架构(ComputerUnifiedDeviceArchitecture,CUDA)开启了使用GPU强大计算能力做通用计算的大门,GPU具有强大的并行计算能力,如果能够通过CUDA架构在GPU上实现复杂的二维FFT信号快速捕获算法,就能够大大提高信号捕获的速度,同时适应多种体制,实现手段简单,可扩展性强。
技术实现思路
本专利技术的技术解决问题是:克服现有技术的不足之处,提供了种基于CUDA的多体制信号频率快速捕获方法,以高性能PC为平台,基于CUDA架构,以并行的方式实现多体制信号频率的快速捕获;本专利技术使信号频率快速捕获算法符合CUDA架构和GPU工作特点,能够充分发挥GPU并行计算能力,同时适合多种体制的信号,有效提高了捕获速度且易于实现。本专利技术的技术解决方案是:一种基于CUDA的多体制信号频率快速捕获方法,步骤如下:(1)CPU通过CUDA架构选择GPU协处理器并初始化CPU和GPU的运行环境,同时对运行参数进行初始化设置,所述运行参数包括:信号数据文件路径、信号码速率、信号采样频率、信号载波频率初始值、信号多普勒范围、信号多普勒变化率范围、信号的FFT分析点数和信号体制;(2)CPU根据步骤(1)中设置的信号数据文件路径将信号数据从数据文件读入CPU内存中;(3)CPU根据步骤(1)中设置的信号码速率确定信号的FFT采样频率和信号的FFT分析带宽,然后根据信号的FFT采样频率计算对步骤(1)中设置的信号多普勒范围进行分段的步进值,进而确定多普勒分段数,根据信号的FFT分析带宽计算对步骤(1)中设置的信号多普勒变化率范围进行分段的步进值,进而确定多普勒变化率分段数,最后根据步骤(1)中设置的信号采样频率和本步骤获得的信号FFT采样频率计算信号的积分长度;(4)CPU分配GPU全局存储空间,并初始化已分配的GPU全局存储空间;(5)CPU根据步骤(3)中获得的信号的积分长度设置GPU中在每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的线程块数目和每个线程块中的线程数目;(6)CPU根据步骤(3)中获得的多普勒变化率分段数和步骤(1)中设置的信号FFT分析点数设置并行一维FFT运算的参数,所述并行一维FFT运算的参数包括并行的一维FFT运算的个数和每个一维FFT运算的FFT分析点数;(7)CPU根据步骤(3)获得的多普勒变化率分段数和步骤(1)中设置的信号FFT分析点数设置GPU对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的线程块数目和每个线程块中的线程数目,所述二维最大值查找的结果为一个维度与多普勒变化率分段数相同的一维数组,对所有多普勒分段进行二维最大值查找的结果为一个二维数组,该数组的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数;(8)CPU根据步骤(3)获得的多普勒变化率分段数和多普勒分段数设置GPU对步骤(7)中所述的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数的二维数组进行二维最大值查找的线程块数目和每个线程块中的线程数目,所述二维最大值查找的结果为一个维度与多普勒分段数相同的一维数组;(9)CPU根据步骤(3)获得的多普勒分段数设置GPU对步骤(8)所述的维度与多普勒分段数相同的一维数组进行一维最大值查找的线程块数目和每个线程块中的线程数目;(10)CPU将步骤(2)中读入到CPU内存中的信号数据从CPU内存拷贝至步骤(4)确定的GPU全局存储空间中;(11)GPU利用步骤(5)中确定的在每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的线程块数目和每个线程块中的线程数目,以并行的方式完成对步骤(10)读入到GPU全局存储空间中的信号数据的下变频处理,然后以归约算法进行并行求和,并对并行求和后的结果进行鉴相处理,将鉴相处理结果写回步骤(4)确定的GPU全局存储空间中,所述每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的结果为一个二维数组,该数组的一个维度为多普勒变化率分段数,另一个维度为信号的FFT分析点数;(12)GPU利用步骤(6)中确定的并行一维FFT运算的参数,对步骤(11)中的处理结果进行并行一维FFT运算,并将结果写回步骤(4)确定的GPU全局存储空间,所述并行一维FFT运算结果为一个二维数组,该数组的一个维度为多普勒变化率分段数,另一个维度为信号的FFT分析点数;(13)GPU根据步骤(7)中确定的对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程块及多个线程并行的方式完成对步骤(12)的并行一维FFT运算结果分别进行取模获得FFT模值,并分别对FFT模值以归约算法并行查找最大值和最大值对应的FFT点号,并将获得的结果写回步骤(4)确定的GPU全局存储空间,所述对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的结果为一个维度与多普勒变化率分段数相同的一维数组;(14)GPU循环进行步骤(11)至步骤(13),循环次数为多普勒分段数,获得对所有多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的结果,所述结果为一个二维数组,该数组的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数;(15)GPU根据步骤(8)中确定的对步骤(14)获得的二维数组进行二维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程块及多个线程并行的方式完成对步骤(14)获得的二维数组分别以归约算法并行查找FFT模值在每一个多普勒分段下所有多普勒变化率范围内的最大值和对应的多普勒变化率分段号,并将获得的结果写回步骤(4)确定的GPU全局存储空间,所述对步骤(14)获得的二维数组进行二维最大值查找的结果为一个维度与多普勒分段数相同的一维数组;(16)GPU根据步骤(9)中确定的对步骤(15)获得的维度与多普勒分段数相同的一维数组进行一维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程并行的方式完成对步骤(15)获得的一维数组以归约算法并行查找FFT模值在所有多普勒分段中的最大值和对应的最大多普勒分段号,并将结果写回步骤(4)确定的GPU全局存储空间;(17)CPU将步骤(16)中获得的FFT模值在所有多本文档来自技高网...
一种基于CUDA的多体制信号频率快速捕获实现方法

【技术保护点】
一种基于CUDA的多体制信号频率快速捕获方法,其特征在于步骤如下:(1)CPU通过CUDA架构选择GPU协处理器并初始化CPU和GPU的运行环境,同时对运行参数进行初始化设置,所述运行参数包括:信号数据文件路径、信号码速率、信号采样频率、信号载波频率初始值、信号多普勒范围、信号多普勒变化率范围、信号的FFT分析点数和信号体制;(2)CPU根据步骤(1)中设置的信号数据文件路径将信号数据从数据文件读入CPU内存中;(3)CPU根据步骤(1)中设置的信号码速率确定信号的FFT采样频率和信号的FFT分析带宽,然后根据信号的FFT采样频率计算对步骤(1)中设置的信号多普勒范围进行分段的步进值,进而确定多普勒分段数,根据信号的FFT分析带宽计算对步骤(1)中设置的信号多普勒变化率范围进行分段的步进值,进而确定多普勒变化率分段数,最后根据步骤(1)中设置的信号采样频率和本步骤获得的信号FFT采样频率计算信号的积分长度;(4)CPU分配GPU全局存储空间,并初始化已分配的GPU全局存储空间;(5)CPU根据步骤(3)中获得的信号的积分长度设置GPU中在每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的线程块数目和每个线程块中的线程数目;(6)CPU根据步骤(3)中获得的多普勒变化率分段数和步骤(1)中设置的信号FFT分析点数设置并行一维FFT运算的参数,所述并行一维FFT运算的参数包括并行的一维FFT运算的个数和每个一维FFT运算的FFT分析点数;(7)CPU根据步骤(3)获得的多普勒变化率分段数和步骤(1)中设置的信号FFT分析点数设置GPU对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的线程块数目和每个线程块中的线程数目,所述二维最大值查找的结果为一个维度与多普勒变化率分段数相同的一维数组,对所有多普勒分段进行二维最大值查找的结果为一个二维数组,该数组的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数;(8)CPU根据步骤(3)获得的多普勒变化率分段数和多普勒分段数设置GPU对步骤(7)中所述的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数的二维数组进行二维最大值查找的线程块数目和每个线程块中的线程数目,所述二维最大值查找的结果为一个维度与多普勒分段数相同的一维数组;(9)CPU根据步骤(3)获得的多普勒分段数设置GPU对步骤(8)所述的维度与多普勒分段数相同的一维数组进行一维最大值查找的线程块数目和每个线程块中的线程数目;(10)CPU将步骤(2)中读入到CPU内存中的信号数据从CPU内存拷贝至步骤(4)确定的GPU全局存储空间中;(11)GPU利用步骤(5)中确定的在每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的线程块数目和每个线程块中的线程数目,以并行的方式完成对步骤(10)读入到GPU全局存储空间中的信号数据的下变频处理,然后以归约算法进行并行求和,并对并行求和后的结果进行鉴相处理,将鉴相处理结果写回步骤(4)确定的GPU全局存储空间中,所述每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的结果为一个二维数组,该数组的一个维度为多普勒变化率分段数,另一个维度为信号的FFT分析点数;(12)GPU利用步骤(6)中确定的并行一维FFT运算的参数,对步骤(11)中的处理结果进行并行一维FFT运算,并将结果写回步骤(4)确定的GPU全局存储空间,所述并行一维FFT运算结果为一个二维数组,该数组的一个维度为多普勒变化率分段数,另一个维度为信号的FFT分析点数;(13)GPU根据步骤(7)中确定的对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程块及多个线程并行的方式完成对步骤(12)的并行一维FFT运算结果分别进行取模获得FFT模值,并分别对FFT模值以归约算法并行查找最大值和最大值对应的FFT点号,并将获得的结果写回步骤(4)确定的GPU全局存储空间,所述对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的结果为一个维度与多普勒变化率分段数相同的一维数组;(14)GPU循环进行步骤(11)至步骤(13),循环次数为多普勒分段数,获得对所有多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的结果,所述结果为一个二维数组,该数组的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数;(15)GPU根据步骤(8)中确定的对步骤(14)获得的二维数组进行二维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程块及多个线程并行的方式完成对步骤(14)获得的二维数组分别以归约算法并行查找FFT模值在每一个多普勒分段下所有多普勒变化率范围内的最大值和对应的多普勒变化率...

【技术特征摘要】
1.一种基于CUDA的多体制信号频率快速捕获实现方法,其特征在于步骤如下:(1)CPU通过CUDA架构选择GPU协处理器并初始化CPU和GPU的运行环境,同时对运行参数进行初始化设置,所述运行参数包括:信号数据文件路径、信号码速率、信号采样频率、信号载波频率初始值、信号多普勒范围、信号多普勒变化率范围、信号的FFT分析点数和信号体制;所述CUDA表示统一计算设备架构;(2)CPU根据步骤(1)中设置的信号数据文件路径将信号数据从数据文件读入CPU内存中;(3)CPU根据步骤(1)中设置的信号码速率确定信号的FFT采样频率和信号的FFT分析带宽,然后根据信号的FFT采样频率计算对步骤(1)中设置的信号多普勒范围进行分段的步进值,进而确定多普勒分段数,根据信号的FFT分析带宽计算对步骤(1)中设置的信号多普勒变化率范围进行分段的步进值,进而确定多普勒变化率分段数,最后根据步骤(1)中设置的信号采样频率和本步骤获得的信号FFT采样频率计算信号的积分长度;(4)CPU分配GPU全局存储空间,并初始化已分配的GPU全局存储空间;(5)CPU根据步骤(3)中获得的信号的积分长度设置GPU中在每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的线程块数目和每个线程块中的线程数目;(6)CPU根据步骤(3)中获得的多普勒变化率分段数和步骤(1)中设置的信号FFT分析点数设置并行一维FFT运算的参数,所述并行一维FFT运算的参数包括并行的一维FFT运算的个数和每个一维FFT运算的FFT分析点数;(7)CPU根据步骤(3)获得的多普勒变化率分段数和步骤(1)中设置的信号FFT分析点数设置GPU对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的线程块数目和每个线程块中的线程数目,所述二维最大值查找的结果为一个维度与多普勒变化率分段数相同的一维数组,对所有多普勒分段进行二维最大值查找的结果为一个二维数组,该数组的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数;(8)CPU根据步骤(3)获得的多普勒变化率分段数和多普勒分段数设置GPU对步骤(7)中所述的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数的二维数组进行二维最大值查找的线程块数目和每个线程块中的线程数目,所述二维最大值查找的结果为一个维度与多普勒分段数相同的一维数组;(9)CPU根据步骤(3)获得的多普勒分段数设置GPU对步骤(8)所述的维度与多普勒分段数相同的一维数组进行一维最大值查找的线程块数目和每个线程块中的线程数目;(10)CPU将步骤(2)中读入到CPU内存中的信号数据从CPU内存拷贝至步骤(4)确定的GPU全局存储空间中;(11)GPU利用步骤(5)中确定的在每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的线程块数目和每个线程块中的线程数目,以并行的方式完成对步骤(10)读入到GPU全局存储空间中的信号数据的下变频处理,然后以归约算法进行并行求和,并对并行求和后的结果进行鉴相处理,将鉴相处理结果写回步骤(4)确定的GPU全局存储空间中,所述每个多普勒分段下所有多普勒变化率分段对信号进行下变频和积分处理的结果为一个二维数组,该数组的一个维度为多普勒变化率分段数,另一个维度为信号的FFT分析点数;(12)GPU利用步骤(6)中确定的并行一维FFT运算的参数,对步骤(11)中的处理结果进行并行一维FFT运算,并将结果写回步骤(4)确定的GPU全局存储空间,所述并行一维FFT运算结果为一个二维数组,该数组的一个维度为多普勒变化率分段数,另一个维度为信号的FFT分析点数;(13)GPU根据步骤(7)中确定的对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程块及多个线程并行的方式完成对步骤(12)的并行一维FFT运算结果分别进行取模获得FFT模值,并分别对FFT模值以归约算法并行查找最大值和最大值对应的FFT点号,并将获得的结果写回步骤(4)确定的GPU全局存储空间,所述对每个多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的结果为一个维度与多普勒变化率分段数相同的一维数组;(14)GPU循环进行步骤(11)至步骤(13),循环次数为多普勒分段数,获得对所有多普勒分段下所有多普勒变化率分段的FFT模值进行二维最大值查找的结果,所述结果为一个二维数组,该数组的一个维度为多普勒分段数,另一个维度为多普勒变化率分段数;(15)GPU根据步骤(8)中确定的对步骤(14)获得的二维数组进行二维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程块及多个线程并行的方式完成对步骤(14)获得的二维数组分别以归约算法并行查找FFT模值在每一个多普勒分段下所有多普勒变化率范围内的最大值和对应的多普勒变化率分段号,并将获得的结果写回步骤(4)确定的GPU全局存储空间,所述对步骤(14)获得的二维数组进行二维最大值查找的结果为一个维度与多普勒分段数相同的一维数组;(16)GPU根据步骤(9)中确定的对步骤(15)获得的维度与多普勒分段数相同的一维数组进行一维最大值查找的线程块数目和每个线程块中的线程数目,以多个线程并行的方式完成对步骤(15)获得的一维数组以归约算法并行查找FFT模值在所有多普勒分段中的最大值和对应的最大多普勒分段号,并将结果写回步骤(4)确定的GPU全局存储空间;(17)CPU将步骤(16)中获得的FFT模值在所有多普勒分段中的最大值及其对应的多普勒分段号、所述FFT模值在所有多普勒分段中的最大值在步骤(14)获得的对应的FFT点号和在步骤(15)获得的对应的多普勒变化率分段号从GPU全局存储空间中拷贝回CPU内存,并计算载波频偏和多普勒...

【专利技术属性】
技术研发人员:陈蓉王静温
申请(专利权)人:北京遥测技术研究所航天长征火箭技术有限公司
类型:发明
国别省市:北京;11

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

1