GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
Signal model

GNSS signal model

This page describes signals transmitted by GNSS space vehicles. Signal models are mathematical representations of the electromagnetic waves that are exciting the receiver's antenna. The current induced by those waves is then amplified, filtered and downconverted to a suitable frequency (can be at some intermediate frequency or directly to baseband), and then converted to 0s and 1s by the Analog-to-Digital Converter (ADC). That is the job of the Radio Frequency front-end, which at its output delivers a stream of digital samples. Those samples constitute the input of a software receiver, so for GNSS-SDR the signal models described below can be seen as the rules of the game.

GNSS' space vehicles are modern versions of lighthouses, but with better visibility. Each satellite is a reference point, and if we know our distance to several reference points, we can compute our location, just as mariners do when they see a couple of lighthouses. For each in-view satellite \(i\) of system \(s\), we can write:

\begin{equation}\label{eq:pseudorange} \rho_i = \sqrt{ \left(x^{\text{Tx}}_i - x \right)^2 + \left(y^{\text{Tx}}_i - y \right)^2 + \left(z^{\text{Tx}}_i - z \right)^2}+c\Delta t^{(s)}+\sigma_{e}, \end{equation}

where \(\left(x^{\text{Tx}}_i, y^{\text{Tx}}_i, z^{\text{Tx}}_i\right)\) is the satellite's position (known from the navigation message), \((x,y,z)\) the receiver's position, and \(\sigma_e\) gathers other sources of error. Since the receiver needs to estimate its own 3D position (three spatial unknowns) and its clock deviation with respect to the satellites' time basis, at least \(3+N_s\) satellites must be seen by the receiver at the same time, where \(N_s\) is the number of different navigation systems available (in-view) at a given time. Each received satellite signal, once synchronized and demodulated at the receiver, defines one equation such as the one defined above, forming a set of nonlinear equations that can be solved algebraically by means of the Bancroft algorithm or numerically, resorting to multidimensional Newton-Raphson and weighted least square methods. When a priori information is added we resort to Bayesian estimation, a problem that can be solved recursively by a Kalman filter or any of its variants. The problem can be further expanded by adding other unknowns (for instance, parameters of ionospheric and tropospheric models), sources of information from other systems, mapping information, and even motion models of the receiver. In the design of multi-constellation GNSS receivers, the vector of unknowns can also include the receiver clock offset with respect to each system in order to take advantage of a higher number of in-view satellites and using them jointly in the navigation solution, therefore increasing accuracy.

The analytic representation of a signal received from a GNSS satellite can be generically expressed as

\begin{equation}\label{eq:analytic} r(t)=\alpha(t) s_{T} \left(t-\tau(t)\right)e^{-j2 \pi f_d(t) }e^{j 2 \pi f_c t}+n(t)~, \end{equation}

where \(\alpha(t)\) is the amplitude, \(s_{T}(t)\) is the complex baseband transmitted signal, \(\tau(t)\) is the time-varying delay, \(f_d(t)=f_c \tau(t)\) is the Doppler shift, \(f_c\) is the carrier frequency, and \(n(t)\) is a noise term. These signals arrive to the Earth's surface at extremely low power (e.g. \(-158.5\) dBW for GPS L1 C/A-code, \(-157\) dBW for Galileo E1), well below the noise floor. In order to estimate its distances to satellites, the receiver must correlate time-aligned replicas of the corresponding pseudorandom code with the incoming signal, in a process called despreading that provides processing gain only to the signal of interest. After a coarse and fine estimation stages of the synchronization parameters (usually known as acquisition and tracking, respectively), signal processing output is in form of observables:

i) the pseudorange (code) measurement, equivalent to the difference of the time of reception (expressed in the time frame of the receiver) and the time of transmission (expressed in the time frame of the satellite) of a distinct satellite signal; and optionally

ii) the carrier-phase measurement, actually being a measurement on the beat frequency between the received carrier of the satellite signal and a receiver-generated reference frequency. Carrier phase measurements are ambiguous, in the sense that the integer number of carrier wavelengths between satellite and the receiver's antenna is unknown. Techniques such as Least-square AMBiguity Decorrelation Approach (LAMBDA) or Multi Carrier Ambiguity Resolution (MCAR) can be applied to resolve such ambiguity and provide an accurate estimation of the distance between the satellite and the receiver.

Then, depending on the required accuracy, the navigation solution can range from pseudorange-only, computationally low demanding, and limited accuracy least squares methods to sophisticated combinations of code and phase observables at different frequencies for high demanding applications such as surveying, geodesy, and geophysics.

