If you wish to contribute or participate in the discussions about articles you are invited to join Navipedia as a registered user

Code Based Positioning (SPS)

From Navipedia
Jump to: navigation, search

Title Code Based Positioning (SPS)
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

The target is to determine the receiver coordinates and clock offset from pseudorange measurements of at least 4 satellites in view. The positioning principle is based on solving a geometric problem from the measured ranges to the satellites, with known coordinates. The satellite coordinates can be computed from the broadcast message, which also provides all necessary information for the measurements modelling for the Standard Positioning Service (SPS).

From the code pseudorange measurements for, at least, four satellites (see GNSS Measurements Modelling and Instrumental Delay),

The following measurement equations system can be written, neglecting the multipath and receiver noise terms:

where the left side equations contain the measurements and all modeled terms (see Clock Modelling, Tropospheric Delay, Klobuchar Ionospheric Model, and Instrumental Delay).

The right side contains the four unknown parameters: The receiver coordinates and the receiver clock offset .

The previous equation (2) defines a non linear system, which a usual resolution technique consists of linearising the geometric range in the neighbourhood of a point corresponding to an approximate receiver position.

Then, linearising the satellite-receiver geometric range

at the approximative solution , one obtains:

Substituting (4) into (2) we can rewrite the measurement equations as a linear system (where can be whatever, smoothed or unsmoothed code):

The previous navigation equation system [footnotes 1] is written in matrix notation as:

In general, an over-dimensioned system is obtained (for ), which can be solved using the Least Squares adjustment.

After solving the equations system (6), the improved estimate of the receiver coordinates is:

The equations (2) can be linearised again about these new estimates (7) of the receiver position, and the solution can be iterated until the change between two consecutive iterations is under a given threshold. Typically, the iterations converge quickly, in few iterations, even if starting with , i.e., the earth's centre.

The equations (6) will be named Navigation Equation System and can be written in compact form as:

where the vectors and matrix involved can be defined as:

  • Prefit-residuals: Y is a () vector containing the residuals between the measured and predicted pseudoranges, "before fitting" the parameters to the linear model.
  • Geometry matrix: G is a () matrix containing the receiver-satellite geometry [footnotes 2]. The first three elements of each row (j = 1,...,n) are the components of the unitary line-of-sight-vector .
  • Unknown parameters: X is a () vector containing the deviation between the approximated and the true coordinates and the receiver clock offset .

Figure 1: GNSS positioning geometric concept.

For more information, please go to the article


  1. ^ Strictly speaking, this system corresponds to the case where satellite coordinates at emission time have been calculated using pseudorange algorithm described in Satellite Coordinates Computation. In case of using the purely geometric algorithm of Satellite Coordinates, the elements of the associated matrix (design matrix or Jacobian) varies slightly.
  2. ^ The matrix can be computed in the ENU coordinates instead of XYZ as in (6). In this local system the rows are , where and are the elevation and azimuth angle of the satellite observed from the receiver position (please refer to Transformations between ECEF and ENU coordinates for further details)