System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于声学数据处理,具体涉及一种基于gpu的互谱跟踪方法。
技术介绍
1、在目前的cpu开发中,互谱法跟踪采用多核并行计算的方式,在以dsp平台为基础的cpu实现中,主要过程包括:
2、1、预存变量计算:根据跟踪波束方位信息、参与跟踪波束的阵元坐标信息,预先存储所有跟踪波束中参与波束形成阵元的声程差信息;
3、2、数据接收及整理:采集系统将采集后的数字化阵元信号通过网络传输到cpu端,数据接收线程完成数据接收及整理后将数据转发至各个核的跟踪处理线程;
4、3、相位信息计算:每个线程根据当前线程处理的跟踪目标方位,推算跟踪波束信息、阵元间声程差信息,同时参考传感器给出的实时声速信息,继而完成跟踪波束工作扇面内各阵元工作频带内各频点相位信息的计算(波束工作扇面是指参与该方向波束形成的所有阵元与声中心连线构成的二维空间);
5、4、分裂波束形成及互谱处理:根据推算的跟踪波束信息和工作扇面内各阵元的相位信息,分别对扇面覆盖的左、右扇面阵元实施频域波束形成处理,得到每个目标当前跟踪方位的左右分裂波束数据,通过左右互谱对跟踪方位做跟踪补偿修正;
6、5、左右分裂波束求和及ifft处理:对左右分裂波束求和做合波束,求和结果做ifft处理获得跟踪波束时域信号,用于后续demon/lofar谱分析等特征提取。
7、随着gpu并行计算性能的大幅提升,为以cpu为代表的传统硬件平台在做并行算法的实现时其计算效率不尽如人意,传统硬件平台逐渐跟不上日益增加的数据处理规模,基于
8、在此背景需求下,有必要提供一种基于gpu开发的互谱跟踪处理的实现方法。
技术实现思路
1、针对现有技术的不足,本专利技术提出了一种基于gpu的互谱跟踪方法,具有计算效率高、实时性好的优点,相较之前嵌入式开发平台只利用cpu计算具有显著的优势。
2、本专利技术的技术方案为:
3、本专利技术提供的一种基于gpu的互谱跟踪方法,包括如下步骤:
4、步骤s1、在跟踪处理开始之前通过cpu和gpu推算出跟踪互谱计算中所有跟踪俯仰和波束角度需要的跟踪信息,并预先存储到cpu中;
5、步骤s2、将接收到的频域阵元数据从cpu中拷贝到gpu中,同时根据当前跟踪目标的俯仰角和波束信息,整理出所有跟踪目标波束扇面覆盖的阵元编号并拷贝到gpu中;
6、步骤s3、计算当前每个跟踪目标所在跟踪波束对应扇面的阵元的相移信息;
7、步骤s4、根据收到的阵元数据、每个跟踪目标的阵元编号信息和阵元对应的相移信息,通过自定义核函数在gpu中做跟踪波束形成,每个目标都得到一个左扇面波束形成结果和右扇面波束形成结果,将左右波束数据拷贝到cpu中,做互谱计算得到补偿角度,在输入跟踪角度基础上补偿得到跟踪角度结果;
8、步骤s5、对每个跟踪目标左右波束分别做合波束,然后利用cufft库函数做逆傅里叶变换得到跟踪波束的时域数据。
9、进一步地,所述步骤s1中,预先推算跟踪中所有俯仰角和波束互谱计算时需要的信息,在程序初始化阶段,通过gpu核函数得到跟踪互谱计算需要的信息,预先存储到cpu和gpu中,具体为:
10、步骤s101:在cpu中计算各个俯仰角各个波束参与波束形成的阵元编号信息,以当前波束角度为基准,且在一定开角扇面范围内覆盖到的阵元作为此跟踪波束参与计算的阵元,扇面分为左扇面和右扇面,两扇面以波束对应角度方向为分界线,左右扇面内阵元个数相等,计算得到的阵元信息存入cpu;
11、步骤s102:在gpu中计算各个俯仰角各个波束参与跟踪波束计算的阵元对应的声程差信息;申请gpu核函数线程分布为:网格内线程块分布为bs,fy(波束数,俯仰角维度),写为dim3 grid(bs,fy),每个线程块中线程为jys_pick(跟踪扇面最大阵元数),写为dim3block(jys_pick),这种线程分布使得每个线程计算一个声程差,通过gpu声程差核函数计算得到所需声程差信息,通过cudamemcpy函数拷贝到cpu中。
12、进一步地,所述步骤s2中,将频域阵元数据拷入gpu中,同时整理出当前所有跟踪目标波束对应扇面的阵元编号信息,拷贝到gpu中,具体为:
13、步骤s201:接收阵元频域数据,从cpu中拷贝到gpu变量data_gpu中;
14、在cpu内存空间中申请阵元数×频点数个cucomplex(复数类型,两个float)类型的变量data_cpu用于接收前端发送过来的阵元数据,在gpu空间中申请阵元数×频点数个cucomplex大小的变量data_gpu,通过cudamemcpy函数从data_cpu拷贝到data_gpu变量中;
15、步骤s202:根据各个跟踪目标当前的俯仰角、波束和预存信息计算得到各个目标互谱跟踪需要的阵元扇面信息,拷贝到gpu变量zy_num_need_l和zy_num_need_r中;
16、在gpu空间中申请跟踪目标数×最大跟踪扇面阵元数个int类型的变量zy_num_need_l和zy_num_need_r分别对应左右扇面选取的阵元编号信息,根据预存跟踪信息和当前跟踪目标的俯仰和波束信息整理各个跟踪目标所需的阵元编号信息,通过cudamemcpy函数从cpu拷贝到gpu的zy_num_need_l和zy_num_need_r变量中。
17、进一步地,所述步骤s3中,根据预存信息和当前跟踪目标的俯仰角、波束信息、声速信息,在gpu中计算得到各个目标参与跟踪波束形成的相移信息,记为xiangyi_gpu_l和xiangyi_gpu_r,具体为:
18、计算当前每个跟踪目标所在跟踪波束对应阵元的相移信息,在gpu空间中申请跟踪目标数×跟踪扇面最大阵元数个float类型的变量timedelay_gpu_l和timedelay_gpu_r,申请跟踪目标数×跟踪扇面最大阵元数×频点数个cucomplex类型的变量xiangyi_gpu_l和xiangyi_gpu_r,根据预存的声程差信息和传感器给出的声速信息在cpu中计算当前所有跟踪目标对应的时延信息(时延等于声程差除以声速),并通过cudamemcpy函数将时延信息从cpu拷贝到gpu的timedelay_gpu_l和timedelay_gpu_r变量中,然后再通过用户自定义的相移计算核函数计算所有跟踪目标的相移信息并存入xiangyi_gpu_l和xiangyi_gpu_r变量。
19、进一步地,所述步骤s4中,在gpu中本文档来自技高网...
【技术保护点】
1.一种基于GPU的互谱跟踪方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于GPU的互谱跟踪方法,其特征在于:所述步骤S1中,预先推算跟踪中所有俯仰角和波束互谱计算时需要的信息,在程序初始化阶段,通过GPU核函数得到跟踪互谱计算需要的信息,预先存储到CPU和GPU中,具体为:
3.根据权利要求1所述的一种基于GPU的互谱跟踪方法,其特征在于:所述步骤S2中,将频域阵元数据拷入GPU中,同时整理出当前所有跟踪目标波束对应扇面的阵元编号信息,拷贝到GPU中,具体为:
4.根据权利要求1所述的一种基于GPU的互谱跟踪方法,其特征在于:所述步骤S3中,根据预存信息和当前跟踪目标的俯仰角、波束信息、声速信息,在GPU中计算得到各个目标参与跟踪波束形成的相移信息,记为xiangyi_gpu_l和xiangyi_gpu_r,具体为:
5.根据权利要求1所述的一种基于GPU的互谱跟踪方法,其特征在于:所述步骤S4中,在GPU中用自定义核函数做所有跟踪目标当前波束的左右扇面波束形成,该自定义核函数包括矩阵点乘核函数、求和核函数,具体
6.根据权利要求1所述的一种基于GPU的互谱跟踪方法,其特征在于:所述步骤S5中,将d_dataSum_l和d_dataSum_r同一目标左右波束结果相加,cufft库中的cufftExecC2C函数进行并行IFFT计算,得到跟踪波束的时域数据,具体为:
...【技术特征摘要】
1.一种基于gpu的互谱跟踪方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于gpu的互谱跟踪方法,其特征在于:所述步骤s1中,预先推算跟踪中所有俯仰角和波束互谱计算时需要的信息,在程序初始化阶段,通过gpu核函数得到跟踪互谱计算需要的信息,预先存储到cpu和gpu中,具体为:
3.根据权利要求1所述的一种基于gpu的互谱跟踪方法,其特征在于:所述步骤s2中,将频域阵元数据拷入gpu中,同时整理出当前所有跟踪目标波束对应扇面的阵元编号信息,拷贝到gpu中,具体为:
4.根据权利要求1所述的一种基于gpu的互谱跟踪方法,其特征在于:所述步骤s3中,根据预存信息和当前跟踪目标的俯...
【专利技术属性】
技术研发人员:苏钰,徐雅南,张铮,祝献,李恒光,张俊,李东东,王嘉,
申请(专利权)人:中国船舶集团有限公司第七一五研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。