Next sections provide brief descriptions of the space segment of different GNSSs and their broadcast signal structures accessible by civilians.

Global Positioning System (GPS) signal in space

The Global Positioning System (GPS) is a space-based radio-navigation system owned by the United States Government (USG) and operated by the United States Air Force (USAF). GPS provides positioning and timing services to military and civilian users on a continuous, worldwide basis. Two GPS services are provided: the Precise Positioning Service (PPS), available primarily to the military of the United States and its allies, and the Standard Positioning Service (SPS) open to civilian users.

GLONASS signal in space

The nominal baseline constellation of the Russian Federation's Global Navigation Satellite System (GLONASS) comprises \(24\) GLONASS-M satellites that are uniformly deployed in three roughly circular orbital planes at an inclination of \(64.8^o\) to the equator. The altitude of the orbit is \(19,100\) km. The orbit period of each satellite is \(11\) hours, \(15\) minutes, and \(45\) seconds. The orbital planes are separated by \(120^o\) right ascension of the ascending node. Eight satellites are equally spaced in each plane with \(45^o\) argument of latitude. Moreover, the orbital planes have an argument of latitude displacement of \(15^o\) relative to each other.

GLONASS civil signal-in-space is defined at Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1. This system makes use of a frequency-division multiple access (FDMA) signal structure, transmitting in two bands: \(f^{(k)}_{GLO L1}=1602+k \cdot 0.5625\) MHz and \(f^{(k)}_{GLO L2}=1246+k \cdot 0.4375\) MHz, where \(k\in \left\{ -7,-6,\cdots,5,6\right\}\) is the channel number. Satellites in opposite points of an orbit plane transmit signals on equal frequencies, as these satellites will never be in view simultaneously by a ground-based user.

The use of FDMA techniques, in which the same code is used to broadcast navigation signals on different frequencies, and the placement of civil GLONASS transmissions on frequencies close to \(1600\) MHz, well above the GPS L1 band, have complicated the design of combined GLONASS/GPS receivers, particularly low-cost equipment for mass-market applications. Future plans of modernization are intended to increase compatibility and interoperability with other GNSS, and include the addition of a code-division multiple access (CDMA) structure, and possibly binary offset carrier (BOC) modulation, beginning with the third civil signal in the L3 band ( \(1197.648 - 1212.255\) MHz). Russia is implementing the new signals on the next-generation GLONASS-K satellites, with a first prototype successfully launched into orbit on February 26, 2011.

Galileo signal in space

The nominal Galileo constellation comprises a total of \(27\) operational satellites (plus \(3\) active spares), that are evenly distributed among three orbital planes inclined at \(56^o\) relative to the equator. There are nine operational satellites per orbital plane, occupying evenly distributed orbital slots. Three additional spare satellites (one per orbital plane) complement the nominal constellation configuration. The Galileo satellites are placed in quasi-circular Earth orbits with a nominal semi-major axis of about \(30,000\) km and an approximate revolution period of \(14\) hours. The Control segment full infrastructure will be composed of \(30-40\) sensor stations, \(3\) control centers, \(9\) Mission Uplink stations, and \(5\) TT&C stations.

Galileo's Open Service is defined at Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 2.0, where the following signal structures are specified:

\begin{align} \nonumber s^{\text{(Gal E5)}}_{T}(t)= & e_{E5a}(t) ssc_s^{*}(t)+ e_{E5b}(t) ssc_s(t) + \\ {} & +\bar{e}_{E5a}(t)ssc_p^{*}(t)+\bar{e}_{E5b}(t)ssc_p(t)~,\label{GalE5} \end{align}

where the single and product side-band signal subcarriers are

\begin{align} ssc_s(t)=& sc_s(t) +jsc_s\left(t-\frac{T_s}{4}\right) ~,\label{sscs}\\ ssc_p(t)=& sc_p(t) +jsc_p\left(t-\frac{T_s}{4}\right) ~,\label{sscp} \end{align}

and

