Skip to main content
Log in

A new unambiguous tracking algorithm for sine-BOC(m, n) signals

  • Original Article
  • Published:
GPS Solutions Aims and scope Submit manuscript

Abstract

Binary offset carrier (BOC) modulation technology is widely used in newly developed and modernized global navigation satellite systems. BOC signal offers superior performance over conventional binary phase-shift keying signal due to its sharp auto-correlation function. However, the main drawback of BOC signal tracking is the ambiguity problem caused by the presence of multiple side-peaks in the auto-correlation function. We derive a new analytical model to solve the ambiguity issue. Based on the derived analytical model, a code tracking algorithm that completely removes all ambiguities is introduced. Theoretical analysis and simulation show that the proposed technique significantly improves the multipath mitigation performance and code tracking accuracy in thermal noise over those of existing side-peaks-cancellation techniques.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

References

Download references

Acknowledgements

This work was supported by the National Natural Science Foundation of China (Grant no. 61401171).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jiaolong Wei.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix 1: Derivation of the code tracking error variance

Let

$$\begin{aligned} & {X_{{\text{IE}}}}={\text{I}}{{\text{E}}_1} \cdot {\text{I}}{{\text{E}}_2} \\ & {X_{{\text{IL}}}}={\text{I}}{{\text{L}}_1} \cdot {\text{I}}{{\text{L}}_2} \\ & {X_{{\text{QE}}}}={\text{Q}}{{\text{E}}_1} \cdot {\text{Q}}{{\text{E}}_2} \\ & {X_{{\text{QL}}}}={\text{Q}}{{\text{L}}_1} \cdot {\text{Q}}{{\text{L}}_2} \\ \end{aligned}$$
(34)

then

$$\sigma _{{\text{V}}}^{2}=E[{({X_{{\text{IE}}}} - {X_{{\text{IL}}}})^2}]+E[{({X_{{\text{QE}}}} - {X_{{\text{QL}}}})^2}]$$
(35)

where

$$E[{({X_{{\text{IE}}}} - {X_{{\text{IL}}}})^2}]=E[n_{1}^{2}]+E[n_{2}^{2}]+2E[{n_1}{n_2}]+E[n_{3}^{2}]+E[n_{4}^{2}]$$
(36)

where \({n_1}=\sqrt {2C} {\hat {R}_{{\text{BOC}},2}}\left( {\frac{{\Delta d}}{2}} \right)(n_{1}^{{{\text{IE}}}} - n_{1}^{{{\text{IL}}}})\), \({n_2}=\sqrt {2C} {\hat {R}_{{\text{BOC}},1}}\left( {\frac{{\Delta d}}{2}} \right)(n_{2}^{{{\text{IE}}}} - n_{2}^{{{\text{IL}}}})\), \({n_3}=n_{2}^{{{\text{IE}}}}n_{2}^{{{\text{IE}}}} - n_{2}^{{{\text{IL}}}}n_{2}^{{{\text{IL}}}}\), and \({n_4}=n_{2}^{{{\text{QE}}}}n_{2}^{{{\text{QE}}}} - n_{2}^{{{\text{QL}}}}n_{2}^{{{\text{QL}}}}\).

According to (29), we have

$$\begin{aligned} & E[n_{1}^{2}]=\frac{{4C{N_0}}}{{{T_{\text{p}}}}}\hat {R}_{{{\text{BOC}},2}}^{2}\left( {\frac{{\Delta d}}{2}} \right)({{\hat {R}}_{1,1}}(0) - {{\hat {R}}_{1,1}}(\Delta d)) \\ & E[n_{2}^{2}]=\frac{{4C{N_0}}}{{{T_{\text{p}}}}}\hat {R}_{{{\text{BOC}},1}}^{2}\left( {\frac{{\Delta d}}{2}} \right)({{\hat {R}}_{2,2}}(0) - {{\hat {R}}_{2,2}}(\Delta d)) \\ & E[{n_1}{n_2}]=\frac{{4C{N_0}}}{{{T_{\text{p}}}}}{{\hat {R}}_{{\text{BOC}},2}}\left( {\frac{{\Delta d}}{2}} \right){{\hat {R}}_{{\text{BOC}},1}}\left( {\frac{{\Delta d}}{2}} \right)({{\hat {R}}_{1,2}}(0) - {{\hat {R}}_{1,2}}(\Delta d)) \\ & E[{n_1}{n_3}]=E[{n_2}{n_3}]=0,\quad E[{n_3}{n_4}]=0,~ \\ & E[n_{3}^{2}]=E[n_{4}^{2}]=2{\left( {\frac{{{N_0}}}{{{T_{\text{p}}}}}} \right)^2}(\hat {R}_{{{\text{BOC}},2}}^{2}(0)+\hat {R}_{{{\text{BOC}},1}}^{2}(0) - {{\hat {R}}_{2,2}}(\Delta d){{\hat {R}}_{1,1}}(\Delta d) - {{\hat {R}}_{1,2}}(\Delta d){{\hat {R}}_{1,2}}( - \Delta d)) \\ \end{aligned}$$
(37)

