卫星导航的码相位与载波相位计算
假设给定以下已知参数:
- 伪码循环周期:TcT_cTc(秒),或码长LLL(码片)与码率RcR_cRc(码片/秒),满足Tc=L/RcT_c = L/R_cTc=L/Rc
- 伪码码率:RcR_cRc(码片/秒)
- 载波频率:fcf_cfc(Hz)
- 当前时刻ttt的伪距测量值:ρ(t)\rho(t)ρ(t)(米)
- 光速:c=2.99792458×108c = 2.99792458 \times 10^8c=2.99792458×108 m/s
1. 码相位计算
1.1 基于传播延迟的直接计算
传播延迟:τ(t)=ρ(t)c\tau(t) = \frac{\rho(t)}{c}τ(t)=cρ(t)
码相位(以时间为单位):
ϕcode(t)=(τ(t)mod Tc)(秒)\phi_{\text{code}}(t) = \left( \tau(t) \mod T_c \right) \quad \text{(秒)}ϕcode(t)=(τ(t)modTc)(秒)
码相位(以码片为单位):
ϕcode,chips(t)=(τ(t)⋅Rc)mod L(码片)\phi_{\text{code,chips}}(t) = \left( \tau(t) \cdot R_c \right) \mod L \quad \text{(码片)}ϕcode,chips(t)=(τ(t)⋅Rc)modL(码片)
1.2 基于卫星发射时间的计算
卫星发射时间:ttx=t−τ(t)t_{\text{tx}} = t - \tau(t)ttx=t−τ(t)
码相位(更精确形式,考虑整周模糊度):
ϕcode(t)=(ttx⋅Rc)mod L(码片)\phi_{\text{code}}(t) = \left( t_{\text{tx}} \cdot R_c \right) \mod L \quad \text{(码片)}ϕcode(t)=(ttx⋅Rc)modL(码片)
或等价地:
ϕcode(t)=(ttxTc−⌊ttxTc⌋)⋅L(码片)\phi_{\text{code}}(t) = \left( \frac{t_{\text{tx}}}{T_c} - \left\lfloor \frac{t_{\text{tx}}}{T_c} \right\rfloor \right) \cdot L \quad \text{(码片)}ϕcode(t)=(Tcttx−⌊Tcttx⌋)⋅L(码片)
1.3 连续时间码相位模型
设t0t_0t0为参考时刻,对应的码相位为ϕcode(t0)\phi_{\text{code}}(t_0)ϕcode(t0),则:
ϕcode(t)=[ϕcode(t0)+∫t0tfcode(ξ)dξ]mod L\phi_{\text{code}}(t) = \left[ \phi_{\text{code}}(t_0) + \int_{t_0}^{t} f_{\text{code}}(\xi) d\xi \right] \mod Lϕcode(t)=[ϕcode(t0)+∫t0tfcode(ξ)dξ]modL
其中fcode(t)f_{\text{code}}(t)fcode(t)为受多普勒影响的码率:fcode(t)=Rc⋅[1−ρ˙(t)c]f_{\text{code}}(t) = R_c \cdot \left[ 1 - \frac{\dot{\rho}(t)}{c} \right]fcode(t)=Rc⋅[1−cρ˙(t)]
2. 载波相位计算
2.1 基本载波相位公式
载波相位(以周为单位,N为整周模糊度):
ϕcarrier(t)=N+fc⋅ρ(t)c(周)\phi_{\text{carrier}}(t) = N + \frac{f_c \cdot \rho(t)}{c} \quad \text{(周)}ϕcarrier(t)=N+cfc⋅ρ(t)(周)
载波相位(以弧度为单位):
ϕcarrier,rad(t)=2πN+2πfc⋅ρ(t)c(弧度)\phi_{\text{carrier,rad}}(t) = 2\pi N + \frac{2\pi f_c \cdot \rho(t)}{c} \quad \text{(弧度)}ϕcarrier,rad(t)=2πN+c2πfc⋅ρ(t)(弧度)
2.2 基于传播延迟的载波相位
载波相位(小数部分):
ϕcarrier,frac(t)=(fc⋅τ(t))mod 1(周)\phi_{\text{carrier,frac}}(t) = \left( f_c \cdot \tau(t) \right) \mod 1 \quad \text{(周)}ϕcarrier,frac(t)=(fc⋅τ(t))mod1(周)
或:
ϕcarrier,frac(t)=(fc⋅ρ(t)c)mod 1(周)\phi_{\text{carrier,frac}}(t) = \left( \frac{f_c \cdot \rho(t)}{c} \right) \mod 1 \quad \text{(周)}ϕcarrier,frac(t)=(cfc⋅ρ(t))mod1(周)
2.3 连续时间载波相位模型
载波相位变化率(考虑多普勒):
ϕ˙carrier(t)=fc⋅[1−ρ˙(t)c]\dot{\phi}_{\text{carrier}}(t) = f_c \cdot \left[ 1 - \frac{\dot{\rho}(t)}{c} \right]ϕ˙carrier(t)=fc⋅[1−cρ˙(t)]
积分形式:
ϕcarrier(t)=ϕcarrier(t0)+∫t0tfc⋅[1−ρ˙(ξ)c]dξ\phi_{\text{carrier}}(t) = \phi_{\text{carrier}}(t_0) + \int_{t_0}^{t} f_c \cdot \left[ 1 - \frac{\dot{\rho}(\xi)}{c} \right] d\xiϕcarrier(t)=ϕcarrier(t0)+∫t0tfc⋅[1−cρ˙(ξ)]dξ
3. 考虑卫星钟差和相对论效应的修正公式
3.1 卫星发射时间的精确计算
ttx=t−ρ(t)c−δtsat(ttx)+δtrelt_{\text{tx}} = t - \frac{\rho(t)}{c} - \delta t_{\text{sat}}(t_{\text{tx}}) + \delta t_{\text{rel}}ttx=t−cρ(t)−δtsat(ttx)+δtrel
其中:
- δtsat\delta t_{\text{sat}}δtsat:卫星钟差
- δtrel\delta t_{\text{rel}}δtrel:相对论效应修正
3.2 修正后的码相位
ϕcode,corr(t)=[ttx⋅Rc⋅(1+δfsat/fnom)]mod L\phi_{\text{code,corr}}(t) = \left[ t_{\text{tx}} \cdot R_c \cdot (1 + \delta f_{\text{sat}}/f_{\text{nom}}) \right] \mod Lϕcode,corr(t)=[ttx⋅Rc⋅(1+δfsat/fnom)]modL
3.3 修正后的载波相位
ϕcarrier,corr(t)=N+fcc[ρ(t)−c⋅δtsat(ttx)+c⋅δtrel]\phi_{\text{carrier,corr}}(t) = N + \frac{f_c}{c} \left[ \rho(t) - c \cdot \delta t_{\text{sat}}(t_{\text{tx}}) + c \cdot \delta t_{\text{rel}} \right]ϕcarrier,corr(t)=N+cfc[ρ(t)−c⋅δtsat(ttx)+c⋅δtrel]
4. 接收机中的实现公式
4.1 数字NCO控制字计算
对于码NCO:
Mcode=⌊fcode⋅2Ncodefclk⌋M_{\text{code}} = \left\lfloor \frac{f_{\text{code}} \cdot 2^{N_{\text{code}}}}{f_{\text{clk}}} \right\rfloorMcode=⌊fclkfcode⋅2Ncode⌋
其中NcodeN_{\text{code}}Ncode为码NCO相位累加器位宽,fclkf_{\text{clk}}fclk为系统时钟频率。
对于载波NCO:
Mcarrier=⌊fcarrier⋅2Ncarrierfclk⌋M_{\text{carrier}} = \left\lfloor \frac{f_{\text{carrier}} \cdot 2^{N_{\text{carrier}}}}{f_{\text{clk}}} \right\rfloorMcarrier=⌊fclkfcarrier⋅2Ncarrier⌋
4.2 初始相位设置
码NCO初始相位:
ϕcode,NCO=⌊ϕcode(t0)⋅2NcodeL⌋\phi_{\text{code,NCO}} = \left\lfloor \phi_{\text{code}}(t_0) \cdot \frac{2^{N_{\text{code}}}}{L} \right\rfloorϕcode,NCO=⌊ϕcode(t0)⋅L2Ncode⌋
载波NCO初始相位:
ϕcarrier,NCO=⌊ϕcarrier,frac(t0)⋅2Ncarrier⌋\phi_{\text{carrier,NCO}} = \left\lfloor \phi_{\text{carrier,frac}}(t_0) \cdot 2^{N_{\text{carrier}}} \right\rfloorϕcarrier,NCO=⌊ϕcarrier,frac(t0)⋅2Ncarrier⌋
5. 重要关系式总结
-
码相位-载波相位关系 :
ϕcarrier(t)fc=ϕcode(t)Rc+常数\frac{\phi_{\text{carrier}}(t)}{f_c} = \frac{\phi_{\text{code}}(t)}{R_c} + \text{常数}fcϕcarrier(t)=Rcϕcode(t)+常数 -
多普勒频移 :
fd=−fc⋅ρ˙(t)c=−Rc⋅ρ˙(t)c⋅fcRcf_d = -f_c \cdot \frac{\dot{\rho}(t)}{c} = -R_c \cdot \frac{\dot{\rho}(t)}{c} \cdot \frac{f_c}{R_c}fd=−fc⋅cρ˙(t)=−Rc⋅cρ˙(t)⋅Rcfc -
伪距变化率与相位关系 :
ρ˙(t)=−cfc⋅ϕ˙carrier(t)\dot{\rho}(t) = -\frac{c}{f_c} \cdot \dot{\phi}_{\text{carrier}}(t)ρ˙(t)=−fcc⋅ϕ˙carrier(t)
这些公式构成了导航接收机中码环和载波环跟踪的基础数学模型,实际实现中还需考虑电离层、对流层延迟、接收机噪声等误差源。
研究学习不易,点赞易。
工作生活不易,收藏易,点收藏不迷茫 :)