\begin{align} e_{E5a}(t)=&e_{E5aI}(t)+je_{E5aQ}(t),\label{E5a}\\ e_{E5b}(t)=&e_{E5bI}(t)+je_{E5bQ}(t),\\ \bar{e}_{E5a}(t)&=\bar{e}_{E5aI}(t)+j\bar{e}_{E5aQ}(t),\\ \bar{e}_{E5b}(t)&=\bar{e}_{E5bI}(t)+j\bar{e}_{E5bQ}(t),\\ \bar{e}_{E5aI}(t)=& e_{E5aQ}(t)e_{E5bI}(t)e_{E5bQ}(t),\\ \bar{e}_{E5aQ}(t)=& e_{E5aI}(t)e_{E5bI}(t)e_{E5bQ}(t),\\ \bar{e}_{E5bI}(t)=& e_{E5bQ}(t)e_{E5aI}(t)e_{E5aQ}(t),\\ \bar{e}_{E5bQ}(t)=&e_{E5bI}(t)e_{E5aI}(t)e_{E5aQ}(t). \end{align}

The signal components are defined as

\begin{align} e_{E5aI}(t)=& \sum_{m=-\infty}^{+\infty}C_{E5aIs}\Big[|m|_{20}\Big] \oplus \sum_{l=1}^{10230}C_{E5aIp}\Big[ l \Big] \oplus \\ {}& \oplus D_{\text{F/NAV}} \Big[ [l]_{204600}\Big] p(t-mT_{c,E5s}-lT_{c,E5p}),\\ e_{E5aQ}(t)=& \sum_{m=-\infty}^{+\infty}C_{E5aQs}\Big[|m|_{100}\Big] \oplus \sum_{l=1}^{10230}C_{E5aQp}\Big[ l \Big] \cdot \\ {}& \cdot p(t-mT_{c,E5s}-lT_{c,E5p}),\\ e_{E5bI}(t)=& \sum_{m=-\infty}^{+\infty}C_{E5bIs}\Big[|m|_{4}\Big] \oplus \sum_{l=1}^{10230}C_{E5aIp}\Big[ l \Big] \oplus \\ {}& \oplus D_{\text{I/NAV}} \Big[ [l]_{40920}\Big] p(t-mT_{c,E5s}-lT_{c,E5p}),\\ e_{E5bQ}(t)=& \sum_{m=-\infty}^{+\infty}C_{E5bQs}\Big[|m|_{100}\Big] \oplus \sum_{l=1}^{10230}C_{E5bQp}\Big[ l \Big] \cdot \\ {}& \cdot p(t-mT_{c,E5s}-lT_{c,E5p}), \end{align}

where \(T_{c,E5s}=1 \) ms and \(T_{c,E5p}=\frac{1}{10.23}\) \(\mu\)s. Channel A contains the F/NAV type of navigation message, \(D_{\text{F/NAV}}\), intended for the Open Service. The I/NAV message structures for the E5bI and E1B signals use the same page layout. Only page sequencing is different, with page swapping between both components in order to allow a fast reception of data by a dual frequency receiver. The single subcarrier \(sc_s(t)\) and the product subcarrier \(sc_p(t)\) are defined as:

\begin{align} sc_s(t)=& \frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t - \frac{\pi}{4}\right) \right)+\\ \nonumber {}&+ \frac{1}{2}\text{sign} \Big( \cos \left( 2 \pi f_s t \right) \Big)+\\ {} &+\frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t + \frac{\pi}{4}\right) \right)~, \end{align}

\begin{align} sc_p(t)=& -\frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t - \frac{\pi}{4}\right) \right)+\\ \nonumber {}&+ \frac{1}{2}\text{sign} \Big( \cos \left( 2 \pi f_s t \right) \Big)+\\ {} &-\frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t + \frac{\pi}{4}\right) \right)~, \end{align}

with a subcarrier frequency of \(f_s=15.345\) MHz, thus defining an AltBOC(15,10) modulation. The QPSK(10) signal \(e_{E5a}(t)\) defined above is shifted to \(f_{\text{Gal E5a}}\doteq f_{\text{Gal E5}}-f_s=1176.450\) MHz, while \(e_{E5b}(t)\) is shifted to \(f_{\text{Gal E5b}}\doteq f_{\text{Gal E5}}+f_s=1207.140\) MHz. Thus, we can bandpass filter around \(f_{\text{Gal E5a}}\) and get a good approximation of a QPSK(10) signal, with very low energy components of \(e_{E5b}(t)\), \( \bar{e}_{E5a}(t)\), and \( \bar{e}_{E5b}(t)\):

\begin{equation} s_{T}^{\text{(Gal E5a)}}(t) \simeq e_{E5aI}(t)+je_{E5aQ}(t). \end{equation}

The same applies to \(e_{E5b}(t)\), allowing an independent reception of two QPSK(10) signals and thus requiring considerably less bandwidth than the processing of the whole E5 band.

Reference

This text is an except of the following paper: