基于软件的GPS接收机本地系统
0引言
对于一个普通的GPS(全球定位系统)接收机来说,其对信号的捕获和追踪均由硬件进行处理,主要是用ASIC(专用集成电路)实现。用ASIC的主要好处之一是它的有效性,能够对GPS信号进行有效处理,但它的造价较高,而目前GPS技术还在高速发展,各种算法还在不断研究,如果都用ASIC来实现,显然并不现实。而使用软件来模拟搭建GPS的接收系统,不但可以方便地对现有的一些算法进行比较,而且也能快速地应用到实际中。在该系统中,用A/D转换器将输入的模拟信号数字化,然后交由软件接收机处理,由此重构的系统不仅花费较少,而且灵活多变,可以对各种算法测试,也可以适用于将来可能改变的GPS信号,如包括L5 band的不同信号传输载波的频率。
目前,MathWorks公司推出的数值型MATLAB语言计算软件已经发展成为适合多学科、多种工作平台的功能强劲的大型软件,其在数值分析和科学计算方面的工具能够用来进行算法的研究和比较。本文充分利用了MATLAB这一特点,对基于软件的GPS接收机本地系统进行研究。
1 GPS信号的特点
GPS采用伪随机码扩频系统。其原理见图1。由图1可知,GPS卫星向用户发送的信号由两个分量L1和L2组成。L1的中心频率为1 575.42 MHz,L2的中心频率为1 227.6 MHz,L1和L2均是己调波,其调制波是卫星导航电文D码和伪随机噪声码P码、C/A码。P码是精密测距码,为取±1的伪随机序列,其速率为10.23 Mbit/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个频点搜索,
- 美国GPS系统的管理与运营(02-07)
- 基于GPS的数据采集系统的研究(01-15)
- 展频技术完美解决GPS搜星灵敏度难题(01-04)
- GPS的信噪比很高,为何定位时间却很长?(05-25)
- 从技术层面上分析北斗与GPS的九大区别(05-08)
- 北斗卫星导航试验系统(北斗一代)(02-04)