Then, we have

$$\begin{aligned} \sigma _{{\text{V}}}^{2} & =\frac{{4C{N_0}}}{{{T_{\text{p}}}}}\left[ {\hat {R}_{{{\text{BOC}},2}}^{2}\left( {\frac{{\Delta d}}{2}} \right)({{\hat {R}}_{1,1}}(0) - {{\hat {R}}_{1,1}}(\Delta d))+\hat {R}_{{{\text{BOC}},1}}^{2}\left( {\frac{{\Delta d}}{2}} \right)({{\hat {R}}_{2,2}}(0) - {{\hat {R}}_{2,2}}(\Delta d))} \right. \\ & \quad \left. {+2{{\hat {R}}_{{\text{BOC}},2}}\left( {\frac{{\Delta d}}{2}} \right){{\hat {R}}_{{\text{BOC}},1}}\left( {\frac{{\Delta d}}{2}} \right)({{\hat {R}}_{{\text{BOC}},1}}(0) - {{\hat {R}}_{{\text{BOC}},1}}(\Delta d))} \right] \\ & \quad +4{\left( {\frac{{{N_0}}}{{{T_p}}}} \right)^2}(\hat {R}_{{{\text{BOC}},2}}^{2}(0)+\hat {R}_{{{\text{BOC}},1}}^{2}(0) - {{\hat {R}}_{2,2}}(\Delta d){{\hat {R}}_{1,1}}(\Delta d) - {{\hat {R}}_{{\text{BOC}},1}}(\Delta d){{\hat {R}}_{{\text{BOC}},1}}( - \Delta d)) \\ \end{aligned}$$
(38)

The code tracking error variance in thermal noise is given by (Kao and Juang 2012)

$${\sigma ^2}=\frac{{2{B_{\text{L}}}(1 - 0.5{B_{\text{L}}}{T_{\text{P}}}){T_{\text{p}}}\sigma _{{\text{V}}}^{2}}}{{K_{{\text{V}}}^{2}}}[s]$$
(39)

By substituting (32) and (38) into (39), we have

$${\sigma ^2} = \frac{{2{B_{\rm{L}}}(1 - 0.5{B_{\rm{L}}}{T_{\rm{P}}}){T_{\rm{P}}}\left[ {\begin{array}{*{20}{l}} \frac{{4C{N_0}}}{{{T_{\rm{p}}}}}{\left[ {\begin{array}{*{20}{l}} {\hat R_{{\rm{BOC}},2}^2\left( {\frac{{\Delta d}}{2}} \right)({{\hat R}_{1,1}}(0) - {{\hat R}_{1,1}}(\Delta d))}\\ { + \hat R_{{\rm{BOC}},1}^2\left( {\frac{{\Delta d}}{2}} \right)({{\hat R}_{2,2}}(0) - {{\hat R}_{2,2}}(\Delta d)) + 2{{\hat R}_{{\rm{BOC}},2}}\left( {\frac{{\Delta d}}{2}} \right){{\hat R}_{{\rm{BOC}},1}}\left( {\frac{{\Delta d}}{2}} \right)({{\hat R}_{{\rm{BOC}},1}}(0) - {{\hat R}_{{\rm{BOC}},1}}(\Delta d))} \end{array}} \right]}\\ {4{{\left( {\frac{{{N_0}}}{{{T_{\rm{p}}}}}} \right)}^2}\left( {\hat R_{{\rm{BOC}},2}^2(0) + \hat R_{{\rm{BOC}},1}^2(0) - {{\hat R}_{2,2}}(\Delta d){{\hat R}_{1,1}}(\Delta d) - {{\hat R}_{{\rm{BOC}},1}}(\Delta d){{\hat R}_{{\rm{BOC}},1}}( - \Delta d)} \right)} \end{array}} \right]}}{{{{\left( {16\pi C\left( {{{\hat R}_{{\rm{BOC}},1}}\left( {\frac{{\Delta d}}{2}} \right)\cdot\int_\infty ^\infty f \cdot {\rm{H}}(f){G_{{\rm{BOC}},1}}(f)\sin (\pi f\Delta d){\rm{d}}f + {{\hat R}_{{\rm{BOC}},2}}\left( {\frac{{\Delta d}}{2}} \right)\cdot\int_\infty ^\infty f \cdot {\rm{H}}(f){G_{{\rm{BOC}},2}}(f)\sin (\pi f\Delta d){\rm{d}}f} \right)} \right)}^2}}}$$
(40)

