GPS 定位基本原理
GPS 定位是现代移动应用中最重要的一种技术,它将成为所有移动设备的标准配置。GPS 定位的基本原理是通过四颗已知位置的卫星来确定 GPS 接收器的位置。本文将从编程人员的角度出发,介绍 GPS 定位的基本原理,包括数学模型、定位过程和相关技术细节。
一、GPS 定位数学模型
GPS 定位的数学模型是程序员最关心的问题。这个模型可以简单地表示为:
Location = GetLocation([Position1, d1], [Position2, d2], [Position3, d3], [Position4, d4])
其中,Location 是要定位的 GPS 接收器的位置,Position1、Position2、Position3、Position4 是四颗卫星的当前位置(空间坐标),d1、d2、d3、d4 是四颗卫星到要定位的 GPS 接收器的距离。
二、定位过程
GPS 定位的过程可以分为三步:
1. 获取卫星位置信息:GPS 卫星每一个都在时刻不停地通过卫星信号向全世界广播自己的当前位置坐标信息。任何一个 GPS 接收器都可以通过天线轻松地接收到这些信息,并且能够读懂这些信息。
2. 获取距离信息:GPS 卫星在发送位置信息的同时,也会附加上该数据包发出时的时间戳。GPS 接收器收到数据包后,用当前时间减去时间戳上的时间,就是数据包在空中传输所用的时间。知道了数据包在空中的传输时间,那么乘上他的传输速度,就是数据包在空中传输的距离,也就是该卫星到 GPS 接收器的距离。
3. 计算位置:通过 GetLocation() 函数,可以计算出 GPS 接收器的位置。
三、GetLocation() 函数
GetLocation() 函数是一个虚构的函数,事实上未必存在,但是一定存在类似的运算逻辑。这些运算逻辑可以由软件来实现,但是事实上可能大都是由硬件芯片来完成的。
四、为什么需要四对参数?
根据立体几何知识,三维空间中,三对 [Positioni, di] 这样的数据就可以确定一个点了,但是为什么这里需要四对呢?理想情况下,确实三对就够了,也就是说理想情况下只需要三颗卫星就可以实现 GPS 定位。但是事实上,必须要四颗。因为根据上面的公式,di 是通过 c\*Ti 计算出来的,而我们知道 c 值是很大的(理想速度即光速),那么对于时间 Ti 而言,一个极小的误差都会被放大很多倍从而导致整个结果无效。
五、GPS 定位的误差来源
GPS 定位中,存在多种来源的误差,包括:
* 时间的精度要求非常高,从而导致整个结果无效。
* 速度 c 也会受到空中电离层的影响,因此也会有误差。
* GPS 卫星广播的自己的位置也可能会有误差。
* 其他等等一些因素也会影响数据的精确度。
数据是存在误差的。这些误差可能会导致 GPS 定位的结果不准确。