GPS如何测速,从卫星信号到速度读数的完整拆解

kyadmin 1 2026-10-11 10:00:18

你可能每天开车都用导航,看着屏幕上那个小箭头旁边显示“时速60公里”,心里觉得挺理所当然,但有没有那么一瞬间,你盯着那个数字想过:GPS到底是怎么知道我开多快的? 它又不是轮子上的传感器,也没跟我的车有线连着,就靠天上那几颗卫星,它凭什么能算出速度?

这事儿我以前也琢磨过,后来搞明白了,发现原理其实不复杂,甚至有点“笨”——但笨得很聪明,下面我就用尽量人话的方式,把GPS测速这件事从头到尾说清楚。

先搞清楚:GPS测速和轮速传感器完全是两码事

很多人第一反应是:车速不就是看轮子转多快吗?对,车上仪表盘显示的速度,绝大多数时候来自轮速传感器——ABS系统里那个测轮子转速的玩意儿,但GPS测速走的是另一条路,它不依赖车辆任何机械部件,而是完全靠无线电信号。

这意味着什么?意味着你把GPS接收器揣兜里跑步、骑车、甚至坐飞机,它都能测出你的速度,也意味着,如果GPS信号丢了(比如进隧道),速度显示就会卡住或者乱跳,这就是为什么手机导航进隧道后,速度经常“僵”在某个值上好几秒。

核心原理:位置变化除以时间变化

GPS测速最直观的思路就是:每隔一小段时间,测一次你的位置,然后用两个位置之间的距离除以时间差。 比如0.1秒前你在A点,现在在B点,A到B直线距离1.67米,那么速度就是16.7米/秒,换算过来约60公里/小时。

听起来简单得有点过分对吧?但问题在于:GPS定位本身有误差,民用GPS单点定位精度通常在5到10米左右,如果每0.1秒就算一次位置差,那误差会比实际位移还大,算出来的速度根本没法看,所以实际GPS接收器不会这么“笨”地直接除。

那它怎么办?

真正的关键技术:多普勒频移

这才是GPS测速的“杀手锏”,如果你学过一点物理,应该记得多普勒效应:当声源或者观察者移动时,接收到的频率会发生变化。 救护车朝你开过来时警笛声变尖,开走时变低沉,就是这个道理。

GPS卫星发射的无线电信号有固定的频率(比如L1频段是1575.42 MHz),你的GPS接收器在移动时,接收到的信号频率会跟标称频率有一个微小的偏差,这个偏差就是多普勒频移,它直接正比于你相对于卫星的移动速度。

更妙的是,GPS接收器能同时收到多颗卫星(通常至少4颗,实际经常8到12颗)的信号,每颗卫星相对于你的运动方向都不一样,于是每颗卫星对应的多普勒频移也不一样,接收器芯片通过解算这些频移,就能反推出你在地球上的三维速度矢量——包括速度大小和方向。

这种方法的好处是:精度极高,而且不受定位误差累积的影响。 因为多普勒频移测量的是频率变化,频率本身可以测得很准,普通民用GPS用多普勒测速,精度能达到0.1米/秒级别,也就是0.36公里/小时,这比很多车子的轮速传感器还准。

所以现在你明白了:GPS测速主要靠的不是“位置差除以时间”,而是多普勒频移。 位置差方法只是辅助或者备用。

接收器内部到底发生了什么?

咱们把过程拆成几步,用生活化的方式走一遍:

  • 第一步:捕获信号。 接收器开机后,先搜索天上所有可见的GPS卫星,锁定它们的信号,每颗卫星都在广播自己的位置和时间。
  • 第二步:跟踪信号。 锁定之后,接收器持续跟踪这些信号的相位和频率,这时候它就能测出每颗卫星信号的多普勒频移。
  • 第三步:解算速度。 接收器知道每颗卫星的精确运动速度(地面控制站会定期更新卫星轨道参数),再结合测到的多普勒频移,列出一组方程,解这组方程,就得到接收器自己的速度矢量。
  • 第四步:输出结果。 速度矢量的大小就是你的移动速度,方向就是你的运动方向,然后接收器通过串口或者蓝牙把数据发给手机、导航仪或者行车记录仪。

整个过程每秒钟会发生很多次,通常输出频率是1Hz、5Hz甚至10Hz,也就是说,每0.1秒就更新一次速度,你看到的速度数字跳动,就是这些更新在刷新。

为什么有时候GPS测速会“飘”?

你肯定遇到过:明明车停着,导航却显示时速2公里;或者进隧道后速度突然变成0又突然跳到80,这跟GPS测速的原理直接相关。

