一种通信信号的时频差参数联合估计gpu实现方法

文档序号:167708 发布日期:2021-10-29 浏览:20次 >En<

阅读说明:本技术 一种通信信号的时频差参数联合估计gpu实现方法 (Time-frequency difference parameter joint estimation GPU implementation method of communication signals ) 是由 侯素霞 夏畅雄 董剑峰 于 2021-05-26 设计创作,主要内容包括:本发明公开了一种通信信号的时频差参数联合估计GPU实现方法,该方法包括设定联合估计的分段次数,并将通信信号数据从CPU拷贝至GPU内存;利用CUDA核函数根据设定的分段次数对通信信号数据进行分段式时频差参数联合估计;将时频差参数联合估计结果传回CPU内存,并释放显存资源。本发明通过充分利用GPU的并行计算能力,极大的提高了时频差参数估计运算效率,能够在精度不变的情况下,其时效性远远超过原先的CPU系统,极大满足了当前实时定位系统的要求。(The invention discloses a time-frequency difference parameter joint estimation GPU implementation method of communication signals, which comprises the steps of setting the segmentation times of joint estimation and copying communication signal data from a CPU to a GPU memory; carrying out sectional time-frequency difference parameter joint estimation on communication signal data by using a CUDA kernel function according to the set sectional times; and returning the time-frequency difference parameter joint estimation result to the CPU memory, and releasing the video memory resource. The invention greatly improves the time-frequency difference parameter estimation operation efficiency by fully utilizing the parallel computing capability of the GPU, can greatly exceed the time efficiency of the original CPU system under the condition of unchanged precision, and greatly meets the requirements of the current real-time positioning system.)

一种通信信号的时频差参数联合估计GPU实现方法

技术领域

本发明涉及通信定位技术领域,具体涉及一种通信信号的时频差参数联合 估计GPU实现方法。

背景技术

TDOA/FDOA指标可用于联合定位系统,TDOA和FDOA的估计精度直接 影响到定位的精度,处理速度直接影响定位系统的实时性。传统的定位系统采 用CPU实现,该方法的处理耗时会随着数据量增加,线性增加。当使用场景无 时频差值先验条件,则需进行超过2G数据量的时频差参数估计计算,CPU模式 的定位系统则几乎无法实时使用。随着高性能计算(HPC)领域取得可极大的 发展,尤其是GPU-CPU异构架构的出现,直接将线性控制和大数据并发计算协 同成为可能。

传统的参数估计流程采用串行模式的CPU计算架构,当数据量大时候,串 行计算将非常耗时,且会随着计算量的变化,计算耗时线性增加,所以耗时问 题急需要解决。

发明内容

针对现有技术中的上述不足,本发明提供了一种通信信号的时频差参数联 合估计GPU实现方法。

为了达到上述发明目的,本发明采用的技术方案为:

一种通信信号的时频差参数联合估计GPU实现方法,包括以下步骤:

S1、设定联合估计的分段次数,并将通信信号数据从CPU拷贝至GPU内 存;

S2、利用CUDA核函数根据步骤S1设定的分段次数对通信信号数据进行 分段式时频差参数联合估计;

S3、将步骤S2得到的时频差参数联合估计结果传回CPU内存,并释放显 存资源。

进一步地,所述步骤S1具体包括以下分步骤:

S11、预估当前时频差参数联合估计所需分配的内存大小;

S12、获取GPU性能数据;

S13、根据步骤S11预估的内存大小和步骤S12获取的GPU性能数据确定 联合估计的分段次数;

S14、分配GPU内存;

S15、将通信信号数据从CPU拷贝至步骤S14分配的GPU内存。

进一步地,所述分段次数的计算公式为:

其中,m为分段次数,N为数据长度,fs为时间搜索范围,tr为数据采样率, Y为GPU的内存空间。

进一步地,所述步骤S2具体包括以下分步骤:

S21、采用GPU并行模式按照设定的分段次数分别对主星信号和邻星信号 进行移位共轭点乘;

S22、对步骤S21得到的移位共轭点乘结果进行基于CUDA的快速傅里叶 变换;

S23、对步骤S22得到的快速傅里叶变换结果计算频域搜索范围内的功率谱 值;

S24、采用并行规约算法和共享内存策略对步骤S23得到的功率谱值计算最 大值和均值,得到时频差参数估计值和参考SNR值。

进一步地,所述步骤S21具体包括以下分步骤:

