近来,通信和导航工程师越来越倾向在全球定位系统(GPS)中采用软件技术。1,2 由于超大规模集成电路的发展,性能强大的CPU和DSP能够通过软件对GPS信号进行实时检测和解码。这些基于软件的GPS接收机具有相当强的灵活性:只需修改设置参数即可适应新的应用,无需重新设计硬件,选择一个IF,就可完成进一步的系统升级。
利用MAX2769 GPS接收机RF前端芯片,简单的USB dongle或PCI Express® (PCIe®)迷你卡就可以为笔记本电脑增加低成本的GPS功能。MAX2769将接收到的原始数据传输到PC主机,PC主机利用软件实现基带解码,从而省去了单机GPS系统所需要的基带ASIC的成本。简单的说,MAX2769使设计人员可以利用单芯片实现GPS和Galileo系统信号处理的适配器。
本文给出了GPS系统的工作状态概述,并详细描述了Maxim的基于软件的GPS接收机方案。
GPS基本原理
GPS系统包含24颗空间卫星或空间运载器(每个都用唯一的伪随机噪声编码识别)、地面控制站以及用户设备(接收机)。对于民用GPS和Galileo系统,这些卫星通过频率为1.57542GHz的L1波段进行通信。3 GPS接收机必须捕获到至少四颗卫星的信号才能进行可靠定位,信号捕获和跟踪非常复杂,因为每颗卫星和接收机的位置时刻都在变化。
图1. 民用GPS信号发生器采用扩频技术发送信号。
GPS信号
GPS系统实际上是一个简单的扩频通信系统。4 图1提供了一个民用GPS系统的信号发生电路。首先,50bps的导航信息重复20次,形成1000bps的比特流。然后这个重复信号被长度为1023码片(伪随机噪声(PRN)码的码速)的唯一粗调/捕获码(C/A)进行扩频,形成1.023Mcps的基带信号。此用这种扩频方法后,43dB大小的GPS系统的总处理增益(G)可以很好地恢复比热噪声电平低得多的信号。
每颗卫星都有唯一的C/A码或者说Gold码。5 由于具有很好的自相关和互相关性,Gold码被广泛用于各种CDMA通信系统,如WCDMA和cdma2000®。基带信号经过二元相移键控(BPSK)调制后被上变频到L1波段进行传输。
信号捕获
因为GPS是一种CDMA通信系统,所以作为解调数据的先决条件,接收机必须与PRN码进行同步。实现代码同步通常需要两个步骤:用来实现粗对准的代码捕获和用来实现精细对准的代码相位跟踪。6 更明确地讲,GPS接收机必须首先确定它对某颗卫星是否具有视距上的可视性。我们知道,每颗卫星都由唯一的C/A码来区分。当卫星可视时,由捕获过程判断信号的频率和代码相位,然后确定相应的解调参数。由于存在多普勒效应,根据卫星相对于接收机的速度,接收信号的频率一般会偏移标称值5kHz到10kHz。
在接收器端,GPS信号首先被下变频到同向和正交(I和Q)分量信号。再由一对I和Q相关器将I/Q基带信号与本地PRN序列进行相关运算。经过一个比特周期的积分后,I-Q相关器的输出被累加起来以提供输出判定变量。
只要判定变量超过一定的门限,系统就认为成功地实现了捕获,继而进入跟踪模式。否则,就通过调节本地PRN序列的相对相位和振荡器频率,来更新判定变量,并重复上述过程。
串行搜索方法的简单逻辑结构使它非常适合用ASIC实现,而用软件实现就不切实际了,因为搜索空间非常大。假设系统允许500Hz的载波频率偏移,多普勒频率是10kHz,软件实现需要的搜索空间大概为2 &TImes; (10,000/500) &TImes; 1023 = 40,920。很明显,用软件实现串行搜索捕获比较困难。
另外一种更简单的软件捕获方法叫做频域并行代码相位捕获。这种方法将多普勒频率和代码相位搜索合并起来,在经过PRN码的快速傅立叶变换(FFT)后,将所有代码相位信息转换到频域内。这样我们只需要搜索多普勒频移上的空间即可,因此这是一种快速高效的软件搜索方法。
首先,将输入信号与本地正弦和余弦载波(同向I和正交Q信号分量)分别相乘。然后把I和Q分量合并成一个复合信号输入到FFT模块。傅立叶变换的结果再和PRN码的FFT变换结果相乘(PRN生成器产生代码相位为零的代码)。实际上,FFT运算和PRN码的产生可以采用列表的方法,以降低运算的复杂性。
最后,输入信号与本地代码的乘积(该乘积代表了输入信号和载波频率的相关性)被送到傅立叶逆变换模块,该模块的自乘输出结果再被反馈到判定逻辑。基于FFT的频域计算被证实具有较小的运算量。例如之前提到的那个例子, 捕获运算的复杂性大概为20,000/500 = 40次FFT运算 *** 作。
串行搜索方法具有简单的逻辑和控制架构,非常适合ASIC实现。然而,巨大的搜索空间增加了软件算法的复杂性。所以对于软件GPS接收机来说,串行搜索方法并不是一个好的选择。相反,并行代码捕获方法的低复杂性使它很适合用软件实现。然而,它的逻辑架构远比串行搜索方法复杂,因此很难用ASIC实现。
跟踪细调
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)