几个常见原因:

  • 信号遮挡或多径效应。 城市高楼、峡谷、隧道里,卫星信号被反射或阻挡,接收器可能跟踪到错误的信号,多普勒频移测不准,速度就飘了。
  • 卫星几何分布差。 如果可见卫星都集中在天空同一片区域,速度解算的精度会下降。
  • 接收器动态能力不足。 有些廉价GPS芯片在急加速、急转弯时跟踪环路会失锁,重新锁定时速度会短暂异常。
  • 静止时的“伪运动”。 接收器内部有噪声,多普勒频移测量有微小波动,导致静止时可能输出0.5到2公里/小时的速度,很多导航软件会做“静止归零”处理,但处理不好就会跳变。

所以如果你发现GPS速度跟车仪表盘差个一两公里,别太惊讶,仪表盘本身也有误差(通常偏大3%到5%),GPS也有自己的波动。两者都不是绝对真理。

不同场景下GPS测速的表现

咱们用个表格对比一下,这样更直观:

场景 测速精度 主要原因
开阔高速公路 ±0.2 km/h 卫星多、信号强、多普勒测量稳定
城市街道 ±1~3 km/h 高楼遮挡、多径反射、卫星数少
隧道内 失效或漂移 无信号,靠惯性推算,误差累积
树林/峡谷 ±2~5 km/h 信号衰减严重,跟踪不稳
静止状态 0~2 km/h跳动 接收器噪声,未做静止检测

注意那个“静止状态”的跳动,很多专业GPS模块(比如u-blox系列)有静止检测功能,当速度持续低于某个阈值(比如0.5米/秒)一段时间,就强制输出0,但手机里的GPS芯片为了省电和成本,未必做这个处理,所以你会看到停着车速度还在1、2公里晃。

GPS测速和惯性导航的结合

现在很多高端导航或者手机定位,会把GPS和惯性测量单元(IMU,就是加速度计和陀螺仪)融合起来,GPS信号好的时候,用多普勒测速;信号丢了,就用IMU积分推算速度,这种组合叫松耦合或者紧耦合。

比如你进隧道,GPS速度没了,但IMU能感觉到车还在加速还是减速,系统就用IMU的数据维持速度输出,等出隧道再跟GPS校准,这就是为什么有些车机进隧道后速度还能继续变化,而不是卡死,IMU自己也有漂移,时间长了就不准了。

文献里经常提到的“卡尔曼滤波”就是干这个的——把GPS的速度观测和IMU的预测融合在一起,输出更平滑、更可靠的速度,感兴趣可以搜一下“GNSS/INS组合导航”,有大量论文讲这个。

一个常见误解:GPS测速需要知道你的精确位置吗?

不需要,多普勒测速不依赖于绝对位置,哪怕你的位置误差有10米,只要多普勒频移测准了,速度就是准的,这也是为什么GPS测速比GPS定位精度高一个数量级的原因。

反过来,如果你用“位置差除以时间”的方法,位置误差10米,0.1秒内位置变化可能只有1.6米,误差比信号还大,速度根本没法用,所以接收器厂商基本都优先用多普勒。

GPS如何测速,从卫星信号到速度读数的完整拆解

那手机上的GPS测速为什么有时候反应慢?

手机要考虑功耗,很多手机GPS芯片默认输出频率是1Hz,也就是每秒更新一次速度,你急加速的时候,它一秒后才反映出来,感觉就“慢半拍”,专业运动手表或者外置GPS模块可以做到10Hz,反应快得多。

另外手机还会用网络辅助GPS(A-GPS)来加速定位,但速度解算还是靠卫星信号的多普勒,如果手机为了省电降低采样率,速度平滑就会变强,看起来更“迟钝”。

所以如果你骑自行车或者跑马拉松,想用GPS测速,最好选支持高更新率的设备,不然冲刺的时候,手表显示的速度可能还是你三秒前的状态。

最后说个冷知识

GPS卫星本身也在动,速度大约3.9公里/秒,你接收到的多普勒频移里,大部分来自卫星的运动,只有一小部分来自你自己的运动,接收器之所以能算出你的速度,是因为它知道每颗卫星的精确轨道和速度——这些数据来自地面监控站,每天更新,没有这些辅助信息,光靠接收器自己,是算不出速度的。

所以下次你看着导航上的速度数字,可以想想:天上十几颗卫星在飞,你手里的小芯片在同时听它们的频率变化,然后瞬间算出你跑多快,这事儿搁五十年前,得用一屋子设备才能干,现在你花几十块钱买个模块就能做到,挺神奇的。

上一篇:穷人买电车还是买油车?知乎高赞回答没告诉你的实话
下一篇:安耐特轮胎质量怎么样?我换了两次胎,聊聊大实话
相关文章

 发表评论

暂时没有评论,来抢沙发吧~