S211、将邻星信号y按照时差搜索范围进行R-M+1次移位;其中M为时 差搜索起始点索引,R为时差搜索终点索引;

S212、对移位后的邻星信号按顺序进行共轭计算,得到邻星信号的移位共 轭矩阵,表示为

其中,B为邻星信号的移位共轭矩阵,为对应邻星信号进行一次时间移 位后的信号数据,N为数据长度;

S213、将步骤S212得到的邻星信号的移位共轭矩阵与主星信号进行点乘计 算,得到主星信号和邻星信号的移位共轭点乘矩阵,表示为

其中,C为主星信号和邻星信号的移位共轭点乘矩阵,A为主星信号, A=[x1 x2 x3… xN]。

进一步地,所述步骤S21还包括将GPU的每个线程与主星信号和邻星信号 的移位共轭点乘矩阵中的每个矩阵元素数据对应,采用二维网格和二维块表征 主星信号和邻星信号的移位共轭点乘矩阵,建立主星信号和邻星信号的移位共 轭点乘矩阵行索引和列索引与其存储索引位置的对应关系。

进一步地,所述步骤S22具体包括以下分步骤:

S221、利用CUDA核函数调用cuFFTPlanMany函数生成FFTPlan;

S222、利用CUDA核函数调用cufftExecZ2Z计算快速傅里叶变换结果,表 示为:

其中,D为快速傅里叶变换矩阵,FFT为快速傅里叶变换操作。

进一步地,所述步骤S23具体包括以下分步骤:

S231、将步骤S22得到的快速傅里叶变换结果进行FFTShift移位,将零频 分量移到频谱中心,表示为

其中,Shift_D为FFTShift移位矩阵;

S232、根据步骤S231得到的FFTShift移位矩阵计算广义功率谱幅度值,表 示为

其中,E为广义功率谱幅度值,P为频域搜索起始位置索引,Q为频域搜索 结束位置索引。

进一步地,所述步骤S24具体包括以下分步骤:

S241、将全局内存拷贝到共享内存中,在第一次加载内存时,对步骤S23 得到的功率谱值计算最大值或累加和;

S242、根据数据长度和GPU支持的最大线程数,设定块个数,在每个线程 块中采用单指令多数据流模式执行并行规约计算,并将最终规约得到的值存储 在结果数组的块索引位置,每次计算归并最大线程数倍的数据长度,通过不断 迭代,直到归并成一个数值,得到该最大值对应的索引;

S243、根据步骤S242得到的最大值对应的索引计算时频差参数估计值,并 根据得到的最大值和广义功率谱幅度值均值计算参考SNR值,表示为

dto=i·1/fs+t0=i·1/fs+M·1/fs=(M+i)/fs

dfo=j·fs/N+f0=j·fs/N+(-fs/2+P·fs/N)=(j+P)·fs/N-fs/2

其中,dto为时差参数估计值,dfo为频差参数估计值,(i,j)为最大值对应 的索引,fs为采样率,f0为频域搜索范围的起始频率,t0为时差搜索起始时间, M为时差搜索起始点索引,P为频差搜索起始点索引,emax为广义功率谱幅度值 最大值,Emean为广义功率谱幅度值均值。

本发明具有以下有益效果:

本发明通过充分利用GPU的并行计算能力,极大的提高了时频差参数估计 运算效率,能够在精度不变的情况下,其时效性远远超过原先的CPU系统,极 大满足了当前实时定位系统的要求。

附图说明

图1为本发明方法的流程示意图;

图2为本发明实施例中互模糊函数示意图;

图3为本发明实施例中GPU分段式参数估计流程示意图;

图4为本发明实施例中规约流程示意图;

图5为本发明实施例中并行处理加速比曲线示意图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理 解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的 普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精 神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保 护之列。

参照图1,本发明实施例提供了一种通信信号的时频差参数联合估计GPU 实现方法,包括以下步骤S1至S3:

S1、设定联合估计的分段次数,并将通信信号数据从CPU拷贝至GPU内 存;

在本实施例中,步骤S1具体包括以下分步骤:

S11、预估当前时频差参数联合估计所需分配的内存大小;

S12、获取GPU性能数据;

S13、根据步骤S11预估的内存大小和步骤S12获取的GPU性能数据确定 联合估计的分段次数,计算公式为:

其中,m为分段次数,N为数据长度,fs为时间搜索范围,tr为数据采样率, Y为GPU的内存空间;

S14、分配GPU内存;

