吴衡,郭承军,程亚文
(电子科技大学 电子科学技术研究院,成都 611731)
基于GPU的高动态信号快速捕获设计与实现
吴衡,郭承军,程亚文
(电子科技大学 电子科学技术研究院,成都 611731)
传统的软件接收机均是由CPU处理器实现,然而针对多普勒频率偏移较大的卫星信号捕获问题,基于FFT 的并行频率空间搜索捕获方法可捕获较大的频偏并跟踪一定的频率变化率,但其计算重复次数较多,耗时过长。为此本文使用高性能计算平台,设计了一种适用于GPU的高动态扩频信号捕获的FFT并行频率空间搜索捕获方法,较好地平衡了其在高动态扩频信号捕获的优越性和高捕获耗时之间的矛盾,实现对高动态扩频信号的快速捕获。并充分利用GPU加速、高性能并行计算架构,测试结果表明:将FFT 的并行频率空间搜索捕获按本文的设计方案在GPU平台实现后,捕获单颗卫星信号时间加速约96倍,捕获全部卫星时间加速46倍。
GPU;高动态;并行计算;并行频率捕获
在信号捕获领域,扩频信号的快速捕获一直是一个关键问题。普通的静态定位,载波多普勒频率一般由卫星的相对运动产生,接收机往往会自动滤除高多普勒频移的低仰角卫星以提高接收的卫星信号质量,其有效多普勒范围一般几百Hz。但在高动态环境下,载体的高速运动会导致载体和卫星之间有很大的多普勒频移以及很大的多普勒频移变化率[1],例如弹载GPS接收机的运动(速度为7.6 km/s,加速度为10 g即98 m/s2)[2]。为了从高动态扩频信号中解调出位置信息,就必须先对卫星信号进行快速捕获。
与传统的CPU架构接收机相比,图形处理器(GPU)具有高度的可编程能力、大量的并行处理单元和越来越高的内存带宽,因其广泛用于高性能计算,非常适合大规模并行计算的特点,近些年开始逐渐应用于GPS软件接收机当中[3]。例如杨静、程俊仁等人在文献[4]和文献[5]中在GPU平台上实现了基于FFT 的时域(码相位)并行搜索算法,显著提高了软件接收机的信号捕获速度,但其未提及处理高动态信号,黄健等人在文献[6]中阐述,基于FFT 的频域并行捕获可捕获较大的频偏并跟踪一定的频率变化率,能解决多普勒频率偏移较大的卫星信号捕获问题,适用于高动态信号的捕获,然而其捕获计算量大、耗时高,为此本文将并行频率算法移植到GPU高性能平台并实现计算加速。
所使用的GPU高性能平台,普通PC仅需要插入一张支持CUDA编程[7]的显卡即可搭建,具有非常好的可移植性。本文通过使用CUDA编程实现了一种基于GPU的并行频率空间搜索捕获方法,实验测试结果表明:在保持原有可捕获较大频偏的特性下,搜索全部32颗卫星仅需2.92 s,而使用CPU架构则需要135.87 s,拥有将近46倍的加速比,而单颗卫星的捕获计算快近96倍。
正如文献[8]中所说,目前国内外文献提出的捕获算法大致可分为以下几类:多普勒串行-伪码串行搜索算法和多普勒串行-伪码并行搜索算法,捕获均受大频偏范围的影响;多普勒并行-伪码串行搜索算法,捕获受伪码长度的影响;多普勒和伪码并行搜索方法,捕获受高动态性的影响。而文献中的所描述的多普勒并行-伪码串行搜索算法,即是本文所使用的并行频率空间搜索算法。
在扩频通信中,由于信号传输、卫星的高速移动或者地面接收机的移动,都使接收到的信号与发送信号产生巨大差别,接收信号通常表达为
r0(t)=A·C(t-ετ)cos[2π(fc+fd)t+φ]+n0(t) ,
(1)
式中:A为幅度;C为伪码;ε为偏移码片数;τ为码元时间;fc为中频频率;fd为多普勒频偏;n0(t)为白噪声。将接收信号使用相关运算来进行伪码捕获,在一个伪码周期积分时间内,接收机相关输出为[9]
ε)τ]Sa(πfdT)|, 0≤ε<1.
(2)
从式(2)分析可知,只有0≤ε<1,即收为码信号与本地伪码信号时延差小于1码片,才能有一个明显的峰值幅度,如果输入信号中包含了其他卫星的信号分量,那它们也会由于相互间低相关性被减到最低。
而在文献[6]中,对“频域(载波) 并行捕获法”,即本文所用的并行频率空间搜索算法在高动态领域的理论仿真实现做了一个详细的阐述,如图1所示。
图1 算法流程图
其中数据长度Ii决定了捕获精度。长度越长,捕获多普勒频移的分辨率越高,频率估计的栅栏效应越小。
Ii=0.5PN[(1+η)(ti-τ)]·PN(ti)·
cos(ωdti+φ0) ,
(3)
式中:PN(t)为伪随机码序列;ωd为带多普勒频移的实际载波频率;φ0为载波初始相位;τ为本地PN码与接收到的PN码的时延差,多普勒频移造成码速率抖动的影响为η=ωd/ωc;ωd为载波角频率。对序列做FFT变换,即可对信号中的实际接收到的信号载波频率做出估计。
众所周知GPSL1信号C/A码长1 023位,伪码长度属于GNSS信号中伪码长度最短的信号。本文基于GPSC/A码研究,码长较短,并且并行频率空间搜索算法本身适用于大频偏范围。故本文仅处理对高动态下的GPS信号,使用GPU快速捕获的方法实现研究。
为凸显出GPU高性能计算的高效快速以及满足高动态捕获性能,本实验条件使用了较高的中频采样率所获得大数据进行处理运算。使用38.192MHz中频采样1ms所得卫星接收数据,其中包含完整一周期C/A码信号。根据相位调整公式(4),每个C/A码1 023位计算得到,每次相位调整跨度为37.3。
p=fIF×Δt/fC/A.
(4)
为了实现GPU的最大化利用,将一个RPN码的所有码相位保存到一个线性数组中。数据结构设计如图2所示,共有1 023个码相位,每个码相位包含有38 192个数据,采用这种以空间换时间的设计方法,仅一次运算即可完成一颗卫星的全部码相位搜索,大大缩减了反复调用内核函数的次数。
程序中通过调用CUFFT库函数进行快速傅里叶运算以及cublas库函数进行峰值查找。为了能更充分利用GPU的高性能计算,将采用流的方式加速运算效率缩短GPU空闲时间,捕获操作步骤如图3所示。程序先读取bin文件1ms原始数据,共38 192字节,然后进行CUDA初始化操作,这其中包含CUDA内存空间初始化、流初始化、FFT及CUBLAS库初始化等;初始化完毕程序进入32颗卫星的循环遍历捕获过程,首先由C/A码产生器产生第i颗卫星伪码,并调用内核执行1 023次相位扩展,使其满足图2所示的数据结构设计。再调用内核函数,将原始数据依次与伪码相乘,所得结果通过执行cufftExecR2C内核函数进行快速FFT变换;通过执行cublasIcamax内核函数进行峰值判决,如果存在则表明该颗卫星捕获成功并记录载波和码相位数据,如果没有峰值则继续进行第i+1颗卫星的搜索。
图3 程序设计流程图
在图2中通过设计并行数据结构的方法使得算法执行一次循环就可以完成1颗卫星的粗捕获搜索。其每次数据计算量为:38192×1023×4≈150 MB数据。在CUDA中将1 023个码片扩展到一个一维数组中,大大降低了捕获单星内核函数调用次数。实验所用设备CPU处理器为i7-4710MQ,GPU处理器为GeForce GTX 850 M。在GPU上并行执行此算法与在CPU上串行执行此算法所耗费时间,如表1所示。
表中数据均是三次运行取均值的结果,其中执行单颗卫星的捕获,CPU需要4.15 s时间,GPU需要1.552 s时间,其中GPU的耗时主要消耗在程序初始化以及显存空间分配上,而CPU上运算不存在这个问题,所以在执行后面的32颗卫星完整捕获时,GPU耗时仅需2.925 s.经过换算,其捕获单颗卫星实际时间为(2.925s-1.552s)/31≈44 ms.与基于CPU的捕获相比,基于CUDA的并行频率捕获在进行卫星捕获运算时,捕获单颗卫星拥有近96倍的加速比,而捕获32颗卫星总耗时拥有46倍的加速比。
表1 函数执行情况表
本文实现了一种GPU平台下的FFT 的并行频率捕获方法。其利用GPU的高性能计算以及高并发特性,使得在不改变算法原有基本特性的情况下提高运算速度,弥补了其捕获时间长的缺点,实验结果说明其加速效果非常明显。本文是文献[5]中对此算法在高动态领域的理论分析进行的实际应用拓展,将算法移植到GPU高性能计算平台,所以采用此算法不仅能捕获较大的频偏并跟踪一定的频率变化率,而且捕获执行效率大大提高,较好地平衡了其在高动态扩频信号捕获的优越性和捕获耗时久之间的矛盾。在卫星通信中具有广泛的应用前景。
[1] 施荣华,余畅,董健,等. 一种高动态环境下COMPASS卫星信号快速捕获算法[J]. 计算机应用研究,2015(5):1454-1457.
[2] 易维勇,董绪荣,孟凡玉,等. GNSS 单频软件接收机应用于编程[M]. 北京:国防工业出版社,2010.
[3] IM S H, JEE G L. Software-based real-time GNSS signal generation and processing using a graphic processing unit (GPU)[J].Journal of Positioning, Navigation, and Timing, 2014,3(3):99-105.
[4] 杨静,刘一霏. 基于GPU的GPS信号并行捕获[J]. 中国惯性技术学报,2012(4):430-434.
[5] 程俊仁,刘光斌,张博. 基于CUDA的GPS信号快速捕获[J]. 宇航学报,2010(10):2407-2410.
[6] 任宇飞,程乃平. 高动态扩频信号快速捕获技术研究[J]. 国外电子测量技术,2009(7):24-26,29.
[7] SANDERS J, KANDROT E. CUDA by example: An introduction to general-purpose GPU programming[M]. Addison-Wesley Professional, 2010.
[8] 黄健,张德海,孟进,等. 一种改进的高动态扩频信号捕获方法[J]. 电子测量技术,2015(9):116-120.
[9] 方科. 高动态低信噪比下扩频信号捕获算法研究[J]. 电视技术,2013,37(13):112-115,152.
Design and Implementation of Rapid Acquisition for High-dynamic Signal Based on GPU
WU Heng, GUO Chengjun, CHENG Yawen
(ResearchInstituteofElectronicScienceandTechnology,UniversityofElectronicScienceandTechnologyofChina,Chengdu611731,China)
Traditional software receiver are implemented by a CPU processor. However, parallel FFT frequency space search acquisition method can capture a large frequency offset and search for a large frequency range for the large doppler frequency problem, but it needs large amount of computation, and takes too long time on CPU. And the traditional method takes too long time. So this paper using high-performance computing platform, designed a rapid acquisition for high-dynamic signal base on GPU by parallel FFT frequency space search acquisition method. It fully inherited the advantages and effectively shorten the time of capture. By taking full use of GPU acceleration, and high-performance parallel computing architecture, the test results showed that: the parallel FFT frequency space search acquisition on GPU platform acceleration time of about 96 times to capture a single satellite signal, and accelerated 46 times to through all satellites.
GPU; high-dynamic; parallel computing; parallel frequency acquisition
2016-07-18
10.13442/j.gnss.1008-9268.2016.06.011
P228.4
1008-9268(2016)06-0055-04
吴衡(1992-),男,硕士生,主要研究方向为卫星导航。
郭承军 (1985-),男, 博士研究生,主要研究方向为卫星导航。
联系人:吴衡 E-mail: w._heng@163.com