algorithm - GPS 接收器如何将其 quartz 钟与 GPS 卫星同步?

标签 algorithm gps

<分区>

我阅读了很多关于GPS 工作原理 的教程和文章,发现它的工作原理是3d 三边测量。 GPS 接收器通常有一个普通的 quartz 钟,而 GPS 卫星有非常昂贵的精度非常高的原子钟。

在一篇文章中提到,由于 GPS 接收器中的普通 quartz 钟精度非常低,但它们会定期使用 GPS 卫星时钟重置时钟。如果 GPS 接收器和 GPS 卫星时钟同步,则只有 GPS 接收器才能计算出与 GPS 卫星的准确距离。

GPS 接收器如何将其时钟与 GPS 卫星同步?这个我想从很多文章和计算中找出来,但我无法得出任何解决方案。谁能解释一下 GPS 接收器上的普通 quartz 钟如何与 GPS 卫星同步?

最佳答案

晶体本身不是时钟 - 晶体和计数器实现了时钟。计数器可能用 32 位表示秒和 32 位表示几分之一秒的时间。

每个时钟周期,计数器都会增加另一个值,该值表示每个时钟周期经过的秒数。

因此,可以通过增加/减少每个时钟周期添加到计数器的时间量来加快/减慢时钟速度。

相对于某些主时钟,您的时钟会有频率和相位差异——通常您在小型微处理器中有一些逻辑来测量这些差异并慢慢改变您的时钟以匹配主时钟——使用附加值每个时钟周期到计数器。

总而言之,您的 GPS 接收器(晶体 + 计数器)中的时钟使用称为锁相环 (PLL) 和锁频环 (FLL) 的算法与 GPS 卫星同步。

相位不匹配

相位同步是必需的,因为您可以有两个以相同速度运行的时钟,但其中一个时钟领先于另一个。例如,时钟 A 读数为 31337.000000001 秒,时钟 B 读数为 31337.000000002 秒。一秒后,时钟 A 读数为 31338.000000001,时钟 B 读数为 31338.000000002——两个时钟都在时间上前进了一秒,但一个时钟仍然领先 1 纳秒。即,时钟 B 相对于时钟 A 的相位差为 2*pi*10^(-9) 弧度/秒

频率不匹配

频率同步是必需的,因为一个时钟可以比另一个时钟运行得更快。例如,时钟 A 读数为 31337 秒,时钟 B 读数为 31337 秒,但一秒后,时钟 A 读数为 31338 秒,时钟 B 读数为 31338.000000001 秒——时钟 B 比时钟 A 快 1 纳秒/秒。

实践

在实践中,为了将一个时钟同步到主时钟,您必须考虑这两个问题,因为没有振荡器是完全精确和稳定的。所以 GPS 所做的是通过使用 FLL 和 PLL 算法为时钟提供长期纪律——与 TCXO 或原子振荡器相比,GPS 中的 quartz 振荡器仍然相对不稳定,但至少可以长期纪律精确的。

关于algorithm - GPS 接收器如何将其 quartz 钟与 GPS 卫星同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162847/

相关文章:

algorithm - 能否通过分析其性能以编程方式找到算法的 bigO?

string - 将文本解析为有效的句子

python - 合并排序以计算 Python 中的拆分反转

android - GPS 位置 - 在设备上还是在服务器上?

android - GPS 状态的广播接收器?

c# - 照片中的指南针元数据标签

Android:检查 GPS 是否正在搜索、已修复或未使用

java - 高效的Java列表合并算法

algorithm - 减少或提高大 O 的复杂性?

java - 使用以米为单位的精度作为经纬圆的半径?