If you wish to contribute or participate in the discussions about articles you are invited to contact the Editor

Carrier-smoothing of code pseudoranges: Difference between revisions

From Navipedia
Jump to navigation Jump to search
No edit summary
No edit summary
Line 30: Line 30:
\begin{array}{ll}
\begin{array}{ll}
\widehat{R}_k&=\Phi_k +  < R - \Phi >_k=\\[0.3cm]
\widehat{R}_k&=\Phi_k +  < R - \Phi >_k=\\[0.3cm]
& =\Phi_k + \frac{n-1}{n} \left( R - \Phi \right )_{k-1} + \frac{1}{n} \left (  R_k - \Phi_k \right )=\\[0.3cm]
& =\Phi_k + \frac{n-1}{n} < R - \Phi >_{k-1} + \frac{1}{n} \left (  R_k - \Phi_k \right )=\\[0.3cm]
&= \Phi_k +\frac{n-1}{n} \left (\widehat{R}_{k-1}-\Phi_{k-1} \right )+  \frac{1}{n} \left( R_k-\Phi_k \right)=\\[0.3cm]
&= \Phi_k +\frac{n-1}{n} \left (\widehat{R}_{k-1}-\Phi_{k-1} \right )+  \frac{1}{n} \left( R_k-\Phi_k \right)=\\[0.3cm]
&=  \frac{1}{n} R_k+ \frac{n-1}{n} \left [\widehat{R}_{k-1}+ \left( \Phi_k-\Phi_{k-1} \right) \right ]\\
&=  \frac{1}{n} R_k+ \frac{n-1}{n} \left [\widehat{R}_{k-1}+ \left( \Phi_k-\Phi_{k-1} \right) \right ]\\

Revision as of 12:39, 16 January 2012


FundamentalsFundamentals
Title Carrier-smoothing of code pseudoranges
Author(s) J. Sanz Subirana, J.M. Juan Zornoza and M. Hernández-Pajares, Technical University of Catalonia, Spain.
Level Advanced
Year of Publication 2011
Logo gAGE.png

The noisy (but unambiguous) code pseudorange measurements can be smoothed with the precise (but ambiguous) carrier phase measurements. A simple algorithm (the Hatch filter) is given as follows:

Let's [math]\displaystyle{ R(s;n) }[/math] and [math]\displaystyle{ \Phi(s;n) }[/math] the code and carrier measurement of a given satellite [math]\displaystyle{ s }[/math] at the time [math]\displaystyle{ n }[/math]. Thence, the smoothed code [math]\displaystyle{ \hat{R}(s;n) }[/math] can be computed as:

[math]\displaystyle{ \widehat{R}(s;k)= \frac{1}{n} R(s;k)+ \frac{n-1}{n} \left [\widehat{R}(s;k-1)+ \left( \Phi(s;k)-\Phi(s;k-1) \right) \right ] \qquad \mbox{(1)} }[/math]
The algorithm is initialised with:
[math]\displaystyle{ \widehat{R}(s;1)= R(s;1) }[/math]


where, [math]\displaystyle{ n=k }[/math] when [math]\displaystyle{ k\lt N }[/math] and [math]\displaystyle{ n=N }[/math] when [math]\displaystyle{ k \geq N }[/math].\\[0.2cm] This algorithm must be initialised every time that a carrier phase cycle-slip occurs.

The previous algorithm can be interpreted as a real-time alignment of the carrier phase to the code measurement. That is:

[math]\displaystyle{ \begin{array}{ll} \widehat{R}_k&=\Phi_k + \lt R - \Phi \gt _k=\\[0.3cm] & =\Phi_k + \frac{n-1}{n} \lt R - \Phi \gt _{k-1} + \frac{1}{n} \left ( R_k - \Phi_k \right )=\\[0.3cm] &= \Phi_k +\frac{n-1}{n} \left (\widehat{R}_{k-1}-\Phi_{k-1} \right )+ \frac{1}{n} \left( R_k-\Phi_k \right)=\\[0.3cm] &= \frac{1}{n} R_k+ \frac{n-1}{n} \left [\widehat{R}_{k-1}+ \left( \Phi_k-\Phi_{k-1} \right) \right ]\\ \end{array} \qquad \mbox{(2)} }[/math]


where the mean bias [footnotes 1] [math]\displaystyle{ \left ( R - \Phi \right ) }[/math] between the code and carrier phase is estimated in real time and used to align the carrier phase with the code.

For more information, please go to the article:


Notes

  1. ^ The mean value of a set of measurements [math]\displaystyle{ \{x_1,\cdots,x_n\} }[/math] can be computed recursively as: [math]\displaystyle{ \lt x\gt _k= \frac{1}{k} x_k+ \frac{k-1}{k}\lt x\gt _{k-1} }[/math]. The equation (2) is a variant of previous expression, that provides an estimate of a moving average over a [math]\displaystyle{ N }[/math] samples window. Notice that, when [math]\displaystyle{ k \geq N }[/math], the weighting factors [math]\displaystyle{ \frac{1}{N} }[/math] and [math]\displaystyle{ \frac{N-1}{N} }[/math] are used instead of [math]\displaystyle{ \frac{1}{k} }[/math] and [math]\displaystyle{ \frac{k-1}{k} }[/math].