S15、将通信信号数据从CPU拷贝至步骤S14分配的GPU内存。

S2、利用CUDA核函数根据步骤S1设定的分段次数对通信信号数据进行 分段式时频差参数联合估计;

在本实施例中,在对通信信号进行参数估计时,假设目标发射出的信号被 两个接收站截获,分别为x(t)和y(t),接收站接收到除信号s1(t)和s2(t)外,还存在 与信号不相关的彼此统计独立的噪声n1(t)和n2(t),表示为

x(t)=s1(t)+n1(t)

其中A为不同路径产生的幅度变化因子,由于目标辐射源相对于两个接收 站运动,两个接收信号就存在一个时间偏移τ0和频率偏移fd0

两路信号的互模糊函数定义为:

其中X和Y分别为x(t)和y(t)两路信号对应的傅里叶变换,τ为两路信号的时 差和频率偏移fd

根据定义,则可以得到接收站两路信号的互模糊函数,表示为

由模糊函数的定义式可以看出,模糊函数是基于广义互相关的一种时频表 示,其每一维度可以看成一个相关运算,因此信号的相关性直接决定了互模糊 函数的结果。一般情况下,信号与噪声、噪声与噪声之间都是相互独立的,因 此同源信号的互模糊函数积累结果远大于其他结果。因此当 τ-D0=0,fd-fd0=0时互模糊函数取得最大值,则τ=D0,fd=fd0即为两路信号的时差 和频差值,即可实现时频差参数估计。

典型的互模糊函数如图2所示,。由于两路卫星上行信号具有相关性,而该 信号与噪声和其它信号之间的相关性很弱,因此只要T足够长,该信号的互模 糊函数峰值将比杂波和噪声的峰值大得多.

本发明中采用的互模糊函数计算流程为首先根据时域的搜索范围tr和采样 率fs计算得到时间搜索范围次数n=tr*fs,然后将循环执行后续的3个步骤即可 得到互模糊函数结果。如图3所示,包括:1)将参考信号进行时间移位,然后 对其进行共轭计算,最后将目标信号和参考信号进行对应点乘,即为移位共轭 点乘;2)计算上一步骤的FFT结果;3)根据FFT结果,计算其幅度值,即为 功率谱计算流程。4)查找互模糊函数的峰值,根据峰值对应的索引位置估计出 两路信号的时差和频差;4)并计算互模糊函数矩阵的均值,根据峰值和均值结 果计算SNR信噪比。

步骤S2具体包括以下分步骤:

S21、采用GPU并行模式按照设定的分段次数分别对主星信号和邻星信号 进行移位共轭点乘;

具体而言,步骤S21具体包括以下分步骤:

S211、假设主星信号为A=[x1 x2 x3 … xN],邻星信号为 Y=[y1 y2 y3 … yN],信号长度为N,时差搜索搜索范围对应索引为[M~R], M、R为整数,且|M|≤N,|R|≤N,M为时差搜索起始点索引,R为时差搜索终点 索引,将邻星信号按照时差搜索范围进行R-M+1次移位;

S212、对移位后的邻星信号按顺序进行共轭计算,得到邻星信号的移位共 轭矩阵B,表示为

其中,B为邻星信号的移位共轭矩阵,bi,j为对应邻星信号进行一次时间移 位后的信号数据,N为数据长度;其中bi,j的结果和原信号关系如下式表示,y[n]表示取1~N的索引范围内对应的原始参考信号采样值,转化关系为

bi,j=y[j-(M+i-1)]

其中,y[n]表示移位后对应位置的信号采样值,n表示移位索引,例如 n=1-M-R,当n计算结果小于1,那么就将索引增加N,那么移位后对应原信号值 的索引为y1-M-R+N;yn+N表示邻星信号Y的第n+N个值,yn-N表示邻星信号Y第n-N 个值。

S213、将步骤S212得到的邻星信号的移位共轭矩阵与主星信号中的每一行 矩阵元素进行点乘计算,得到主星信号和邻星信号的移位共轭点乘矩阵C,表示 为

其中,C为主星信号和邻星信号的移位共轭点乘矩阵。

得到主星信号和邻星信号的移位共轭点乘矩阵C后,本发明将GPU的每个 线程与主星信号和邻星信号的移位共轭点乘矩阵中的每个矩阵元素数据对应, 采用二维网格和二维块表征主星信号和邻星信号的移位共轭点乘矩阵,建立主 星信号和邻星信号的移位共轭点乘矩阵行索引和列索引与其存储索引位置的对 应关系,表示为