Appendix 2: Example of how a quasi-unambiguous algorithm falsely locks onto side-peak

We present Fig. 17 to illustrate the false lock risk for a quasi-unambiguous algorithm. The figure shows the code tracking error versus time when an acquisition bias of \(- 0.875{T_{\text{c}}}\) is introduced for a BOC(10, 5) signal. The \(C/{N_0}\) is 40 dB Hz, other simulation parameters, e.g., front-end bandwidth and correlator spacing, are set to be the same as those of the BOC(10, 5) code tracking error simulation.

Fig. 17
figure 17

Code tracking error for an introduced acquisition bias for a BOC(10, 5) signal

As can be seen, Yan’s method steadily locks at \(- 0.875~{T_{\text{c}}}\) due to the false lock points. In this case, the receiver outputs problematic pseudorange measurements, which eventually result in unacceptable positioning bias. The proposed algorithm cannot lock at the false lock point, which is as expected since it does not have any false lock points on its discriminator output. Once the lock detector of the GNSS receiver detects a loss lock, it will start a re-acquisition process; thus, the proposed BUT–EAS avoids tracking bias.

To further analyze the above-mentioned process, we introduce a typical lose lock detection criterion for the GNSS receiver, which is given by Kaplan and Hegarty (2006):

$$3{\sigma _{{\text{tDLL}}}}+{R_{\text{e}}} \le \Delta d/2$$
(41)

where \({\sigma _{{\text{tDLL}}}}\) is the STD of thermal noise jitter in chips; \({R_{\text{e}}}\) is the dynamic error in chips; \(\Delta d\) is double-sided correlator spacing, which is \(0.1{T_{\text{c}}}\) for BOC(10, 5). In this simulation we did not introduce dynamics; thus, \({R_{\text{e}}}=0\). As shown in (41), if the STD of thermal noise jitter exceeds the loss lock threshold of \(\frac{d}{6}=0.016667{T_{\text{c}}}\), the receiver can detect the loss lock status. From Fig. 17 we can see that the STD of thermal noise jitter for Yan’s method is far smaller than the lock detector threshold. Thus, the receiver will falsely verify that it is tracking on the main-peak, which will result in unacceptable positioning bias. The STD of code tracking error for BUT–EAS exceeds the lock detector threshold. Thus, the receiver detects the loss lock status at the beginning and return to re-acquisition cycle. In this way, the receiver avoids wrong positioning solutions.

To conclude, relative to ambiguous algorithms, such as NELP, quasi-unambiguous algorithms result in significant improvements in terms of ambiguity suppression performance. However, the false lock risk still exists when using a quasi-unambiguous algorithm such as Yan’s method. By contrast, the proposed BUT–EAS is an unambiguous algorithm that suppresses all side-peaks to avoid false locks.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wang, B., Li, T., Wei, J. et al. A new unambiguous tracking algorithm for sine-BOC(m, n) signals. GPS Solut 23, 58 (2019). https://doi.org/10.1007/s10291-019-0849-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10291-019-0849-8

Keywords

Navigation