这个时间和距离的计算实际上要靠测距码。


卫星和手机会同时按相同规则持续生成一段测距码,而卫星会将测距码通过电磁波发送给手机。


但发送过程需要时间,所以手机接收到卫星发来的测距码时,会发现和自己生成的测距码有偏移,即为电磁波传播的时间。 




以北斗的 B1C 信号为例,测距码速率为 1.023 Mbps,单个码片的宽度为速率的倒数,即 0.977517 μs。当偏移了 12 万个码片,即电磁波传播时间约为 0.117 秒,可算出距离约为 35166 公里。


知道距离,就可以得到这个等式,其中三个未知量 x、y、z 仍然无法求解。但只要有 3 颗卫星,就能列出 3 个等式构成方程组,进而求出你的坐标 x、y、z。


看起来似乎轻松又简单,然而,得到这样的坐标根本不准。


因为里面任何参数哪怕再小的误差都会让定位大幅偏移,比如电磁波传播的时间,只要 0.000 001 秒的误差,计算距离就会变化 300 米。


为了减小这个误差,我们首先得考虑在卫星上的钟准不准。



今天北斗卫星上搭载的原子钟,精度可达 300 万年只差一秒,但在太空中运行,它却会遭遇相对论效应。


简单来说,根据狭义相对论,卫星相对地面快速运动,那么从地面观测卫星上的时间会变慢。