E1 GALILEO Signal Receiver A Degree Thesis Submitted to the Faculty of Escola Tècnica d’Enginyeria de Telecomunicació de Barcelona Universitat Politècnica de Catalunya by Marta Galván Escribano In partial fulfilment of the requirements for the degree in Telecommunication Systems Engineering supervised by Juan Antonio Fernández Rubio Barcelona, June 2017
Abstract E1 GALILEO Signal Receiver Navigation is defined as the science of finding the position of a craft or person and getting them from one place to another. During the last times in a world in constant motion, a system capable of dealing with positioning and localization in any part of the globe with an accurate precision is indispensable. Global Navigation Satellite System (GNSS) refers to artificial satellite constellations providing signals from space allowing specific receivers to determine the requested position within a global coverage. This is a project for the new GALILEO system created by the European Union. The study designs and implements a receiver that focuses on E1 signals, obtained all of them from European Space Agency and CTTC. For the development of this receiver, acquisition, tracking, demodulation and position performance parts have been taken into account, being these last two parts the specific subject of study of this project. i
Resum E1 GALILEO Signal Receiver La navegació es defineix com la ciència de trobar la posició d’una persona o vehicle i guiar-los d’un lloc a un altre. Durant aquests anys en un món que es regeix pel constant moviment, un sistema capaç de tractar el posicionament i la localització en qualsevol lloc del món amb una precisió exacta és indispensable. El Sistema de Navegació Global per Satèl·lit (GNSS) fa referència a les constel·lacions de satèl·lits artificials que proporcionen senyals des de l’espai permitint als receptors dissenyats per tal fi determinar la posició requerida dins d’una cobertura global. Aquest és un projecte pel nou sistema GALILEO creat per la Unió Europea. L’estudi dissenya i implementa un receptor que treballa amb els senyals E1, obtinguts tots ells a través de l’Agència Espacial Europea i del Centre Tecnològic de Telecomunicacions de Catalunya. Pel desenvolupament d’aquest receptor s’han tingut en compte les parts d’adquisició, seguiment, desmodulació i càlcul de la posició, sent aquestes dues últimes parts l’objecte d’estudi d’aquest projecte. ii
Resumen E1 GALILEO Signal Receiver La navegación se define como la ciencia de encontrar la posición de una persona o un vehículo y guiarlos de un lugar a otro. Durante los últimos tiempos en un mundo en constante movimiento, un sistema capaz de tratar el posicionamiento y la localización en cualquier parte del mundo con una precisión exacta es indispensable. El Sistema de Navegación Global por Satélite (GNSS) hace referencia a las constelaciones de satélites artificiales que proporcionan señales desde el espacio permitiendo a los receptores diseñados con tal fin determinar la posición requerida dentro de una cobertura global. Éste es un proyecto para el nuevo sistema GALILEO creado por la Unión Europea. El estudio diseña e implementa un receptor que trabaja con las señales E1, obtenidas todas ellas a través de la Agencia Espacial Europea y del CTTC. Para el desarrollo de este receptor se han tenido en cuenta las partes de adquisición, rastreo, demodulación y cálculo de la posición, siendo estas dos últimas partes el objeto de estudio de este proyecto. iii
Acknowledgments First of all, I would like to express my gratitude to my advisor, Prof. Juan Antonio Fernández Rubio, for all his complete dedication to this project and for transmitting to me the passion he really feels for this area. I would like to thank Dr. Carles Fernández-Prades, member of CTTC (Centre Tecnològic de Telecomunicacions de Catalunya) for manifesting so much interest in the project and providing us his knowledge about the matter, particularly with real Galileo signals. I also want to thank Jose García Molina, PhD candidate in European Space Agency, for always offering his collaboration from European Space Research and Technology Centre. Furthermore, I am thankful to my university colleagues at ETSETB for sharing with me these past years and making this a nice experience. Finally, I want to thank all my family, specially Adrián, that have been supporting me in the best and the toughest moments and encouraging me to always go forward. iv
Revision History and Approval Record Revision Date Purpose 0 18/05/2017 Document Creation 1 20/06/2017 Document Revision 2 28/06/2017 Document Revision 3 30/06/2017 Document Deliver Document Distribution List Name e-mail Marta Galván Escribano martagalv[email protected] Juan Antonio Fernández Rubio
[email protected] Written by: Reviewed and approved by: Date 30/06/2017 Date 30/06/2017 Name Marta Galván Escribano Name Juan Antonio Fernández Rubio Position Project Author Position Project Supervisor v
Contents 1 Introduction 1 1.1 Global Navigation Satellite Systems . . . . . . . . . . . . . . . . . . . . . . 1 1.2 ObjectivesandMethods ............................ 4 2 Galileo System Overview 6 2.1 SystemDescription............................... 6 2.1.1 Galileo Control Centers (GCC) . . . . . . . . . . . . . . . . . . . . 6 2.2 Services ..................................... 7 2.3 FrequencyPlan ................................. 7 2.4 ModulationSchemes .............................. 8 2.5 Transmitted and Received Signals . . . . . . . . . . . . . . . . . . . . . . . 10 3 GNSS Receiver 13 3.1 Acquisition ................................... 14 3.2 Tracking..................................... 14 3.3 Decoding..................................... 15 4 Galileo Message Structure 16 4.1 I/NAV Message Description . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2 Errorcoding................................... 17 4.2.1 Cyclic Redundancy Check (CRC) . . . . . . . . . . . . . . . . . . . 17 4.2.2 Forward Error Correction (FEC) . . . . . . . . . . . . . . . . . . . 18 4.2.3 Interleaving ............................... 19 4.3 I/NAVPagePart................................ 19 4.3.1 I/NAVWordTypes........................... 21 4.3.2 I/NAV Nominal Sub-Frame Layout . . . . . . . . . . . . . . . . . . 26 4.3.3 I/NAV Nominal Frame Layout . . . . . . . . . . . . . . . . . . . . . 26 4.4 SARData.................................... 26 5 Positioning Performance 27 5.1 Pseudo-range .................................. 27 5.2 Calculation of Satellite Position . . . . . . . . . . . . . . . . . . . . . . . . 31 vi
6 Satellites and Receiver Position 34 6.1 DecodingAlgorithms.............................. 34 6.2 Satellites Position Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7 Results, Conclusions and Future Work 36 7.1 Results...................................... 36 7.2 Conclusions ................................... 42 7.3 FutureWork................................... 43 vii
List of Figures 1.1 Galileoconstellation .............................. 3 1.2 GanttDiagram ................................. 5 2.1 GalileoFrequencyPlan............................. 8 2.2 Modulation Scheme E1 CBOC signal . . . . . . . . . . . . . . . . . . . . . 9 2.3 Trilateration................................... 11 2.4 Position determination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1 GNSSsoftwarereceiver............................. 13 4.1 I/NAV Message Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 Convolutional Coding Scheme . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.3 I/NAV Nominal Page Structure . . . . . . . . . . . . . . . . . . . . . . . . 20 4.4 I/NAVWordType1 .............................. 21 4.5 I/NAVWordType2 .............................. 21 4.6 I/NAVWordType3 .............................. 22 4.7 I/NAVWordType4 .............................. 22 4.8 I/NAVWordType5 .............................. 23 4.9 I/NAVWordType6 .............................. 24 4.10I/NAVWordType7 .............................. 24 4.11I/NAVWordType8 .............................. 24 4.12I/NAVWordType9 .............................. 25 4.13I/NAVWordType10 ............................. 25 4.14I/NAVWordType0 .............................. 25 6.1 ConceptualMap ................................ 35 7.1 Correlation ................................... 37 7.2 Position of 4 GALILEO Satellites . . . . . . . . . . . . . . . . . . . . . . . 40 7.3 Orbits of 4 GALILEO Satellites . . . . . . . . . . . . . . . . . . . . . . . . 41 7.4 Satellites Orbits in ECI System . . . . . . . . . . . . . . . . . . . . . . . . 42 viii
the first parameters carried by Galileo signals. Then, so as to compute the satellites position, a new signal was provided. This time it was courtesy of CTTC (Centre Tecnològic de Telecomunicacions de Catalunya). First, a signal just with one satellite navigation data and then, a new signal with navigation messages coming from several satellites. To obtain this last signal, it was necessary to install an open source Global Navigation Satellite Systems software-defined receiver (GNSS SDR) on Linux and adapt the parameters of the receiver to Galileo receiver. The software GNSS SDR is developed by a group of researchers at CTTC for educational and research purposes. To obtain satellites position new algorithms were coded. Initially, there were some problems with the satellite signal and the expected results were not obtained, since some parameters gave an erroneous value. Fixed the incident, the position of the satellites was performed. The satellites position together with the pseudo-range provided by the tracking tasks allow to calculate the position of the receiver. Throughout the project some roadblocks have been encountered due to the scarce information that still exists of the Galileo system. Although there is a lot of information and books on GPS system, GALILEO is in full development process and some specifications are not fully defined or have been left for future work. Due to this fact, some problems have appeared due to the lack of information that exists in this field. The project is carried out in the framework of the Signal Theory in Communications department at Universitat Politècnica de Catalunya. Below it is presented the Gantt diagram of the final project where the title and duration of the packages are specified. Figure 1.2: Gantt Diagram. 5
Chapter 2 Galileo System Overview 2.1 System Description The Galileo system consists of 30 satellites (24 operational and up to 6 active spares). They are positioned in three Medium Earth Orbit planes with an inclination of 56owith reference to the equatorial plane (8 operational satellites and 2 active spares per plane) and separated by 120oright ascension of the ascending node (RAAN) at an altitude of approximately 23222 km.[2] 2.1.1 Galileo Control Centers (GCC) The performance of two Galileo Control Centers (GCC), located in Oberpfaffenhofen and Fucino, controls the satellite constellation, the synchronization of the satellite atomic clocks, the processing of the integrity signal and the data handling of all internal and external elements. These GCC’s consists of: Orbit Synchronization and Processing Facilities (OSPF), Precision Timing Facilities (PTF), Integrity Processing Facilities (IPF), Mission Control Facilities (MCF), Satellite Control Facilities (SCF) and Services Product Facilities (SPF). The GCC are supported by a worldwide network of five Telemetry, Tracking and Control (TT&C) stations. Data transfer to and from the satellites is performed through a global network of Galileo Uplink Stations (GUS). Each GUS combines a TT&C and a Mission Uplink Station (MUS). Galileo Sensor stations (GSS) are distributed around the globe. They sense the quality of the satellite navigation signal, as known as Signal In Space (SIS). The information on the SIS quality, called Integrity Information, is the major differentiator of GALILEO compared to other GNSS. The Integrity Information will be transmitted globally together with the navigation signal and thus allows the Galileo system to be certified for safety-of-Life applications. 6
2.2 Services Galileo system will provide four navigation services and one service to support Search and Rescue. The following services will be independent from other systems and they will be available worldwide. •Open Service (OS): This service will be free of charge. It will provide position, down to one meter, and simple timing. It is a combination of open signals. •Safety of Life navigation (SoL): It is an enhancement of the open service as it provides timely warnings to the user when it is out of a certain accuracy margin. This service is suitable for applications that need a guaranteed precision. •Commercial Service (CS): In order to obtain higher data rates, this service provides access to two additional signals. It also enables users to improve their accuracy. It is a guaranteed and encrypted service. •Public regulated Service (PRS): Service for government authorized users that require better continuity of service and controlled access. The signals involved use encrypted ranging codes. •Search and Rescue service (SAR): Galileo signals will be able to pick up signals from emergency beacons carried by ships, planes or individuals and relay them to national rescue centers. In this type of situation is very important to know the precise position and this Galileo service allows at least one Galileo satellite to be visible of any point on Earth at any times. It is a flattering factor because it permits real-time distress alerts. It also contributes to improve the international COSPAS-SARSAT Search and Rescue System, taking part in the MEO Search and Rescue system (MEOSAR). 2.3 Frequency Plan The Galileo navigation signals are transmitted in L-band (1-2 GHz) spectrum. These signals occupy four different frequency bands indicated in figure 2.1. The four frequency bands are: E5a, E5b, E6 and E1. Galileo satellites share the E1 band (1575.42 MHz) with GPS. These frequency bands are allocated in the spectrum for Radio Navigation Satellite Services (RNSS). In addition, E5a, E5b and E1 bands are included in the spectrum for Aeronautical Radio Navigation Services (ARNS) as well. This allocated spectrum is employed by Civil-Aviation users and is defined as a radionavigation service intended for the 7
benefit and for the safe operation of aircraft [3]. This service enables specific applications such as the so-called Safety of Life service. Figure 2.1: Galileo Frequency Plan where it is shown the frequency bands allocation of the different GNSS systems. 2.4 Modulation Schemes In table 2.1 it is shown the Galileo carrier frequencies for each band. Signal Carrier Frequency in MHz E1 1575.420 E6 1278.750 E5 1191.795 E5a 1176.450 E5b 1207.140 Table 2.1: Carrier frequencies of Galileo bands The E5 carrier is subdivided into two subbands: E5a and E5b. This carrier is modulated through a modified BOC called AltBOC. E5a and E5b signals can be processed independently by the receiver as they are two separate QPSK signals with a carrier frequency of 1176.45 MHz and 1207.14 MHz respectively, as shown in figure 2.1. The E6 signal is formed by components B and C. The component B contains data stream modulated with the encrypted ranging code and the component C is a pilot component. Both pilot and data components are combined on the same carrier component E6. 8
This study will focus on the E1 signal. In figure 2.2 it is presented the modulation scheme for this signal generation. This modulation is the so-called composite binary offset carrier CBOC(6,1, 1 11). The Galileo E1 band is centered at fc=1575.42 MHz and its receiver reference bandwidth is 24.552 MHz. The E1-B component contains the bit sequence of the Integrity Navigation Message, DI/NAV and Safety-of-Life (SoL) services. The E1-C component is a pilot signal with a secondary code. Figure 2.2: Modulation Scheme for the E1 CBOC signal. The signals involved are eE1−Band eE1−C: •eE1−B: I/NAV navigation data stream DE1−Band the ranging code CE1−B. Then it is modulated with the sub-carriers scE1−B,a and scE1−B,b. •eE1−C: pilot component from the ranging code CE1−Cincluding its secondary code. Then it is modulated with the sub-carriers scE1−C,a and scE1−C,b. In table 2.2 there is a decription with the chip rates and sub-carrier rates of the ranging signals for the E1 signal transmitted by Galileo. The symbol rate of the navigartion data stream component, RD,E1−B, is 250 symbols/s. 9
Component (Parameter Y) Sub-carrier Type Sub-carrier Rate RS,E1−Y,a (MHz) Sub-carrier Rate RS,E1−Y,b (MHz) Ranging Code ChipRate RC,E1−Y(Mcps) B CBOC, in-phase 1.023 6.138 1.023 C CBOC, anti-phase 1.023 6.138 1.023 Table 2.2: E1 CBOC Chip Rates and Sub-carrier Rates The E1-B/C composite signal in baseband is then generated according to equation 2.1. sE1(t) = 1 √2(eE1−B(t)(αscE1−B,a(t)+βscE1−B,b(t))−eE1−C(t)(αscE1−C,a(t)−βscE1−C,b(t))) (2.1) Where scE1−X,a(t) = sgn(sin(2πRs,E1−X,at)) Rs,E1−X,at)) = 1.023 MHz. scE1−X,b(t) = sgn(sin(2πRs,E1−X,bt)) Rs,E1−X,b(t)= 6.138 MHz. The parameters αand βare chosen such that the combined power of siganl scE1−B,b and the scE1−C,b sub carrier components equals of the 1/11 of the total power of eE1−B plus eE1−C, before application of any bandwidth limitation. α=q10 11 and β=q1 11 2.5 Transmitted and Received Signals To compute the receiver position, two parameters are necessary: the satellite position and its clock error. The satellites convey this information to the receiver. The satellites position is known by the receiver using the ephemeris information transmitted by different satellites. The GNNS receiver measures its distance to the satellites, knowing the time the signal takes to arrive, and it uses this information to compute its position. Every satellite denotes the receiver is located in a point of the sphere surface which is centered in the corresponding satellite and it has the total distance to the receiver as radius. The concept known as trilateration is helpful in this cases and it is shown in figure 2.3. With only 3 points, the receiver position could be computed. Yet, when talking about 4 dimensions 4 points are necessary due to receiver clock error. Considering the spatial intersection between the three spheres and the temporal intersection with the 10
fourth one, two points are obtained. One of them is located outside the globe, and the other one is the point related to the receiver. Figure 2.3: Trilateration concept. Whether the satellites clocks are not synchronized with the receiver’s clock, some error is made in the measurement of time, and the three spheres do not intersect at the correct point. Time Introducing UTC (Universal Time Coordinated), it is the main hour standard around the world. It is based on second jumping, which is a one-second adjustment that is occasionally applied to UTC in the sense of keeping the time of day closer to the solar time. Galileo Time and UTC do not indicate the same time. Unlike UTC, Galileo timing is constantly continuous. This phenomenon causes a gap between both timing systems, and Galileo displays which is this difference. Galileo satellites transmit the navigation message at the same instant of time, since all of them are synchronized with very accurate clocks. Nevertheless, the received signals do not arrive at the same time. That is when the concept of pseudo-range arises: importance is taken by the relative times. The first received signal is set to 0 (Offset) and then it is computed several time increments with the receiving of the rest of the signals. In Chapter 5: Positioning Performance, this concept is widely explained. In order to anticipate this, figure 2.4 presents a scheme with 4 satellites and the 4 equations belonging to the calculation of its 4 pseudo-ranges. 11
Figure 2.4: Position determination. At least 4 satellites are necessary so as to obtain the receiver position. ρ1=q(xs1−xu)2+ (ys1−yu)2+ (zs1−zu)2+c∆t(2.2) ρ2=q(xs2−xu)2+ (ys2−yu)2+ (zs2−zu)2+c∆t(2.3) ρ3=q(xs3−xu)2+ (ys3−yu)2+ (zs3−zu)2+c∆t(2.4) ρ4=q(xs4−xu)2+ (ys4−yu)2+ (zs4−zu)2+c∆t(2.5) 12
Chapter 3 GNSS Receiver In this section it is presented the main parts of which a Galileo E1 signal receiver consists. A GNSS receiver is composed of the following blocks: RF front-ends, RF system, Signal source, Signal conditioner, Acquisition, Tracking and Decoding of the navigation message. In figure 3.1 it is presented an overview of a proposed GNSS software receiver, where the input are raw bits coming from the RF front-end’s ADC and they can be read from a file or directly in real time from a hadware device. At its output there is an amplified, downconverted, decimated, filtered and digitized version of the received signal. The signal conditioner consists of adapting the sample bit depth to a data type tractable at the host computer running the software receiver, and it can intermediate frequency to baseband conversion. Figure 3.1: Proposed Galileo signal receiver. Notice its main parts such as Acquisition, Tracking and Telemetry Decoder [4]. So as to delve into these main parts, their general purposes are described in the next sections. [4] 13
3.1 Acquisition This block is in charge of the detection of presence/absence of signals coming from a GNSS satellite. When the receiver obtains a positive detection, it should provide estimations of the code phase ˆτand the Doppler shift ˆ fdin order to initialize the delay and phase trancking loops. The maximum likelihood (ML) estimators of τand fdare obtained by maximizing the function: ˆ fdML ,ˆτML = arg max fd,τ {|ˆ Rxd(fd, τ)|2}(3.1) where ˆ Rxd(fd, τ) = 1 N N−1 X n=0 xIN [n]d[nTs−τ]e−j2πfdnTs(3.2) Where xIN [n]= complex vector containing I&Q samples of the received signal. Ts= sampling period. τ= code phase of the received signal with respect to a local reference. fd= Doppler shift. N= number of samples in a spreding code. d[n]= locally generated reference. Obtaining the optimum estimators implies the maximization of the correlation function of the incoming signal with its matched filter. A two-dimensional search from a multiplication-and-sum of N complex samples is required for the maximization of equation 3.1. To make this process easier, it is used the FFT-based circular convolution, which exchanges the expensive multiplication-and-sum operation by a discrete Fourier transform. [5] 3.2 Tracking This block receives the data stream xIN [n]and proceeds to do its function when it obtains a "positive acquisition" message from the control plane, along with the estimationsτacq and ˆ facq. Once obtained, its role is to refine the estimations and track their changes along the time. To attain signal tracking there are three relevant parameters: evolution of the code phase τ, Doppler shift fdand carrier phase φ. So as to obtain the optimum estimators it is commonly used closed-loop structures designed to minimize the difference between the code phase, the carrier phase and the frequency of the incoming signal with respect to a replica generated locally. 14
4.3.1 I/NAV Word Types There are 11 different word types that carry the navigation data. Each of them contains all the parameters required to compute the position, velocity and time. Following there is a specific scheme of how are these parameters distributed in the different nominal words. Besides, there are several exemples obtained from the parameters extraction from a real Galileo satellite signal. It should be considered that the values given below refer to a particular Galileo signal and they are not standard. This has been accomplished using a MATLAB script that has been adapted to the requirements of this system. Figure 4.4: I/NAV Word Type 1 [2]. Where t0e[n]= Ephemeris reference time. t0e[n]Galileo = 421800 s M0[n]= Mean anomaly at reference time. M0[n]Galileo = 0.2388 semi-circles = 0.75 rad e= Eccentricity. eGalileo = 0.0090 A1/2= Square root of the semi-major axis. A1/2 Galileo = 5.4407 ·103meter1/2 Figure 4.5: I/NAV Word Type 2 [2]. Where Ω0= Longitude of ascending node of orbital plane at weekly epoch. Ω0Galileo = 1.8782 semi-circles = 5.9 rad i0= Inclination angle at reference time. i0Galileo = 0.3107 semi-circles = 0.976 rad = 55.928o ω= Argument of perigee. 21
ωGalileo = 0 semi-circles • i= Rate of change of inclination angle. • iGalileo = 1.8608 ·10−9semi-circles =5.846 ·10−9rad Figure 4.6: I/NAV Word Type 3 [2]. Where • Ω= Rate of change of right ascension. • ΩGalileo = 1.9057 ·10−6semi-circles = 5.987 ·10−6rad ∆n= Mean motion difference from computed value. ∆nGalileo = 7.4488 ·10−9semi-circles = 2.34 ·10−8rad CUC = Amplitude of the cosh correction term to the argument of latitude. CUCGalileo = 1.2206 ·10−4semi-circles = 3.83 ·10−4rad CUS = Amplitude of the sinh correction term to the argument of latitude. CUSGalileo = 1.2206 ·10−4semi-circles = 3.83 ·10−4rad CRC = Amplitude of the cosh correction term to the orbit radius. CRCGalileo = 2.0475 ·103semi-circles = 6.43 ·103rad CRS = Amplitude of the sinh correction term to the orbit radius. CRSGalileo = 2.0475 ·103semi-circles = 6.43 ·103rad Figure 4.7: I/NAV Word Type 4 [2]. Where SV ID = Satellite identification. Cic = Amplitude of the cosh correction term to the angle of inclination. CicGalileo = 1.2206 ·10−4semi-circles = 3.83 ·10−4rad Cis = Amplitude of the sinh correction term to the argument of latitude. CisGalileo = 1.2206 ·10−4semi-circles = 3.83 ·10−4rad t0c= Clock correction data reference Time of Week. 22
t0cGalileo = 421800 s af0= SV clock bias correction coefficient. af0Galileo = 0.1249 s af1= SV clock drift correction coefficient. af1Galileo = 2.9802 ·10−8s/s af2= SV clock drift rate correction coefficient. af2Galileo = 0s/s2 Figure 4.8: I/NAV Word Type 5 [2]. Where ai0= Effective Ionisation Level 1st order parameter. ai1= Effective Ionisation Level 2nd order parameter. ai2=Effective Ionisation Level 3rd order parameter. BGD(E1,E5a) = E1-E5a Broadcast Group Delay (F/NAV). BGD(E1,E5b) = E1-E5b Broadcast Group Delay (I/NAV). Ionospheric disturbance flag E5bHS = E5b Signal Health Status. E1BHS = E1-B/C Signal Health Status. E5bDV S = E5b Data Validity Status. E1BDV S = E1-B Data Validity Status. WN = Week Number. WNGalileo = week 734 TOW = Time of Week. TOWGalileo = 421735 s 23
Figure 4.9: I/NAV Word Type 6 [2]. Where A0= Constant term of polynomial. A1=1st order term of polynomial. ∆tLS =Leap Second count before leap second adjustment. t0t= UTC data reference Time of Week. WN0t= UTC data reference Week Number. WNLSF = Week Number of leap second adjustment. DN = Day Number end leap second adjustment becomes effective. ∆tLSF = Leap Second count after leap second adjustment. Figure 4.10: I/NAV Word Type 7 [2]. Where IODa= Almanac Issue Of Data. WNa= Almanac reference Week Number. ∆tLS =Leap Second count before leap second adjustment. t0a= Almanac reference time. Almanac for SVID1 (1/2). Figure 4.11: I/NAV Word Type 8 [2]. Almanac for SVID1 (2/2) and SVID2 (1/2). 24
Figure 4.12: I/NAV Word Type 9 [2]. Almanac for SVID2 (2/2) and SVID3 (1/2). Figure 4.13: I/NAV Word Type 10 [2]. Where A0G= Constant term of polynomial describing offset ∆tsystem. A1G= Rate of change of the offset ∆tsystem. t0G= Reference Time for GGTO data. WN0G= Week Number of GGTO reference. Almanac for SVID13 (2/2). Figure 4.14: I/NAV Word Type 0 [2]. I/NAV Spare word, WN and TOW. When the field Time is not set to 10, WN and TOW do not contain valid data. 25
4.3.2 I/NAV Nominal Sub-Frame Layout In Galileo system, a sub-frame is composed of 15 Nominal Pages, so its duration is 30 seconds. Using a MATLAB script with a Galileo real signal, it has been verified that the order that is carried out by the nominal words within a sub-frame is as follows: time (s) Word time (s) Word time (s) Word 2 2 12 Reserved 22 1 4 4 14 Reserved 24 3 6 6 16 Reserved 26 5 8 7 or 9 18 Reserved 28 Spare 10 8 or 10 20 Reserved 30 Spare Table 4.3: I/NAV Nominal Sub-Frame Structure 4.3.3 I/NAV Nominal Frame Layout The Galileo frame is composed of 24 sub-frames of 30 seconds of duration, so the total duration of a Galileo frame is 720 seconds. Almanac data, i.e. data corresponding to nominal words 7,8,9 and 10, are sequenced in a nominal frame depending on the sub-frame, as it has been seen in table 4.3. Table 4.4 introduces an example of how it is implemented: Sub-Frame ID Words Sub-Frame ID Words 1 7 and 8 3 7 and 8 2 9 and 10 ... ... Table 4.4: I/NAV Sub-Frame sequencing 4.4 SAR Data Search and Rescue data is transmitted within the Gaileo navigation message. It is an European contribution on humanitarian Search and Rescue activities, since the satellites will pick up emergency signals from beacons carried on transport or people. Then these signals will be sent back to national rescue centers which will be able to know the accurate location of an accident. Reducing the required time to locate a distress and provide assistance increases the probability of survival. [7] SAR messages can be transmitted within short or long Rescue Link Message structure 26
Chapter 5 Positioning Performance The navigation data contain the 4 types of data needed to perform positioning: ephemeris parameters to indicate the position of the satellite to the receiver, time and clock correction parameters to compute pseudo-range, service parameters to identify satellites and signal health and almanac parameters to indicate the position of other satellites. Once ephemeris, service and almanac parameters have been presented, it is time to go deeper into time and clock correction parameters so as to compute the so-called pseudorange. Then, it will be the time to indicate the equations used to find the satellite positions. 5.1 Pseudo-range The relative pseudo-range is the distance (or time) between two reference points. In GNSS there is no absolute time reference. The only time reference is the sampling frequency and the clock bias of the receiver is unknown. Considering it is taken as reference point the beginning point of sub-frame 1, for instance, all the beginning points of sub-frame 1 from different satellites are transmitted at the same time except for the clock correction terms of each satellite. As a result it can be considered that the sub-frames from different satellites are transmitted at the same time. Since the beginning of sub-frame 1 from different satellites are received at different times, this difference time represents the time (or distance) difference from the satellite to the receiver. Therefore, it represents the relative pseudo-range. [6] 27
Ideal Case The ideal case to compute pseudo-ranges is when it does not exist errors with the transmitter and receiver clock, ionospheric, tropospheric or receiver noise errors. Ri(tT, tR) = |rsi(tTi)−rR(tR)|=q(xsi−xR)2+ (ysi−yR)2+ (zsi−zR)2(5.1) Where Ri(tT, tR)= distance between the transmitter and the receiver. tR= instant when the received signal arrives to the receiver. tTi= instant when the signal is transmitted by the satellite i. It can also be define the delay associated to the satellite i τias: τi=Ri(tT, tR) c=tR−tTi(5.2) To compute the position it is required at least 3 satellites so as to solve a non-linear system of 3 equations with 3 unknown quantities. Non-Ideal Case This is the real case, where errors are present. The transmission time of the satellite i is: tTi=tGalileo Ti+ ∆tTi(5.3) Where ∆tTi= satellite clock error. The signals arrive to the receiver at the following instant: tGalileo R=tGalileo Ti+τi−∆trel i(5.4) Where ∆trel i= relativistic correction. And the instant measured by the receiver and replacing with equation 5.4 is: tR=tGalileo R+ ∆tR+ ∆tn=tGalileo Ti+τi−∆trel i+ ∆tR+ ∆tn(5.5) Where ∆tR= receiver clock error. ∆tn= delay due to receiver measurement error due to white noise. Random variable with the same statistical properties for each satellite. 28
Finally, replacing with equation 5.3 it is obtained: tR=tTi+τi−(∆tTi+ ∆trel i)+∆tR+ ∆tn(5.6) Note that ∆tRis common to all satellites. The τidelay is obtained by the sum of the geometric delay, ionospheric delay and tropospheric delay. τi=τgeo i+ ∆tion i+ ∆ttrop i(5.7) The total delay between the transmitter and the receiver is: τtot i=tRi−tTi=τi−(∆tTi+ ∆trel i)+∆tR+ ∆tn(5.8) Replacing τiby equation 5.7 it is obtained: τtot i=τgeo i+ ∆tion i+ ∆ttrop i−(∆tTi+ ∆trel i)+∆tR+ ∆tn(5.9) Once the total delay has been computed, it is possible to obtain the pseudo-range by multiplying it by the speed of light c. ρi=cτtot i=Ri+c∆tion i+c∆ttrop i−c(∆tTi+ ∆trel i) + c∆tR+c∆tn(5.10) Where Ri= geometric distance and as it has been seen in equation 5.1 from the ideal case, the geometric distance is computed as follows: Ri≡Ri(tGalileo Ti, tGalileo R) = |rsi(tGalileo Ti)−rR(tGalileo R)|(5.11) Ri(tGal Ti, tGal R) = q[xsi(tGal Ti)−xR(tGal R)]2+ [ysi(tGal Ti)−yR(tGal R)]2+ [zsi(tGal Ti)−zR(tGal R)]2 (5.12) Note from equation 5.10 that ∆tR, and from equation 5.11 that rRdo not depend on satellites position. The parameter ∆tR, that is the receiver clock error is not known so it can be treated as another unknown quantity. Thus, 4 satellites are necessary to determine the receiver coordinates and its clock error. Linealization To solve the obtained equations system, it must be taken into account that it is non-linear. It should be linearized assuming that an approximate position and approximate clock error 29
are known. To that end, the pseudo-range is derived and it is obtained: δρi=δρi δxR δxR+δρi δyR δyR+δρi δzR δzR+δρi δwR δwR(5.13) Where wR=c∆tR Partial derivatives can be written as: δρi δxR =−xsi−xR Ri ;(5.14) δρi δyR =−ysi−yR Ri ;(5.15) δρi δzR =−zsi−zR Ri ;(5.16) δρi δwR = 1; (5.17) Then, it is defined: δp = [δxRδyRδzRδwR]T;δρ = [δρ1δρ2..δρK]T(5.18) A= a11 a12 a13 1 a21 a22 a23 1 .. .. .. 1 aK1aK2aK31 (5.19) Where ai1=−xsi−xR Ri ai2=−ysi−yR Ri ai3=−zsi−zR Ri p=[xRyRzRwR]T= extended position vector with receiver error. And it can be written that: δρ =Aδp (5.20) The position of the receiver can be calculated iteratively. Whether an approximate extended position vector is available at a given time instant, the estimation may enhance as: p(k)=p(k−1) +δp(k)(5.21) Where δp(k)= linear system solution. 30
Figure 7.1: Correlation between the Satellite 1 signal and the Synchronization Pattern. Once the signal has been synchronized, it is decoded. For this purpose, the parameters of the convolutional encoded data, interleaving parameters and CRC are considered. After decoding, even and odd nominal pages with 120 bits are obtained. An example of an odd nominal page from satellite 1 is shown below. The 120 bits follow the structure that was introduced in figure 4.3 of section 4.3. Note that the first bit is set to 1, as it refers to an odd nominal page. The first bit would be 0 if it was an even nominal page. The second bit is set to 0, since it is a nominal page. In the case of an alert page, the second bit would be 1. Note also that the last 6 bits are 0 as it refers to the tail bits field. [1 0 0000000000000001000000000000000000000000000 000000000000010101010101010101010100110000000001 000010101100100100000000000] Then, the decoded parameters of the nominal pages are obtained: reserved fields, SAR data, Spare data, CRC, and word data. The most important parameters that have been considered for this project have been the CRC fields and, obviously, the words data, since is there where all the information from ephemeris is stored. The CRC field is very important to check whether the signal data is correct or not. The Galileo system, using the CRC technique has the ability to detect errors, but not to correct them. A function was created to detect when the CRC was incorrect and thus, discard the nominal page to which it belonged. To accomplish this, the function calculates the CRC that was emitted by the satellite, and then compares it with the CRC field that was obtained by decoding the nominal pages. In case the CRC fields do not match, the 37
function warns that there is an error. However, the CRC that has been obtained for all the nominal pages of all the satellites of this project has always been correct. The word data field is the essence of this project. This field is transmitted divided into 2 parts. The first part is composed of 112 bits and it is transmitted within the even word. The second part, of 16 bits, is transmitted inside the odd word. The total data field is composed of a nominal word of 128 bits. There are 11 different types of nominal words. Their types are indicated in the first 6 bits of each nominal word. Below, it is shown an example of nominal word. Its word type is 0 0 0 0 1 0, which in decimal is 2. [00001000000110000000000000000000000000000000 0000001001111101001001111101001010000000000000 00000000000000000000000000000000000001]Soastoobtain the satellite ephemeris, word types have to be considered. As it is explained in section 4.3.1, where all the I/NAV word types are presented, ephemeris are distributed following a certain structure. The created function in MATLAB takes this into account. An example of the obtained ephemeris from the simulated ESA signal belonging to satellite 1 is presented in table 7.1. Note that several parameters are set to 0 due to the signal is simulated. This is the case of the eccentricity, that is simulated as the orbit was circular. Type M0∆neA1/2Ω0i0ω • i 2 0.2222 0 0 5.4406e+03 0 0.3111 0 0 • ΩCuc Cus Crc Crs Cic Cis SVID t0e 0 0 0 0 0 0 0 2 244800 Table 7.1: Ephemeris Satellite 1 ESA signal In contrast to these results, the parameters obtained from the CTTC signal are shown in table 7.2. Remind that this signal was not used because only 3 satellite information was available. Type M0∆neA1/2Ω0i0ω • i 2 0.98 1.02e-09 4.22e-04 5.44e+03 0 0.305 -0.44 1.14e-11 • ΩCuc Cus Crc Crs Cic Cis SVID t0e -1.79e-09 -5.74e-06 1.06e-05 111.5 -127.40 1.09e-05 1.09e-05 12 364200 Table 7.2: Ephemeris Satellite 1 CTTC signal 38
A part from ephemeris, other parameters can be obtained from nominal words. In table 7.3 the clock correction parameters from ESA signal are presented. In table 7.4 there are the parameters realted to CTTC signal. BGD t0caf0af1af2 0 244800 0 0 0 Table 7.3: Clock Correction parameters ESA signal BGD t0caf0af1af2 -1.82e-09 364200 5.28e-04 8.32e-11 -1.73e-18 Table 7.4: Clock Correction parameters CTTC signal Finally, the ionospheric correction parameters were obtained from ESA and CTTC siganl as it is presented in the table below. ai0ai1ai2ai0ai1ai2 0 0 0 65 0.1328 0.0228 Table 7.5: Ionospheric Correction parameters ESA and CTTC signal Obtaining the satellites position is conditioned by the reference system to be used. First, the ECEF system is chosen. The Earth-Centered, Earth-Fixed system represents positions as an X,Y and Z coordinate. To compute the position, 4 satellites from the ESA signal were selected. The obtained coordinates in ECEF system were converted to longitude, latitude and height. The results are presented in table 7.6. 39
Longitude Latitude Height Satellite 1 69.34722056o3.87413012o23221268.097 m Satellite 2 123.91384408o8.73824091o23222286.915 m Satellite 3 136.44520668o11.93834524o23222917.060 m Satellite 4 27.09450949o2.59276764o23222252.660 m Table 7.6: Satellites Coordinates Note that the height of each satellite coincides with the Galileo altitude, that is approximately 23222 km. In figure 7.2 it is represented the position of the 4 selected satellites. It has been used Google Earth software so as to visualize them more clearly. To represent these coordinates, a KML file was created using the MATLAB software. Figure 7.2: Position of 4 GALILEO Satellites. Blue dots indicate the position point. Then, taking advantage of the coordinates in the ECEF system, the orbit was calculated for each one of the satellites. In figure (a) it is appreciated the satellite corresponding to channel 1, in figure (b) it is shown satellite orbit corresponding to channel 3, in figure (c) it is represented the satellite orbit corresponding to channel 4 and in figure (d) it is represented the satellite orbit corresponding to channel 6. It is important to note that the orbits represented in figure 7.3 correspond to the orbit that is visualized when an observer is on Earth. 40
(a) (b) (c) (d) Figure 7.3: Orbits of 4 GALILEO Satellites. The coordinate system that can be used can also be inertial. This system is known as ECI. Earth-Centerd Inertial coordinates remain fixed with respect to the surface of the Earth. In this case, the observer is quiet in the center of the Earth. The orbits obtained are circular due to the simulated signal, as can be seen in figure 7.4. Only three orbits can be visualized since two of the satellites share the same orbital plane. The orbits represented in figure 7.3 and figure 7.4 are obtained through a simultaion of the orbits and then it is genereted a KML file with all the coordinates. The results are presented on Google Earth. The receiver position is obtained from the measurements of the position of the satellites and the pseudo-ranges of each one of them. Pseudo-ranges vary as the satellites move, for this reason, it is important to select the correct time. The values of pseudo-ranges are specified in a RINEX file where they vary respect to the time. So as to choose the correct pseudo-range, it was taken into account the TOW parameter from the navigation message. In table 7.7 it is presented the chosen pseudo-range for each satellite. The TOW had a vallue of 245045 s. These seconds correspond to day 2 of the week at 20:04:05. 41
Figure 7.4: Satellites Orbits represented in ECI System. Satellite 1 Channel 1, ID 2 Satellite 2 Channel 3, ID 12 Satellite 3 Channel 4, ID 13 Satellite 4 Channel 6, ID 19 Pseudo-range 23745063.780 m 22626279.017 m 20626320.695 m 21953162.040 m Table 7.7: Pseudo-Ranges of 4 GALILEO satellites. Once all the required parameters are obtained, there are specific MATLAB functions for the calculation of the position. These functions are responsible for obtaining the position of the receiver using the method of least squares. Once the position is obtained in Cartesian coordinates, it is changed to geographic coordinates in the reference ellipsoid WGS84. A KML file with the computed coordinates was generated and represented on Google Earth as it shows figure 7.5. 7.2 Conclusions This project works with GALILEO E1 signal. All the different parts of the receiver have been studied: acquisition, tracking, decoding and position calculation. Given the complexity of the entire receiver, the project has focused on implementing the decoding and positioning parts using the MATLAB software. From the bits obtained from the tracking of the signal by the CTTC, a series of functions that treated the signal of GALILEO have been created in MATLAB. As the GALILEO system has only a short time in force, there are not many books specialized on this topic. Some functions that were used in this project existed for the GPS system, therefore, they have adapted to the new GALILEO system. The first step was to synchronize the signal using the synchronization pattern. Once synchronized, the signal was decoded using the convolutional encoder parameters, the 42
Figure 7.5: Obtained Receiver Position. The result is not as accurate as it should be, due to, inter alia, the simulated signal. interleaving parameters, and it was checked, nominal page to nominal page that the data were correct, taking into account the CRC emitted by the satellite and the received CRC. All parameters contained within the nominal words were obtained. For the calculation of the position of the 4 satellites with which it has been worked, the ephemeris of each satellite have been used. Once the position of the 4 satellites was obtained, an orbit was simulated for each one. The orbit was calculated in both ECEF and ECI coordinates. To visualize the orbits, the coordinates were changed to latitude, longitude and height. A KML file was created so as to perfectly visualize them on Google Earth software. The pseudo-ranges were obtained from a RINEX file provided by the CTTC, since this part belongs to the tracking part. The CTTC has a C++ program and the results of this project can be checked. In fact, all the results, after comparing them with CTTC, were correct. 7.3 Future Work The work team is currently working on the signal tracking part. It is interesting to implement this part on MATLAB. Since the navigation message of GALILEO is very different from the GPS navigation message and together with the little information that exists relating to GALILEO system, the process is not easy. The next step would be to start working with other GALILEO signals, such as the E5 signal. The E5-a signal provides the F/NAV message and it supports Galileo Open Service. The E5-b signal provides the I/NAV message and it supports the Open Service and the Commercial Service. 43
Bibliography [1] Kaplan, E.D. Understanding GPS Principles and Applications First edition, Artech House Publishers ISBN 0-89006-793-7. 1996 [2] European Union European GNSS (Galileo) Open Service Signal in Space Interface Document. OS SIS ICD, Issue 1.3 2016 [3] ITU Radio Regulations Articles Section III – Radio services – Article 1.46 2012 [4] C. Fernández-Prades, C.Avilés, L.Esteve, J. Arribas and P. Closas, "An Open Source Galileo E1 Software Receiver", in Proc. of the 6th ESA workshop on Satellite Navigation Technologies and European GNSS Signals and Signal Processing, (NAVITEC), ESTEC, Noordwijk, The Netherlands, Dec. 2012, DOI:10.1109/NAVITEC.2012.6423057.6 [5] K. Borre anf D. M. Akos A Software–Defined GPS and Galileo Receiver: Single–Frequency Approach [6] Bao-Yen Tsui, J. Fundamentals of Global Positioning System Receivers Second edition, John Wiley & Sons, INC. ISBN 0-471-70647-7. 2005 [7] GMV. "Galileo Search and Rescue Service". [Online] Available:http://www.navipedia.net/index.php/Galileo_Search_and_Rescue_Service. [Accessed: 14 May 2017]. 44