魏玲玲,范胜林,王顺亮,刘建业
(南京航空航天大学导航研究中心,江苏 南京 210016)
全球定位系统(GPS)作为目前世界上最完善的全球导航卫星系统,可为地球表面、近地表和地球外空任意地点用户提供全天候、实时、高精度的三维位置、速度以及精密的时间信息,在军事和民用领域已经得到了非常广泛应用[1]。近年来,随着用户对定位的要求越来越高,尤其是在室内、森林和隧道等复杂环境(以下统称室内环境)下的定位,基于软件接收机的高灵敏度GPS定位技术成为一个研究热点。
捕获是GPS软件接收机信号处理的一个关键环节。传统的捕获算法一般能捕获到44dB/Hz以上的较强卫星信号,但在室内环境下,由于信号强度太弱,传统的捕获算法就会失效,进而导致接收机无法继续跟踪和定位解算。
本文对传统的GPS信号捕获方法进行了分析和讨论,在此基础上针对弱信号环境下 GPS软件接收机的快速捕获问题,提出了一种新的捕获算法——将数据“先累加后相关”,进行传统半位捕获法中相干积分段的运算,并以此进行数据段的选择,然后再与隔段差分相干积分算法相结合,以此来进行微弱信号的捕获。本文分别从理论分析和仿真验证两个角度验证了此方法既避免了导航数据位的翻转问题,既提高了捕获的速度,还能减小传统半位捕获法中非相干积分造成的“平方损失”,极大地提高了接收机的捕获性能。
信号捕获的目的是确定接收机当前所在位置的可见卫星信号,进而计算可见卫星的载波频率和伪随机码相位信息,为后续的信号跟踪环节提供初始条件[2]。传统的GPS信号捕获方法有时域串行搜索法和码相位并行搜索法(即FFT算法),下面对这两种典型的传统捕获方法展开分析和讨论。
串行捕获是目前传统商用GPS接收机通用的信号捕获方法,其捕获原理如图1所示。伪码发生器生成对应某一特定卫星的伪码序列,该序列有一个特定的码相位,位于其中一个码片的某一采样点上。接收信号首先与本地生成的 C/A码信号相乘,然后与本地载波相乘,得到同相 I支路信号;与本地载波的90度相移信号相乘,得到正交相Q支路信号。I和Q两支路信号分别经过一个伪码周期的积分后平方相加,得到接收信号与本地信号的相关值。如果此相关值超过了设定的捕获阈值,即捕获成功。
该方法捕获原理简单,但是搜索次数相当高,耗时严重。算法包括两个不同的扫描过程:首先,多普勒频移的大小在-10kHz到+10kHz范围内,搜索时步长设定为 500Hz,搜索次数有 41次;其次,要遍历 1023个不同的码相位。总共的计算次数为:1023*(2*10000/500+1)=41943,显然搜索次数非常多[3]。
图1 时域串行捕获原理图
近年来,FFT捕获算法由于其运算快速性得到了众多研究人员的青睐。
这种算法的基本原理是时域上的相关和卷积运算在频域上具有相似性[3]。其捕获算法原理如图 2所示。长度为N的信号x( n)通过DFT在频域表示为
信号x( n)与另一个长度也为N的信号y( n)相关的时域表示为
相关的频域表示为
两个信号x( n)和y( n)卷积的时域表示为
其卷积的频域表示为
从式(3)和(5)可以看出,两信号的相关运算和卷积运算在频域上是基本一致的,只是其中一个信号互为共轭而已,所以能够用FFT和IFFT的方法来代替时域信号的相关。
基于 FFT的捕获算法的具体实现方法为:首先,输入的中频数字信号分别与本地载波的同相和正交相相乘得到 I和 Q两路信号,以同相支路 I为实部,正交相支路Q为虚部,对I+j*Q进行FFT运算得到结果 1;然后将本地 C/A码信号进行 FFT,并取共轭,得到结果2;将1与2 相乘后的结果进行IFFT,并取模。观察运算结果,将其中模最大的值与捕获门限比较,如果大于门限,则信号捕获成功;如果小于门限,则更换多普勒频率重复上述过程[4]。
FFT运算能够将一个载波频率下的所有码相位一次搜索完毕,能够大大减少计算量,提高捕获速度。
图2 FFT捕获算法原理图
当 GPS卫星信号受到遮挡时,普通的捕获算法已无法将信号成功捕获,基于此种情况,近年来高灵敏度接收机捕获算法成为一个研究热点。
半位捕获法是以往常用的弱信号捕获算法。所谓的半位捕获法是指在接收到的数据中任意选取一点,把此点后面紧跟的数据分成每10ms为一段,如图3所示。因为导航数据的长度正好为20ms,这样处理可以保证连续的两段 10ms数据中至少有一段不包含导航数据位的翻转。对奇数段数据(1、3、5、7…)和偶数段数据(2、4、6、8…)分别利用相干积分结合非相干积分的方法,得到 Psum1(ts,wD)和Psum2(ts,wD),将两者比较大小,较大值所对应的数据段则不含有导航数据位的翻转[5]。
图3 半位法数据段选择
归根结底,半位捕获法仍旧是一种相干积分结合非相干积分的方法。
该算法存在严重的不足:1)在进行相干积分运算时,先是对每一块接收数据(10ms)进行 10个 1ms的相关运算(通常用 FFT和 IFFT来实现),然后对这10个相关运算结果累加,是一种“先相关后累加”的方法,由表 1首行可以看出,该算法的运算量非常大,这样势必减慢了捕获的速度,不利于接收机捕获性能的提高;2)该方法依旧包含了非相干积分的环节,造成了“平方损失”,不利于信号信噪比的改善。
针对传统半位捕获法的不足,对算法加以改进,以达到更好的捕获性能。
2.2.1提高捕获速度
加快捕获速度方面,改用“先累加后相关”的思想来进行半位捕获法中的相干积分运算。
运用“先累加后相关”的思想进行相干积分运算,即先将每一块数据(10ms)分成 10个 1ms的小块,接着将这10个小数据块对应累加成为1ms数据,然后与本地信号进行相关运算。
现将改进的方法与传统半位捕获法的部分运算操作加以比较。设定搜索步长为500Hz,此时的频率槽数目为41,如表1所示。
表1 改进方法和传统半位捕获法对比表
由表1可以看出,改进方法的FFT/IFFT操作次数和累加次数相比传统算法要少得多,进而能够很好地提高捕获速度.
2.2.2改善信噪比
信噪比改善方面,不再用非相干积分,而是运用改进的差分相干积分算法——隔段差分相干积分。
传统差分相干积分的数学描述为[6]
差分相干积分不同于非相干积分。根据噪声的性质,在非相干累积中对同一点噪声进行平方操作,噪声得到平方增大,带来了平方损耗;差分累积算法中进行的是相邻样点噪声的共轭相乘,这对噪声的放大较小。因此,差分相干累积能够减小平方损失,对信噪比的改善优于非相干累积。
在 2.2.1节中,选用改进的半位捕获法来实现数据段的选择,以避免导航电文的翻转,所以选用的数据段(每10ms为一数据段)不再是连续相邻的,而传统的差分相干积分要求是相邻段相关值的差分相乘。为改善信噪比,在本文打破传统差分相干积分“相邻差分”的要求,改作“隔段差分”,其数学描述变为
由式(7)不难看出,“隔段差分”仍然能够保证不对同一样点噪声进行平方操作,因此也就减小了噪声的放大,改善了信噪比。
现将改进算法1与改进算法2相结合,即得出一种新的捕获算法。其算法流程图如图4所示。
图4 新算法流程图
在matlab环境中编写GPS中频数字信号的生成代码,通过改变代码中某些特定参数的值,可以生成不同信噪比的中频数字信号。
编写的信号生成代码中,初始设置情况为:
采样频率:fs=16.3676e6Hz;
中频频率:IF=4.1304e6Hz;
在开放空间下,GPS信号较强,载噪比C/N0一般高于 44dB/Hz;而在室内环境中,信号受到遮挡较弱,一般低于 40dB/Hz,恶劣环境下,一般低于 36 dB/Hz[7]。
为验证改进算法的可行性,生成不同载噪比的数字信息供仿真使用,下面以9号卫星的捕获结果为例进行分析和讨论。
1)传统FFT算法的捕获情况仿真
当生成信号的载噪比为40dB/Hz时,应用传统的FFT捕获算法,捕获结果如图5所示,可以看出当信号为室内信号时,以往常用的 FFT捕获算法已无法成功的将信号捕获。
图5 传统FFT算法捕获结果(40dB/Hz)
2)改进算法1捕获情况仿真
图6 改进算法1捕获结果(40dB/Hz,60ms)
同等信号强度情况下,读取60ms数据,用改进算法1进行捕获实验,捕获结果如图6所示。由图6可以看出,改进算法 1已成功将室内弱信号捕获,噪声波动比较小。在仿真过程中,已明显发现捕获速度提高了很多。
3)改进算法1与2相结合情况下的捕获仿真
同等信号强度情况下,读取40ms数据,将改进算法1与改进算法2结合起来做仿真试验,捕获结果如图7所示。可以看出,此算法已成功将室内信号捕获;其次噪声波动相当小,几乎为零,充分体现了差分相干积分能够减小噪声平方增大的作用;另外捕获相关值的数量级为1014,相对图6来讲,已提高了107数量级,极大地提高了接收机的捕获性能。
图7 改进算法捕获结果(40dB/Hz,40ms)
经过反复测试,读入数据 80ms,该算法能够快速地捕获到载噪比为25dB/Hz的室内弱信号,捕获结果如图8所示。可以看出,此信号强度下,该算法能够捕获到 7颗卫星,分别是 04、07、10、17、23、25、31,能够进行室内定位。
图8 改进算法捕获结果(25dB/Hz,80ms)
图9是17号卫星的三维捕获结果图。可以看出噪声波动比较大,但不会对捕获结果造成太大的影响,依然能够成功捕获到此强度的弱信号。
图9 17号卫星捕获结果(25dB/Hz,80ms)
经过验证,当信号的载噪比继续降低,该算法依然能够将信号成功捕获,但效果已不是很明显,况且需要增大数据的长度,这样必然对捕获效率造成影响,在此不予赘述。
本文介绍了一种新型的弱信号捕获算法,并从理论分析和仿真试验的角度验证了新型算法的优越性。此算法既避免了导航数据位的翻转,又提高了捕获的速度,还能减小非相干积分造成的“平方损失”,极大地提高了接收机的捕获性能。仿真结果表明在读入数据 80ms时,该算法能够快速捕获到载噪比为25dB/Hz的弱信号,并在此信号强度下能够捕获到 7颗卫星,能够进行室内定位。
[1]Oleksiy V Korniyenko, Mohammad S Sharawi.GPS software receiver implementations[J].IEEE Potentials Magazine,2007,26(3):42-46.
[2]刘建业,曾庆化,赵伟,等.导航系统理论与应用[M].西安:西北工业大学出版社,2010.
[3]曾庆喜,王庆,等.一种基于FFT的GPS信号快速捕获算法[J].舰船电子工程,2008,28(3):70-71.
[4]曾晓飞.GPS软件接收机微弱信号捕获跟踪算法研究[D].郑州:解放军信息工程大学,2010.
[5]马若飞.GPS弱信号捕获算法研究及其在软件接收机上的实现[D].哈尔滨:哈尔滨工业大学,2010.
[6]易盛,茅旭初.基于批处理与差分相干的 GPS信号捕获算法[J].计算机仿真,2010,27(11):345-346.
[7]翟传润,张婧,等. GPS软件接收机微弱信号捕获算法研究[J].电子测量技术,2008,31(5):137-138.