admin | 世界杯冰岛
什么是GPS定位?
我们手机上的GPS定位,是卫星定位的一种约定俗成的说法,卫星定位的全称来说应该叫做GNSS(Global Navigation Satellite System)定位。GPS只是GNSS的一种,是美国部署的一套全球卫星系统。这套系统给个简单的描述,就是
天上有24颗卫星在不断的绕地球运动(图1),
每颗卫星不断发送“我是谁,我在哪里”的信号
接收机(比如手机GPS芯片)收到了多颗卫星发出的这样的信号,根据信号传播时间推算出离卫星的距离,进而解出了接收机自己的位置,顺便可以得到当前准确时间(图2)。
(图一)
(图二)
关于GPS基本原理问答
如果对这个原理稍微琢磨一下,就很容易出现不可理解之处,比如:
有人问,为什么能保证每时每刻都能定位呢?如果天上就两颗卫星,又如何唯一解算出设备位置?这就是天上为什么部署24颗卫星的原因,这种部署方式就可以保证无论何时天空中都能接收到>=4颗卫星的信号。
有人问,求解3D坐标只要三颗卫星就够了,为什么要四颗呢?问题就在于接收机(手机)的时钟和卫星的时钟是存在时间差的,我们需要解算出这两个时钟的真正时间差,否则便无法算出传播时间,也无法根据传播时间来反算传播距离,最终便无法定位。也就是说,我们要解的未知数,不是三个,而是四个。
有人问,既然卫星信号在卫星定位成功后,每秒都会定位一次,这足以说明信号传播是没有障碍的,那么为什么要花这么长的时间来搜星?这是个好问题,不过这个问题很复杂,一言蔽之就是最主要的时间用在了“等待电文”上,所谓电文就是卫星用来循环播报当前位置的信号(这里澄清下,卫星并不是如我们想的这样,每秒播报一次当前的位置,而是时刻发送连续循环的信号,要不然也不会有接收机能实现每秒几十次GPS定位了),这个信号播报周期为30秒,从而GPS的冷启动一般来说,至少要30秒才能完成。
有人问,为什么在汽车的导航上看到GPS的轨迹运动非常连续平滑,而手机上却是每秒跳一次,手机能否每秒定位n多次?这个要分两方面说,第一这个肯定是可以做到的,因为GPS卫星发射的信号是连续的,他不是每秒广播一个卫星位置,而是传输一个轨道参数,基于这个信息,就可以重构卫星的完整飞行轨迹,从而只要接收方愿意,它可以做到每秒解算几十次位置;第二从目前来看手机GPS模块因为成本和收益的折衷,设计成每秒定位一次,基本也是够用的。当然,作为一个完美主义的手机APP开发者,你如果真的反感每秒跳动的位置,也可以基于每秒一次的位置,用滤波来进行平滑推算,使得视觉效果非常平滑,这样看上去也就能以假乱真了。
中国的北斗是怎么回事?
先抛出一个常见的问题,既然说GPS总共24颗星,那么按道理地球某个半球最多也就能接收到12颗卫星(比如东半球的接收机,不可能接收到正在西半球天空中的卫星发射过来的信号),但是看看GPS软件的截图(iOS没有,Android可以用GPS Test之类的)就会发现,可见卫星远大于10颗,这是为什么?