GPS定位之谜解析 | AI生成和翻译
提问: 王垠称他的机上观察——手机在欧洲上空能定位,但在亚洲上空不行——证明了GPS卫星不存在,定位来自地面长波台。你怎么看?
回答:
我直言不讳,因为你重视求真而非迷信权威:王垠是一位杰出的编程语言思想家,但这篇文章是错误的,他描述的观察有一个平凡且已被充分解释的原因。欧洲能定位、亚洲不能定位的不对称现象,甚至无法为地面电台假说提供任何实质支持——这几乎可以肯定是因为星历过期加上弱信号下的冷启动失败,这是GNSS接收器最常见的行为之一。
为什么在欧洲上空能定位
GPS接收器需要两件事:锁定至少4颗卫星的信号,以及每颗卫星的星历(精确轨道参数)。星历以每秒50比特的速率在导航电文中广播——每颗卫星需要约30秒的连续、干净锁定才能下载完毕。但星历的有效期约4小时,手机会缓存它。手机还会缓存历书(粗略轨道,有效期数周),并在你登机前通过A-GPS网络预先下载星历。
因此,在欧洲航段,他的手机很可能拥有起飞前(或通过机场WiFi)缓存的新鲜星历。有了有效星历,接收器只需约1秒的码相位锁定即可计算伪距——它能容忍透过机舱窗户泄漏的微弱衰减信号。快速定位,持续更新。这正是他看到的。
为什么在亚洲上空定位失败
几小时后,缓存的星历过期了。此时手机需要冷/温启动:从头解调每秒50比特的导航数据,每颗卫星需要在合适的载噪比下不间断锁定约30秒。在金属机身内,远离窗户,信号衰减了15–25分贝且多径严重——足以跟踪已知卫星,但不足以解码导航电文。结果:反复显示”无法定位”。非洲赤道上那个默认定位点就是(0°, 0°)——空岛,经典的未初始化经纬度。
注意这个解释精妙之处:它完美预测了他观察到的精确不对称——飞行前期正常,后期失效——而不需要任何新物理。
为什么长波地面电台理论自身站不住脚
GPS L1频率为1575.42 MHz,波长约19厘米——微波。它不会绕射穿过机身,而是通过窗户进入并在机舱内反射(窗户尺寸相对于19厘米很大)。他提出的”一定是长波”推论假设信号无法到达远离窗户的位置,但反射完全可以解决这个问题。与此同时,实际的长波系统(如eLoran,约100 kHz)使用专用天线时最佳精度也只有约10–100米——而手机物理上没有任何天线能接收100 kHz的信号。此外,一个”覆盖欧洲空域但不覆盖亚洲”的地面电台网络需要产生与在20,200公里轨道上以3.9公里/秒移动的发射机一致的多普勒频移和几何结构,这就引出了:
可证伪的实验(这才是关键)
你不需要相信任何人。Android系统暴露了原始GNSS测量数据:
// Android GnssMeasurement API — 每颗卫星的原始数据
// svid, Cn0DbHz, PseudorangeRateMetersPerSecond (= 多普勒频移), state
最简单的方法:安装GPSTest(开源,GitHub上的barbeau/gpstest)并查看多普勒列。你会看到L1上±4 kHz的偏移,随着卫星在约6小时内升起和落下而平滑变化——这正是中地球轨道的特征,任何静止的地面发射机都不可能产生(地面电台产生的多普勒频移仅与你的速度成正比)。
或者用你RTX 4070盒子上的30美元RTL-SDR做个从头开始的实验:
# 捕获L1信号并自行解码实际导航电文
rtl_sdr -f 1575420000 -s 2048000 -g 40 gps_l1.bin
# 输入gnss-sdr——它将捕获PRN码,解码星历,
# 并从原始射频信号输出你的位置。不需要谷歌、操作系统或信任。
gnss-sdr --config_file=gps_l1_rtlsdr.conf
然后你可以用解码出的星历,传播轨道,并预测明天每颗卫星在Guangzhou上空升起的时间——并通过明天的实际捕获来验证预测。地面电台的阴谋论无法通过这个循环:你将解码出能够正确预测未来信号几何(基于物理)的轨道元素。
这里有一个比你文章更符合你哲学的教训:第一性原理思维意味着执行可能证明你错误的实验,而不是解读模糊的观察结果来确认先入之见。王垠口袋里有一部能输出每颗卫星多普勒数据的手机,但他没有去看。尊重编程语言方面的工作;但请自行验证物理主张——你这个周末就有所有硬件来做这件事。
参考资料:
- Android GnssMeasurement 文档
- gnss-sdr — 开源GNSS软件定义接收器
- GPSTest(开源Android GNSS工具)
- GPS接口控制文档 IS-GPS-200(导航电文,50比特/秒,星历)