GNSS 高级篇
6 跟踪算法
6.2 码跟踪环原理与应用
载波跟踪环负责"精密的相位",码跟踪环负责"粗略的距离"——伪距。两者配合,才能完成从信号到位置的完整测量链。
在正式开始前,请大家思考几个问题:
1,伪距是怎么测出来的?为什么叫"伪"距?它跟真实距离差在哪里?
2,码跟踪环(DLL)跟载波跟踪环(PLL)结构很像,它们到底有什么区别?能不能只用一个环?
3,什么是"早迟码"?为什么码跟踪需要三个相关器(早、准、迟)?
4,码跟踪精度跟什么有关?为什么 L5 信号的伪距比 L1 准 10 倍?
接下来我们拆解码跟踪环的工作原理。
6.2.1 伪距:码跟踪的输出
a. 伪距是怎么来的?
伪距的测量原理很简单:
- 卫星在某个时刻发射信号(码的某个特定边沿)
- 接收机在某个时刻收到这个信号
- 传播时间 = 接收时刻 - 发射时刻
- 距离 = 传播时间 × 光速
但问题是:卫星时钟和接收机时钟不同步。
卫星用的是星载原子钟,接收机用的是普通晶振——两者之间有钟差,可能达到几毫秒甚至更多。
所以测出来的"距离"包含了钟差,不是真实距离——这就是"伪距"(Pseudorange)的由来。
伪距 = 真实距离 + c×(接收机钟差 - 卫星钟差) + 电离层延迟 + 对流层延迟 + 噪声
卫星钟差、电离层、对流层可以通过模型或双频修正掉,剩下的真实距离和接收机钟差作为未知数,用 4 颗以上卫星联合解算。
b. 码相位怎么变成伪距?
码跟踪环输出的是"码相位"——本地码跟接收码的偏移量(单位是码片)。
码相位 × 码片宽度(时间)= 信号传播时间(粗略)
传播时间 × 光速 = 伪距
比如 GPS C/A 码:
- 码速率 1.023Mcps,码片宽度 ≈ 977.5ns
- 1 码片对应的距离 ≈ 293m
- 码跟踪精度约 0.01 码片 → 伪距精度约 3m
GPS L5 信号:
- 码速率 10.23Mcps,码片宽度 ≈ 97.75ns
- 1 码片对应的距离 ≈ 29.3m
- 同样 0.01 码片精度 → 伪距精度约 0.3m
这就是高码速率信号伪距更准的原因——码片更短,同样的码相位误差对应更小的距离误差。
6.2.2 延迟锁定环(DLL):码跟踪的核心
码跟踪环的正式名称叫"延迟锁定环"(Delay Locked Loop, DLL)——它通过比较"早码"和"迟码"的相关值,来判断本地码是超前了还是滞后了。
a. 早、准、迟三个相关器
DLL 需要三个相关器:
- 早码(Early, E):本地码比准码超前 d 个码片
- 准码(Prompt, P):本地码跟接收码对齐(理想情况)
- 迟码(Late, L):本地码比准码滞后 d 个码片
d 叫"早迟间距"(Early-Late Spacing),通常是 0.1~1.0 码片。
b. DLL 的工作原理
相关峰是三角形的(理想情况下):
- 当本地码跟接收码完全对齐时,准码相关值最大
- 早码和迟码因为偏离了峰值,相关值较小
- 如果本地码超前了,早码更靠近峰值(相关值大),迟码更远离峰值(相关值小)
- 如果本地码滞后了,反过来
所以,比较早码和迟码的相关值,就能判断本地码的偏移方向:
- E > L → 本地码超前了,需要往后调
- E < L → 本地码滞后了,需要往前调
- E = L → 对齐了,不用调
码鉴别器的输出通常是:(E - L) / (E + L) 或 (E - L) / P——归一化后跟信号幅度无关。
c. DLL 的闭环结构
跟 PLL 类似,DLL 也是闭环:
- 早、准、迟三个相关器分别计算相关值
- 码鉴别器计算码相位误差
- 环路滤波器滤波
- 码 NCO 调整本地码的速率和相位
- 持续循环
DLL 的环路滤波器通常是一阶或二阶——码相位的动态比载波小(码速率低,多普勒对码的影响是载波的 1/1540),所以不需要太高阶。
6.2.3 DLL 跟 PLL 的对比
| 对比项 | 载波环(PLL) | 码环(DLL) |
|---|---|---|
| 跟踪对象 | 载波相位 | 码相位 |
| 测量输出 | 载波相位、多普勒 | 伪距 |
| 鉴别器 | 相位鉴别器(atan、I×Q) | 早迟码鉴别器(E-L) |
| 测量精度 | 毫米级(相位) | 米级(伪距) |
| 环路带宽 | 通常较窄(10~30Hz) | 通常较宽(0.5~2Hz) |
| 对动态敏感度 | 高(载波频率变化大) | 低(码频率变化小) |
| 受多径影响 | 较小 | 较大 |
| 周跳问题 | 有 | 无(码是连续的) |
a. 为什么码环带宽比载波环窄?
码环的噪声比载波环大很多——码相关的热噪声跟码速率和带宽有关,通常比载波相位噪声大 100 倍以上。
所以码环需要更窄的带宽来压制噪声——但码环跟踪的是码相位,动态变化慢(码多普勒是载波的 1/1540),窄带宽也跟得上。
典型值:载波环 15Hz,码环 1Hz——差一个数量级。
b. 载波辅助码环(Carrier-Aided Code Tracking)
码环有个"神器"可以用:载波辅助。
载波频率和码频率是相关的——载波多普勒 × (码速率/载波频率) = 码多普勒。
所以载波环测出的多普勒,可以直接用来辅助码环——码环只需要修正载波辅助后的残差。
载波辅助的好处:
- 码环带宽可以进一步收窄(因为动态被载波环处理了)
- 码环噪声更低,伪距更平滑
- 码环更不容易失锁
几乎所有现代接收机都用载波辅助码环——这是标准做法。
6.2.4 码跟踪精度分析
a. 热噪声
码跟踪的热噪声公式(DLL):
σ_DLL = c × sqrt(Bn / (2×C/N0) × (d/(1-d/Tc)) × (1 + 2/(T×C/N0)))
其中:
- c 是光速
- Bn 是码环带宽
- d 是早迟间距
- Tc 是码片宽度
- T 是积分时间
关键结论:
- 早迟间距 d 越小,精度越高(但太小时多径和实现误差影响大)
- 码片宽度 Tc 越小(码速率越高),精度越高
- 载噪比越高,精度越高
- 积分时间越长,精度越高
b. 早迟间距的选择
早迟间距是 DLL 的重要参数:
- 间距大(1.0 chip):抗多径差,噪声大,但实现简单
- 间距小(0.1 chip):抗多径好,噪声小,但对实现精度要求高
- 现代接收机通常用 0.1~0.2 chip 的窄相关器
窄相关器(Narrow Correlator)是 90 年代发明的技术,把早迟间距从 1 chip 缩小到 0.1 chip,伪距精度提升了 2~3 倍,多径误差也大幅减小。
这是 GNSS 接收机技术的重要进步之一。
c. 多径对码跟踪的影响
多径是码跟踪最大的误差源(在城市环境中)。
反射信号的相关峰会叠加在直达信号的相关峰上,把峰值"推歪",导致码相位测量偏差。
多径误差跟早迟间距有关——间距越小,多径误差越小(因为相关峰更窄,反射峰的影响更小)。
这也是窄相关器的另一个好处。
更高级的抗多径技术(MED、MET、Strobe 等)在码跟踪环层面做文章,通过特殊的相关器设计来估计和消除多径。
6.2.5 码跟踪的特殊问题
a. 码环失锁与重捕
码环失锁的原因通常是信号中断或强干扰。
失锁后,码相位不确定度变大——如果不确定度超过一个码片,就需要重新捕获。
如果不确定度不大(几个码片),可以用"码环重捕"——在小范围内搜索码相位,比完整捕获快。
b. 半码片模糊度
BPSK 信号的相关函数是对称的三角形——在峰值两侧对称位置,早迟码差值可能相同。
这导致码环可能锁定在"半码片偏移"的错误位置。
解决方法:用准码相关值的绝对值判断——真峰值处准码相关最大,假峰值处较小。
c. BOC 信号的码跟踪模糊度
BOC 信号的相关函数有多峰,码跟踪可能锁到副峰上——跟捕获时的模糊度问题类似。
解决方法:
- 用 BOC 的特殊相关器设计(如双相关器、边带处理)
- 用载波相位辅助判断
- 用无模糊度的鉴别器(如 Bump-Jump 算法)
6.2.6 伪距质量评估
接收机输出伪距时,通常还会输出伪距的质量估计——用于 PVT 解算时的加权。
常用的伪距质量指标:
- 载噪比(C/N0):信号越强,伪距质量越好
- 码环跟踪状态:是否稳定锁定
- 多径指标:相关峰形状是否异常
- 伪距残差:跟定位结果的残差大小
- 卫星仰角:低仰角卫星受对流层和多径影响大
PVT 解算时,质量好的伪距权重大,质量差的权重小——这叫"加权最小二乘"或"卡尔曼滤波的方差自适应"。
小结一下:
码跟踪环(DLL)通过早迟码比较来锁定码相位,输出伪距——这是定位的基础测量值。
码速率越高,码片越短,伪距精度越高——这是 L5/E5a/B2a 这些 10.23Mcps 信号的核心优势。
窄相关器技术大幅提升了码跟踪精度和抗多径能力。
载波辅助码环是标准做法——用载波的精密多普勒来辅助码环,让码环更稳更准。
码跟踪和载波跟踪配合,一个提供粗略距离(伪距),一个提供精密相位(载波相位),共同支撑从米级到厘米级的全谱系定位。
下一节,我们讲跟踪算法的抗干扰秘籍——在干扰、多径、弱信号等恶劣条件下,怎么让跟踪环"屹立不倒"。