什么是GPS的漂移,请看一位网友关于漂移的解释。
基本的GPS理论 我们都知道,一个GPS接收机可以提供用户的位置,速度,和时间的估计(即P.V.T.估计)。这里我以位置估计为例。 在ECEF坐标系,对于位置有3个未知量,x,y,z。要计算这3个位置量,至少需要3个方程: S1 = [(x1-x)2 + (y1-y)2 + (z1-z)2]1/2 S2 = [(x2-x)2 + (y2-y)2 + (z2-z)2]1/2 S3 = [(x3-x)2 + (y3-y)2 + (z3-z)2]1/2 这里 (xi,yi,zi) 是第i个卫星的坐标。 Si 是卫星i 到用户的距离。 卫星的位置可以由Ephemeris数据精确算出。 但如何知道精确的距离?很容易想到用电磁波传播的时间来计算距离:用光速乘以传播的时间。但如何知道精确的传播时间?有人会说:如果我们知道发送的时间和接收的时间,我们就可以得到传输的时间。这个主意看起来可行,但如何才能知道精确的发送和接收时间?而且更要命的是,我们好像正在引入更多的未知量。 不要太沮丧了!好像我们引入了更多的未知量,其实不然。 首先,如果卫星的信号已经被锁定,我们至少可以知道精确的发送时间,具体实现如下: 当卫星信号被锁定以后,我们可以恢复卫星的导航报文; 当卫星导航报文恢复以后,从HOW字( 每一个子帧的第二个字)可以知道GPS时间(TOW),这将会给信号的发送时间以6秒的精确度;(太粗略了!) 导航报文的位计数可以将发送时间的精度提高到20毫秒以内,这是因为报文每一位是20毫秒。但20毫秒还是太粗了; 跟踪环可以给出CA码的整周计数, 这可以将发送时间的精度设在1毫秒以内。这好多了,但还是不够。想一想电磁波在一毫秒可以走多远,300公里! 跟踪环进一步可以给出CA码的码片(chip)计数,这可以将发送时间的精度设在1/1024毫秒以内. 这样一来,距离的精度就在300米以内了(3E8 * 1/1024/1000 ~ 300m)。 至此为止,我们已经解决了发送时间。那么到达时间怎么算?没有办法。有人想:为何不从本地接收机的时钟里得到到达时间?这个方案是不可能的,因为接收机的廉价时钟有很大的偏移和漂移(除非每一个接收机都配一个铷或铯原子钟,但那样的接收机这个世界上没有多少人用得起。)。如前所述,时间上的1毫秒偏差等于距离上的300公里的偏差。所以我们不可能得到每一个卫星信号的精确的到达时间。这样我们还是有太多的未知量。 但相关器(这里是GP2021)可以在 同一时刻 锁存所有通道的测量值(CODE_SLEW,CODE_PHASE, CARRIER_CYCLE_LOW, CARRIER_DCO_PHASE,EPOCH,CODE_DCO_PHASE,CARRIER_CYCLE_HIGH,EPOCH_CHECK)。这个功能实在是太好了,因为这意味着所有卫星的信号将共享一个到达时间。于是我们只引入了一个未知量:接收机的时钟偏移tb。对4个未知量(x,y,z,tb),4个方程就足够了: S1'' = [(x1-x)2 + (y1-y)2 + (z1-z)2]1/2 - Ctb S2'' = [(x2-x)2 + (y2-y)2 + (z2-z)2]1/2 - Ctb S3'' = [(x3-x)2 + (y3-y)2 + (z3-z)2]1/2 - Ctb S4'' = [(x4-x)2 + (y4-y)2 + (z4-z)2]1/2 - Ctb Here (xi,yi,zi) 是第i个卫星的坐标. Si'' 是卫星i 到用户的伪距离 难到漂移无法解决吗?是的!完全不漂移是不可能的! 但我们可以引入差分数据来把漂移减少到十分精确的程度! 数学方程式我就不详说了! 编辑点评: 虽然关于漂移解释中的数学公式很难理解,但对于一般GPS应用不需要专门理解,但至少可以说明GPS的漂移不是绝对可以避免的,漂移受到许多条件的影响,硬件只是是一方面,或许通过这款VisualGPSXP可以让你更加了解自己GPS的性能,也了解一些关于GPS真正的有价值的参考信息。如果你对这款软件有什么疑问,欢迎留言参与讨论。 (责任编辑:admin) |