基于PC的GPS软件接收机关键技术研究与实现*
2013-08-29唐琳琳曾庆喜陈小惠
唐琳琳 曾庆喜 王 庆 陈小惠
(1.南京航空航天大学车辆电子实验室 南京 210016)(2.东南大学仪器科学与工程学院 南京 210096)(3.南京邮电大学自动化学院 南京 210046)
1 引言
由于GPS软件接收机能解决目前传统接收机在多信号融合、高灵敏度、高精度、抗干扰和多路径抑制等方面存在的问题,具有配置灵活,精度高,易于升级等优点[1],是未来卫星定位接收机的发展方向。嵌入式软件接收机的实现大部分是基于DSP+FPGA 方法而实现的,这种方法虽然替代了传统的专用导航芯片,但是其灵活性仍然受到很大限制,而且对FPGA的开发调试也是一个比较复杂的过程。然而基于PC的GPS软件接收机的设计平台更稳定、代码开发和测试环境更友好。在软件接收机进入嵌入式调试之前,开发基于PC的GPS软件接收机能够使得开发人员将更多的精力集中在算法的设计上,从而加快嵌入式软件接收机开发的进程。因此,本文提出一种基于PC的GPS软件接收机设计方法,其中重点介绍了中频信号采样器的设计、捕获和跟踪的算法,并对信号处理软件进行了设计,最后对本文所设计的软件接收机的定位性能进行了测试。
图1 基于PC的GPS软件接收机结构
2 系统总体设计
本文所设计的基于PC的软件接收机系统的总体结构见图1所示,由三个部分组成:天线、中频信号采样器和基于PC的软件。天线采集射频信号发送给中频信号采样器。然后,中频信号采样器对信号进行放大、滤波、下变频、A/D采样和缓冲等处理。接着,由USB2.0 接口将处理好的数据发送给PC 机,在PC 机上进行基带信号处理以及位置解算。最后,将解算出的定位结果发送到PC 机界面。
3 中频信号采样器设计
为了将天线接收到的卫星信号输入PC 机,必须设计好射频前端与PC 机的数据接口,以保证中频采样数据在实时传输的过程中不丢失或出现错误。而GPS中频信号采样器是实现GPS天线和PC机之间的信号转换和传输的必备仪器。本文设计了一种基于GP2015射频前端芯片和CYC68013[2]USB2.0芯片的GPS中频信号采样器。中频信号采样器的总体结构,如图2所示。
图2 中频信号采样器结构
在上图中,采用ZARLINK 公司的GP2015 射频前端芯片及相关外围元件接收卫星信号,实现信号的放大、滤波、下变频和模数转换。射频前端输出的数字信号被输入到EP2C20FPGA 芯片,FPGA 将信号由串行转为16位宽度的并行数据并被送入缓冲,接着FPGA 检测USB接口芯片CY7C68013的端口FIFO 状态,根据状态将缓冲中的数据送入USB芯片,由CY7C68013将数据送上与PC机连接的USB串行总线。PC机的上位机程序完成GPS数据的接收和存储,同时检测用户的命令输入。
4 信号的捕获和跟踪
4.1 信号的捕获
信号捕获的目的是确定接收机当前所在位置的可见卫星信号,进而计算出可见卫星的载波频率和伪随机码相位信息。GPS信号捕获实际上是一个两维的搜索过程,码相位的模糊区域与本地的复制码相联系,而多普勒范围与本地的复制载波相联系[3]。
本文采用码相位并行捕获方法来捕获信号[3~4]。这种算法的原理如图3所示。
图3 码相位并行捕获算法
在基于FFT的计算中,对一个指定的载波频率一次计算出所有的码相位的互相关结果。这种方法的基本原理是时域的相关与卷积在频域上相似[5]。长度为N的信号x(n)通过DFT 在频域表示为
信号x(n)和另一个长度也为N的信号y(n)相关的时域表示为
信号x(n)和信号y(n)相关的频域表示为
两个信号x(n)和y(n)卷积的时域表示为
两个信号x(n)和y(n)相关的频域表示为
从式(3)和式(5)可以看出,两个信号的相关运算和卷积运算在频域上是基本一致的,只是其中一个信号互为共轭而已。所以能够用FFT 和IFFT的方法来代替时域的信号相关。通过FFT 和IFFT的方法,所有码相位上的相关值能在一个FFT 操作中计算出来,能大大减少计算量。
图3具体实现方法是:首先,对输入的中频信号进行FFT 和共轭处理。然后,对本地C/A 码发生器产生的C/A码被本地载波调制之后的信号也做FFT。接着,将上述两个FFT 所得到的结果进行复数相乘,并对得到同相(I)和正交(Q)两路信号进行傅立叶反变换(IFFT)。观察所得到的结果,将其中模最大的那个和预先设定的门限值比较,如果大于门限,则表明信号已经被捕获到,这时接收机可以进一步转换到跟踪环路。如果小于门限,则表明没有捕获到信号,这时更换多普勒频率重复上述过程,一直到能够获得信号为止。
4.2 信号跟踪
信号跟踪的目的是提高所捕获到的C/A 码的相位和载波频率的精度,并在信号随着时间变化的时候保持接收机本地复制信号与输入信号的准确同步,进而去除信号中的载波和伪随机码得到导航数据信息。所以,GPS信号的跟踪通常包括两个环路:伪码跟踪环和载波跟踪环。
设中频信号被采样之后的表示为
其中Ck(n)是第k号卫星的C/A 码序列,Dk(n)是导航数据序列,ωIF是射频前端接收到的卫星信号载波经过下变频之后得到的中频,e(n)是信号中的噪声。
yk(n)与本地的载波信号相乘之后为
上式中第一项是导航数据与伪码相乘的结果,第二项是频率为两倍的中频的载波,信号z(n)k经过低通滤波器之后的信号表示为
下一步是从信号中去除伪码Ck(n),通过与本地产生的C/A 码序列相乘,如果两个码的相位完全对准之后,相乘的结果为
其中NDk(n)是导航数据乘以信号的点数N。从上面的推导可以看出,为了解调出数据码Dk(n),必须产生本地信号cos(ωIFn)和Ck(n),为了精确地产生这两个本地信号,通常采用延迟锁环DLL(Delay Lock Loop)和COSTAS 环对C/A码和载波进行跟踪,结构如图4和图5所示。
图4 六相关器DLL结构
图5 COSTAS环结构
图4中相乘累加的结果被送入码环鉴相器进行计算,计算结果作为控制信号反馈到本地码发生器控制本地C/A码的产生,从而实现码跟踪环路。
图5中的COSTAS环的目的是尽量将信号的能量压缩到同相支路中。假定上图中的复制PRN 码是完全对准的情况,同相支路的相乘结果可以表示为
其中φ是输入信号和本地复制信号之间的相位误差。正交支路的乘积可以表示如下
如果这两个信号在乘积之后被低通滤波,高频成分将被滤除,剩下的部分可以表示为
输入信号和本地复制信号之间的相位误差表示如下:
从上式不难看出,当正交支路的相关值Qk为0,而同相支路的相关值最大的时候,相位误差是最小的。
实际上基于PC机的软件接收机设计的大部分运算量集中在信号处理部分,而信号的捕获和跟踪中占绝大部分运算量的是软件相关器模块[6]。因此,要提高软件接收机的处理速度,关键在于提高信号处理部分的软件相关器的运行速度。下面简单介绍一下软件相关器。
GPS的软件相关器是信号跟踪处理中必不可少的部分,它需要完成三个任务[7]:1)用估计的载波多普勒频移和载波相位把信号混频到基带,即解调过程;2)用估计的码相位和码率将基带信号与本地复制的C/A 码进行混频,即解扩过程;3)它将解调和解扩之后的信号进行累加。软件相关器的运算量主要集中在本地载波的生成、C/A 码的生成、相关累加的乘加运算这三个模块。因为采用基于PC的程序实时生成本地信号的运算量太大,不利于软件接收机实时性的提高,所以,为了降低运算量事先将本地信号生成并存入存储器。然后,在运算的过程中通过查表的办法来代替信号的实时产生。而对于跟踪过程的相关累加运算则转化为位运算和查表来实现。
5 软件设计与定位性能分析
5.1 中频信号采样器的设计
本文研制的基于PC的软件接收机总体实物如图6所示。图中主要包括天线、中频信号采样器和PC机。
为了说明本文所设计的中频信号采样器采集数据的正确性,将其与东南大学伽利略中心的高精度测量型接收机S6532A 作比较。将本文设计的中频信号采样器与S6532A 接收机一起同时接收GPS卫星信号。对采集到的数据计算之后,两种设备捕获的卫星号对比如表1所示。
图6 软件接收机总体实物图
表1 两种设备捕获到的卫星信号参数
利用表1中捕获得到的多普勒频移、C/A 码相位延迟等相关参数对跟踪环进行初始化,可以正确地转入跟踪信号跟踪程序,说明捕获得到的载波多普勒频移和码初始相位的精度基本能满足跟踪环初始化的需求。实验结果说明,中频信号采样器工作正常,从而保证了中频采样数据的正确性,将可靠的信号送入PC机中。
5.2 信号处理软件设计
PC上的软件在VC++平台上编写。软件主要包括:码相位并行捕获、信号跟踪、位置计算三个模块。图7是基于PC的GPS软件接收机总体流程图。
图7 基于PC的GPS软件接收机总体流程
捕获部分利用基于FFT的并行码相位搜索算法,跟踪部分利用捕获得到的信号参数初始化跟踪通道,接着跟踪不断地从缓存读入数据进行处理。本地产生同相和正交的本地信号,与输入信号进行相关。接着进行环路鉴相和滤波并更新本地的码和载波频率。对所有存在卫星信号的通道进行相同的处理。图8是位置计算流程图。首先,找到数据比特边缘和preamble字的位置,获得数据比特值,然后解码出星历,接着进行伪距和位置计算,最后保存定位的结果。
图8 位置计算流程
5.3 软件接收机的定位性能分析
图9 水平位置定位结果
图10 东西方向定位误差
图11 南北方向定位误差
图12 高程定位误差
为了测试本文所设计GPS软件接收机的定位精度,以文中提到的S6532A 接收机定位的结果为参考点,参考点的经度为118.787366335°,纬度为32.058789722°,高程为8.423m。水平位置定位误差如图9所示,图中圆圈位置是参考点,+位置为软件接收机定位点;图10~图12是软件接收机的定位误差与定位时间的关系图,因为每500ms计算一次位置,所以,图中横轴的单位是500ms。从图9中可以看出,软件接收机计算的位置偏离参考位置较远。图10可看出,东西方向的位置偏移在±200m 左右。图11可看出,南北方向的位置偏移在±50m 左右。图12可看出,高程的偏离范围在800m 左右。
定位部分的算法设计没有考虑到星历预报误差、电离层时延误差、对流层时延误差、多路径误差和其他的一些相关误差。这些因素导致本软件接收机定位的位置与参考点偏差较远,从上面几个图也可看出。但是,定位的平均位置是接近参考点的,这说明软件接收机定位基本正常。
6 结语
本文提出了一种基于PC的GPS 软件接收机设计方法。首先介绍了基于GP2015芯片和USB 2.0接口的中频信号采样器设计方法。然后,介绍了基带信号的捕获和跟踪算法,并对软件相关器进行了简单介绍。随后对本文所提出的软件接收机进行了测试和分析。实验的结果表明,中频信号采样器能实时采集并通过USB将数据传输到PC机上,可以满足软件接收机的要求。基于PC的软件部分能正确地得到定位。同时软件接收机的信号处理软件能实现四通道实时跟踪。
[1]Wang Jun.A VC++Based GPS Software Receiver[J].Journal of Astronautics,2009,30(2):532-536.
[2]曾庆喜,王庆,杨英杰.USB接口GPS中频信号采样器研究与实现[J].电子测量与仪器学报,2012,26(10):883-888.
[3]王萌,廉保旺.软件GPS接收机捕获算法的研究[J].计算机仿真,2010,27(1):32-35.
[4]汪伟,于建成,李国鹏.一种GPS接收机微弱信号捕获方法[J].测绘通报,2011,(1):12-14.
[5]胡丛玮,李晓玲,安雷.一种改进的GPS 微弱信号捕获算法[J].武汉大学学报·信息科学版,2008,33(8):821-823.
[6]Tsui,James Bao-Yen.Fundamentals of Global Positioning System Receivers:A Software Approach[M].USA:John Wiley &Sons,2000.
[7]Gotz kappen,Volker pieper,Lothar Kurz.Implementation and Analysis of an SDR Processor for GNSS Software Correlators[C]//ION GNSS 21th ITM of Satellite Division.Savannah,GA:2008.
[8]刘夏.基于VB的GPS定位算法与软件实现[J].计算机与数字工程,2013,(2).
[9]田鸣,王瑞清.基于GPS校准的数字式守时钟守时算法研究[J].计算机与数字工程,2011,(3).
[10]Brent M.Ledvina,Mark L.Psiaki,Steven P.Powell,etal.Bit-Wise Parallel Algorithms for Efficient Software Correlation Applied to a GPS Software Receiver[J].IEEE Transactions on Wireless Communications,2004,3(5):1469-1473.
[11]Mark L.Psiaki.Realtime-Time Generation of Bit-Wise Parallel Representations of Over-Sampled PRN Codes[J].IEEE Transactions on wireless communications,2006,5(3):487-491.
[12]B.M.Ledvina.Performance Test of A 12-Channel Real-Time GPS L1Software Receiver.ION GNSS 16th ITM of Satellite Division.Portland,2003:679-688.