0引言
对于一个普通的GPS(全球定位系统)接收机来说,其对信号的捕获和追踪均由硬件进行处理,主要是用ASIC(专用集成电路)实现。用ASIC的主要好处之一是它的有效性,能够对GPS信号进行有效处理,但它的造价较高,而目前GPS技术还在高速发展,各种算法还在不断研究,如果都用ASIC来实现,显然并不现实。而使用软件来模拟搭建GPS的接收系统,不但可以方便地对现有的一些算法进行比较,而且也能快速地应用到实际中。在该系统中,用A/D转换器将输入的模拟信号数字化,然后交由软件接收机处理,由此重构的系统不仅花费较少,而且灵活多变,可以对各种算法测试,也可以适用于将来可能改变的GPS信号,如包括L5band的不同信号传输载波的频率。
目前,MathWorks公司推出的数值型MATLAB语言计算软件已经发展成为适合多学科、多种工作平台的功能强劲的大型软件,其在数值分析和科学计算方面的工具能够用来进行算法的研究和比较。本文充分利用了MATLAB这一特点,对基于软件的GPS接收机本地系统进行研究。
1 GPS信号的特点
GPS采用伪随机码扩频系统。其原理见图1。由图1可知,GPS卫星向用户发送的信号由两个分量L1和L2组成。L1的中心频率为1 575.42 MHz,L2的中心频率为1 227.6MHz,L1和L2均是己调波,其调制波是卫星导航电文D码和伪随机噪声码P码、C/A码。P码是精密测距码,为取±1的伪随机序列,其速率为10.23Mbit/s,其码长为235.469 592 765×103码元,周期约为266 d 9 h;C/A码是粗捕获码,为取±1的C/A码伪随机序列,其码速率为1.023 Mbit/s,其码长为1 023码元,周期为1 ms;D码为取±1的导航电文编码,其码速率为50 bit/s载波。
信号L1的同相载波分量是用PoD复合码进行调制,而正交载波分量是由C/A D复合码调制的。载波信号L2上只调制有P码和D码。调制的方法是:首先,P码与数据D码模2和构成复合码P D,C/A码与D码模2和构成复合码C/A D;然后,用P D和c/A D复合码对载波L1进行调制。载波调制均采用移相键控调制,L1采用QPSK(四相移相键控)调制,12采用DPSK(双相移相键控)调制。这几个GPS分量均来源于一个公共的基准频率,见表1。
2软件接收机的实现
2.1 GPS信号处理的主要步骤
GPS接收机信号处理主要包括射频信号处理与中频信号处理两部分,如图2所示。
射频信号处理主要是指对天线接收到的GPS卫星信号进行下变频、采样、量化处理,得到数字中频信号。它包括天线、RF和A/D转换器。RF用于将信号变中频,中频信号在A/D转换器中进行采样量化数字化。输入的中频为4.31 MHz,采样频率为20 MHz。这个采样频率是最适合进行中频信号处理的。
中频信号处理主要是指对数字中频信号进行相关、捕获、跟踪、解调处理,得到卫星的导航电文数据后,再进一步解算出导航信息。本文的软件接收机主要处理这些问题。
2.2捕获模块
捕获模块的功能是:在输入信号多普勒频率和C/A码相位二维平面上寻找最大相关峰,找到对应的载波频率和C/A码相位,为本地生成的载波频率和C/A码相位与输入信号提供粗略的初始值。搜索过程是将不同码相位l和载波频率ωsvn情况下的I、Q两路的相关积分值的平方和相关峰值与规定的阈值比较,如果大于阈值则找出最大值,此时所使用的码相位和载波频率值即为输入信号的码相位和载波频率值。
算法思路如下。在不同频率、不同C/A码相位进行二维搜索寻找最大相关峰。首先使本地载波发生器固定在期望的中频频点上,然后使C/A码发生器从码相位为1开始运行相关器1 ms时间,保存并清空I、Q两路积分值,求I、Q两路积分值的平方和作为相关峰值。再令C/A码发生器从码相位2开始运行l ms时间取得相关峰值,直到取得相位从1023开始运行的1 ms时间相关峰值。使本地载波发生器频率增加一个频率步长,比如500 Hz,重复上述过程,直到将所有可能的频率范围和所有的码相位都搜索完为止。在搜索得到的二维平面上寻找最大相关峰的值与对应的频率和码相位值。如果最大相关值大于相关平面平均相关值16倍,则可以认为接收信号内包含该卫星信号,已经检测出其信号相关峰,记录下对应的频率和码相位供后续程序进行跟踪解码。最差情况下捕获时间可以由二维平面的相关峰值点数确定。静态定位的多普勒频偏在-5 kHz~+5 kHz,以500 Hz为频率间隔则需要在21个频点搜索,每个频点都需要1 023个码相位的搜索,则最差捕获时间约为21 s,即
2.3跟踪模块
跟踪模块的功能是:实现本地C/A码相位和载波的频率、相位与输入信号的C/A码相位和载波的嘲率、相位同步,输出I路中路积分信号供解码基带报文信号。算法思路如下。将码跟踪与载波跟踪视为独翻的两个过程。码跟踪使用超前延迟环反馈控制C/A码发生器调整码的相位。其中超前路(E)、中路(P)和延迟路(L)各相差半个码片,分别代表信号提前、准时和落后达到。经综合后,这些信号分别代表输入信号和一个本地码之间的相关性。具有最高相关值的信号被选中并保留下来,即当超前路的能量和延迟路的能量相同时可确定中路已与输入信号的码相位对齐。
载波跟踪是先使用FLL(锁频环)跟踪频率,待跟踪一段时间使频率抖动变小后,将锁定的频率送给PLL(锁相环)作为初始值,使用PLL对信号的相速度进行跟踪,经过一段时间跟踪稳定后,累积器的结果就可以用于解码基带电文数据。载波跟踪的I、Q路积分值使用中路的I、Q积分值。先将捕获得到的粗略频率作为FLL的初始值,使用I、Q积分值求得频率差来调整跟踪频率,待跟踪一段固定长时间可以确定频率已经很接近真实频率后,将锁定频率送给PLL作为初始值,使用PLL对信号的频率和相位进行追踪,待跟踪一段时间稳定后本地载波与输入信号的频率和相位将锁定,累积器的结果可以用于解码基带电文数据。综合码跟踪和载波跟踪的原理图见图3。
2.4导航电文解调、定位模块
为了解调出导航电文,需要进一步消除载波的相位误差。导航电文解调模块用以下算法消除误差,并由I′(k)给出当前导航电文的数据位。
式中:I(k)和Q(k)为I、Q分路的即时分支的第k次累加值;θk为载波相位误差估计值,θk=θk1-1+△k-1,且θ0=0,其中△θk为载波相位误差的估计残差,且△θk=sign(I′(K))Q′(k)。
3设计验证和仿真结果
为了验证设计模型,本文利用GPS信号模拟器产生的GPS中频信号作为输人信号,并在几个典型点上观察相应的模块输出波形。
信号模拟器可由MATLAB实现,并可对信号的信噪比、多普勒频率、码相位等参数进行调整。
本文使用的中频信号中心频率为16.8 MHz。仿真结果见图4 ~图6。
4结束语
本文用MATLAB软件实现GPS软件接收机的本地系统,并通过MATLAB软件对设计模块进行了验证。验证结果表明,该设计够实现对GPS信号的处理,包括信号捕获、码跟踪、载波跟踪和导航电文解调等功能,不仅为GPS软件接收机设计提供了基本的参考依据,还可作为各种新的GNSS高性能信号处理方法的设计、评估可视化研究平台。
|