从系统和宏观角度出发,剥离掉应用层之后,GPS接收机完成的工作可以分为信号测量、数据接收和几何演算三大部分。
数据接收即接收那些以位流或报文的形式传送的数据(不包括那些需要对信号的相位、频率和强度测量才能得到的那部分数据)。每颗卫星不断地送出自己的轨道位置数据。这些数据包含了其位置和时间。卫星的轨道位置以星历(Almanac)和位序(Ephemeris,即一个与预知位置关联的时序序号)参数的形式传送。利用星历和位序,避免了重复传送复杂的坐标参数。在星历和位序传达的位置数据之外,还有若干组用于修正轨道位置和传播特性的数据。
为了有别于数据接收,本文把通过信号的相位、频率和强度测量得到数据参数的过程称为信号测量。每颗GPS卫星采用不同的伪随机码区别于其他卫星的信号,包括一个占较大功率用1.023M位速率Gold码(这是一组著名伪随机码)调相的部分(C/A码,只在L1载波,1,575.42M)和一个占较小功率的不公开的10.23M伪随机调相的部分(P码,在L1和L2载波,L2为1,227.60M)。信号测量即测量这些伪随机码码片(或与载波)之间的相位关系和频率得到精细定时,然后叠加到码片内位序、码片序、报文位序和报文序粗定时中得到完整的时间差。
图1:GPS几何计算的简单示意图。
GPS中时间的引用和继承
GPS接收机接收全部数据需要12.5分钟。GPS接收机工作状态包括冷启动,热启动,跟踪和寻桩;跟踪是利用前一点参数、快速定位新一点的持续过程。寻桩特指一种快速定位技术,在进入寻桩状态前预估下一测量点的参数,进入寻桩后则只是对预定的桩点参数修正以高速定位。
GPS的C/A码片内位序、码片序、数据位序所能判决的时间/距离分别对应0.98us/293m、1ms/300km和20ms/6,000km。子帧序、帧序(页)则对应6s和30s。页完整地带有时间信息、不需要更长时间的时间判决。在定位时,通常会首先检查有没有可以引用的时间。如果可以引用的时间准确度可以满足将当前时间定位到上述的某个时间范围内时,只需要进一步在这个时间片内测量时间即可。被引用时钟的准确度由其漂移和其继承的最近一次校时的准确度确定;那些固定的快慢偏差可以用比例系数消除。
GPS是一个精确定时系统,投入运行后的接收机自己就可以对所引用钟校时。接收机系统可能有多个可引用钟源,例如宿主处理器的实时时钟和处理器的指令运行定时时钟等。一般地,需要用校准时间、校准精度、钟频修正和时钟漂移4个量和当前时钟视在时间共同计算偏差和决定如何引用(较快的钟源和较慢的钟源需要各自采用不同的数值表达方式以适应其变化速度和精度)。大多数情况下可以利用其他钟源有效地定时到6s内;例如引用漂移为+/-2,000ppm(折合每天+/-3分钟)的时钟数据时,如果继承的准确度为1s,则在校准后40分钟内可以判定当前的子帧是属于哪个6s;如果在25s内引用40ppm的时钟,则可判定到当前码片属于哪个1ms。
在更大时间范围内,日期、时和分的引用和继承用于初步判定当前可能接收到哪些卫星的信号;在更小的范围内,引用和继承用来缩小对一个样本集作相关计算时的位移-相乘的范围。这些不同精度范围内的时钟数据可以用同样的数据结构表达,引用、继承和校准算法也可作同样的结构设计。
时间测量和样本集
图2用以说明GPS数据发送的时间关系。大于GPS数据位持续时间、即20ms以上的定时测量与20ms以内的定时测量不同;较长的定时由数据位和数据位变化的时间确定。此时需要检测数据位转换发生的精确时间——即从哪一个码片起、开始发送下一位数据。
图2:GPS数据和信号的时间关系示意图。
如前一节所述,直到时间的引用和继承不能维持当前位定时的准确性时,才需要测量位变化发生时间(和其他不能维持的更慢定时;)。由于数据位与位之间无传送间隔,只有数据发生变化时才能测量到这个时间。为了识别数据位的变化,要连续地监视PRN码片、或者采集的信号样本集要包括至少一次位变化。除了TLM报文字段内的8个字节的前导序列的位是已知的(10001011b),其他时间数据如何变化是未知的。这就使得一个大的样本集,如果包括了n各可能的位变化时,要在n2种组合状态计算相关积。一般不需要处理n>1的样本集;一方面本节后面的仿真结论是样本集深度接近1个PRN码片时已可有效计算,而且每个数据位重复达20个相同PRN码片;另一方面,TLM字段的前导序列每6s出现一次,以40ppm的时钟估计,一次继承的定时准确度可以在4个子帧中、即24s内,利用时钟定位到20个PRN码片中的一个。即使是不能定位到一个PRN码片内,如果只在一个数据位时间内,即20ms内采集数据,则可保证只发生一次可能数据变化的时间。
数据位变化时间测量确定到了一个PRN码片,即1ms。更精细的定时需要测量PRN码的相位关系。这个测量是GPS接收过程中最频繁的处理。
考虑到样本集中可能存在一次数据位变化的情况,对一个样本集做相关计算可能得到两位数据、一个数据变化时间和一个相位偏移时间。除了测量数据变化时间外,把n=1的情况包括进来还可用于在低量化精度时处理频偏引起的反相。
接下来估计需要的样本集深度。图3是不同样本深度的GPS C/A码滑动相关时的相关积变化曲线。信号样本中的11个其他伪随机序列用来模拟干扰和噪声(取单星信号功率为底噪的-16bB,另包括7颗其他星的等强度信号作为干扰和预留8dB的接收机噪声;MAX2741/2741A的级联噪声系数<4.7dB。)。可以观察到样本深度超过80%的码片长后,已可以利用1.05倍均值识别相关峰位置。生成数字化样本集时采样频率和幅度量化的影响将在后面的节讨论。
图3:不同样本深度时的GPS C/A码滑动相关系数仿真计算。
以上仿真计算采用的是完整的PRN码片。实际应用中样本集一般是由若干个片断组成的,每个片分别在一个连续的小时间段内采集、整个样本集在一个较大的时间跨度内采集。根据PRN的特性,这些由残片组成的样本集在整体上仍保持原来PRN码的统计特性。
除了上文提出的对样本集的最小深度和最大时间跨度的限制外,另外一个对时间跨度的实际限制是系统的时变性。GPS卫星约在地面以上20,200km处以12小时一圈的速度绕地球旋转(地面观察者看起来24小时内只有一次起落;)。当卫星在接收机上方45°方位飞离,其速度约为5000km/h或1.7m/ms(作为对比:1000km/h的喷气式飞机速度合0.27m/ms)。当样本集跨较大的时间时,其间的信号相位和频率都有变化。实际系统不可能针对每颗星改变数据采集速率,只可能改变本地相干码样本(一些文献称复制码)。对一个样本集前后采用不同微偏的频率做滑动相关计算需要多次生成本地样本和重复计算。与之相比,采用在较短的样本集和固定微频偏,对得到的一组位置信息、配合移动状况加以修正和平均则可在较低运算量和实时要求下快速得到较粗位置和移动数据;进而利用这些数据修正微频偏和移动,可在若干次迭代后取得精度改善的数据。相对于卫星的速度,接收机的运动变化不会引起显著的频移而只是表现为相移(微频偏的时间积分)。在这个算法下允许的最大样本集时间由本地频率与接收数据的频差决定,即在这个时间内、频差不足以使PRN码多次反相(与解调方式有关,也可能是不足以使载波多次反相)。从这个限制考虑,很多型号晶振的性能可容忍20ms的样本集时间;除了一些特别的应用,例如前导序列测量,一般不需要考虑这个限制。
一般速度下与卫星的相对移动主要是由卫星的移动确定的,而卫星移动一段时间内是稳定的,因此对载波的多普勒频移补偿一段时间也是可以不变的。多普勒相、频移动并不能直接反映到基带信号中;这一方面是由于基带信号不具备单一的频率,同时也是通路中滤波的结果。不考虑移动补偿对样本集做相关计算时,平均的效果使卫星相当于卫星处在样本时间对应的移动路径的中点。这样的简化处理对较低的位置精度和接收机移动速度时可用的,对于较高位置精度和较快移动的特别应用,则需要根据样本集采集时间做修正后进行相关计算。而对于更高位置精度的要求,由于要使用载波相位测量等手段直接处理这部分偏差,反而不再需要这样的简化补偿。