tidx=iy*N+ix

其中,tidx为移位共轭点乘矩阵C的索引位置,ix为移位共轭点乘矩阵C 的行索引,iy为移位共轭点乘矩阵C的列索引。

其中每个线程计算一组数据的共轭点乘运算,表示为

其中,cm,n表示移位共轭点乘矩阵C的第(m.n)个值,Re()表示取复数的实部, Im()表示取复数的虚部,xm表示主星信号第m个值,表示邻星信号的第 [1-M-m-n]个值,位置索引换算关系参考S212步骤中的描述。

S22、对步骤S21得到的移位共轭点乘结果进行基于CUDA的快速傅里叶 变换;

具体而言,本发明采用基于CUDA的快速傅里叶变换(FFT)计算移位共 轭点乘矩阵C的每一行的FFT结果。

步骤S22具体包括以下分步骤:

S221、利用CUDA核函数调用cuFFTPlanMany函数生成FFTPlan;

S222、利用CUDA核函数调用cufftExecZ2Z计算快速傅里叶变换结果,表 示为:

其中,D为快速傅里叶变换矩阵,FFT为快速傅里叶变换操作。

S23、对步骤S22得到的快速傅里叶变换结果计算频域搜索范围内的功率谱 值;

具体而言,步骤S23具体包括以下分步骤:

S231、将步骤S22得到的快速傅里叶变换结果进行FFTShift移位,将零频 分量移到频谱中心,表示为

其中,Shift_D为FFTShift移位矩阵;

S232、设定频域搜索范围为(P,Q),根据步骤S231得到的FFTShift移位矩 阵计算其P~Q列的绝对值的平方,得到广义功率谱幅度值,表示为

其中,E为广义功率谱幅度值,P为频差搜索起始点索引,Q为频差搜索终 点索引。

S24、采用并行规约算法和共享内存策略对步骤S23得到的功率谱值计算最 大值,得到时频差参数估计值和参考SNR值。

具体而言,步骤S24具体包括以下分步骤:

S241、将全局内存拷贝到共享内存中,在第一次加载内存时,对步骤S23 得到的功率谱值计算最大值;

S242、在每个线程块中采用单指令多数据流模式执行并行规约计算,如图4 所示,通过不断迭代,并将最终规约得到的值存储在索引为0的位置,得到该 值及其对应的索引(i,j);

S243、根据步骤S242得到的最大值对应的索引(i,j)计算时频差参数估计值, 根据得到的最大值emax和均值Emean=Esum/(Q-P+1)·(R-M+1)可计算得到参考 SNR值,表示为

dto=i·1/fs+t0=i·1/fs+M·1/fs=(M+i)/fs

dfo=j·fs/N+f0=j·fs/N+(-fs/2+P·fs/N)=(j+P)·fs/N-fs/2

那么最终的时频差参数估计SNR结果为emax为互模糊 矩阵E的最大值,Emean为互模糊矩阵的均值,

SNR为评估相关结果性能的指标,SNR越大,说明相关性越好,时频差的 可信度越高,反之,SNR越小说明相关性越差。SNR计算方法为公 式:

那么最终的时频差参数估计SNR结果为emax为互模糊 矩阵E的最大值,Emean为互模糊矩阵的均值,

S3、将步骤S2得到的时频差参数联合估计结果传回CPU内存,并释放显 存资源。

下面结合具体实例对本发明的时频差参数联合估计GPU实现方法的有益效 果进行分析说明。

实验条件:数据采样率fs=1048576,数据长度N=1048576,频差搜索范围为 fr=10kHz,时差范围tr=2us~10ms,分别使用串行算法和并行算法进行处理,得 到时频差参数,其耗时如表1所示。

表1串行和并行处理耗时

其中,数据量=数据长度*(时间范围/(1/采样率))=N·tr·fs,且 1M=1024*1024,1G=1024*1024*1024。本实验GPU使用NVIDIA Tesla P100-PCIE-16GB,其性能如表2所示。

表2 Tesla P100主要性能参数

如图5所示,为并行处理加速比曲线,可以看出,随着数据量的增大,加 速比呈线性上升趋势。并行的时频差参数估计与串行算法相比,处理速度得到 了极大的提升。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的 流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框 图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。 可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他 可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程 数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程 和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备 以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的 指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流 程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上 实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领 域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有 改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施 例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱 离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保 护范围内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种地下空间的三维定位方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!