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

Emission Time Computation

From Navipedia
Revision as of 11:28, 23 February 2012 by Carlos.Lopez (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Title Emission Time Computation
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

Two different algorithms for the satellite transmission time computation from the receiver measurement time are presented as follows. The first of them is based on using the pseudorange measurements, which is a link between the receiver time tags (i.e., the reception time in the receiver clock) and the satellite transmission time (in the satellite clock). The second one is a pure geometric algorithm, which does not require any receiver measurement. It only needs the satellite coordinates and an approximate receiver position.

A pseudorange based algorithm

The emission time can be directly obtained from the reception time, taking into account that the pseudorange [math]\displaystyle{ \displaystyle R }[/math] is a direct measurement of the time difference between both epochs, each one of them measured in the corresponding clock:

[math]\displaystyle{ R=c\;\left(t_{rcv}[reception]-t^{sat}[emission]\right) \qquad \mbox{(1)} }[/math]

So, the signal emission time, measured with satellite clock ([math]\displaystyle{ \displaystyle t^{sat} }[/math]), is given by:

[math]\displaystyle{ t^{sat}[emission]=t_{rcv}[reception]-\Delta t \qquad \mbox{(2)} }[/math]


[math]\displaystyle{ \Delta t= R/c \qquad \mbox{(3)} }[/math]

Thence, if the [math]\displaystyle{ \displaystyle \delta t^{sat} }[/math] is the satellite clock offset, regarding to the GNSS (GPS, GLONASS, Galileo...) system time scale (see Clock Modelling) the transmission time [math]\displaystyle{ \displaystyle T[emission] }[/math] in this system time scale can be computed from the receiver measurement time tags ([math]\displaystyle{ \displaystyle t_{rcv} }[/math]) as:

[math]\displaystyle{ T[emission] = t^{sat}[emission] - \delta t^{sat} = t_{rcv}[reception] - R/c - \delta t^{sat} \qquad \mbox{(4)} }[/math]

The former equation (4) has the advantage of providing the signal emission time directly, without iterative calculation, although it does need pseudorange measurements in order to connect both epochs.

The accuracy in determination of [math]\displaystyle{ \displaystyle T[emission] }[/math] is very high, and essentially depends on [math]\displaystyle{ \displaystyle \delta t^{sat} }[/math] error. For instance, in the case of the GPS system it is less than [math]\displaystyle{ 10 }[/math] or [math]\displaystyle{ 100 }[/math] nanoseconds with S/A=off and S/A=on, respectively. This allows calculating satellite coordinates with errors below one tenth of millimetre in both cases [footnotes 1].

A purely geometric algorithm

The former algorithm (equation 2) provides the signal emission time tied to satellite clock ([math]\displaystyle{ \displaystyle t^{sat} }[/math]). The next algorithm ties this epoch to receiver clock ([math]\displaystyle{ \displaystyle t_{rcv} }[/math]):

[math]\displaystyle{ t_{rcv}[emission]=t_{rcv}[reception]-\Delta t \qquad \mbox{(5)} }[/math]

where [math]\displaystyle{ \displaystyle \Delta t }[/math] is now calculated by iteration assuming that an approximate receptor position [math]\displaystyle{ \displaystyle r_{0_{rcv}} }[/math] is known (it converges very fast):

The algorithm is based in the following steps:

1. Calculate the position [math]\displaystyle{ \displaystyle {\mathbf r}^{sat} }[/math] of the satellite at signal reception time [math]\displaystyle{ \displaystyle t_{rcv} }[/math].
2. Calculate the geometric distance between satellite coordinates obtained previously and receiver position [footnotes 2], and from it, calculate the signal travelling time between both points: [math]\displaystyle{ \Delta t=\frac{\left\| {\mathbf r}^{sat}-{\mathbf r}_{0_{rcv}}\right\|}{c} \qquad \mbox{(6)} }[/math]
3. Calculate satellite position at the time: [math]\displaystyle{ t = t_{rcv} - \Delta t \Longrightarrow r^{sat} }[/math].
4. Compare the new position [math]\displaystyle{ \displaystyle r^{sat} }[/math] with the former position. If they differ more than certain threshold value, iterate the procedure starting from 2.

Finally, emission time at the system-time-scale is given by[footnotes 3]:

[math]\displaystyle{ T[emission] = t_{rcv}[emission] - \delta t_{rcv} \qquad \mbox{(7)} }[/math]

where [math]\displaystyle{ displaystyle \delta t_{rcv} }[/math] is receiver clock offset referred to the system time, that may be obtained from navigation solution (although "a posteriori").


This algorithm for the satellite coordinate calculations at the reception epoch allows an efficient modularity because pseudorange measurements are not needed to compute the transmission time.

If the receiver clock offset is small [footnotes 4], thence the [math]\displaystyle{ displaystyle \delta t_{rcv} }[/math] may be neglected. On the other hand, the receiver clock estimates from the navigation solution can be used (extrapolated from the previous epoch). In any case, it must be taken into account that neglecting this term when [math]\displaystyle{ displaystyle \delta t_{rcv} }[/math] reaches large values (e.g., 1 millisecond) may introduce errors of about one meter in satellite coordinates, and this must be taken in account when building the navigation model[footnotes 5]; or more precisely, in the partial derivative respect to receiver clock of design matrix.

Figure 1:Effect of using the satellite coordinates at the reception time instead of transmission time in positioning.

Figure 1 shows an example to illustrating the effect of neglecting the travelling time in the satellite coordinates computation for positioning. It corresponds to a receiver located in Barcelona, Spain (receiver coordinates [math]\displaystyle{ \lambda\simeq 2^o }[/math] [math]\displaystyle{ \phi \simeq 41^o }[/math]). During the [math]\displaystyle{ 70 }[/math] to [math]\displaystyle{ 90 }[/math] milliseconds of travelling time, the satellite moves about [math]\displaystyle{ 200-250 }[/math] meters, which leads to [math]\displaystyle{ +/-60 }[/math] meters in range. The effect on the user position is up to [math]\displaystyle{ 50 }[/math] meters or more in horizontal and vertical components.


  1. ^ GPS, GLONASS or Galileo satellites speed is of few km/s.
  2. ^ Again, notice that satellite and receiver coordinates must be given in the same reference system, because satellite-receiver ray must be generated in a common reference system.
  3. ^ Rigorously, equation (7) is: [math]\displaystyle{ T[emission] = f(T[reception]) = f(t_{rcv}[reception] - \delta t_{rcv}) \simeq t_{rcv}[emission] - \delta t_{rcv} }[/math] where function [math]\displaystyle{ f(\cdot) }[/math] represents geometric algorithm.
  4. ^ Some receivers apply clock-steering adjusting their clocks epoch-by-epoch and providing offsets of few nanoseconds. However, in many cases the receiver wait until gathering an offset of [math]\displaystyle{ 1 }[/math] millisecond to adjust the clock.
  5. ^ In the "design matrix" or Jacobian matrix, obtained when linearising the model with respect to coordinates and receiver clock errors, see Code Based Positioning (SPS).