Get 20M+ Full-Text Papers For Less Than $1.50/day. Start a 14-Day Trial for You or Your Team.

Learn More →

Software-Defined Radio Technologies for GNSS Receivers: A Tutorial Approach to a Simple Design and Implementation

Software-Defined Radio Technologies for GNSS Receivers: A Tutorial Approach to a Simple Design... Hindawi Publishing Corporation International Journal of Navigation and Observation Volume 2011, Article ID 979815, 27 pages doi:10.1155/2011/979815 Review Article Software-Defined Radio Technologies for GNSS Receivers: A Tutorial Approach to a Simple Design and Implementation 1 2 2 2 Fabio Principe, Giacomo Bacci, Filippo Giannetti, and Marco Luise EM Framework Design Laboratory, Ingegneria dei Sistemi (IDS) S.p.A., 56121 Pisa, Italy Dipartimento di Ingegneria dell’Informazione, Universita` di Pisa, 56122 Pisa, Italy Correspondence should be addressed to Giacomo Bacci, giacomo.bacci@iet.unipi.it Received 27 January 2010; Revised 2 December 2010; Accepted 17 February 2011 Academic Editor: Letizia Lo Presti Copyright © 2011 Fabio Principe et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. The field of satellite navigation has witnessed the advent of a number of new systems and technologies: after the landmark design and development of the Global Positioning System (GPS), a number of new independent Global Navigation Satellite Systems (GNSSs) were or are being developed all over the world: Russia’s GLONASS, Europe’s GALILEO, and China’s BEIDOU- 2, to mention a few. In this ever-changing context, the availability of reliable and flexible receivers is becoming a priority for a host of applications, including research, commercial, civil, and military. Flexible means here both easily upgradeable for future needs and/or on-the-fly reprogrammable to adapt to different signal formats. An effective approach to meet these design goalsisthe software-defined radio (SDR) paradigm. In the last few years, the availability of new processors with high computational power enabled the development of (fully) software receivers whose performance is comparable to or better than that of conventional hardware devices, while providing all the advantages of a flexible and fully configurable architecture. The aim of this tutorial paper is surveying the issue of the general architecture and design rules of a GNSS software receiver, through a comprehensive discussion of some techniques and algorithms, typically applied in simple PC-based receiver implementations. 1. Introduction seminal work by Mitola [3] and can be synthesized in three key points. “Software-radio is an emerging technology, thought to build (i) Configurability. Within a specific communication flexible radio systems, multi-service, multi-band, multi-stand- technology, this means that a unique transceiver ard, reconfigurable, and reprogrammable by software.” for different applications can be factory-configured This definition, borrowed by Buracchini [1], describes without any hardware change. very well the key idea of the software-defined radio (SDR) design paradigm. More specifically, an ideal SDR transceiver, (ii) Updatability/Upgradeability. Since thecoreissoft- sketched in Figure 1, is characterized by a commodity off- ware based, the receiver can be updated and upgraded the-shelf (COTS) front-end (FE) that is connected to a in case of new and improved algorithms or amend- programmable processing unit (PU), which processes the ments to a standard, while maintaining the same baseband (BB) incoming, or transmitted, signal via flexible hardware components. software [2–4]. ThePUisthe core of thesystem, sinceitcan (iii) Flexibility. The same transceiver, with the same impart multiple personalities to the transceiver by running hardware, can be used for different communication specific software, depending on the application context and technologies, simply by reconfiguring or upgrading the required functionalities. the software. The effectiveness and the advantage of a fully SW-defined radio like the one envisaged in Figure 1 with respect to an Obviously, these properties are not in general borne equivalent fully hardware device were first sketched in the to a large extent in fully HW devices, which are usually 2 International Journal of Navigation and Observation Processing unit constrained and confined to particular applications. The BB processing direct consequence of this limitation is, on one hand, the COTS front-end Rx link need to use multiple HW solutions for different technologies -signal generation A/D -modulation RF-IF stage and, on the other, the possible need of HW replacements D/A -demodulation at the advent of even modest changes in standards or -error control Tx link -··· technologies. Still, we must see how the general notion of an SDR can be beneficial to the field of global navigation satellite Figure 1: General SDR architecture. systems (GNSSs). Satellite navigation has witnessed the advent of a number of new systems and technologies: after the landmark design Table 1: Space segment characteristics of the major GNSS systems. and development of the Global Positioning System (GPS) [5– 7], a number of new independent GNSSs were designed GLONASS GPS Galileo and were or are being developed all over the world: Number of satellites 24 30 30 Russia’s GLONASS [8], Europe’s GALILEO [9–11], China’s Number of orbital planes 3 6 3 BEIDOU-2 [12–14], andsoforth.Inaddition, augmentation Number of satellites per orbit 8 4 10 systems and technologies [6, 15], like WAAS in the USA, ◦ ◦ ◦ Orbital inclination 64.8 55 56 EGNOS in Europe, and MSAS in Japan, have been intro- Semimajor axis 25,508 km 26,560 km 29,601 km duced to increase the availability and accuracy and to predict Period ≈11 h 15 m ≈11 h 58 m ≈14 h 05 m the integrity of GNSS. This multifaceted environment is a perfect context where an SDR-based navigation receiver can prove its virtues by adapting to the different available formats and/or jointly processing the host of novel as well as legacy to provide precise positioning to enabled users every time positioning signals. andeverywherein the world[26]. Specifically, in this wide Recently, new features have been studied to improve the and complex scenario, the so-called master systems, such performance of the new GNSS, based on the experience as GPS, GLONASS, Galileo, and Compass, are stand-alone of GPS. Multipersonality receivers switch from one satellite systems that estimate the user position without the support system to another and process their signals performing of any other external device. Conversely, GNSS augmentation multiconstellation navigation [16, 17], and at the horizon systems are satellite- or ground-based systems designed to there is also the integration of satellite navigation with improve performance (mainly in terms of accuracy and different positioning data coming from different, possibly precision) of the master ones, [5, 6]. local, sensors (indoor or inertial navigation) [18]. In this The overall structure of the master navigation systems, framework, an SDR-based receiver has no difficulty in such as GLONASS, GPS, Galileo, and Compass, is made performing the necessary functions of data fusion among of three main elements, referred to as segments.The first different sources of information. one, named the space segment, includes a constellation All of the above represents, in the authors’ opinion, a of navigation satellites which transmit positioning signals very well-founded motivation that led the application of the containing fundamental data about the satellite position SDR paradigm to the design of GNSS receivers ([10, 19–25]). (such as ephemerides and almanacs), clock synchronism, and To this respect, this tutorial intends to provide an overview integrity. Such data are essential for typical receiver opera- of the typical techniques used to implement GNSS SDR tions, like prediction of satellite visibility (to be performed at receivers. To this aim, more details on GNSS evolution are the start-up of the user terminal), computation of satellite provided in Section 2. The software architecture of a GNSS positions, and estimation of ionospheric and tropospheric SDR receiver is illustrated in Section 3.Section 4 focuses delays. on the receiver signal processing techniques and navigation The constellation is made up of a certain number of algorithms. Finally, conclusions and future perspectives for satellites orbiting the Earth and is typically divided into the research on SDR for GNSS are drawn in Section 5. orbital planes suitably designed to guarantee the full coverage of the Earth surface. The main parameters of the space segment of the major GNSS systems currently deployed 2. GNSS Evolution or under deployment (GPS, GLONASS, and Galileo) are In this section, we give a brief overview on GNSS systems reported and compared in Table 1 ([5, 6, 8, 11, 27]). and their evolution, proposing the basic concepts that are Besides those listed in Table 1, it is worthwhile mentioning useful for a good comprehension of the next parts of this also the future Chinese-made Compass navigation system, tutorial. The main purpose is to show a real context wherein whose complete constellation (up-to-date information) will a renovation process is required, which includes very flexible be constituted by 27 MEO (medium earth orbit) satellites solutions and a coexistence between new and old signal with a semimajor axis of 27,840 km, 3 IGSO (inclined processing techniques. geosynchronous) satellites, and 5 GEO (geostationary earth orbit) satellites [12, 14, 28]. 2.1. Basic Elements. GNSS systems encompass a wide variety The second component is the control segment,which is of different networks of devices and technologies that are able in charge of monitoring the space segment by using a set International Journal of Navigation and Observation 3 Table 2: Summary of the main parameters for GLONASS, GPS, and SBAS signals. Signal parameter of feature GLONASS GPS SBAS Multiple access technique FDMA CDMA CDMA L 1598.06÷ 1609.31 1575.42 1575.42 Carrier frequency (MHz) L 1242.94÷ 1251.69 1227.60 — C/A 511 1023 1023 Code length (chip) 6 14 P5.11·10 2.35·10 — C/A 0.511 1.023 1.023 Code rate (Mchip/s) P 5.11 10.23 — data rate 500 (coded) 50 50 (bit/s) 250 (uncoded) Navigation data data BPSK BPSK BPSK modulation Manchester NRZ NRZ of ground stations. More in detail, the tasks of the control augmentation systems are made up of known-position segment are stations, called reference stations, which receive positioning signals from satellites, use them to calculate their position, (i) to track satellites and compute navigation data (to be and compare the result with their true position. This allows uploaded to space segment), the reference stations to evaluate a set of corrections (also (ii) to monitor and estimate the drift of the satellite called delta parameters) to be broadcast to enabled user clocks with respect to the system time, receivers. In thecaseof GBAS (seeFigure 2), the corrections (iii) to monitor and adjust the satellite direction to are computed by a ground segment made up of a single maintain the right orbit planes, reference station with known position and broadcast to all receivers present within the station coverage area (generally (iv) to relocate a new satellite in case of failure of an old pointed out as the local area of the DGPS reference station). one. In the case of SBAS (as shown in Figure 3), a ground segment, The control segment carries out then the key functions made up of a set of several base stations and one master that allow the navigation signal to be broadcast everywhere control station, computes the corrections and sends them to and every time on the Earth, so providing worldwide a network of repeaters, made of one or more geostationary coverage. satellites, that cover a wide geographic area. Finally, the last component of the system is the user segment that includes all the receivers (irrespectively of their 2.2. GNSS Signals. The main characteristics of GNSS signals, specific application) which are enabled to acquire, track, broadcast by current fully operative systems, are summarized and process the positioning signals provided by a given in Table 2, which presents a comparison among GLONASS, navigation system (e.g., GPS, GLONASS, etc.). GPS, and SBAS signals ([7, 8, 11]). Notice that P and The augmentation systems are characterized by a large C/A stand for precision code (i.e., long code yielding high variety of different techniques to improve the performance accuracy) and coarse/acquisition code (i.e., short code pro- of master systems, which can be classified into the following viding low precision), respectively [5–7]. Also L and L are two subsets, [5, 6]: 1 2 the labels assigned to the carrier frequencies 1575.42 MHz (i) pseudosatellites,or pseudolites for short, and 1227.6 MHz, whereas BSPK and NRZ stand for binary (ii) differential GPS (DGPS). phase shift keying modulation and non-return-to-zero pulse Specifically, the latter can be further subdivided in shaping, respectively [7]. It is also worthwhile to remark terrestrial and satellites systems, namely, that SBAS systems (like other GNSSs, such as Galileo [11]) use convolutional codes to protect their navigation data (i) ground-based augmentation systems (GBASs), also from corruptions. Thus, receivers for such systems also referred to as terrestrial DGPS, include a Viterbi algorithm for the maximum-likelihood (ii) satellite-based augmentation system (SBAS), which error correction [29–31]. encompasses several types of systems such as Wide The first important common feature of the GPS and Area Augmentation System (WAAS), European Geo- SBAS signals is the generation process: roughly speaking, stationary Navigation Overlay System (EGNOS), they are generated by multiplying positioning data by a and Multi-functional Satellite Augmentation System spreading sequence (also called pseudorandom noise (PRN) (MSAS). sequence). The PRN code identifies the satellite that gener- Each augmentation system operates in a different way ates the signal and reduces the cochannel interference due for augmenting position accuracy. For instance, pseudolites to other navigation signals operating at the same carrier emulate GNSS satellites on the ground. Conversely, DGPS frequency ([6, 32–34]). This technique guarantees a multiple 4 International Journal of Navigation and Observation GNSS satellite Ranging Ranging signal signal Reference station GNSS Corrections receiver Figure 2: A general scheme of a DGPS. GNSS SBAS satellites satellite Ranging signals GNSS Reference receivers stations Master control Figure 3: A general scheme of an SBAS. access exploiting the same carrier frequency and bandwidth, attention from the scientific community as well. Indeed, and therefore it is referred to as code division multiple access even though the design of these systems dips the roots into (CDMA) [32–34]. GPS experience, their signal structure is definitely more Adifferent approach, based on FDMA (frequency division complex than that of all the previous systems. For instance, multiple access), is actually adopted in GLONASS, wherein referring to the Galileo open service signals in space (OS- each satellite has its own frequency slot to transmit the SIS) [11], each satellite bears three carriers (E , E ,and 5 6 ranging signal. Thus, each channel is identified by a specific E ), identified by three different radio frequencies (RFs), carrier frequency, and the bandwidth becomes a funda- whereas GPS and GLONASS use only two carriers. Then, mental parameter to reduce the interchannel interference. each Galileo carrier can contain either 3 or 4 channels (E Nevertheless, the next evolution of GLONASS system will and E have 3 channels, whereas E has 4 channels), and 6 5 add a new set of BOC- (binary offset carrier-) modulated every channel can be made up of a long spreading sequence CDMA signals to the old one, so as to include new services (generated by multiplying a primary code by a secondary and to improve user position accuracy [35]. one) modulated by data and BOC-like waves. This elaborate An extensive modernization process is also involving GPS design of Galileo signals in space (SIS) improves the accuracy with the main goal of adding two civil signals, denoted as L2C of user-position determination with respect to GPS and (at 1227.6 MHz) and L5 (at 1176.5 MHz). L5 is intended for GLONASS and provides more services for civil, commercial, aeronautical and safety-of-life (SoL) applications [5], whereas and military applications [5, 10, 11]. L2C will be available for non-SoL applications at the L2 In the same way, the Chinese satellite navigation system frequency. Compass (also denoted as Beidou-2, as it will replace the The birth of a new generation of satellite navigation sys- current Beidou, made up of only 3 operative GEO satellites tems (such as Galileo and Compass) is taking an increasing over China), will transmit 8 ranging signals to cover a large Vector corrections International Journal of Navigation and Observation 5 variety of applications from civil to military ones [5, 26, 28, hoc hardware solutions cannot be considered as viable and 36, 37]. For the sake of brevity, important projects (such as, efficient solutions for the next generation of GNSS receivers. the Japanese Quasi-Zenith Satellite System (QZSS) [5]and In this context, a more flexible approach is desired, and so Indian Regional Navigational Satellite System (IRNSS) [26]) the SDR technology represents a promising way to satisfy the have not been reported. The interested reader can refer to new receiver requirements of low cost and reconfigurability. the large bibliography available on these topics (see, e.g., [5– There exists a wide range of possibilities for an SDR 20, 26–28, 36, 37]). implementation, but all these architectures are characterized by a common core, represented by a programmable platform the receiver algorithms can be implemented and executed on. 3. Design of a GNSS SDR Receiver For the sake of clarity, we will introduce three different Before going into the details of the design of a GNSS SDR SDR configurations, focusing on the receiver architecture receiver, it is important to introduce three basic definitions, reported in Figure 4. Five main sections can be identified: the [3, 4, 38]. receiving antenna, the analog/digital FE, the digital section with a field programmable gate array (FPGA) board and a (i) Digital Radio. After the front-end stage the incoming DSP platform, and a PC board. Depending on the processing signal is convertedintothe digitaldomaintobe tasks allocated to each section (particularly, to the last three processed by a digital signal processor (DSP). The pro- blocks), a specific type of SDR receiver is determined. cessing is often done in a defined, nonreconfigurable way, using hardware and ASICs. (i) Classical (SW-Controlled) HW Architecture.Inthis (ii) Software Radio (SR). As technology progresses, the case, the FE stage gets in the RF signal, performs a digitization is at (or very near to) the antenna and downconversion to intermediate frequency (IF), and all of the processing required for the digital radio is digitalizes the IF signal. The FPGA stage converts performed by software residing in high-speed digital the incoming stream of samples down to (or near signal processing elements. to) baseband, wherein a correlation module performs the despreading operation. The tracking of carrier (iii) Software-Defined Radio (SDR)—The RF to IF is frequency and phase offsets are also performed at done prior to ADC, again followed by a digital baseband. The remaining baseband and application radio that is performed by software residing on a SW run on the DSP; in particular, the FPGA is programmable platform. Thus, the analog front- programmed to perform basic high-rate operations end remains unchanged, although all processing is (such as the downconversion and correlations), fully reconfigurable. Therefore, the SDR solution whereas the DSP performs all other baseband opera- represents a more realistic implementation of a tions (including acquisition and tracking stages) and digital radio. the relevant part of navigation SW. The PC board A basic scheme of the general SDR architecture is hosts the configuration functions only, including sketched in Figure 1. The picture shows a transceiver the user-PC interfacing (the man-machine interface (transmitter-receiver) made up of a front-end, followed (MMI)). by ADC and by the successive signal processing stage. As indicated in Section 1, this tutorial intends to provide an (ii) Hybrid Architecture. After the FE stage, the FPGA performs a considerable part of baseband operations overview of the typical techniques used to design a GNSS (including acquisition), also hosting a high-speed SDR receiver, and the rest of this section is thus structured as follows. connection to the PC board. The DSP provides the receiver initialization and configuration tasks, (i) Section 3.1 gives a general overview on common SDR whereas the PC board performs the remaining (elab- architectural designs. orate) baseband operations and the application SW. In particular, the PC board performs navigation algo- (ii) Section 3.2 provides a brief description of the opera- rithms, integrity algorithms, receiver management tion flow that characterizes a standard GNSS receiver. functions, and MMI handling. (iii) Section 3.3 illustrates the general software architec- ture of a fully software GNSS receiver. (iii) Fully SW. In this case, the FPGA hosts service fun- (iv) Finally, Section 3.4 briefly describes two possible ctions to transfer the digital samples to the PC, software implementation techniques (with both a whereas the DSP performs receiver initialization and configuration tasks only; the PC board implements single and a multi thread architecture). all baseband and navigation functions. Using this Some examples of different implementations and solu- approach, the software is actually the core of the tions are also given in [39–45]. receiver, because it accomplishes all the critical tasks, such as processing of ranging signals and navigation 3.1. Architectural Design of an SDR Receiver. Due to the need data, management and synchronization of all receiver for multipersonality receivers mentioned in Section 1 and channels and logic stages, and MMI (see also [10, 19, considering the GNSS signal details sketched in Section 2,ad 46–56]). 6 International Journal of Navigation and Observation In the present tutorial, we will focus on fully SW receivers augmentation systems (such as EGNOS and WAAS). In only. This means that all signal processing tasks will be the generic jth channel receive section, a local replica of performed in the software domain. As already mentioned the relevant PRN code is available for despreading. The in the introduction, we select this solution because fully SW acquisition stage of the jth channel provides a raw estimate architectures can be used when a high degree of flexibility is for the code delay (also named code phase) and for the carrier required. Hybrid HW/SW architectures, despite combining frequency offset (mainly due to the Doppler effect, caused by size and power efficiency with field programmability, and the relative movement of satellites and user receiver, and to thus offering a full algorithmic and architectural recon- the clock drift) [5, 6, 10, 19, 57]. This raw synchronization figurability, suffer in fact from a lower flexibility and an is obtained by a correlative process that performs a two- increased programmability complexity with respect to the dimensional search in the time and the frequency domains. fully SW architectures. For the same reason, SW-controlled When a correlation peak R crosses a given threshold λ,the HW receivers, which show even lower reconfigurability, are acquisition stage ends, otherwise a new test is run with a not considered throughout this tutorial. different time/frequency offset combination. However, it is worth noting that the architecture com- plexity increases as the number of tasks transferred from the 3.2.3. Tracking Stage. Once a signal (e.g., the PRN-i signal) is FPGA/DSP digital section to the PC board increases. The acquired, the corresponding channel of the receiver switches fully SW configuration is in fact more demanding in terms to the tracking stage. This phase includes the following key of computational realization complexity, and it approaches operations. the state of the art in SDR GNSS terminal design. These (i) Tracking of Synchronization Parameters.Inthis stage, drawbacks will be carefully considered for the architectural the code delay and the carrier frequency estimates choices discussed in the following. are refined by a delay-locked loop (DLL) and a frequency-locked loop (FLL), respectively, whereas a 3.2. Operations Flow of a GNSS Software Receiver. Hereafter, phase-locked loop (PLL) is employed to recover the we will provide a brief description of the main stages of carrier phase offset [5, 6, 10, 19]. In this way, a generic GNSS receiver, so as to give an overview of the an accurate synchronization between the incoming overall structure of these devices. To this respect, we will signal and the local PRN code replica is achieved, refer to the simplified and quite general flow graph of the which allows the despreading of the received signal SDR operations reported in Figure 5, wherein the software and the detection of GNSS raw data to be performed. emulates the multichannel architecture of a standard GNSS To check the synchronization, a code lock verification hardware receiver. is periodically run by performing a long correlation between the incoming signal and the local replica of its spreading code. If the correlation peak R is larger 3.2.1. Satellite in Visibility Prediction. At receiver start-up, the satellite in visibility prediction is performed exploiting than the threshold λ, all synchronization parameters old satellite almanacs, time, and a very rough estimate of are locked, otherwise the receiver channel goes back to the acquisition stage to perform a new estimation the user receiver position. These input data are typically either provided by the user or locally stored at the end of code phase and carrier frequency offset. of the previous usage of the terminal. This provides a list (ii) Frame Detection. This stage consists in grouping raw of probable satellites in visibility to be used for a rapid data into a unique frame and computing pseudo- acquisition and tracking (this is generally labelled as warm ranges, by exploiting the code phase provided by start). In case of a cold start (meaning that no a priori data are the DLL [10, 19]. A parity check is also performed, available), an exhaustive search during the acquisition stage is and if this control fails, further tests are generally necessary to detect all satellite in visibility, and this translates done before going back to the acquisition stage. If into longer acquisition times. If more detailed information is the parity control is passed, the user position can be available at the receiver during the start-up phase (namely, calculated by the subsequent stage. the ephemeris data, i.e, a sort of refined orbital parameters), the acquisition speed is faster than in the warm start (also (iii) Further Checks. Additional tests can be carried out called hot start). when the parity check control of the frame detection fails. For instance, these may include estimation of the RF signal power-to-noise spectral density ratio 3.2.2. Acquisition Stage (Coarse Acquisition of Synchroniza- (C/N ) and code lock verification. tion Parameters). Upon the completion of the preliminary prediction algorithm, a list of satellites in visibility is generated and the acquisition stage can be run by emulating 3.2.4. Navigation Stage. If the parity control of the frame a multichannel receivervia software. Thisiscarried out by detection succeeds, the navigation stage is run and the user assigning the PRN code of each incoming signal to a specific position can be eventually calculated [5, 6]. More in detail, channel. this stage (i) collects all the data provided by every tracked A typical approach in the GNSS software receiver design channel, (ii) aligns all received data into a coherent set, and addresses about 12 channels to process master system signals (iii) runs the navigation routines to estimate positions (at (such as GPS or Galileo), plus 2 or 3 channels for the least four satellites are necessary) [5–8, 10, 11, 15, 19]. International Journal of Navigation and Observation 7 Antenna PC board Analog/digital FPGA DSP front-end Figure 4: Hardware design of an SDR receiver. 3.3. Layer Architecture of a GNSS SDR Receiver. The signal Prediction of Input data (e.g.: almanacs, processing and navigation stages addressed above are actually visible satellites rough position) only a part of the tasks that are accomplished by a GNSS fully software receiver [52, 53]. Indeed, the software section also manages the user-machine interface and all the receiver stages and channels, to avoid conflicts that could cause data jth channel PRN-i N tests: R<λ max loss or, in the worst case, a crash of the operating system (OS).In this context,the multilayer software architecture, showninFigure 6, isproposed asa general representation Coarse acquisition R<λ that allows us to highlight the main software stages, each of synchronisms R<λ one characterized by its own specific functionalities. This scheme shows three main different layers, or functional R>λ blocks, described hereafter in the next subsections. Tests: R>λ code lock verification, 3.3.1. Operating Layer. The operating layer (OL) is devoted C/N estimation, and so forth Tracking of to processing GNSS signals, to running navigation routines, synchronisms and to solving positioning equations. Specifically, this level Synchronism emulates the multichannel architecture of a standard naviga- check tion receiver, including the navigation stage, and the driver Raw for the FE management and data buffering. More details will data be reported in the next section. Parity-check Here, let us just remark that the driver allows the proper Frame detection failed and pseudo range flow of digitized data from FE to PC. The time required computation to fill the input buffer (see Figure 6), called T ,is an important constraint, because it constitutes the temporal interval during which all the receiver processing phases Pseudoranges, must be accomplished to guarantee real-time execution, ionospheric corrections, Navigation stage avoiding bottlenecks, and consequent data loss. Specifically, ephemerides, and so forth and position T depends on the time required to collect N digital samples b s computation of GNSS signals (this operation is typically performed by Output data (e.g.: the FE) plus T ,thatis, thetimetodownload the stream position, receiver status) D of data into the input buffer: T = N q/R + T ,where R b s s D s Figure 5: Main logic stages of a GNSS SDR receiver. is the bit rate at the sampler output and q is the number of bits per sample (bit/smp). Of course, considering that T = N q/R where R denotes the FE output rate (in D s out out It is worth remarking that the signal processing of bit/s), the basic condition to avoid bottleneck and crash is each channel is performed independently of the others, R  R . (For instance, assuming a front-end with USB s out whereas the (only) navigation stage of the receiver requires 2.0 connection (R ≈ 400 Mbit/s) and a rate R = 5Mbit/s, out s to combine all the data from every channel to solve the thetimetofill abuffer B ≡ N q = 1Mbitturns outto be mathematical system of positioning equations. T = (1/5)s + (1/400)s = 0.2025 s ≈ 1/R ,since R  R .) b s s out Finally, user position and other pieces of information To comply with the T constraint, it is mandatory to execute (e.g., receiver status, satellite sky-plot, real-time C/N ,etc.) optimized and fast signal processing algorithms and to plan are stored and/or displayed, depending on the final goal of an ad hoc time schedule that assigns the right priority and a the receiver and on the MMI. specific time slot to each receiver phase. In the SDR design, Tracking stage Acquisition stage 8 International Journal of Navigation and Observation Managing layer (ML) Signal processing GNSS 1 Acquisition front-end module Satellite visibility Samples Tracking prediction module Data User requirement detection Data module N channels module Display data, position, status, ... Positioning module Input buffer Navigation Data data buffer management Driver Navigation Operating layer (OL) Figure 6: Architectural design of a GNSS software receiver. this calls for identifying the stages that are more important 3.3.3. Man-Machine Interface. The man-machine interface than others to guarantee the real-time functioning of the (MMI) is the input-and-output interface between user receiver. These stages (characterized by strict requirements) and PC. In detail, the input options allow some different shall have the highest priority. configurations for several operative contexts to be selected, including static or dynamic measures of the user position, off-line/real-time processing, and analysis of GNSS signals. 3.3.2. Managing Layer. The compliance with the planned Each choice is translated into an ad hoc setup of signal time schedule is guaranteed by the managing layer (ML). processing and navigation algorithms. The output is used to A simple example of time schedule is shown in Figure 7, report and/or to store results, such as user position, SNR which refers to a software receiver with 6 channels running ratio level, satellite health, sky-plot of the GNSS satellite on a standard PC with a single CPU. Time division of the constellation, and receiver status. Typical output devices are T interval is apparent in the picture. The four channels monitors or hard drives where log-files can be saved. in the tracking phase are assigned the highest priority to Additionally, each layer (MMI, OL, and ML) communi- meet the real-time constraint, while maintaining time, phase, cates with the others by exchanging information. In this way, and frequency synchronization with the incoming signals. we can modify the ML timetable, exchange configuration Thus, each pseudorange can be computed, yielding the GNSS data, and results between the MMI and the OL, configure raw data used to solve the positioning system. Soon after, signal processing algorithms, and so on. two more channels try to acquire further GNSS signals, in order to improve the position accuracy and to guarantee the 3.4. Single versus Multithread Design. Finally, we emphasize continuity of position computation in case any of the in- that a software receiver can be implemented following tracking satellites is lost. Afterwards, the driver downloads two different approaches: using either a single-thread or a new samples from the FE. Finally, the navigation stage multithread design. In the first case, a single program carries and other receiver functions, such as results displaying and out all tasks of the receiver, following a prefixed order. The almanacs and ephemerides storing, are run. Note that the result is a rigid structure which sequentially runs in loop all rate to carry out such stages is typically much lower than the stages (tracking, acquisition, etc.). that of the signal processing stage. Let us also remark that a Instead, in the multithread approach, each receiver stage safety gap g is scheduled for each time slot in order to avoid is assigned to a specific thread with a given priority level, and bottlenecks in critical situations due to possible overloads all threads are dynamically run in a concurrent manner. of the CPU. As mentioned, the ML activates every receiver phase following the step listed in the planned timetable, thus respecting the scheduling. Furthermore, it allows the change 4. Signal Processing Stage of channel stage from acquisition to tracking and vice versa and synchronizes raw data epochs obtained from different This section illustrates the general receiver architecture and channels during navigation to solve the positioning system. the typical algorithms used to process GNSS signals [5, 6, 10, Man-machine interface (MMI) International Journal of Navigation and Observation 9 Time for T + g navigation and (k − 1)T Time for signal processing stage kT b b other functions ··· Channel 1: tracking tr Channel 3: tracking t tr Channel 4: tracking t tr Channel 5: tracking t tr Channel 2: acquisition acq acq Channel 6: acquisition Driver: filling buffer d Navigation and positioning nav Other functions g = safety gap t = tracking stage time t = navigation stage time s tr nav t = acquisition stage time acq t = time for other functions Figure 7: An example of a time schedule of a GNSS software receiver. GNSS antenna Analog/digital front-end AGC AGC controller Mixer AGC IF filter G LNA RF filter A ADC Output RF/IF down Local buffer converter oscillator Sampling clock Programmable from PC IF stage RF stage USB port Standard PC Figure 8: A simplified scheme of a GNSS front-end. 19, 21, 33, 41, 46–55, 57–67]. Referring to the architectural downconverter acting as the interface between the two (more schemes reported in Figures 4 and 6, let us start describing details are contained in [2, 4, 10, 46, 68, 69]). the FE design with its main features, followed by acquisition and tracking stages and related algorithms. Then, the most 4.1.1. Antenna. This first component is designed to generate common navigation algorithms to compute user position a voltage from the incoming radio waves (e.g., L = will be briefly presented. 1575.42 MHz). Thus, its frequency response must be similar To provide a clear and comprehensive description of a to a band-pass filter centered in L . In case of a dual GNSS software receiver, the single frequency approach is frequency antenna (e.g., L and L = 1227.6MHz), the 1 2 proposed, considering the GPS L signal as the reference response is typically characterized by two narrow bands, channel. Nevertheless, let us remark that a similar analysis centered on the two desired frequency ranges. In this way, can be easily translated to a generic GNSS signal [41, 49, the interferences due to the presence of signals between the 51, 53–55, 60, 63, 65–67], by considering its specific char- two carriers are reduced. Other two parameters, typically acteristics (e.g., bandwidth, subcarrier modulation, carrier used to characterize an antenna, are the polarization and frequency, PRN codes, and data frame). the pattern gain. Specifically, the polarization indicates the electric field orientation of the received signal. GNSS signals 4.1. Front-End Stage. A simplified scheme of the FE archi- are right-hand circularly polarized (RHCP). Hence, GNSS tecture is sketched in Figure 8. The FE is clearly divided into antennas are designed to receive incoming RHCP signals. two basic blocks, the RF stage and the IF stage, with the RF/IF We can effectively suppress left-hand circular polarization 10 International Journal of Navigation and Observation in the case of strong interfering signals adjacent to the L 0dB carrier [10, 19]. However, this solution yields an overall noise figure which is typically 2 ÷ 3 dB higher than in the previous configuration, due to the insertion loss I of the filter that reduces the overall gain G of the first stage (inclusive of RF −20 dB 30 filter plus LNA). Narrow-band filters are obviously desirable to guarantee −40 dB high frequency selectivity. Nevertheless, due to technical con- straints, integrated narrow-band filters are scarcely available. Actual values for the filter quality factor Q = f /B ,where f c W c is the central frequency and B the bandwidth, turn out to be Q ≤ 100. Thus, assuming that f = L ,the filter bandwidth c 1 results in B ≥ 20 MHz, whereas the GPS C/A-band is only 2.046 MHz wide. So, the received signal, centered around RF frequency f , must be downconverted to a lower IF, to allow Figure 9: The antenna pattern of NovAtel GPS-533 at GPS L [74]. 1 an easier spectrum filtering and guarantee a low output rate from the FE to the PC. (LHCP) rays (e.g., due to the reflection of RHCP signals), 4.1.3. RF/IF Stage (Downconverter and IF Filter). The RF/IF thus reducing the multipath effect. Note that multipath downconverter consists of an oscillator generating a local attenuation is mandatory, since it is the first cause of errors in reference wave, at the frequency f , that is multiplied LO the user position computation of GNSS receivers [6, 57, 70– with the incoming signal (e.g., GPS L signal with f = 1 c 73]. 1575.42 MHz) by a mixer. Thus, assuming that the input The pattern gain refers to the directivity of an antenna. signal is s(t) = d(t)cos(ω t), with ω = 2πf ,the mixer c c c An example of a pattern gain designed as a function of satel- output is lite visibility and multipath rejection is shown in Figure 9.A s(t) cos(ω t) LO quasiuniform gain toward all GNSS satellites above a specific elevation angle is a desirable feature. Generally, this elevation (2) d(t) mask is chosen around 5 ÷ 10 degrees above the horizon. [( ) ] [( ) ] = {cos ω − ω t +cos ω + ω t }, c LO c LO Therefore, the antenna pattern is characterized by a low back lobe (Figure 9), in order to minimize the multipath effect due where ω = 2πf . Neglecting some mixer parameters LO LO to the ground reflection and interferences which are present such as conversion loss, intermodulation, and isolation, (2) at low elevation [10, 19]. produces a low-frequency (ω −ω ) component and a high- c LO Commercial antennas are divided into two categories: frequency one (ω + ω ). The difference frequency is the c LO active and passive antennas. In particular, the latter class of desired IF, whereas the other is cut off by the subsequent antennas are passive elements directly connected to the FE IF filter (Figure 8), typically a narrow band filter (e.g., with chain, whereas active antennas are featured by an integrated bandwidth 2 MHz) centered on the IF. This represents a low-noise amplifier (LNA), with a very low noise figure single direct downconversion stage from RF to IF. In the (typical values are around 2 ÷ 3dB). practice, it is very common to design receiver FEs with two or more downconversion stages, which are more effective in rejecting image frequencies. More details on this aspect can be 4.1.2. RF Stage (LNA and RF Filter). Referring to Figure 8, found in [4–6, 68, 75]. the RF stage is made up of a cascade of an LNA followed by an RF filter. The well-known Friis formula provides the overall noisefigure of theFE[6]: 4.1.4. Automatic Gain Control and Analog-to-Digital Conver- sion. The IF section may also contain an automatic control F − 1 F − 1 F − 1 2 3 N gain (AGC) circuit to adjust the signal level at the input of F = F + + +··· + , (1) T 1 G G G G G ··· G 1 1 2 1 2 N−1 the ADC. Indeed, this second amplifier is controlled by a variable gain piloted by a feedback signal resulting from the where F and G (i = 1,... , N) are thenoise figureand the i i ADC processing (thus, named automatic gain control). The gain of each component of the FE, respectively. If the first gain G can be expressed as a function of the related AGC component is an LNA with a high gain G , F is dominated 1 T control voltage V [5]: AGC by the noise figure of the first element present in the FE βV chain, so that F is about F (2÷ 3 dB). Possible impairments AGC T 1 G = α · e , (3) to this approach are the strong spectral components due to interferers in the amplifier bandwidth, which can saturate the where α is the AGC gain coefficient and β is the AGC control LNA and thus generate spurious frequencies. This drawback voltage coefficient (see Figure 8). can be circumvented by placing the RF filter before the LNA, Roughly speaking, based upon monitoring the digitized in order to attenuate the out-of-band spectral components, data stream at the ADC output, the AGC increases or thus avoiding saturation. This approach is particularly suited decreases the signal level at the ADC input, aiming at International Journal of Navigation and Observation 11 y Table 4: An example of f computation. Minimum Maximum f (MHz) f (MHz) s s 1 32.84 ∞ 2 16.42 28.84 −M 3 10.94 14.42 −a 4 8.21 9.61 5 6.57 7.21 6 5.47 5.77 −b 7 4.69 4.81 8 4.11 4.12 Figure 10: Uniform 2 bit quantization. is implemented as a feedback loop that uses the ADC output samples to form metrics used to adjust the AGC gain (3). 2.5 Another function of the AGC unit is to avoid the ADC saturation, when RF interferences occur. In this case, the N = 2 AGC rapidly reduces its gain to maintain an optimal RMS level (at the ADC input) that can minimize the degradation. N = 3 Therefore, when remarkable variations of the amplifier gain 1.5 occur with respect to the nominal case, the AGC can also N = 4 become a useful tool to detect and assess interferences. More N = 5 details on this topic are given in [5, 78]. N = 6 N = 8 Finally, it is worth noting that, if a 1-bit ADC is used, N = 7 no AGC is required because the ADC is just a limiter. This simplify the front-end architecture, but this solution results 0.5 extremely vulnerable to continuous wave (CW) interferences [5]. In case of 2 (or more)-bit ADC, the AGC is necessary to N = 16 0 reduce the degradation due to the quantization. In the FE chain, the AGC is followed by an analog- Ratio of maximum threshold to 1-σ noise level to-digital converter (ADC) that digitizes the input signal, outputting a stream of bits that are grouped in the signal Figure 11: Postcorrelation C/N degradation using an N-level quantization [77]. buffer to be sent to a PC. The main figures that characterize an ADC are the sampling frequency and the number of quantization bits. Specifically, the sampling frequency f can Table 3: Minimum degradation due to quantization. be calculated using the band-pass sampling theorem [79]: 1bit 2bits 3 bits 4bits k · f ≥ 2 f + B , s IF W Optimal k — 0.986 1.731 2.291 (4) (k − 1) · f ≤ 2 f − B . s IF W Min. degradation (dB) 1.96 0.537 0.159 0.014 This system of simultaneous inequalities relates f to the IF frequency f and the band-pass bandwidth B ,as a function IF W exploiting the entire ADC dynamics, and ensuring thus the of the integer factor k, which can assume values in the range use of all quantization levels without incurring in saturation. (see [79]): For GNSS receivers, in which the useful signal power is below that of the thermal noise floor, the AGC is driven f + (B /2) IF W 1 ≤ k ≤ (5) by the ambient noise rather than the signal power. In such context, let us assume the absence of any interference. Considering the common case of uniform quantization [76], where x denotes the integer part of the argument x.Let we can show that the degradation due to the digitization us give an example of f computation: supposing to use a procedure is a function of the ratio of the maximum local oscillator with frequency f = 1560 MHz, then f = LO IF quantization threshold M (e.g., Figure 10)tothe noise f − f = 15.42MHz. Therange of thesamplingfrequency q L1 LO standard deviation, σ (e.g., see Figure 11 [26, 77]). as a function according to (4)is listed inTable 4 (B = Some optimal values of k = M /σ that minimize the 2 MHz). A pictorial representation of the band-pass theorem q q degradationare giveninTable 3 [26, 78]. Thus, the AGC is displayed in Figure 12,with k = 3and f = 12 MHz. regulates the Gaussian noise standard deviation at the input Generally speaking, the selection of f is done in of the ADC, to ensure an optimal ratio. Therefore, this unit accordance with the desired number of quantization bits, Effective signal power loss (dB) 12 International Journal of Navigation and Observation Amplitude IF spectrum ··· ··· ··· ··· Figure 12: An example of the band-pass sampling theorem (k = 3and f = 12 MHz). −1 yielding an FE output rate which, to avoid bottleneck, must 10 be lower than the maximum connection rate. For instance, considering the USB 2.0 maximum rate R ≈ 480 Mbit/s and referring to the results reported in Table 4, a good choice −2 is k = 6, that points to f = 5.5 MHz, and a quantization of 2 bit/smp, and the output rate results R ≈ 11 Mbit/s <R . out M The quantization operation is a nonlinear transforma- tion which assigns a number (typically represented by a −3 set of digits {0, 1}), belonging to an alphabet A,toareal 10 number, according to a specific quantization curve [76]. The quantization process degrades the input SNR, because the hard approximation of a soft input sample adds a random −4 error, called quantization noise. For thesakeof clarity,avery simple communication system (with infinite bandwidth, which includes just one GPS satellite, an AWGN channel, and no interferers) is simulated to compare the bit error rate −5 (BER) obtained by an analog receiver to that of 1- and 2- bit quantization receivers. The results, reported in Figure 13, show that the loss due to uniform quantization is roughly 20 22 24 26 28 2dBfor the1-bit receiver andthatitdecreases to 0.5dB for C/N (dB ) 0 Hz the 2-bit receiver (as remarked in [6, 10, 19]). Analog It is worth noting that this result complies with the more 1-bit quantization general analysis proposed by Hegarty in [77]and shown 2-bit quantization in Figure 11. The picture reports signal losses for different uniform quantizer levels N as functions of maximum input Figure 13: Analog versus quantized receiver BER. threshold levels of the quantizer. Thus, (i) with N = 2(1bit), thelossis about 1.96dB, The input rate, R , is imposed by the ADC (e.g., with a (ii) with N = 4 (2 bits), the minimum loss (optimum sampling frequency of 5.5 MHz and a 2-bit quantizer, R = threshold) is about 0.54 dB. i 11 Mbit/s), and the consequent output rate, R ,must be Hence, for standard applications, an SDR receiver is typi- larger than R to avoid buffer filling. If this occurs, a data loss cally designed assuming 1-bit quantization, while the 2-bit event may happen. quantization is recommended for better performance. More The maximum output rate depends on the communica- details on this topic can be found in [2, 6, 76]. tion between the FE and the PC. In this kind of applications, the USB (universal serial bus) has become the standard 4.1.5. Signal Buffer. The last block in the FE chain is the connection method. Indeed, the USB 2.0 maximum rate is signal buffer. Here the bits output by the ADC are grouped about 480 Mbit/s, that is more than enough to avoid the into frames, to be completed with the necessary bits that signal buffer filling and the subsequent data loss. satisfy the USB protocol (including a packet identifier (PID) At the PC side, the communication is managed by the and a cyclic redundancy check (CRC)). This message is then driver (see also Section 3.3.1) that receives data and packs transmitted tothe PC,as shown in Figure 8. them in arrays which are processed by the signal processing The signal buffer is detailed in Figure 14. The picture stage, as illustrated in the next sections. shows a data buffer (or equivalently, a stack of memory), The hardware stage ends here, so the next stages are placed right after the ADC, that is used to temporarily hold fully developed in software, using high-level languages such data while they are being moved from the front-end to the as C/C++, MATLAB, SciLab. It is worth emphasizing that PC. First in first out (FIFO) is the rule used for the data real-time software receivers require accurate design of the transfer. signal processing stages to cope with real-time constraints −44.58 MHz −32.58 MHz −15.42 MHz −8.58 MHz −3.42 MHz 3.42 MHz 8.58 MHz BER 15.42 MHz 32.58 MHz 44.58 MHz International Journal of Navigation and Observation 13 Front-end PC To signal From ADC processing ··· Driver R R i o stage Signal buffer Figure 14: Signal buffer details. [24, 54, 60]. More in detail, particularly critical are the operation. Therefore, it is mandatory to accurately estimate acquisition engine, the local code generation, and the any frequency deviation from the nominal IF value. tracking loop architecture. The next subsection will provide The main sources of frequency deviations are the more details on this issue. Doppler shift, caused by the relative movement between GNSS satellites and user receiver, and possible frequency drifts, due to low-precision FE clocks. The latter is typically 4.2. Software-Based Signal Processing Stages. The perfect a small residual component that can be easily tracked using synchronization between the incoming positioning signal an FLL or a 2nd-order PLL during the tracking stage. (in a CDMA format) and the local reference waves is a Conversely, in the worst case, for example, in the case of the necessary requirement to correctly process GNSS signals. The GPS receiver onboard an aircraft [6], the unknown Doppler despreading operation can be effectively performed only by shift can range from −10 kHz to 10 kHz, thus producing ensuring the correct alignment of the received signal with the significant carrier frequency deviations. Therefore, this large local replica of the PRN code (for time synchronization) and interval cannot be covered by the limited dynamic of an with the local carrier (for frequency synchronization). This FLL/PLL module. Hence, it needs to be firstly recovered is achieved in two steps [5, 6, 32, 33]. performing an exhaustive search in the frequency domain [5, 6, 19]. The residual offset will be compensated by an (a) First, the acquisition stage gets a preliminary coarse FLL/PLL in the tracking stage. estimation of code timing and carrier frequency Let us assume acquiring a GPS L signal. In this case, the offset. 1 Doppler effect shifts the nominal carrier frequency ( f = L1 (b) Then, the tracking stage exploits this rough result to 1575.42 MHz) by f with f ∈ [−10, 10] kHz. This means D D refine the synchronization and track the signal. that the RF becomes f = f + f and, consequently, IF 0 L1 D becomes f = f + f . Thus, the BB downconverter (that 1 IF D 4.2.1. Acquisition Stage. The acquisition stage is the first is IF-synchronized) translates the input signal from f to step to get a preliminary coarse synchronization, in both near-BB, and the carrier frequency offset that remains to be frequency and time domains, that will be used in the sub- assessed (called carrier Doppler shift)is Δ f = f − f = f , 1 IF D sequent tracking stage. CDMA signal detection is generally with Δ f ∈ [−10, 10] kHz. Hence, the acquisition stage must accomplished carrying out a two-dimensional search in provide a rough estimation of the carrier frequency offset Δ f time and frequency domain. Specifically, the time search together with the code timing to process the incoming signal. is needed to synchronize the received PRN code with its The estimated figures during this phase are then used in the local replica and consequently to despread the input signal. tracking stage to lock and track the signal. This step provides the necessary code gain to improve the The simplest algorithm used to acquire a spread- signal SNR (for navigation data processing) by estimating spectrum signal (such as a GNSS signal) is the simple serial the so-called code timing (or, equivalently, the code phase). search [32, 33, 80–82]. This technique performs an exhaustive Nevertheless, this time-alignment is not enough to correctly search (also defined brute search) in the frequency and time process a spreading signal, as motivated in the following. domain till the incoming signal is detected. This happens A despreading operation is basically a long correlation when a prefixed threshold λ is crossed, otherwise a new performed in the baseband domain between the received frequency offset and/or a new code phase is tested. signal and a local replica of its PN code. Thus, remembering A basic scheme for the simple serial algorithm is given in that the FE provides a digital signal at IF, the baseband Figure 15, where the main modules are (i) the BB downcon- downconverter becomes the first module to be run before verter, that performs IF-to-BB conversion, (ii) the correlation the correlator. The BB signal is obtained by multiplying the module that despreads the input signal, (iii) a squarer that received IF signal with a couple of local waves that are IF- removes the carrier phase dependence, (iv) a decision unit synchronized. So, the result is a BB-replica of the input signal that checks the signal detection using the threshold λ,and plus some high-frequency components which are filtered (v) a logic unit that shifts the local code and/or changes the out. Of course, the consequence of any frequency misalign- tentative frequency in case of no acquisition. ment produces a frequency offset in the output signal, which Forthe sake of a betterunderstanding of this algorithm, could cause a catastrophic power loss during despreading let us provide more details on the acquisition of a GPS 14 International Journal of Navigation and Observation Baseband Correlation module Squarer downconverter ∑ Yes M 2 k |·| 1/M (·) i=1 To verification stage No Logic Code shifter unit Local PRN code f = f + f c IF i Digital carrier Frequency selector ( f , with i = 0, 1, 2,...) oscillator (DCO) i Figure 15: Simple serial search architectural scheme. L signal. As illustrated in Section 4.1 (neglecting the Assuming that no data transition occurs during the MT 1 s quantization and the USB link), the incoming signal at the samples and that f T  1/(2πM), then r (δ)can be written Δ s k end of the FE chain becomes as j[2π( f + f )kT +ϕ] √ IF D s s = s(k · T ) = s (k · T ) · e ,(6) −j(2πf kT +ϕ ) k s b s Δ s Δ r (δ) ≈ j 2 · e · d · γ (δ), (11) k k k where f is the IF, T = 1/f is the sampling time in IF s s where d = d(kT )and k s compliance with the band-pass sampling theorem [79], f is the Doppler shift, ϕ is the carrier phase, and s (t) = M+k−1 i(t)+ j · q(t)is the L signal in the BB domain. More in γ (δ) c · c (12) k n n+δ detail, i(t) = p(t) · d(t) is the in-phase signal composed of n=k the P code, p(t), and the GPS data sequence, d(t), whereas is the normalized correlation function of the C/A PRN q(t) = 2 · c(t) · d(t) is the in-quadrature signal, composed sequence [6, 10, 32]. of the C/A code, c(t), with the correspondent GPS data The two previous assumptions are satisfied if the follow- sequence (see also [7]). For the sake of simplicity, some ing conditions are verified: additional contributes (such as, thermal noise, multipath, and interferences) have been neglected in (6). (a) the correlation period T MT is much lower I s Looking at the acquisition scheme (Figure 15), the first than the data duration T to reduce the event of data operation is the IF-to-BB downconversion that outputs the transition; in-phase I and quadrature Q components as follows: k k (b) the condition f T  1/(2πM)is satisfied when Δ s I = s · 2 · cos 2π · f + f · k · T + θ , k k IF i s the tentative Doppler frequency f is a good approx- (7) imation of the actual Doppler shift ( f ≈ f )in Q = s · 2 · sin 2π · f + f · k · T + θ , i D k k IF i s accordance with correlation period length. where f is a tentative estimate of the Doppler shift and θ is the initial phase. After some manipulations, (7) becomes The power loss (PL) due to an eventual residual frequency in the correlation module can be evaluated as −j(2πf kT +ϕ ) Δ s Δ w = I + j · Q = i + j · q e + h , (8) k k k k k k sin π · f · T where i = i(kT ), q = q(kT ), f = f − f , ϕ = ϕ − θ, k s k s Δ D i Δ  Δ I (13) PL = −10 log   (dB). and h represents the high-frequency components (at 2 f ) π · f · T k IF Δ I produced by the downconversion operation. Now, despreading is done by correlating w with the Going through the acquisition chain shown in Figure 15, C/A PRN sequence c (GPS Pcodeisencrypted formilitary the correlation module is followed by a squarer, which deletes any carrier phase contribute. The output of the squarer application). Thus, we get is then compared with a threshold λ, to detect whether a M+k−1 rough alignment with the local replica of the C/A code is r (δ) = w · c . (9) k n n+δ M achieved or not. If λ is crossed, a coarse synchronization n=k occurs and a verification stage is typically run to check the Since the despreading process with the local C/A code cancels signal detection, otherwise a new acquisition is tried. The the contributes of P code and the averaging operation filters latter case can be caused either by a large code misalignment the high-frequency components, (9) becomes (larger than the chip time) or by a catastrophic degradation M+k−1 of the signal power due to a bad estimation of the Doppler −jϕ −j2πf nT Δ s r (δ) ≈ j q · c · e . (10) shift. Thus, the next acquisition is done by either shifting the k n n+δ n=k local code phase or updating the tentative frequency. International Journal of Navigation and Observation 15 The threshold λ should be selected to maximize the advance (early branch) and in late (late branch) with respect detection probability and to minimize the acquisition time to the prompt code phase. In this way, three different code and the false alarm probability. In such sense, optimal values phases can be tested in a parallel way. (A single-processor can be also derived by simulations. We can also use an PC can simulate the parallel architecture of a GNSS receiver adaptive threshold instead of a fixed one [83–85]. In this case, by sequentially performing a large part of the processing.) we need a coarse estimation of the SNR to select a specific Furthermore, the complex wave exp{ j2πf kT} is used to value of λ. compensate for the Doppler shift. This technique is generally In the discussion above, we intentionally neglected multi- termed hybrid search (see also [32, 86]). path distortions, interferences, and thermal noise, effects that The key points of the software implementation are listed must be considered in the design of a practical acquisition below. algorithm. These effects induce a degradation of the C/N (a) The local code is digitized using 1 bit and then stored ratio, which increases the occurrence of false alarm and into a preloaded look-up table. Three pointers are missed detection events. In the case of the GPS L signal, used to indicate early (E), prompt (P), and late (L) the typical range for C/N is 35 ÷ 55 dB [57]. Hence, 0 HZ code phases. This technique allows any code shift to when C/N < 35 dB , the detection of positioning signals 0 HZ be translated into an equivalent pointer shift. becomes critical. More details on the detection of CDMA signals can be also found in [6, 32, 33, 80–86]. (b) The correlation is carried out on words of 32 (or 64) bits. More specifically, the multiplication is imple- In the following, we show a sample implementation of mented by combining XOR and NOT operations as the acquisition stage in a GPS/SBAS software receiver (more in (15), whereas the sum is equal to the difference examples can be found in [10, 19, 46, 48, 51–53]). The N − N between the number of bits that are 1 relevant architectural scheme is reported in Figure 16.This 1 0 (represented by N )and thenumberofbits that are 0 block diagram (like that depicted in Figure 15)shows an (indicated by N ). The final result is a reduction of FE using 1-bit digitized data followed by a digital IF-to-BB 0 the input sampling rate from R to R = R /32 in downconverter. s o s From (6), thesinglesample can be written as case of 32-bit processor (or R /64 in case of 64-bit processor). To further minimize the processing time, the operation N − N (done on words of 32 or 64 1 0 s [k] = u[s + n ], IF k k (14) bits) can be computed during the initialization of the software receiver and permanently stored in a look- up table. where n is the noise sample (generally modeled as a (c) The correlation output is multiplied by the complex Gaussian process) and u[·]is the step function (u[x] = 1if wave exp{ j2πf kT},where T = 32/R and f denotes x ≥ 0and u[x] = 0if x< 0). Thus, the downconversion (7) i s i the tested frequency sample, and the result is grouped can be implemented as into an array of W samples to be averaged. This step allows the input noise to be attenuated, also reducing I = s [k] ⊕ u cos 2πf · k · T , k IF IF s the processing rate. (15) Note that, at the output of the first correlators of Q = s [k] ⊕ u sin 2πf · k · T , k IF IF s the correlation module (before the multiplication with exp{ j2πf kT}), the maximum power loss due to unresolved Doppler shift can be evaluated using (13). For instance, where ⊕ is the XOR operator, θ = 0, and x is the focusing on a GPS signal, the worst Doppler shift is | f | = NOT operation on the logical variable x. This formulation 10 kHz [6]. The period of correlation is T = T = N /R , minimizes the processing of the PC, since every Boolean I bit s where N = 32 or 64 bits, and the sampling frequency R bit s operation on 32- or 64-bit (according to the PC architecture) can be extracted from Table 4.Using R = 5.5 MHz, the loss words is done within exactly one clock tick. Therefore, 32 or is 64 samples (32/64 bits) grouped in 32- or 64-bit words can be downconverted during two clock ticks (due to the XOR and 0.05 dB if N = 32, bit NOT operations). Additionally, instead of computing every PL ≈ (16) sample of u[cos(2πf · k · T )], it is preferable to implement IF s 0.19 dB if N = 64. bit a look-up table containing one period of u[cos(2πf · k · IF T )] that is also representative of the sine component. This The PL is low, and it can be neglected in the case of a static approach does efficiently reduce the computation of local receiver, for which | f | ≤ 5kHz [6]. waves, saving both time and memory. Concerning Step (c), the value of W should be chosen Going back to Figure 16, the next module (called large enough to minimize the noise contribute. Nevertheless, correlation module) splits the incoming signal on three par- we should also consider the frequency step used to estimate allel branches, labeled early, prompt,and late.Each branch the Doppler shift, because large values of W can cause correlates the input signal with a shifted local replica of the strong degradations of C/N , due to the presence of a received spreading code. More specifically, the correlation is possible residual frequency offset. Again, (13)can be used done with three different shifts of the local code that are in to evaluate its impact in terms of PL (e.g., let us assume 16 International Journal of Navigation and Observation Correlation module Digital downconverter ∑ ∑ W M 1/W (·) 1/M (·) |·| k=1 i=1 I channel I-Q channel ∑ ∑ Analog/digital W M Acquisition 1/W (·) 1/M (·) |·| DCO k=1 i=1 front-end logic ∑ ∑ ∑ W M Q channel 1/W (·) 1/M (·) |·| k=1 i=1 j2πf kT Tentative frequency: f EP L i NCO Tentative code phase: τ Code shifter Figure 16: Acquisition stage channel of a software receiver. N = 32, W = 100 andafrequencystepof 1kHz,the In thediscretetime domain, thecircular cross- bit residual is f ≤ 500 Hz and PL ≤ 1.24 dB, while with a correlation definition of two functions, x and y ,is Δ n n frequency step of 500 Hz, the residual is f ≤ 250 Hz and M+k−1 PL ≤ 0.30 dB). 1 r (δ) = x · y . (17) k n n+δ The next modules square the incoming samples, to n=k eliminate the dependence on carrier phase, and average over M samples to filter spurious peaks due to residual noise. If the discrete Fourier transform (DFT) F {·} is performed on The outcome is then compared to a threshold to detect r (δ), and neglecting the normalization factor, we get the signal. The acquisition is achieved when the local code R ( ) = F {r (δ)} k k replica is roughly aligned with the incoming spreading code and the frequency estimation well approximates the Doppler M−1 shift. −j2π δ/M = r (δ)e An example of the acquisition of a real GPS signal is δ=0 described below using a GPS/SBAS software receiver [52, 53], ⎡ ⎤ M−1 M+k−1 that makes use of the approach illustrated above. A static −j2π δ/M ⎣ ⎦ = x · y e n n+δ scenario is assumed so that the Doppler shift belongs to δ=0 n=k the interval [−5, 5] kHz. The GPS PRN-09 signal is detected (18) ⎡ ⎤ and the result is plotted in Figure 17. The 3D plot contains M+k−1 M−1 −j2π (n+δ)/M +j2π n/M ⎣ ⎦ the acquisition function as a function of the code timing = x y e e n n+δ (sampled at f = 5.5MHz) and of the frequency offset. The n=k δ=0 frequency step is 1 kHz and the code phase step is 1 chip. M+k−1 The maximum peak is achieved at a code shift of about +j2π n/M = Y ( ) · x e 2500/f (max code phase offset ≤ 1/2 chip) and roughly at n=k f = 1000 Hz (max frequency residual ≤ 500 Hz). This ( ) ( ) rough synchronization can be refined during the tracking = Y · X , stage, as shown in the next section. where Y ( ) = F {y }, X ( )isthe complex conjugate To sum up, the algorithm described above is a simple of X( ) = F {x },and x is a real function. Thus, the n n and basic approach to effectively acquire GNSS signals. correlation becomes Nevertheless, it results to be a very time-consuming tech- nique, because it carries out exhaustive searches in time M−1 −1 +j2π δ/M and frequency domain. Therefore, faster algorithms based on ( ) ( ) ( ) (19) r δ = F {R }= R · e , k k k Fourier transform are typically used [5, 10, 19, 34, 87]. Like =0 the conventional serial search methods, these acquisition −1 where F {·} is the inverse Fourier transform operation. algorithms are based on correlating the incoming signal with To apply this result in the acquisition of a GPS signal, it is a local replica of the received spreading code. However, this sufficient to slightly modify (9) and to include the frequency is performed in the frequency domain instead of in the estimation. Thus, (9) becomes time domain. This implies a parallel computation of the correlation function that sensibly reduces the acquisition M+k−1 j2πf (n+δ)T i s time, since it eliminates the code phase search, as shown in r (δ) = w · e · c , (20) k n n+δ the remaining part of this section. n=k Code shift (t/Ts) International Journal of Navigation and Observation 17 Abuffer of 1 ms of signal has been selected because it ×10 corresponds to one complete period of the GPS C/A code, so it is a good trade-off between the acquisition performance Acquisition of and computational complexity. (A signal buffer length less a GPS signal (PRN09) ×10 than 1 ms involves a correlation with an incomplete code, whereas a length higher than 1 ms increases the computa- 3 tional complexity.) 4 To give an idea of the difference between the DFT acquisition algorithm and the serial search in terms of acqui- sition time, it is sufficient to compare the total number of possible acquisition tentatives. This number corresponds to the total number of combinations code phase c and Doppler ≃ 2500 1000 frequency f . Let us assume a frequency step of 1 kHz (so, ≃ 1000 Hz to compensate a Doppler from −10kHzto10kHz,21 frequency bins are needed) and 1023 different code phases: −2000 (i) in case of serial search the number of combinations is 6000 −4000 1023 · 21 = 21483, Figure 17: Time/frequency acquisition of a GPS signal. (ii) in case of DFT, all code phases are computed in parallel, so the number of combinations is equal to the number of frequency bins, that is 21. where w is the near-baseband incoming complex signal, c n n is the local replica of the received spreading sequence, and This basic observation shows that the serial search can be exp{ j2πf (n + δ)T } is a complex wave that attempts the i s very longer with respect to the DFT acquisition technique. Doppler compensation with the tentative frequency f .Thus, The reduction of the acquisition time is paid in terms from (17), we obtain of computational complexity. Indeed, the complexity of the parallel code phase search is clearly higher than the (i) y = c · exp{ j2πf (n + δ)T }, n+δ n+δ i s conventional serial search acquisition, because, for each (ii) x = w , n n acquisition tentative, it requires the computation of one DFT −1 and one DFT (the DFT of the local code can be done and, consequently, we can apply (18)and (19) to parallelize once off-line) and, consequently, more sum and product the computation of the correlation function. operations than a single correlation in the time domain. It is The DFT-based acquisition scheme is shown in Figure 18. thus apparent that the computational efficiency of the DFT This picture contains a block diagram of the parallel code acquisition algorithm depends on the implementation of the phase search algorithm [10, 19] and the algorithm is briefly DFT transformations. Thus, efficient algorithms, called FFTs summarized as follows: (fast Fourier transforms), are commonly used to calculate (a) a chunk with length 1 ms of the incoming digital sig- the DFT and its inverse, [88]. Indeed, the DFT complexity nal s is downconverted near-baseband (the output is 2 is of order O(M ), whereas the FFT complexity is O(M · w ), log (M)) [88]. Thus, the gain in terms of reduction of the (b) this sequence is Fourier-transformed and complex- computational complexity increases as M increases. conjugated (the output is X ( )), The most common FFT is the Cooley-Tukey algorithm, but some different variants of this algorithm exist. All these (c) the PRN code c (offline generated) is multiplied by n+δ methods are based on the same approach that subdivides the complex wave exp{ j2πf (n + δ)T }, i s the initial Fourier transform in a sequence of length M of (d) the result is a complex input sequence, to be Fourier- Fourier transforms which have a smaller and smaller dimen- transformed (the output is Y ( )), sion. Therefore, they require input buffers that are integer (e) the two sequences are multiplied to compute the multiples of 2 : M = 2 ,where p is an integer. More details correlation in the frequency domain (R ( ) = X ( )· k on the implementation of FFT algorithms are given in [88]. Y ( )), To conclude, we cite the results reported by [10]. Referring to a (MATLAB implemented) software receiver (f) the correlation R ( ) is transformed in the time runonaPentium 4 2.8GHz,itisshown that the serial domain (the output is r (δ)), search is about 87 times slower than the FFT acquisition (g) the maximum of the correlation amplitude, algorithm, but, of course, this last technique bears a higher max[|r (δ)| ], is compared to the threshold λ, computational complexity. (h) if the threshold is crossed, the acquisition ends and the code phase is identified by the index δ and the 4.2.2. Tracking Stage. Though mandatory for the detec- Doppler estimation is f , tion and locking of incoming GNSS signals, the rough (i) otherwise, a new f is selected and the algorithm synchronization achieved by the acquisition stage is not restarts from Step (a). sufficient to directly track the incoming signals and to allow Frequency (Hz) Correlation peak 18 International Journal of Navigation and Observation Digital downconverter I channel Correlation I-Q Fourier chan. ∗ Inverse s X (ℓ) n R (ℓ) r (δ) Analog/digital k k transform + 2 Acquisition max(·) DCO Fourier |·| front-end complex logic transform conjugate Y(ℓ) Q channel Fourier transform Tentative frequency: f Complex wave i generator @ f PRN code generator Figure 18: FFT-based acquisition algorithm. Correlation module Digital downconverter I channel Early I-Q Navigation channel ∑ ∑ Analog/digital ∑ M M 1 2 DCO 1/M () 1/M () processing unit 1 2 i=1 i=1 front-end (NPU) Q channel Costas Late FLL PLL DLL υ^ ^ ^ θ j(2π^ A iT+θ ) k k k discriminator E P L e(k) NCO 1/W () Code shifter i=1 Figure 19: Tracking stage channel of a software receiver. data processing during the navigation stage. Therefore, the received code delay and, finally, to lock the received PRN tracking stage, which follows the acquisition, must perform code. Prompt samples feed frequency and phase loops to the two important tasks listed below [5, 6, 19, 32, 33]. finely estimate carrier frequency and phase and to track their changes. This latter stream is also used to detect the GNSS (a) Refine the synchronization provided by the acquisi- data frames and to decode them for the next navigation stage. tion stage, up to a fine lock of the received signal. The algorithms used to recover and track the synchro- nisms of a GNSS signal are listed below: (b) Maintain the locking of the signal by tracking changes of its code delay and carrier frequency/phase. It is (i) a DLL refines the code phase estimation, thus then possible to exploit the entire code gain (by code allowing the received PRN sequence to be locked and despreading) to detect and decode the navigation tracked; data. (ii) a FLL is used to lock and track the carrier frequency; An example of the tracking stage implementation in a (iii) a PLL is used to lock and track the carrier phase. real-time software receiver is given in Figure 19 (see also [10, 19]). More in detail, the first part of this architecture There exists a large bibliography for these techniques and replicates the same design of the acquisition stage. The their theoretical aspects (e.g., [5, 6, 19, 29, 30, 32–34, 89– chain, made up of the BB downconverter followed by the 92]). This section proposes a practical approach, focusing on correlation module, is composed of a threefold stream of implementation aspects. The interested reader is referred to samples, named “early”(E = I + j · Q ), “prompt” the bibliography for the theoretical details. i E,i E,i (P = I + j · Q ), and “late”(L = I + j · Q ). Early All the aforementioned units have a similar structure i P,i P,i i L,i L,i and late samples are used in a timing loop to estimate the which is displayed in Figure 20.Specifically,an initial error International Journal of Navigation and Observation 19 ED Loop filter NCO Figure 20: General scheme of a D/F/PLL. 0 10 20 30 40 50 60 70 80 90 Time (s) Early |·| Figure 22: C/A code tracking (GPS PRN-30). + e(k) 1/W () i=1 Late |·| 0.16 0.14 Figure 21: DLL discriminator. 0.12 0.1 0.08 0.06 discriminator (or error detector (ED)) evaluates the offset 0.04 between the input parameter, to be assessed (e.g., code phase, 0.02 carrier frequency, etc.), and its estimation. Then, this error feeds the internal loop filter which updates the estimation of −0.02 the input figure, and, finally, the evaluated parameter is used −0.04 by an NCO (numerically controlled oscillator) or a look-up −0.06 table to generate a local wave synchronized with the received −0.08 input reference. −0.1 It is important to remark that the error, detected by −0.12 discriminator, must belong to a specific locking range −0.14 (which typically depends on the kind of discriminator) to allow the lock of the desired input parameter. This −2 −1 012 is why the acquisition stage should be designed with a Code phase error (chip) C/N synchronization accuracy compatible with the locking range 53.33 dB 45 dB Hz Hz of DLL and FLL discriminators (i.e., the maximum error 50 dB 42.5dB Hz Hz that can be recovered). For instance, in case of the DLL, 47.5dB 40 dB Hz Hz the code misalignment cannot be larger than one chip, or, equivalently, the expected code phase offset should belong to Figure 23: DLL S-curves at different C/N ratios. the locking range [−T ,+T ], where T is the chip time [29]. c c c Regarding the DLL, a very common noncoherent dis- criminator is the early-minus-late power [6, 10, 19, 58] reported below: An example of tracking of a real GPS signal is given in 2 2 e = |E | − |L | , (21) Figure 22. The picture shows the PRN-30 code tracked by the i i i software receiver illustrated in [53] (using the tracking stage where the code phase offset, e ,is the difference of the square scheme reported in Figure 19). modulus of early (E )and late (L ) samples. A block scheme To evaluate the DLL locking range, it is sufficient to i i of the DLL discriminator is given in Figure 21. This approach run an open-loop simulation that evaluates the discriminator has the advantage to guarantee a timing error that is not response at each alignment between the received PRN sensitive to the data and the carrier phase but just depends sequence and its local replica. The outcome is the S-curve on the alignment between the received PRN code and its local displayed in Figure 23 ([6, 29]). The picture shows six S- replica. Then, the assessed timing error feeds the first-order curves at different C/N ratios, and, as expected, the locking recursive filter τ = τ − γ · e to update the code phase range is about one chip in advance and late. This means that, i+1 i i estimation, τ .The γ-factor is called step-size,and its value if |e | >T , the incoming PRN code cannot be locked. i i c should be a trade-off between the rapid convergence of the The design of a first-order FLL is very similar to that algorithm and its accuracy. Finally, the estimated code delay of a DLL, but it exploits the rough frequency estimation is exploited by a code shifter to synchronize the local code output by the acquisition stage to track the carrier frequency. phase with that of the incoming sequence. Thus, the discriminator (frequency error detector (FED)) used S-curve Normalized code delay (chips) 20 International Journal of Navigation and Observation −4 −8 −12 0 10 20 30 40 50 60 70 80 90 0 10 20 30 40 50 60 70 80 90 Time (s) Time (s) Figure 26: Carrier phase tracking (GPS PRN-30). Figure 24: Carrier frequency tracking (GPS PRN-30). 0.16 −3 × 10 0.12 0.08 0.04 −0.04 −0.08 −0.12 −200 −150 −100 −50 0 50 100 150 200 −4 Phase error (deg.) −8 Figure 27: PLL S-curve (C/N = 45 dB ). 0 HZ −12 −16 The error e feeds the second-order recursive filter reported −20 i below: −1500 −1000 −500 0 500 1000 1500 Frequency error μ = μ + γ · 1+ ρ · e − γ · e , i i−1 i i−1 (24) Figure 25: FLL S-curve (C/N = 45 dB ). 0 HZ θ = θ + μ , i+1 i i where both the parameters ρ and γ are related to the loop noise bandwidth and to the damping factor (more details are to detect the frequency offset in the simple case of a BPSK in [29]). The output is the estimation of the carrier phase, θ . modulation (as GPS signals) is i The use of a second-order filter has the advantage to e = P · P , (22) support the tracking of the carrier frequency jointly with the i i−1 phase. where P is a prompt sample. Of course, the frequency offset An example of phase tracking is reported in Figure 26. feeds the recursive filter ν = ν +γ·e to update the assessed The picture shows the phase error jitters around 0 degrees i+1 i i carrier frequency, ν (γ is the step-size). Then, the NCO, fed with peaks of ±6 degrees. The S-curve is given in Figure 27. by ν , generates a wave synchronized with the received carrier When the tracking steady state is achieved, and after the frequency. Figure 24 displays an example of tracking for the received data are processed by the Viterbi algorithm for error PRN-30 carrier frequency. correction (this is the case of Galileo and SBAS data that As shown in the DLL, the FED S-curve can be obtained are encoded by convolutional codes [11, 15]), the message evaluating e at different frequency alignments [29]. An frame is detected and pseudoranges are computed. Then, example is given in Figure 25 that shows the capability to lock navigation algorithms are run to calculate user positions. frequency offsets larger than 500 Hz, which is in compliance with maximum frequency error output by the discussed 4.3. Navigation Stage. The tracking stage is followed by the acquisition scheme. navigation stage, which is in charge of running ad hoc Analogous approaches can be considered for the design algorithms to calculate the user position. This implies the of a PLL. The error detector (or phase error detector (PED)) evaluation of four unknown parameters, namely, the three in case of a BPSK signal is components of the receiver position r and the clock bias b, by solving a system of (at least) four equations (one for e = P · sgn P . i i (23) every tracked satellite). The generic equation relevant to the S-Curve Carrier frequency (Hz) S-Curve Carrier phase error (degrees) International Journal of Navigation and Observation 21 ith satellite (i = 1, 2,... , N ,with N ≥ 4) can be expressed as s s [5, 70] PRN-i Path i ρ =r − r  + c · b + ε , (25) i i u i PRN-j Path j where ρ ≈ c(T −T ) is the pseudorange or, in other words, i rx tx the coarse distance between the ith satellite and the receiver PRN-n (the reason for the use of the symbol ≈ will be clarified Path n in the following), (T − T )isthe difference between the rx tx signal reception and the transmission time, r is the satellite PRN-m Path m position, b is the clock bias, and ε is an additive error, whose origin shall be detailed hereafter. The system (25) can be solved by linearizing the equa- T T tx rx tions with a Taylor expansion around an initial approximate estimate of the user position and by using an iterative tech- Figure 28: Relative pseudoranges. nique. In general, the number of equations can be larger than four (as, usually, more than four satellites can be locked), and therefore a least-square solution of the corrections to the of view, assuming a free-space transmission, the pseudorange initial estimates shall be calculated as illustrated in [5, 19]. is simply the product of the speed of light by the difference Following this approach, the required inputs to compute between the reception time T and the transmission time rx the user position are the following: T (which is derived from the received message). In the case tx of an SDR receiver, there is no absolute time reference to evaluate the reception time, and the sampling frequency is (a) the ephemerides are sets of parameters broadcast by the satellite to all the enabled receivers, to let the only reference. Thus, the approach to be pursued consists them compute the satellite position according to the in evaluating, through a time measurement, a “relative pseudorange” which is the distance between two reference Keplerian laws [5, 6]; points. Let us consider the case of a GPS signal. At the (b) the pseudorange, indicated in (25)as ρ ,is the raw receiver side, we are interested in identifying the beginning measure of the distance from a satellite to the receiver of the frame of the message, assumed to be the reference (whereas the true satellite-receiver distance is instead instant and tagged as “subframe 1.” Apart from the satellite denoted as the range), which is affected by many error clock bias, such beginning point is actually transmitted by sources ε , such as satellite clock instability, receiver all the satellites simultaneously, since there exists a control noise, multipath, atmospheric delays, and ephemeris segment that keeps the satellite transmitters aligned. Anyway, mismodelling, that severely degrade its precision [5, the subframe 1 is received at different instants for each 6, 70]; satellite, due to the different distance between the transmitter and the receiver. Thus, by measuring the time difference (c) the pseudorange corrections (typically broadcast by the between a couple of received signals, the receiver can obtain satellite itself or by an additional augmented system, the distance difference from the two relevant satellites. A such as SBAS and LAAS) are used to compensate the pictorial representation of this approach is given in Figure 28, measurement errors, yielding finer pseudoranges to where Δ , Δ ,and Δ are the relative pseudoranges of PRN- j n m calculate a more precise user position [5, 6]. j,PRN-n,and PRN-m with respect to PRN-i.Notethat the maximum time distance between any couple of GPS Ephemerides and pseudorange corrections, together with satellites is less than 19 ms [19], as follows from constellation other essential data (e.g., transmission time, almanacs, and orbital parameters. This is much shorter than a GPS satellite health, etc.), are included in the satellite navigation subframe period, equal to 30 s [6, 7, 19]. Hence, setting a time message broadcast by each satellite. These messages are window of 20 ms at the receiver allows those simultaneously structured in subframes of binary data, each one made transmitted subframes 1 to be discriminated. of a preamble, a subframe ID, a data field, and a parity A relative pseudorange is computed by measuring the check field (for more details, see the GPS interface control time to detect the reference point (e.g., the beginning of the document,(ICD) [7]). This kind of arrangement allows subframe 1) from the input digitized data. To this aim, an a simple search and a reliable detection of the received SDR receiver must consider the following three contributes navigation subframe, by using very standard algorithms. [19]: Details on the implementation of these algorithms and on the data decoding are strictly related to the design of the (a) the initial code phase, desired navigation message and, therefore, are reported in (b) the beginning of the first navigation data, the related ICDs (see [7]for GPS, [11] for Galileo, [15]for (c) the beginning of the reference subframe 1. SBAS, and [8] for GLONASS). The approach used to compute pseudoranges turns out Thus, still adhering to the example of a GPS receiver, to be quite elaborate. Actually, from a purely theoretical point an ideal scheme of the proposed technique is sketched in 22 International Journal of Navigation and Observation ρ = (P − τ )+ N · P + M · T τ i c i i c d ··· PRN-i ··· Beginning of subframe ··· P − τ N P MT c i i c d ρ = (P − τ )+ N · P + M · T j c j j c d ··· PRN-j Beginning of subframe ··· ··· N P MT P − τ j c c j d n ρ = (P − τ )+ N · P +(M − 1) · T n c n n c d ··· PRN-n ··· ··· Beginning of subframe (M − 1)T N P n c d P − τ c n ρ = (P − τ )+ N · P +(M − 1) · T m c m m c d ··· PRN-m ··· ··· Beginning of subframe (M +1)T P − τ N P c m m c PRN-code acquisition Figure 29: Computation of relative pseudoranges. Figure 29,where P is the duration (period) of a PRN-code Coming back to the navigation stage, the overall scheme and T is the data duration. The reference point is marked is giveninFigure 30, which depicts one channel for every by a step. Thus, referring to the PRN-i ranging signal, at the tracked satellite. Each raw pseudorange is preliminarily end of the acquisition, the tracking stage finely synchronizes refined by compensating both the iono- and the tropodelays, the local code with the received one and, at the same time, the satellite clock bias, the relativistic effects, and the group provides the initial code phase τ .After N code periods, delay. Then, each corrected pseudorange is ready to be used i i the beginning of the first data field is obtained, and, finally, to compute the user position by solving the N -equation after M data intervals, the beginning of subframe 1 is found system. An example of a position error plot measured by (checking some control parameters). The same method is a GPS/EGNOS software receiver is shown in Figure 31 used to calculate the time to get the reference point of all [53]. other locked signals, and the differences with respect to the Further details can be found in the huge bibliography PRN-i yield the relative pseudoranges. This approach can addressing navigation algorithms from the subframe detec- also produce negative pseudoranges, so that any constant tion to the user position computation (e.g., [5, 6, 10, 19]). selected from 67 to 86 ms (which is the range of the time Position accuracy is traditionally measured by multiply- delay of a GPS satellite to the receiver) is further added, in ing the standard deviation of the pseudorange error σ by order to make all pseudoranges positive. a factor that is a function of the satellite geometry PDOP The initial pseudorange can be computed by using the (position dilution of precision), yielding theRMS valueof the raw synchronization provided by the acquisition stage which position error ε as [5, 6, 70] RMS measures the code phase to the sample resolution [10, 19]. This means that, for example, when f = 5.5MHz, the ε = σ · PDOP. (26) RMS ρ accuracy is about c/ f ≈ 54.5 m, whereas the accuracy becomes 7.5 m when f = 40 MHz. Of course, it is desirable High PDOPs indicate poor satellite geometry that implies to improve the initial code phase accuracy, because it has low position accuracy. The PDOP evaluation algorithm is adirect effect on the final position accuracy. This result well illustrated in [5, 6, 70]. is achieved during the tracking stage, because the initial rough estimation of the code phase is refined by the DLL unit. Indeed, the outputs of the correlation module (early 5. Conclusions and late) are used by the DLL to accurately determine the code phase residual of the incoming signal and to better In the evolution process of communication systems, the high synchronize the local replica. Consequently, the refined configurability and flexibility, together with the simplicity to estimation of the code phase can be also used to improve update/upgrade, are determining the success of the emerging the pseudorange accuracy, and the remaining measurement SDR technology. An evident example is given by the evo- noise can be significantly reduced by averaging (e.g., see lution of the GNSS scenario, in which new satellite systems Figure 21). and innovative techniquesshould coexist and cooperate with International Journal of Navigation and Observation 23 Satellite delay corrections GD SV transmission + + Δt time estimation r Δb Clock Relativistic i effects correction Δt sv ΔT i Tropospheric correction ΔI i Ionospheric correction From tracking stage Pseudorange i + computation Position, time, and Satellite velocity Satellite position ephemeris computation User position, computation velocity, and time Figure 30: Navigation stage. Position error plot (GPS + EGNOS) −2 −4 −6 −8 −10 −10 −8 −6 −4 −2 0 2 4 6 8 10 East (m) Figure 31: An example of a horizontal plot. the preexisting systems. In this context, traditional hardware (iii) software architecture (multilayer structure with the receivers are characterized by clear limitations in terms of managing, MMI, and operating layers), configurability, flexibility, and capacity to be upgraded. The (iv) front-end architecture and sampling frequency selec- SDR paradigm, supported by the increasing computational tion, power of new processors, seems to be the right answer to (v) signal processing and navigation algorithms. these limitations. The final result is a simple methodology to design and This tutorial gives an overlook to the SDR world through implement a low-cost GNSS SDR receiver. the window opened by the GNSS evolution. To this aim, the overall architecture of a basic software GNSS receiver is Future directions of research will focus on designing high-performance GNSS SDR receivers for specific applica- illustrated in all its aspects. The proposed analysis illustrates the following key issues of the SDR technology: tions, such as monitoring of positioning signals in a local area, safety of life applications, or aircraft navigation. The (i) implementation solutions (SW-controlled HW, reason lies in the huge versatility of the SDR paradigm, which hybrid HW/SW, and fully SW architectures), makes this technology very attractive for a large field of (ii) operation flow of a GNSS receiver, commercial applications. North (m) Number of points 24 International Journal of Navigation and Observation List of Acronyms SIS: Signals in space SNR: Signal-to-noise ratio ADC: Analog-to-digital converter SoL: Safety of life AGC: Automatic gain control SR: Software radio AltBOC: Alternative BOC SV: Space vehicle ASIC: Application-specific integrated circuit SW: Software AWGN: Additive white Gaussian noise TDMA: Time division multiple access BB: Baseband USB: Universal serial bus BER: Bit error rate WAAS: Wide area augmentation system. BOC: Binary offset carrier BM: Base model Acknowledgment CBOC: Composite BOC CDMA: Code division multiple access The authors wish to acknowledge the activity of the Network CEP: Circular error probability of Excellence in Wireless COMmunications NEWCOM++ COTS: Commodity off-the-shelf of the European Commission (contract no. 216715) that CNR: Code-to-noise ratio motivated this work. CPU: Central processing unit D/F/PLL: Delay/frequency/Phase-locked loop References DGPS: Differential GPS DSP: Digital signal processor [1] E. Buracchini, “Software radio concept,” IEEE Communica- E.g.: Exempli gratia tions Magazine, vol. 38, no. 9, pp. 138–143, 2000. EGNOS: European Geostationary Navigation Overlay [2] J.Mitola III and Z.Zvonar, Software Radio Technologies: System Selected Readings, IEEE Press, New York, NY, USA, 2001. FDMA: Frequency division multiple access [3] J. Mitola, “Software radio architecture,” IEEE Communications FPGA: Field programmable gate array Magazine, vol. 33, no. 5, pp. 26–38, 1995. [4] W. Tuttlebee, Software Defined Radio: Enabling Technologies, FE: Front-end John Wiley & Sons, New York, NY, USA, 2002. F/PED: Frequency/phase error detector [5] E. D. Kaplan and C. J. Hegarty, Understanding GPS: Principles FFT: Fast Fourier transform and Applications, Artech House, London, UK, 2nd edition, GBAS: Ground-based augmentation system GEO: Geostationary earth orbit [6] B.W.Parkinson and J. J. Spilker, Global Positioning Systems: GIS: Geographic information system Theory and Applications, American Institute of Aeronautics GLONASS: Global Navigation Satellite System and Astronautics, Washington, DC, USA, 1996. GNSS: Global Navigation Satellite Systems [7] NAVSTAR GPS Space Segment/Navigation User Interface, GPS: Global Positioning System ICD-GPS-200 Rev. C-005R1, ARINC Research Corporation, GSO: Geosynchronous orbit satellite El Segundo, Calif, USA, 2003. [8] “Global Navigation Satellite System Interface Control Docu- HW: Hardware ment,” GLONASS ICD v. 5.0, Moscow, Russia, 2002. ICD: Interface control document [9] G. Gibbons, “Galileo’s new era—step by step the program IF: Intermediate frequency advances,” Inside GNSS, vol. 3, no. 7, 2008. LAAS: Local Area Augmentation System [10] K. Borre, D. Akos, N. Bertelsen, P. Rinder, and S. Jensen, A LNA: Low-noise amplifier Software- Defined GPS and Galileo Receiver: A Single-Frequency L/RHCP: Left/right hand circularly polarized Approach,Birkhaau ¨ ser, Boston, Mass, USA, 2007. MBOC: Multiplexed BOC [11] “Galileo open service, Signal in space interface control doc- MEO: Medium Earth Orbit ument,” OSSIS-ICD d. 1, European Space Agency/European ML: Managing layer GNSS Supervisory Authority, Brussels, Belgium, 2008. MMI: Man-machine interface [12] G. X. Gao, A. Chen, S. Lo, D. De Lorenzo, and P. Enge, “GNSS MSAS: Multi-Functional Satellite Augmentation over China: the compass MEO satellite codes,” Inside GNSS, vol. 2, no. 5, 2007. System [13] F. Boon,F. Wilms,J.-M. Sleewaegen, and W.De Wilde, “More N-GSO: Nongeosynchronous orbit satellite compass points tracking China’s MEO satellites on a hardware NRZ: Non-return-to-zero receiver,” Inside GNSS, vol. 2, no. 5, 2007. OL: Operating layer [14] T. Grelier, J. Dantepal, A. de Latour, A. Ghion, and L. PC: Personal computer Ries, “Compass MEO satellite signals: initial observations and PDOP: Position dilution of precision analysis,” Inside GNSS, vol. 2, no. 4, 2007. PL: Power loss [15] “Minimum operational performance standards for Global PRN: Pseudorandom noise Positioning System/Wide Area Augmentation System airborne RF: Radio frequency equipment,” RTCA/DO 229C, RTCA Inc., Washington, DC, RMS: Root mean square USA, 2001. [16] O. Julien, P. Alves, M. E. Cannon, and G. Lachapelle, “Triple SA: Selective availability frequency GPS/GALILEO for ambiguity resolution,” European SBAS: Satellite-based augmentation system Journal of Navigation, vol. 2, no. 2, pp. 51–57, 2004. SDR: Software-defined radio International Journal of Navigation and Observation 25 [17] A. Smimsky, “Three’s the charm. Triple-frequency combina- [37] G. W. Hein, J.-A. Avila-Rodriguez, S. Wallner et al., “MBOC: tions in future GNSS,” Inside GNSS, vol. 1, no. 5, 2006. the new optimized spreading modulation recommended for GALILEO L1 OS and GPS L1C,” in Proceedings of the IEEE [18] M. S. Grewal, L.R.Weill, and A.P. Andrews, Global Positioning Position Location and Navigation Symposium, pp. 883–892, San Systems, Inertial Navigation, and Integration,John Wiley & Diego, Calif, USA, 2006. Sons, New York, NY, USA, 2001. [38] E. M. Wolmarans and A. J. Truter, “Software radio: implemen- [19] J. B.-Y. Tsui, Fundamentals of GPS Receivers: A Software tation aspects,” in Proceedings of the EUROCOMM,Munich, Approach, John Wiley & Sons, New York, NY, USA, 2005. Germany, 2000. [20] G. Hein, J.-H. Won, and T. Pany, “GNSS software defined [39] B. Sauriol and R. Landry, “FPGA-based architecture for high radio: real receiver or just a tool for experts?” Inside GNSS, throughput, flexible and compact real-time GNSS software vol. 1, no. 5, 2006. defined receiver,” in Proceedings of the Institute of Navigation [21] F. Macchi and M. G. Petovello, “Development of a one channel National Technical Meeting (NTM ’07), pp. 708–717, San Galileo L1 software receiver and testing using real data,” in Diego, Calif, USA, January 2007. Proceedings of the 20th International Technical Meeting of the [40] G. Bacci, M. Calamia, L. Foglia, F. Longo, and P. Mulassano, Satellite Division of the Institute of Navigation (ION GNSS ’07), “SWAN: software systems for navigation applications—an vol. 2, pp. 2256–2269, Fort Worth, Tex, USA, 2007. Italian project,” in Proceedings of the GNSS Vulnerabilities and [22] S. A. Nik and M. Petovello, “Multichannel dual frequency Solutions Conference,Baska, ˇ Croatia, 2008. GLONASS software receiver,” in Proceedings of the 21st Interna- [41] S. Peng and B. M. Ledvina, “A real-time software receiver tional Technical Meeting of the Satellite Division of the Institute for the GLONASS L1 signal,” in Proceedings of the 21st of Navigation (ION GNSS ’08), pp. 614–624, September 2008. International Technical Meeting of the Satellite Division of the [23] M. G. Petovello, C. O’Driscoll, G. Lachapelle, D. Borio, and Institute of Navigation (ION GNSS ’08), vol. 2, pp. 1152–1163, H. Murtaza, “Architecture and benefits of an advanced GNSS software receiver,” Positioning, vol. 1, no. 1, pp. 66–78, 2009. [42] J. Raasakka, H. Hurskainen, T. Paakki, and J. Nurmi, “Mod- [24] M. Fantino, A. Molino, and M. Nicola, “N-Gene: a complete eling multi-core software GNSS receiver with real time SW GPS and Galileo software suite for precise navigation,” in receiver,” in Proceedings of the 22nd International Technical Proceedings of the International Technical Meeting of the Meeting of the Satellite Division of the Institute of Navigation Satellite Division of the Institute of Navigation (ITM ’10),vol. (ION GNSS ’09), vol. 1, pp. 468–473, Savannah, Ga, USA, 2, pp. 1245–1251, San Diego, Calif, USA, 2010. [25] D. F. M. Cristaldi, D. Margaria, and L. Lo Presti, “A multi- [43] D. A. Godsoe,M. E.Kaye, and R.B.Langley, “A framework frequency low-cost architecture for GNSS software receivers,” for real-time GNSS software receiver research,” in Proceedings in Proceedings of the International Technical Meeting of the of the International Technical Meeting of the Satellite Division of Satellite Division of the Institute of Navigation (ITM ’10),vol. the Institute of Navigation (ITM ’10), vol. 2, pp. 892–905, San 2, pp. 849–857, San Diego, Calif, USA, 2010. Diego, Calif, USA, 2010. [26] C. J. Hegarty and E. Chatre, “Evolution of the global ˇ ´ [44] A. Knezevic, C. O’Driscoll, and G. Lachapelle, “Co-processor navigation satellite system (GNSS),” Proceedings of the IEEE, aiding for real-time software GNSS receivers,” in Proceedings vol. 96, no. 12, pp. 1902–1917, 2008. of the International Technical Meeting of the Satellite Division of [27] J. Bor ¨ jesson, GLONASS contributions to space geodesy,Ph.D. the Institute of Navigation (ITM ’10), vol. 2, pp. 837–848, San Diego, Calif, USA, 2010. dissertation, Chalmers University of Technology, Got ¨ eborg, Sweden, 2000. [45] S. Jeon, H. So, H. Noa, T. Lee, and C. Kee, “Development of realtime software GPS receiver using Windows Visual C++ [28] Y.-S. Huang and M.-L. Tsai, “The impact of compass/Beidou-2 and USB RF front-end,” in Proceedings of the International on future GNSS: a perspective from Asia,” in Proceedings of the Technical Meeting of the Institute of Navigation,San Diego, 21st International Technical Meeting of the Satellite Division of Calif, USA, 2010. the Institute of Navigation (ION GNSS ’08), vol. 2, pp. 675–686, Savannah, Ga, USA, 2008. [46] D. M. Akos, A software radio approach to GNSS receiver design, Ph.D. dissertation, Ohio University, Athens, Ohio, USA, 1997. [29] U. Mengali and A. N. D’Andrea, Synchronization Techniques [47] B. M. Ledvina, S. P. Powell, P. M. Kintner, and M. L. Psiaki, “A for Digital Receivers, Plenum Press, New York, NY, USA, 1997. 12-channel real-time GPS L1 software receiver,” in Proceedings [30] J. G. Proakis, Digital Communications, McGraw-Hill, New of theInstitute of Navigation National Technical Meeting (ION York, NY, USA, 4th edition, 2001. NTM ’03), Anaheim, Calif, USA, 2003. [31] G. D. Forney Jr., “The viterbi algorithm,” Proceedings of the [48] C. Ma, G. Lachapelle, and M. E. Cannon, “Implementation IEEE, vol. 61, no. 3, pp. 268–278, 1973. of a software GPS receiver,” in Proceedings of the 17th [32] M. K. Simon, J. K. Omura, R. A. Scholtz, and B. K. Levitt, International Technical Meeting of the Satellite Division of the Spread Spectrum Communications Handbook, McGraw-Hill, Institute of Navigation (ION GNSS ’04), pp. 956–970, Long New York, NY, USA, 2002. Beach, Calif, USA, 2004. [33] J. K. Holmes, Spread-Spectrum Systems for GNSS and Wireless [49] B. M. Ledvina, M. L. Psiaki, D. J.Sheinfeld,A.P. Cerruti,S. Communications, Artech House, London, UK, 2007. P. Powell, and P. M. Kintner, “A real-time GPS civilian L1/L2 [34] R. L. Pickholtz, D. L. Schilling, and L. B. Milstein, “Theory of software receiver,” in Proceedings of the 17th International spreadspectrum communications—a tutorial,” IEEE Transac- Technical Meeting of the Satellite Division of the Institute of tions on Communications, vol. 30, no. 5, pp. 855–884, 1982. Navigation (ION GNSS ’04), pp. 986–1005, Long Beach, Calif, [35] G. Gibbons, “GLONASS—a new look for the 21st century,” USA, September 2004. Inside GNSS, vol. 3, no. 4, 1982. [50] P. Rinder and N. Bertelsen, Design of a single frequency GPS [36] News Update, “China adds details to Compass (Beidou II) software receiver, M.S. thesis, Aalborg University, Aalborg, signal plans,” Inside GNSS, vol. 3, no. 6, 2008. Denmark, 2004. 26 International Journal of Navigation and Observation [51] G. MacGougan, P.-L. Normark, and C. Stahlberg, “Atti- [64] C. O’Driscoll, M. G. Petovello, and G. Lachapelle, “Software tude determination using a real-time GPS/Galileo software receiver strategies for the acquisition and re-acquisition of receiver,” in Proceedings of the ESA Workshop on Satellite weak GPS signals,” in Proceedings of the National Technical Navigation User Equipment Technologies (NAVITEC ’04), Meeting, vol. 2, pp. 843–854, San Diego, Calif, USA, 2008. Noordwijk, The Netherlands, 2004. [65] M. G. Petovello and G. Lachapelle, “Centimeter-level posi- [52] F. Principe, C.Terzi,M.Luise,and M. Casucci, “SOFT-REC: a tioning using an efficient new baseband mixing and despread- lowcost GPS receiver following the software radio paradigm,” ing method for software GNSS receivers,” Eurasip Journal on in Proceedings of the ESA Workshop on Satellite Navigation Advances in Signal Processing, vol. 2008, Article ID 194276, 12 User Equipment Technologies (NAVITEC ’04), Noordwijk, The pages, 2008. Netherlands, 2004. [66] K. Muthuraman, “Theoretical bounds and reliable C/N0 [53] G. Bacci, F. Principe, M.Luise,C.Terzi, and M. Casucci, estimation for modernized GPS signals,” in Proceedings of the “SOFTREC: a GPS real-time software receiver with EGNOS 22nd International Technical Meeting of the Satellite Division augmentation,” in Proceedings of the ESA Workshop on EGNOS of the Institute of Navigation (ION GNSS ’09),vol.6,pp. Performance and Applications, Gdynia, Poland, 2005. 3730–3740, Savannah, Ga, USA, 2009. [54] P.-L.Normark and C.Stahlb ˚ erg, “Hybrid GPS/Galileo real [67] K. Muthuraman, D. Borio, R. Klukas, and G. Lachapelle, time software receiver,” in Proceedings of the 18th International “Adaptive data/pilot carrier phase tracking for modernized Technical Meeting of the Satellite Division of The Institute of GNSS signals,” in Proceedings of the 22nd International Navigation (ION GNSS ’05), vol. 2005, pp. 1906–1913, Long Technical Meeting of the Satellite Division of the Institute of Beach, Calif, USA, 2005. Navigation (ION GNSS ’10), San Diego, Calif, USA, 2010. [55] P. Crosta, G.A.Vecchione,and L. Marradi, “A real-time [68] P. B. Kenington, RF and Baseband Techniques for Software GALILEO/GPS L1 software receiver,” in Proceedings of the ESA Defined Radio, Artech House, London, UK, 2005. Workshop on Satellite Navigation User Equipment Technologies [69] D. M. Akos and J. B. Y. Tsui, “Design and implementation of a (NAVITEC ’06), Noordwijk, The Netherlands, 2006. direct digitization GPS receiver front end,” IEEE Transactions [56] A. Di Cintio,O.Montenbruck,L.L. Presti, R. Lesca, and E. on Microwave Theory and Techniques, vol. 44, no. 12, pp. Guyader, “The GREHDA project: Galileo software receiver for 2334–2339, 1996. high dynamic applications,” in Proceedings of the 20th Interna- [70] P. Misra, B. P. Burke, and M. M. Pratt, “GPS performance in tional Technical Meeting of the Satellite Division of The Institute navigation,” Proceedings of the IEEE, vol. 87, no. 1, pp. 65–85, of Navigation (ION GNSS ’07), vol. 2, pp. 2376–2387, 2007. [57] M. S. Braasch and A. J. Van Dierendonck, “GPS receiver [71] J. M. Kelly and M. S. Braasch, “Validation of theoretical GPS architectures and measurements,” Proceedings of the IEEE,vol. multipath bias characteristics,” in Proceedings of the IEEE 87, no. 1, pp. 48–64, 1999. Aerospace Conference, pp. 31317–31325, Big Sky, Mont, USA, [58] P. Fenton,B.Falkenberg, T. Ford, K.Ng, and A.J.V. March 2001. Dierendonck, “Novatel’s GPS receiver the high performance [72] M. S. Braasch, “Performance comparison of multipath miti- OEM sensor of the future,” in Proceedings of the International gating receiver architectures,” in Proceedings of the IEEE Technical Meeting of the Satellite Division of the Institute of Aerospace Conference, pp. 31309–31315, Big Sky, Mont, USA, Navigation (ION GNSS ’91), Albuquerque, NM, USA, 1991. March 2001. [59] L. Dong, C. Ma, and G. Lachapelle, “Implementation and [73] J. M. Kelly, M. S. Braasch, and M. F. DiBenedetto, “Characteri- verification of a software-based if GPS signal simulator,” in zation of the effects of high multipath phase rates in GPS,” Proceedings of the Institute of Navigation National Meeting GPS Solutions, vol. 7, no. 1, 2003. (NTM ’04), pp. 378–389, San Diego, Calif, USA, January 2004. [74] Novatel website, L1/L2 Antennas, http://www.novatel.com/ [60] B. M. Ledvina, M. L. Psiaki, T.E.Humphreys,S. P. Powell, Documents/Papers/L1L2antennas.pdf. and P. M. Kintner, “A real-time software receiver for the GPS [75] F. Piazza and Q. Huang, “A 1.57-GHz RF front-end for triple and Galileo L1 signals,” in Proceedings of the 19th International conversion GPS receiver,” IEEE Journal of Solid-State Circuits, Technical Meeting of the Satellite Division of the Institute of vol. 33, no. 2, pp. 202–209, 1998. Navigation (ION GNSS ’06), pp. 2321–2333, Fort Worth, Tex, [76] A. Gersho, “Principles of quantization,” IEEE Transactions on USA, September 2006. Circuits and Systems, vol. 25, no. 7, pp. 427–436, 1978. [61] E. Vinande and D. Akos, “Improvements to “a software- [77] C. J. Hegarty, “Analytical model for GNSS receiver implemen- defined GPS and Galileo receiver: Single-frequency tation losses,” in Proceedings of the 22nd International Technical approach”,” in Proceedings of the 20th International Technical Meeting of the Satellite Division of the Institute of Navigation Meeting of the Satellite Division of The Institute of Navigation (ION GNSS ’09), vol. 6, pp. 3205–3218, Savannah, Ga, USA, (ION GNSS ’07), vol. 2, pp. 2230–2236, Fort Worth, Tex, USA, [62] M. Anghileri, T. Pany,D.S.Gui ¨ xens et al., “Performance [78] F. Bastide, D. Akos, C. Macabiau, and B. Roturier, “Automatic gain control (AGC) as an interference assessment tool,” in evaluation of a multi-frequency GPS/Galileo/SBAS software Proceedings of the 16th International Technical Meeting of receiver,” in Proceedings of the 20th International Technical the Satellite Division of The Institute of Navigation (ION Meeting of the Satellite Division of The Institute of Navigation GPS/GNSS ’03), Portland, Ore, USA, 2003. (ION GNSS ’07), pp. 2749–2761, Fort Worth, Tex, USA, [79] R. G. Vaughan, N. L. Scott, and D. R. White, “The theory of September 2007. [63] A. Di Cintio,O.Montenbruck,L.L. Presti, R. Lesca, and E. bandpass sampling,” IEEE Transactions on Signal Processing, vol. 39, no. 9, pp. 1973–1984, 1991. Guyader, “The GREHDA project: Galileo software receiver for high dynamic applications,” in Proceedings of the 20th [80] A. Polydoros and C. L. Weber, “A unified approach to serial International Technical Meeting of the Satellite Division of The search spread-spectrum code acquisition—part I: general Institute of Navigation (ION GNSS ’07), vol. 2, pp. 2376–2387, theory,” IEEE Transactions on Communications, vol. 32, no. 5, Fort Worth, Tex, USA, 2007. pp. 542–549, 1984. International Journal of Navigation and Observation 27 [81] A. Polydoros and C. L. Weber, “A unified approach to serial search spread-spectrum code acquisition—part II: a matched filter receiver,” IEEE Transactions on Communications, vol. 32, no. 5, pp. 550–560, 1984. [82] S. S. Rappaport and D. M. Grieco, “Spread-spectrum signal acquisiton: methods and technology,” IEEE Communications Magazine, vol. 22, no. 6, pp. 6–21, 1984. [83] C. J. Kim and H. J. Lee, “Adaptive acquisition of PN sequences for dsss communications,” IEEE Transactions on Communications, vol. 46, no. 8, pp. 993–996, 1998. [84] S. G. Glisic, “Automatic decision threshold level control (ADTLC) in direct-sequence spread-spectrum systems based on matched filtering,” IEEE Transactions on Communications, vol. 36, no. 4, pp. 519–527, 1988. [85] S. Chung, “New serial search acquisition approach with automatic decision threshold control,” in Proceedings of the IEEE 45th Vehicular Technology Conference, pp. 530–536, Chicago, Ill, USA, July 1995. [86] W. Zhuang, “Noncoherent hybrid parallel PN code acquisition for CDMA mobile communications,” IEEE Transactions on Vehicular Technology, vol. 45, no. 4, pp. 643–656, 1996. [87] R. A. Scholtz, “Multiple access with time-hopping impulse modulation,” in Proceedings of the IEEE Military Communications Conference (MILCOM ’93), pp. 447–450, Boston, Mass, USA, 1993. [88] A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, Englewood Cliffs, NJ, USA, 1999. [89] R. De Gaudenzi,M.Luise,and R. Viola, “Digital chip timing recovery loop for band-limited direct sequence spread- spectrum signals,” IEEE Transactions on Communications,vol. 41, no. 11, pp. 1760–1769, 1993. [90] F. Gardner, Phaselock Techniques, John Wiley & Sons, New York, NY, USA, 3rd edition, 2005. [91] A. N. D’Andrea, U. Mengali, and R. Reggiannini, “Modified Cramer-Rao bound and its application to synchronization problems,” IEEE Transactions on Communications, vol. 42, no. 2, pp. 1391–1399, 1994. [92] G. C. Hsieh and J. C. Hung, “Phase-locked loop techniques—a survey,” IEEE Transactions on Industrial Electronics, vol. 43, no. 6, pp. 609–615, 1996. International Journal of Rotating Machinery International Journal of Journal of The Scientific Journal of Distributed Engineering World Journal Sensors Sensor Networks Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 Volume 2014 Journal of Control Science and Engineering Advances in Civil Engineering Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 Submit your manuscripts at http://www.hindawi.com Journal of Journal of Electrical and Computer Robotics Engineering Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 VLSI Design Advances in OptoElectronics International Journal of Modelling & Aerospace International Journal of Simulation Navigation and in Engineering Engineering Observation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2010 Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com http://www.hindawi.com Volume 2014 International Journal of Active and Passive International Journal of Antennas and Advances in Chemical Engineering Propagation Electronic Components Shock and Vibration Acoustics and Vibration Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.deepdyve.com/assets/images/DeepDyve-Logo-lg.png International Journal of Navigation and Observation Hindawi Publishing Corporation

Software-Defined Radio Technologies for GNSS Receivers: A Tutorial Approach to a Simple Design and Implementation

Loading next page...
 
/lp/hindawi-publishing-corporation/software-defined-radio-technologies-for-gnss-receivers-a-tutorial-5HF1dyoSsk
Publisher
Hindawi Publishing Corporation
Copyright
Copyright © 2011 Fabio Principe et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
ISSN
1687-5990
DOI
10.1155/2011/979815
Publisher site
See Article on Publisher Site

Abstract

Hindawi Publishing Corporation International Journal of Navigation and Observation Volume 2011, Article ID 979815, 27 pages doi:10.1155/2011/979815 Review Article Software-Defined Radio Technologies for GNSS Receivers: A Tutorial Approach to a Simple Design and Implementation 1 2 2 2 Fabio Principe, Giacomo Bacci, Filippo Giannetti, and Marco Luise EM Framework Design Laboratory, Ingegneria dei Sistemi (IDS) S.p.A., 56121 Pisa, Italy Dipartimento di Ingegneria dell’Informazione, Universita` di Pisa, 56122 Pisa, Italy Correspondence should be addressed to Giacomo Bacci, giacomo.bacci@iet.unipi.it Received 27 January 2010; Revised 2 December 2010; Accepted 17 February 2011 Academic Editor: Letizia Lo Presti Copyright © 2011 Fabio Principe et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. The field of satellite navigation has witnessed the advent of a number of new systems and technologies: after the landmark design and development of the Global Positioning System (GPS), a number of new independent Global Navigation Satellite Systems (GNSSs) were or are being developed all over the world: Russia’s GLONASS, Europe’s GALILEO, and China’s BEIDOU- 2, to mention a few. In this ever-changing context, the availability of reliable and flexible receivers is becoming a priority for a host of applications, including research, commercial, civil, and military. Flexible means here both easily upgradeable for future needs and/or on-the-fly reprogrammable to adapt to different signal formats. An effective approach to meet these design goalsisthe software-defined radio (SDR) paradigm. In the last few years, the availability of new processors with high computational power enabled the development of (fully) software receivers whose performance is comparable to or better than that of conventional hardware devices, while providing all the advantages of a flexible and fully configurable architecture. The aim of this tutorial paper is surveying the issue of the general architecture and design rules of a GNSS software receiver, through a comprehensive discussion of some techniques and algorithms, typically applied in simple PC-based receiver implementations. 1. Introduction seminal work by Mitola [3] and can be synthesized in three key points. “Software-radio is an emerging technology, thought to build (i) Configurability. Within a specific communication flexible radio systems, multi-service, multi-band, multi-stand- technology, this means that a unique transceiver ard, reconfigurable, and reprogrammable by software.” for different applications can be factory-configured This definition, borrowed by Buracchini [1], describes without any hardware change. very well the key idea of the software-defined radio (SDR) design paradigm. More specifically, an ideal SDR transceiver, (ii) Updatability/Upgradeability. Since thecoreissoft- sketched in Figure 1, is characterized by a commodity off- ware based, the receiver can be updated and upgraded the-shelf (COTS) front-end (FE) that is connected to a in case of new and improved algorithms or amend- programmable processing unit (PU), which processes the ments to a standard, while maintaining the same baseband (BB) incoming, or transmitted, signal via flexible hardware components. software [2–4]. ThePUisthe core of thesystem, sinceitcan (iii) Flexibility. The same transceiver, with the same impart multiple personalities to the transceiver by running hardware, can be used for different communication specific software, depending on the application context and technologies, simply by reconfiguring or upgrading the required functionalities. the software. The effectiveness and the advantage of a fully SW-defined radio like the one envisaged in Figure 1 with respect to an Obviously, these properties are not in general borne equivalent fully hardware device were first sketched in the to a large extent in fully HW devices, which are usually 2 International Journal of Navigation and Observation Processing unit constrained and confined to particular applications. The BB processing direct consequence of this limitation is, on one hand, the COTS front-end Rx link need to use multiple HW solutions for different technologies -signal generation A/D -modulation RF-IF stage and, on the other, the possible need of HW replacements D/A -demodulation at the advent of even modest changes in standards or -error control Tx link -··· technologies. Still, we must see how the general notion of an SDR can be beneficial to the field of global navigation satellite Figure 1: General SDR architecture. systems (GNSSs). Satellite navigation has witnessed the advent of a number of new systems and technologies: after the landmark design Table 1: Space segment characteristics of the major GNSS systems. and development of the Global Positioning System (GPS) [5– 7], a number of new independent GNSSs were designed GLONASS GPS Galileo and were or are being developed all over the world: Number of satellites 24 30 30 Russia’s GLONASS [8], Europe’s GALILEO [9–11], China’s Number of orbital planes 3 6 3 BEIDOU-2 [12–14], andsoforth.Inaddition, augmentation Number of satellites per orbit 8 4 10 systems and technologies [6, 15], like WAAS in the USA, ◦ ◦ ◦ Orbital inclination 64.8 55 56 EGNOS in Europe, and MSAS in Japan, have been intro- Semimajor axis 25,508 km 26,560 km 29,601 km duced to increase the availability and accuracy and to predict Period ≈11 h 15 m ≈11 h 58 m ≈14 h 05 m the integrity of GNSS. This multifaceted environment is a perfect context where an SDR-based navigation receiver can prove its virtues by adapting to the different available formats and/or jointly processing the host of novel as well as legacy to provide precise positioning to enabled users every time positioning signals. andeverywherein the world[26]. Specifically, in this wide Recently, new features have been studied to improve the and complex scenario, the so-called master systems, such performance of the new GNSS, based on the experience as GPS, GLONASS, Galileo, and Compass, are stand-alone of GPS. Multipersonality receivers switch from one satellite systems that estimate the user position without the support system to another and process their signals performing of any other external device. Conversely, GNSS augmentation multiconstellation navigation [16, 17], and at the horizon systems are satellite- or ground-based systems designed to there is also the integration of satellite navigation with improve performance (mainly in terms of accuracy and different positioning data coming from different, possibly precision) of the master ones, [5, 6]. local, sensors (indoor or inertial navigation) [18]. In this The overall structure of the master navigation systems, framework, an SDR-based receiver has no difficulty in such as GLONASS, GPS, Galileo, and Compass, is made performing the necessary functions of data fusion among of three main elements, referred to as segments.The first different sources of information. one, named the space segment, includes a constellation All of the above represents, in the authors’ opinion, a of navigation satellites which transmit positioning signals very well-founded motivation that led the application of the containing fundamental data about the satellite position SDR paradigm to the design of GNSS receivers ([10, 19–25]). (such as ephemerides and almanacs), clock synchronism, and To this respect, this tutorial intends to provide an overview integrity. Such data are essential for typical receiver opera- of the typical techniques used to implement GNSS SDR tions, like prediction of satellite visibility (to be performed at receivers. To this aim, more details on GNSS evolution are the start-up of the user terminal), computation of satellite provided in Section 2. The software architecture of a GNSS positions, and estimation of ionospheric and tropospheric SDR receiver is illustrated in Section 3.Section 4 focuses delays. on the receiver signal processing techniques and navigation The constellation is made up of a certain number of algorithms. Finally, conclusions and future perspectives for satellites orbiting the Earth and is typically divided into the research on SDR for GNSS are drawn in Section 5. orbital planes suitably designed to guarantee the full coverage of the Earth surface. The main parameters of the space segment of the major GNSS systems currently deployed 2. GNSS Evolution or under deployment (GPS, GLONASS, and Galileo) are In this section, we give a brief overview on GNSS systems reported and compared in Table 1 ([5, 6, 8, 11, 27]). and their evolution, proposing the basic concepts that are Besides those listed in Table 1, it is worthwhile mentioning useful for a good comprehension of the next parts of this also the future Chinese-made Compass navigation system, tutorial. The main purpose is to show a real context wherein whose complete constellation (up-to-date information) will a renovation process is required, which includes very flexible be constituted by 27 MEO (medium earth orbit) satellites solutions and a coexistence between new and old signal with a semimajor axis of 27,840 km, 3 IGSO (inclined processing techniques. geosynchronous) satellites, and 5 GEO (geostationary earth orbit) satellites [12, 14, 28]. 2.1. Basic Elements. GNSS systems encompass a wide variety The second component is the control segment,which is of different networks of devices and technologies that are able in charge of monitoring the space segment by using a set International Journal of Navigation and Observation 3 Table 2: Summary of the main parameters for GLONASS, GPS, and SBAS signals. Signal parameter of feature GLONASS GPS SBAS Multiple access technique FDMA CDMA CDMA L 1598.06÷ 1609.31 1575.42 1575.42 Carrier frequency (MHz) L 1242.94÷ 1251.69 1227.60 — C/A 511 1023 1023 Code length (chip) 6 14 P5.11·10 2.35·10 — C/A 0.511 1.023 1.023 Code rate (Mchip/s) P 5.11 10.23 — data rate 500 (coded) 50 50 (bit/s) 250 (uncoded) Navigation data data BPSK BPSK BPSK modulation Manchester NRZ NRZ of ground stations. More in detail, the tasks of the control augmentation systems are made up of known-position segment are stations, called reference stations, which receive positioning signals from satellites, use them to calculate their position, (i) to track satellites and compute navigation data (to be and compare the result with their true position. This allows uploaded to space segment), the reference stations to evaluate a set of corrections (also (ii) to monitor and estimate the drift of the satellite called delta parameters) to be broadcast to enabled user clocks with respect to the system time, receivers. In thecaseof GBAS (seeFigure 2), the corrections (iii) to monitor and adjust the satellite direction to are computed by a ground segment made up of a single maintain the right orbit planes, reference station with known position and broadcast to all receivers present within the station coverage area (generally (iv) to relocate a new satellite in case of failure of an old pointed out as the local area of the DGPS reference station). one. In the case of SBAS (as shown in Figure 3), a ground segment, The control segment carries out then the key functions made up of a set of several base stations and one master that allow the navigation signal to be broadcast everywhere control station, computes the corrections and sends them to and every time on the Earth, so providing worldwide a network of repeaters, made of one or more geostationary coverage. satellites, that cover a wide geographic area. Finally, the last component of the system is the user segment that includes all the receivers (irrespectively of their 2.2. GNSS Signals. The main characteristics of GNSS signals, specific application) which are enabled to acquire, track, broadcast by current fully operative systems, are summarized and process the positioning signals provided by a given in Table 2, which presents a comparison among GLONASS, navigation system (e.g., GPS, GLONASS, etc.). GPS, and SBAS signals ([7, 8, 11]). Notice that P and The augmentation systems are characterized by a large C/A stand for precision code (i.e., long code yielding high variety of different techniques to improve the performance accuracy) and coarse/acquisition code (i.e., short code pro- of master systems, which can be classified into the following viding low precision), respectively [5–7]. Also L and L are two subsets, [5, 6]: 1 2 the labels assigned to the carrier frequencies 1575.42 MHz (i) pseudosatellites,or pseudolites for short, and 1227.6 MHz, whereas BSPK and NRZ stand for binary (ii) differential GPS (DGPS). phase shift keying modulation and non-return-to-zero pulse Specifically, the latter can be further subdivided in shaping, respectively [7]. It is also worthwhile to remark terrestrial and satellites systems, namely, that SBAS systems (like other GNSSs, such as Galileo [11]) use convolutional codes to protect their navigation data (i) ground-based augmentation systems (GBASs), also from corruptions. Thus, receivers for such systems also referred to as terrestrial DGPS, include a Viterbi algorithm for the maximum-likelihood (ii) satellite-based augmentation system (SBAS), which error correction [29–31]. encompasses several types of systems such as Wide The first important common feature of the GPS and Area Augmentation System (WAAS), European Geo- SBAS signals is the generation process: roughly speaking, stationary Navigation Overlay System (EGNOS), they are generated by multiplying positioning data by a and Multi-functional Satellite Augmentation System spreading sequence (also called pseudorandom noise (PRN) (MSAS). sequence). The PRN code identifies the satellite that gener- Each augmentation system operates in a different way ates the signal and reduces the cochannel interference due for augmenting position accuracy. For instance, pseudolites to other navigation signals operating at the same carrier emulate GNSS satellites on the ground. Conversely, DGPS frequency ([6, 32–34]). This technique guarantees a multiple 4 International Journal of Navigation and Observation GNSS satellite Ranging Ranging signal signal Reference station GNSS Corrections receiver Figure 2: A general scheme of a DGPS. GNSS SBAS satellites satellite Ranging signals GNSS Reference receivers stations Master control Figure 3: A general scheme of an SBAS. access exploiting the same carrier frequency and bandwidth, attention from the scientific community as well. Indeed, and therefore it is referred to as code division multiple access even though the design of these systems dips the roots into (CDMA) [32–34]. GPS experience, their signal structure is definitely more Adifferent approach, based on FDMA (frequency division complex than that of all the previous systems. For instance, multiple access), is actually adopted in GLONASS, wherein referring to the Galileo open service signals in space (OS- each satellite has its own frequency slot to transmit the SIS) [11], each satellite bears three carriers (E , E ,and 5 6 ranging signal. Thus, each channel is identified by a specific E ), identified by three different radio frequencies (RFs), carrier frequency, and the bandwidth becomes a funda- whereas GPS and GLONASS use only two carriers. Then, mental parameter to reduce the interchannel interference. each Galileo carrier can contain either 3 or 4 channels (E Nevertheless, the next evolution of GLONASS system will and E have 3 channels, whereas E has 4 channels), and 6 5 add a new set of BOC- (binary offset carrier-) modulated every channel can be made up of a long spreading sequence CDMA signals to the old one, so as to include new services (generated by multiplying a primary code by a secondary and to improve user position accuracy [35]. one) modulated by data and BOC-like waves. This elaborate An extensive modernization process is also involving GPS design of Galileo signals in space (SIS) improves the accuracy with the main goal of adding two civil signals, denoted as L2C of user-position determination with respect to GPS and (at 1227.6 MHz) and L5 (at 1176.5 MHz). L5 is intended for GLONASS and provides more services for civil, commercial, aeronautical and safety-of-life (SoL) applications [5], whereas and military applications [5, 10, 11]. L2C will be available for non-SoL applications at the L2 In the same way, the Chinese satellite navigation system frequency. Compass (also denoted as Beidou-2, as it will replace the The birth of a new generation of satellite navigation sys- current Beidou, made up of only 3 operative GEO satellites tems (such as Galileo and Compass) is taking an increasing over China), will transmit 8 ranging signals to cover a large Vector corrections International Journal of Navigation and Observation 5 variety of applications from civil to military ones [5, 26, 28, hoc hardware solutions cannot be considered as viable and 36, 37]. For the sake of brevity, important projects (such as, efficient solutions for the next generation of GNSS receivers. the Japanese Quasi-Zenith Satellite System (QZSS) [5]and In this context, a more flexible approach is desired, and so Indian Regional Navigational Satellite System (IRNSS) [26]) the SDR technology represents a promising way to satisfy the have not been reported. The interested reader can refer to new receiver requirements of low cost and reconfigurability. the large bibliography available on these topics (see, e.g., [5– There exists a wide range of possibilities for an SDR 20, 26–28, 36, 37]). implementation, but all these architectures are characterized by a common core, represented by a programmable platform the receiver algorithms can be implemented and executed on. 3. Design of a GNSS SDR Receiver For the sake of clarity, we will introduce three different Before going into the details of the design of a GNSS SDR SDR configurations, focusing on the receiver architecture receiver, it is important to introduce three basic definitions, reported in Figure 4. Five main sections can be identified: the [3, 4, 38]. receiving antenna, the analog/digital FE, the digital section with a field programmable gate array (FPGA) board and a (i) Digital Radio. After the front-end stage the incoming DSP platform, and a PC board. Depending on the processing signal is convertedintothe digitaldomaintobe tasks allocated to each section (particularly, to the last three processed by a digital signal processor (DSP). The pro- blocks), a specific type of SDR receiver is determined. cessing is often done in a defined, nonreconfigurable way, using hardware and ASICs. (i) Classical (SW-Controlled) HW Architecture.Inthis (ii) Software Radio (SR). As technology progresses, the case, the FE stage gets in the RF signal, performs a digitization is at (or very near to) the antenna and downconversion to intermediate frequency (IF), and all of the processing required for the digital radio is digitalizes the IF signal. The FPGA stage converts performed by software residing in high-speed digital the incoming stream of samples down to (or near signal processing elements. to) baseband, wherein a correlation module performs the despreading operation. The tracking of carrier (iii) Software-Defined Radio (SDR)—The RF to IF is frequency and phase offsets are also performed at done prior to ADC, again followed by a digital baseband. The remaining baseband and application radio that is performed by software residing on a SW run on the DSP; in particular, the FPGA is programmable platform. Thus, the analog front- programmed to perform basic high-rate operations end remains unchanged, although all processing is (such as the downconversion and correlations), fully reconfigurable. Therefore, the SDR solution whereas the DSP performs all other baseband opera- represents a more realistic implementation of a tions (including acquisition and tracking stages) and digital radio. the relevant part of navigation SW. The PC board A basic scheme of the general SDR architecture is hosts the configuration functions only, including sketched in Figure 1. The picture shows a transceiver the user-PC interfacing (the man-machine interface (transmitter-receiver) made up of a front-end, followed (MMI)). by ADC and by the successive signal processing stage. As indicated in Section 1, this tutorial intends to provide an (ii) Hybrid Architecture. After the FE stage, the FPGA performs a considerable part of baseband operations overview of the typical techniques used to design a GNSS (including acquisition), also hosting a high-speed SDR receiver, and the rest of this section is thus structured as follows. connection to the PC board. The DSP provides the receiver initialization and configuration tasks, (i) Section 3.1 gives a general overview on common SDR whereas the PC board performs the remaining (elab- architectural designs. orate) baseband operations and the application SW. In particular, the PC board performs navigation algo- (ii) Section 3.2 provides a brief description of the opera- rithms, integrity algorithms, receiver management tion flow that characterizes a standard GNSS receiver. functions, and MMI handling. (iii) Section 3.3 illustrates the general software architec- ture of a fully software GNSS receiver. (iii) Fully SW. In this case, the FPGA hosts service fun- (iv) Finally, Section 3.4 briefly describes two possible ctions to transfer the digital samples to the PC, software implementation techniques (with both a whereas the DSP performs receiver initialization and configuration tasks only; the PC board implements single and a multi thread architecture). all baseband and navigation functions. Using this Some examples of different implementations and solu- approach, the software is actually the core of the tions are also given in [39–45]. receiver, because it accomplishes all the critical tasks, such as processing of ranging signals and navigation 3.1. Architectural Design of an SDR Receiver. Due to the need data, management and synchronization of all receiver for multipersonality receivers mentioned in Section 1 and channels and logic stages, and MMI (see also [10, 19, considering the GNSS signal details sketched in Section 2,ad 46–56]). 6 International Journal of Navigation and Observation In the present tutorial, we will focus on fully SW receivers augmentation systems (such as EGNOS and WAAS). In only. This means that all signal processing tasks will be the generic jth channel receive section, a local replica of performed in the software domain. As already mentioned the relevant PRN code is available for despreading. The in the introduction, we select this solution because fully SW acquisition stage of the jth channel provides a raw estimate architectures can be used when a high degree of flexibility is for the code delay (also named code phase) and for the carrier required. Hybrid HW/SW architectures, despite combining frequency offset (mainly due to the Doppler effect, caused by size and power efficiency with field programmability, and the relative movement of satellites and user receiver, and to thus offering a full algorithmic and architectural recon- the clock drift) [5, 6, 10, 19, 57]. This raw synchronization figurability, suffer in fact from a lower flexibility and an is obtained by a correlative process that performs a two- increased programmability complexity with respect to the dimensional search in the time and the frequency domains. fully SW architectures. For the same reason, SW-controlled When a correlation peak R crosses a given threshold λ,the HW receivers, which show even lower reconfigurability, are acquisition stage ends, otherwise a new test is run with a not considered throughout this tutorial. different time/frequency offset combination. However, it is worth noting that the architecture com- plexity increases as the number of tasks transferred from the 3.2.3. Tracking Stage. Once a signal (e.g., the PRN-i signal) is FPGA/DSP digital section to the PC board increases. The acquired, the corresponding channel of the receiver switches fully SW configuration is in fact more demanding in terms to the tracking stage. This phase includes the following key of computational realization complexity, and it approaches operations. the state of the art in SDR GNSS terminal design. These (i) Tracking of Synchronization Parameters.Inthis stage, drawbacks will be carefully considered for the architectural the code delay and the carrier frequency estimates choices discussed in the following. are refined by a delay-locked loop (DLL) and a frequency-locked loop (FLL), respectively, whereas a 3.2. Operations Flow of a GNSS Software Receiver. Hereafter, phase-locked loop (PLL) is employed to recover the we will provide a brief description of the main stages of carrier phase offset [5, 6, 10, 19]. In this way, a generic GNSS receiver, so as to give an overview of the an accurate synchronization between the incoming overall structure of these devices. To this respect, we will signal and the local PRN code replica is achieved, refer to the simplified and quite general flow graph of the which allows the despreading of the received signal SDR operations reported in Figure 5, wherein the software and the detection of GNSS raw data to be performed. emulates the multichannel architecture of a standard GNSS To check the synchronization, a code lock verification hardware receiver. is periodically run by performing a long correlation between the incoming signal and the local replica of its spreading code. If the correlation peak R is larger 3.2.1. Satellite in Visibility Prediction. At receiver start-up, the satellite in visibility prediction is performed exploiting than the threshold λ, all synchronization parameters old satellite almanacs, time, and a very rough estimate of are locked, otherwise the receiver channel goes back to the acquisition stage to perform a new estimation the user receiver position. These input data are typically either provided by the user or locally stored at the end of code phase and carrier frequency offset. of the previous usage of the terminal. This provides a list (ii) Frame Detection. This stage consists in grouping raw of probable satellites in visibility to be used for a rapid data into a unique frame and computing pseudo- acquisition and tracking (this is generally labelled as warm ranges, by exploiting the code phase provided by start). In case of a cold start (meaning that no a priori data are the DLL [10, 19]. A parity check is also performed, available), an exhaustive search during the acquisition stage is and if this control fails, further tests are generally necessary to detect all satellite in visibility, and this translates done before going back to the acquisition stage. If into longer acquisition times. If more detailed information is the parity control is passed, the user position can be available at the receiver during the start-up phase (namely, calculated by the subsequent stage. the ephemeris data, i.e, a sort of refined orbital parameters), the acquisition speed is faster than in the warm start (also (iii) Further Checks. Additional tests can be carried out called hot start). when the parity check control of the frame detection fails. For instance, these may include estimation of the RF signal power-to-noise spectral density ratio 3.2.2. Acquisition Stage (Coarse Acquisition of Synchroniza- (C/N ) and code lock verification. tion Parameters). Upon the completion of the preliminary prediction algorithm, a list of satellites in visibility is generated and the acquisition stage can be run by emulating 3.2.4. Navigation Stage. If the parity control of the frame a multichannel receivervia software. Thisiscarried out by detection succeeds, the navigation stage is run and the user assigning the PRN code of each incoming signal to a specific position can be eventually calculated [5, 6]. More in detail, channel. this stage (i) collects all the data provided by every tracked A typical approach in the GNSS software receiver design channel, (ii) aligns all received data into a coherent set, and addresses about 12 channels to process master system signals (iii) runs the navigation routines to estimate positions (at (such as GPS or Galileo), plus 2 or 3 channels for the least four satellites are necessary) [5–8, 10, 11, 15, 19]. International Journal of Navigation and Observation 7 Antenna PC board Analog/digital FPGA DSP front-end Figure 4: Hardware design of an SDR receiver. 3.3. Layer Architecture of a GNSS SDR Receiver. The signal Prediction of Input data (e.g.: almanacs, processing and navigation stages addressed above are actually visible satellites rough position) only a part of the tasks that are accomplished by a GNSS fully software receiver [52, 53]. Indeed, the software section also manages the user-machine interface and all the receiver stages and channels, to avoid conflicts that could cause data jth channel PRN-i N tests: R<λ max loss or, in the worst case, a crash of the operating system (OS).In this context,the multilayer software architecture, showninFigure 6, isproposed asa general representation Coarse acquisition R<λ that allows us to highlight the main software stages, each of synchronisms R<λ one characterized by its own specific functionalities. This scheme shows three main different layers, or functional R>λ blocks, described hereafter in the next subsections. Tests: R>λ code lock verification, 3.3.1. Operating Layer. The operating layer (OL) is devoted C/N estimation, and so forth Tracking of to processing GNSS signals, to running navigation routines, synchronisms and to solving positioning equations. Specifically, this level Synchronism emulates the multichannel architecture of a standard naviga- check tion receiver, including the navigation stage, and the driver Raw for the FE management and data buffering. More details will data be reported in the next section. Parity-check Here, let us just remark that the driver allows the proper Frame detection failed and pseudo range flow of digitized data from FE to PC. The time required computation to fill the input buffer (see Figure 6), called T ,is an important constraint, because it constitutes the temporal interval during which all the receiver processing phases Pseudoranges, must be accomplished to guarantee real-time execution, ionospheric corrections, Navigation stage avoiding bottlenecks, and consequent data loss. Specifically, ephemerides, and so forth and position T depends on the time required to collect N digital samples b s computation of GNSS signals (this operation is typically performed by Output data (e.g.: the FE) plus T ,thatis, thetimetodownload the stream position, receiver status) D of data into the input buffer: T = N q/R + T ,where R b s s D s Figure 5: Main logic stages of a GNSS SDR receiver. is the bit rate at the sampler output and q is the number of bits per sample (bit/smp). Of course, considering that T = N q/R where R denotes the FE output rate (in D s out out It is worth remarking that the signal processing of bit/s), the basic condition to avoid bottleneck and crash is each channel is performed independently of the others, R  R . (For instance, assuming a front-end with USB s out whereas the (only) navigation stage of the receiver requires 2.0 connection (R ≈ 400 Mbit/s) and a rate R = 5Mbit/s, out s to combine all the data from every channel to solve the thetimetofill abuffer B ≡ N q = 1Mbitturns outto be mathematical system of positioning equations. T = (1/5)s + (1/400)s = 0.2025 s ≈ 1/R ,since R  R .) b s s out Finally, user position and other pieces of information To comply with the T constraint, it is mandatory to execute (e.g., receiver status, satellite sky-plot, real-time C/N ,etc.) optimized and fast signal processing algorithms and to plan are stored and/or displayed, depending on the final goal of an ad hoc time schedule that assigns the right priority and a the receiver and on the MMI. specific time slot to each receiver phase. In the SDR design, Tracking stage Acquisition stage 8 International Journal of Navigation and Observation Managing layer (ML) Signal processing GNSS 1 Acquisition front-end module Satellite visibility Samples Tracking prediction module Data User requirement detection Data module N channels module Display data, position, status, ... Positioning module Input buffer Navigation Data data buffer management Driver Navigation Operating layer (OL) Figure 6: Architectural design of a GNSS software receiver. this calls for identifying the stages that are more important 3.3.3. Man-Machine Interface. The man-machine interface than others to guarantee the real-time functioning of the (MMI) is the input-and-output interface between user receiver. These stages (characterized by strict requirements) and PC. In detail, the input options allow some different shall have the highest priority. configurations for several operative contexts to be selected, including static or dynamic measures of the user position, off-line/real-time processing, and analysis of GNSS signals. 3.3.2. Managing Layer. The compliance with the planned Each choice is translated into an ad hoc setup of signal time schedule is guaranteed by the managing layer (ML). processing and navigation algorithms. The output is used to A simple example of time schedule is shown in Figure 7, report and/or to store results, such as user position, SNR which refers to a software receiver with 6 channels running ratio level, satellite health, sky-plot of the GNSS satellite on a standard PC with a single CPU. Time division of the constellation, and receiver status. Typical output devices are T interval is apparent in the picture. The four channels monitors or hard drives where log-files can be saved. in the tracking phase are assigned the highest priority to Additionally, each layer (MMI, OL, and ML) communi- meet the real-time constraint, while maintaining time, phase, cates with the others by exchanging information. In this way, and frequency synchronization with the incoming signals. we can modify the ML timetable, exchange configuration Thus, each pseudorange can be computed, yielding the GNSS data, and results between the MMI and the OL, configure raw data used to solve the positioning system. Soon after, signal processing algorithms, and so on. two more channels try to acquire further GNSS signals, in order to improve the position accuracy and to guarantee the 3.4. Single versus Multithread Design. Finally, we emphasize continuity of position computation in case any of the in- that a software receiver can be implemented following tracking satellites is lost. Afterwards, the driver downloads two different approaches: using either a single-thread or a new samples from the FE. Finally, the navigation stage multithread design. In the first case, a single program carries and other receiver functions, such as results displaying and out all tasks of the receiver, following a prefixed order. The almanacs and ephemerides storing, are run. Note that the result is a rigid structure which sequentially runs in loop all rate to carry out such stages is typically much lower than the stages (tracking, acquisition, etc.). that of the signal processing stage. Let us also remark that a Instead, in the multithread approach, each receiver stage safety gap g is scheduled for each time slot in order to avoid is assigned to a specific thread with a given priority level, and bottlenecks in critical situations due to possible overloads all threads are dynamically run in a concurrent manner. of the CPU. As mentioned, the ML activates every receiver phase following the step listed in the planned timetable, thus respecting the scheduling. Furthermore, it allows the change 4. Signal Processing Stage of channel stage from acquisition to tracking and vice versa and synchronizes raw data epochs obtained from different This section illustrates the general receiver architecture and channels during navigation to solve the positioning system. the typical algorithms used to process GNSS signals [5, 6, 10, Man-machine interface (MMI) International Journal of Navigation and Observation 9 Time for T + g navigation and (k − 1)T Time for signal processing stage kT b b other functions ··· Channel 1: tracking tr Channel 3: tracking t tr Channel 4: tracking t tr Channel 5: tracking t tr Channel 2: acquisition acq acq Channel 6: acquisition Driver: filling buffer d Navigation and positioning nav Other functions g = safety gap t = tracking stage time t = navigation stage time s tr nav t = acquisition stage time acq t = time for other functions Figure 7: An example of a time schedule of a GNSS software receiver. GNSS antenna Analog/digital front-end AGC AGC controller Mixer AGC IF filter G LNA RF filter A ADC Output RF/IF down Local buffer converter oscillator Sampling clock Programmable from PC IF stage RF stage USB port Standard PC Figure 8: A simplified scheme of a GNSS front-end. 19, 21, 33, 41, 46–55, 57–67]. Referring to the architectural downconverter acting as the interface between the two (more schemes reported in Figures 4 and 6, let us start describing details are contained in [2, 4, 10, 46, 68, 69]). the FE design with its main features, followed by acquisition and tracking stages and related algorithms. Then, the most 4.1.1. Antenna. This first component is designed to generate common navigation algorithms to compute user position a voltage from the incoming radio waves (e.g., L = will be briefly presented. 1575.42 MHz). Thus, its frequency response must be similar To provide a clear and comprehensive description of a to a band-pass filter centered in L . In case of a dual GNSS software receiver, the single frequency approach is frequency antenna (e.g., L and L = 1227.6MHz), the 1 2 proposed, considering the GPS L signal as the reference response is typically characterized by two narrow bands, channel. Nevertheless, let us remark that a similar analysis centered on the two desired frequency ranges. In this way, can be easily translated to a generic GNSS signal [41, 49, the interferences due to the presence of signals between the 51, 53–55, 60, 63, 65–67], by considering its specific char- two carriers are reduced. Other two parameters, typically acteristics (e.g., bandwidth, subcarrier modulation, carrier used to characterize an antenna, are the polarization and frequency, PRN codes, and data frame). the pattern gain. Specifically, the polarization indicates the electric field orientation of the received signal. GNSS signals 4.1. Front-End Stage. A simplified scheme of the FE archi- are right-hand circularly polarized (RHCP). Hence, GNSS tecture is sketched in Figure 8. The FE is clearly divided into antennas are designed to receive incoming RHCP signals. two basic blocks, the RF stage and the IF stage, with the RF/IF We can effectively suppress left-hand circular polarization 10 International Journal of Navigation and Observation in the case of strong interfering signals adjacent to the L 0dB carrier [10, 19]. However, this solution yields an overall noise figure which is typically 2 ÷ 3 dB higher than in the previous configuration, due to the insertion loss I of the filter that reduces the overall gain G of the first stage (inclusive of RF −20 dB 30 filter plus LNA). Narrow-band filters are obviously desirable to guarantee −40 dB high frequency selectivity. Nevertheless, due to technical con- straints, integrated narrow-band filters are scarcely available. Actual values for the filter quality factor Q = f /B ,where f c W c is the central frequency and B the bandwidth, turn out to be Q ≤ 100. Thus, assuming that f = L ,the filter bandwidth c 1 results in B ≥ 20 MHz, whereas the GPS C/A-band is only 2.046 MHz wide. So, the received signal, centered around RF frequency f , must be downconverted to a lower IF, to allow Figure 9: The antenna pattern of NovAtel GPS-533 at GPS L [74]. 1 an easier spectrum filtering and guarantee a low output rate from the FE to the PC. (LHCP) rays (e.g., due to the reflection of RHCP signals), 4.1.3. RF/IF Stage (Downconverter and IF Filter). The RF/IF thus reducing the multipath effect. Note that multipath downconverter consists of an oscillator generating a local attenuation is mandatory, since it is the first cause of errors in reference wave, at the frequency f , that is multiplied LO the user position computation of GNSS receivers [6, 57, 70– with the incoming signal (e.g., GPS L signal with f = 1 c 73]. 1575.42 MHz) by a mixer. Thus, assuming that the input The pattern gain refers to the directivity of an antenna. signal is s(t) = d(t)cos(ω t), with ω = 2πf ,the mixer c c c An example of a pattern gain designed as a function of satel- output is lite visibility and multipath rejection is shown in Figure 9.A s(t) cos(ω t) LO quasiuniform gain toward all GNSS satellites above a specific elevation angle is a desirable feature. Generally, this elevation (2) d(t) mask is chosen around 5 ÷ 10 degrees above the horizon. [( ) ] [( ) ] = {cos ω − ω t +cos ω + ω t }, c LO c LO Therefore, the antenna pattern is characterized by a low back lobe (Figure 9), in order to minimize the multipath effect due where ω = 2πf . Neglecting some mixer parameters LO LO to the ground reflection and interferences which are present such as conversion loss, intermodulation, and isolation, (2) at low elevation [10, 19]. produces a low-frequency (ω −ω ) component and a high- c LO Commercial antennas are divided into two categories: frequency one (ω + ω ). The difference frequency is the c LO active and passive antennas. In particular, the latter class of desired IF, whereas the other is cut off by the subsequent antennas are passive elements directly connected to the FE IF filter (Figure 8), typically a narrow band filter (e.g., with chain, whereas active antennas are featured by an integrated bandwidth 2 MHz) centered on the IF. This represents a low-noise amplifier (LNA), with a very low noise figure single direct downconversion stage from RF to IF. In the (typical values are around 2 ÷ 3dB). practice, it is very common to design receiver FEs with two or more downconversion stages, which are more effective in rejecting image frequencies. More details on this aspect can be 4.1.2. RF Stage (LNA and RF Filter). Referring to Figure 8, found in [4–6, 68, 75]. the RF stage is made up of a cascade of an LNA followed by an RF filter. The well-known Friis formula provides the overall noisefigure of theFE[6]: 4.1.4. Automatic Gain Control and Analog-to-Digital Conver- sion. The IF section may also contain an automatic control F − 1 F − 1 F − 1 2 3 N gain (AGC) circuit to adjust the signal level at the input of F = F + + +··· + , (1) T 1 G G G G G ··· G 1 1 2 1 2 N−1 the ADC. Indeed, this second amplifier is controlled by a variable gain piloted by a feedback signal resulting from the where F and G (i = 1,... , N) are thenoise figureand the i i ADC processing (thus, named automatic gain control). The gain of each component of the FE, respectively. If the first gain G can be expressed as a function of the related AGC component is an LNA with a high gain G , F is dominated 1 T control voltage V [5]: AGC by the noise figure of the first element present in the FE βV chain, so that F is about F (2÷ 3 dB). Possible impairments AGC T 1 G = α · e , (3) to this approach are the strong spectral components due to interferers in the amplifier bandwidth, which can saturate the where α is the AGC gain coefficient and β is the AGC control LNA and thus generate spurious frequencies. This drawback voltage coefficient (see Figure 8). can be circumvented by placing the RF filter before the LNA, Roughly speaking, based upon monitoring the digitized in order to attenuate the out-of-band spectral components, data stream at the ADC output, the AGC increases or thus avoiding saturation. This approach is particularly suited decreases the signal level at the ADC input, aiming at International Journal of Navigation and Observation 11 y Table 4: An example of f computation. Minimum Maximum f (MHz) f (MHz) s s 1 32.84 ∞ 2 16.42 28.84 −M 3 10.94 14.42 −a 4 8.21 9.61 5 6.57 7.21 6 5.47 5.77 −b 7 4.69 4.81 8 4.11 4.12 Figure 10: Uniform 2 bit quantization. is implemented as a feedback loop that uses the ADC output samples to form metrics used to adjust the AGC gain (3). 2.5 Another function of the AGC unit is to avoid the ADC saturation, when RF interferences occur. In this case, the N = 2 AGC rapidly reduces its gain to maintain an optimal RMS level (at the ADC input) that can minimize the degradation. N = 3 Therefore, when remarkable variations of the amplifier gain 1.5 occur with respect to the nominal case, the AGC can also N = 4 become a useful tool to detect and assess interferences. More N = 5 details on this topic are given in [5, 78]. N = 6 N = 8 Finally, it is worth noting that, if a 1-bit ADC is used, N = 7 no AGC is required because the ADC is just a limiter. This simplify the front-end architecture, but this solution results 0.5 extremely vulnerable to continuous wave (CW) interferences [5]. In case of 2 (or more)-bit ADC, the AGC is necessary to N = 16 0 reduce the degradation due to the quantization. In the FE chain, the AGC is followed by an analog- Ratio of maximum threshold to 1-σ noise level to-digital converter (ADC) that digitizes the input signal, outputting a stream of bits that are grouped in the signal Figure 11: Postcorrelation C/N degradation using an N-level quantization [77]. buffer to be sent to a PC. The main figures that characterize an ADC are the sampling frequency and the number of quantization bits. Specifically, the sampling frequency f can Table 3: Minimum degradation due to quantization. be calculated using the band-pass sampling theorem [79]: 1bit 2bits 3 bits 4bits k · f ≥ 2 f + B , s IF W Optimal k — 0.986 1.731 2.291 (4) (k − 1) · f ≤ 2 f − B . s IF W Min. degradation (dB) 1.96 0.537 0.159 0.014 This system of simultaneous inequalities relates f to the IF frequency f and the band-pass bandwidth B ,as a function IF W exploiting the entire ADC dynamics, and ensuring thus the of the integer factor k, which can assume values in the range use of all quantization levels without incurring in saturation. (see [79]): For GNSS receivers, in which the useful signal power is below that of the thermal noise floor, the AGC is driven f + (B /2) IF W 1 ≤ k ≤ (5) by the ambient noise rather than the signal power. In such context, let us assume the absence of any interference. Considering the common case of uniform quantization [76], where x denotes the integer part of the argument x.Let we can show that the degradation due to the digitization us give an example of f computation: supposing to use a procedure is a function of the ratio of the maximum local oscillator with frequency f = 1560 MHz, then f = LO IF quantization threshold M (e.g., Figure 10)tothe noise f − f = 15.42MHz. Therange of thesamplingfrequency q L1 LO standard deviation, σ (e.g., see Figure 11 [26, 77]). as a function according to (4)is listed inTable 4 (B = Some optimal values of k = M /σ that minimize the 2 MHz). A pictorial representation of the band-pass theorem q q degradationare giveninTable 3 [26, 78]. Thus, the AGC is displayed in Figure 12,with k = 3and f = 12 MHz. regulates the Gaussian noise standard deviation at the input Generally speaking, the selection of f is done in of the ADC, to ensure an optimal ratio. Therefore, this unit accordance with the desired number of quantization bits, Effective signal power loss (dB) 12 International Journal of Navigation and Observation Amplitude IF spectrum ··· ··· ··· ··· Figure 12: An example of the band-pass sampling theorem (k = 3and f = 12 MHz). −1 yielding an FE output rate which, to avoid bottleneck, must 10 be lower than the maximum connection rate. For instance, considering the USB 2.0 maximum rate R ≈ 480 Mbit/s and referring to the results reported in Table 4, a good choice −2 is k = 6, that points to f = 5.5 MHz, and a quantization of 2 bit/smp, and the output rate results R ≈ 11 Mbit/s <R . out M The quantization operation is a nonlinear transforma- tion which assigns a number (typically represented by a −3 set of digits {0, 1}), belonging to an alphabet A,toareal 10 number, according to a specific quantization curve [76]. The quantization process degrades the input SNR, because the hard approximation of a soft input sample adds a random −4 error, called quantization noise. For thesakeof clarity,avery simple communication system (with infinite bandwidth, which includes just one GPS satellite, an AWGN channel, and no interferers) is simulated to compare the bit error rate −5 (BER) obtained by an analog receiver to that of 1- and 2- bit quantization receivers. The results, reported in Figure 13, show that the loss due to uniform quantization is roughly 20 22 24 26 28 2dBfor the1-bit receiver andthatitdecreases to 0.5dB for C/N (dB ) 0 Hz the 2-bit receiver (as remarked in [6, 10, 19]). Analog It is worth noting that this result complies with the more 1-bit quantization general analysis proposed by Hegarty in [77]and shown 2-bit quantization in Figure 11. The picture reports signal losses for different uniform quantizer levels N as functions of maximum input Figure 13: Analog versus quantized receiver BER. threshold levels of the quantizer. Thus, (i) with N = 2(1bit), thelossis about 1.96dB, The input rate, R , is imposed by the ADC (e.g., with a (ii) with N = 4 (2 bits), the minimum loss (optimum sampling frequency of 5.5 MHz and a 2-bit quantizer, R = threshold) is about 0.54 dB. i 11 Mbit/s), and the consequent output rate, R ,must be Hence, for standard applications, an SDR receiver is typi- larger than R to avoid buffer filling. If this occurs, a data loss cally designed assuming 1-bit quantization, while the 2-bit event may happen. quantization is recommended for better performance. More The maximum output rate depends on the communica- details on this topic can be found in [2, 6, 76]. tion between the FE and the PC. In this kind of applications, the USB (universal serial bus) has become the standard 4.1.5. Signal Buffer. The last block in the FE chain is the connection method. Indeed, the USB 2.0 maximum rate is signal buffer. Here the bits output by the ADC are grouped about 480 Mbit/s, that is more than enough to avoid the into frames, to be completed with the necessary bits that signal buffer filling and the subsequent data loss. satisfy the USB protocol (including a packet identifier (PID) At the PC side, the communication is managed by the and a cyclic redundancy check (CRC)). This message is then driver (see also Section 3.3.1) that receives data and packs transmitted tothe PC,as shown in Figure 8. them in arrays which are processed by the signal processing The signal buffer is detailed in Figure 14. The picture stage, as illustrated in the next sections. shows a data buffer (or equivalently, a stack of memory), The hardware stage ends here, so the next stages are placed right after the ADC, that is used to temporarily hold fully developed in software, using high-level languages such data while they are being moved from the front-end to the as C/C++, MATLAB, SciLab. It is worth emphasizing that PC. First in first out (FIFO) is the rule used for the data real-time software receivers require accurate design of the transfer. signal processing stages to cope with real-time constraints −44.58 MHz −32.58 MHz −15.42 MHz −8.58 MHz −3.42 MHz 3.42 MHz 8.58 MHz BER 15.42 MHz 32.58 MHz 44.58 MHz International Journal of Navigation and Observation 13 Front-end PC To signal From ADC processing ··· Driver R R i o stage Signal buffer Figure 14: Signal buffer details. [24, 54, 60]. More in detail, particularly critical are the operation. Therefore, it is mandatory to accurately estimate acquisition engine, the local code generation, and the any frequency deviation from the nominal IF value. tracking loop architecture. The next subsection will provide The main sources of frequency deviations are the more details on this issue. Doppler shift, caused by the relative movement between GNSS satellites and user receiver, and possible frequency drifts, due to low-precision FE clocks. The latter is typically 4.2. Software-Based Signal Processing Stages. The perfect a small residual component that can be easily tracked using synchronization between the incoming positioning signal an FLL or a 2nd-order PLL during the tracking stage. (in a CDMA format) and the local reference waves is a Conversely, in the worst case, for example, in the case of the necessary requirement to correctly process GNSS signals. The GPS receiver onboard an aircraft [6], the unknown Doppler despreading operation can be effectively performed only by shift can range from −10 kHz to 10 kHz, thus producing ensuring the correct alignment of the received signal with the significant carrier frequency deviations. Therefore, this large local replica of the PRN code (for time synchronization) and interval cannot be covered by the limited dynamic of an with the local carrier (for frequency synchronization). This FLL/PLL module. Hence, it needs to be firstly recovered is achieved in two steps [5, 6, 32, 33]. performing an exhaustive search in the frequency domain [5, 6, 19]. The residual offset will be compensated by an (a) First, the acquisition stage gets a preliminary coarse FLL/PLL in the tracking stage. estimation of code timing and carrier frequency Let us assume acquiring a GPS L signal. In this case, the offset. 1 Doppler effect shifts the nominal carrier frequency ( f = L1 (b) Then, the tracking stage exploits this rough result to 1575.42 MHz) by f with f ∈ [−10, 10] kHz. This means D D refine the synchronization and track the signal. that the RF becomes f = f + f and, consequently, IF 0 L1 D becomes f = f + f . Thus, the BB downconverter (that 1 IF D 4.2.1. Acquisition Stage. The acquisition stage is the first is IF-synchronized) translates the input signal from f to step to get a preliminary coarse synchronization, in both near-BB, and the carrier frequency offset that remains to be frequency and time domains, that will be used in the sub- assessed (called carrier Doppler shift)is Δ f = f − f = f , 1 IF D sequent tracking stage. CDMA signal detection is generally with Δ f ∈ [−10, 10] kHz. Hence, the acquisition stage must accomplished carrying out a two-dimensional search in provide a rough estimation of the carrier frequency offset Δ f time and frequency domain. Specifically, the time search together with the code timing to process the incoming signal. is needed to synchronize the received PRN code with its The estimated figures during this phase are then used in the local replica and consequently to despread the input signal. tracking stage to lock and track the signal. This step provides the necessary code gain to improve the The simplest algorithm used to acquire a spread- signal SNR (for navigation data processing) by estimating spectrum signal (such as a GNSS signal) is the simple serial the so-called code timing (or, equivalently, the code phase). search [32, 33, 80–82]. This technique performs an exhaustive Nevertheless, this time-alignment is not enough to correctly search (also defined brute search) in the frequency and time process a spreading signal, as motivated in the following. domain till the incoming signal is detected. This happens A despreading operation is basically a long correlation when a prefixed threshold λ is crossed, otherwise a new performed in the baseband domain between the received frequency offset and/or a new code phase is tested. signal and a local replica of its PN code. Thus, remembering A basic scheme for the simple serial algorithm is given in that the FE provides a digital signal at IF, the baseband Figure 15, where the main modules are (i) the BB downcon- downconverter becomes the first module to be run before verter, that performs IF-to-BB conversion, (ii) the correlation the correlator. The BB signal is obtained by multiplying the module that despreads the input signal, (iii) a squarer that received IF signal with a couple of local waves that are IF- removes the carrier phase dependence, (iv) a decision unit synchronized. So, the result is a BB-replica of the input signal that checks the signal detection using the threshold λ,and plus some high-frequency components which are filtered (v) a logic unit that shifts the local code and/or changes the out. Of course, the consequence of any frequency misalign- tentative frequency in case of no acquisition. ment produces a frequency offset in the output signal, which Forthe sake of a betterunderstanding of this algorithm, could cause a catastrophic power loss during despreading let us provide more details on the acquisition of a GPS 14 International Journal of Navigation and Observation Baseband Correlation module Squarer downconverter ∑ Yes M 2 k |·| 1/M (·) i=1 To verification stage No Logic Code shifter unit Local PRN code f = f + f c IF i Digital carrier Frequency selector ( f , with i = 0, 1, 2,...) oscillator (DCO) i Figure 15: Simple serial search architectural scheme. L signal. As illustrated in Section 4.1 (neglecting the Assuming that no data transition occurs during the MT 1 s quantization and the USB link), the incoming signal at the samples and that f T  1/(2πM), then r (δ)can be written Δ s k end of the FE chain becomes as j[2π( f + f )kT +ϕ] √ IF D s s = s(k · T ) = s (k · T ) · e ,(6) −j(2πf kT +ϕ ) k s b s Δ s Δ r (δ) ≈ j 2 · e · d · γ (δ), (11) k k k where f is the IF, T = 1/f is the sampling time in IF s s where d = d(kT )and k s compliance with the band-pass sampling theorem [79], f is the Doppler shift, ϕ is the carrier phase, and s (t) = M+k−1 i(t)+ j · q(t)is the L signal in the BB domain. More in γ (δ) c · c (12) k n n+δ detail, i(t) = p(t) · d(t) is the in-phase signal composed of n=k the P code, p(t), and the GPS data sequence, d(t), whereas is the normalized correlation function of the C/A PRN q(t) = 2 · c(t) · d(t) is the in-quadrature signal, composed sequence [6, 10, 32]. of the C/A code, c(t), with the correspondent GPS data The two previous assumptions are satisfied if the follow- sequence (see also [7]). For the sake of simplicity, some ing conditions are verified: additional contributes (such as, thermal noise, multipath, and interferences) have been neglected in (6). (a) the correlation period T MT is much lower I s Looking at the acquisition scheme (Figure 15), the first than the data duration T to reduce the event of data operation is the IF-to-BB downconversion that outputs the transition; in-phase I and quadrature Q components as follows: k k (b) the condition f T  1/(2πM)is satisfied when Δ s I = s · 2 · cos 2π · f + f · k · T + θ , k k IF i s the tentative Doppler frequency f is a good approx- (7) imation of the actual Doppler shift ( f ≈ f )in Q = s · 2 · sin 2π · f + f · k · T + θ , i D k k IF i s accordance with correlation period length. where f is a tentative estimate of the Doppler shift and θ is the initial phase. After some manipulations, (7) becomes The power loss (PL) due to an eventual residual frequency in the correlation module can be evaluated as −j(2πf kT +ϕ ) Δ s Δ w = I + j · Q = i + j · q e + h , (8) k k k k k k sin π · f · T where i = i(kT ), q = q(kT ), f = f − f , ϕ = ϕ − θ, k s k s Δ D i Δ  Δ I (13) PL = −10 log   (dB). and h represents the high-frequency components (at 2 f ) π · f · T k IF Δ I produced by the downconversion operation. Now, despreading is done by correlating w with the Going through the acquisition chain shown in Figure 15, C/A PRN sequence c (GPS Pcodeisencrypted formilitary the correlation module is followed by a squarer, which deletes any carrier phase contribute. The output of the squarer application). Thus, we get is then compared with a threshold λ, to detect whether a M+k−1 rough alignment with the local replica of the C/A code is r (δ) = w · c . (9) k n n+δ M achieved or not. If λ is crossed, a coarse synchronization n=k occurs and a verification stage is typically run to check the Since the despreading process with the local C/A code cancels signal detection, otherwise a new acquisition is tried. The the contributes of P code and the averaging operation filters latter case can be caused either by a large code misalignment the high-frequency components, (9) becomes (larger than the chip time) or by a catastrophic degradation M+k−1 of the signal power due to a bad estimation of the Doppler −jϕ −j2πf nT Δ s r (δ) ≈ j q · c · e . (10) shift. Thus, the next acquisition is done by either shifting the k n n+δ n=k local code phase or updating the tentative frequency. International Journal of Navigation and Observation 15 The threshold λ should be selected to maximize the advance (early branch) and in late (late branch) with respect detection probability and to minimize the acquisition time to the prompt code phase. In this way, three different code and the false alarm probability. In such sense, optimal values phases can be tested in a parallel way. (A single-processor can be also derived by simulations. We can also use an PC can simulate the parallel architecture of a GNSS receiver adaptive threshold instead of a fixed one [83–85]. In this case, by sequentially performing a large part of the processing.) we need a coarse estimation of the SNR to select a specific Furthermore, the complex wave exp{ j2πf kT} is used to value of λ. compensate for the Doppler shift. This technique is generally In the discussion above, we intentionally neglected multi- termed hybrid search (see also [32, 86]). path distortions, interferences, and thermal noise, effects that The key points of the software implementation are listed must be considered in the design of a practical acquisition below. algorithm. These effects induce a degradation of the C/N (a) The local code is digitized using 1 bit and then stored ratio, which increases the occurrence of false alarm and into a preloaded look-up table. Three pointers are missed detection events. In the case of the GPS L signal, used to indicate early (E), prompt (P), and late (L) the typical range for C/N is 35 ÷ 55 dB [57]. Hence, 0 HZ code phases. This technique allows any code shift to when C/N < 35 dB , the detection of positioning signals 0 HZ be translated into an equivalent pointer shift. becomes critical. More details on the detection of CDMA signals can be also found in [6, 32, 33, 80–86]. (b) The correlation is carried out on words of 32 (or 64) bits. More specifically, the multiplication is imple- In the following, we show a sample implementation of mented by combining XOR and NOT operations as the acquisition stage in a GPS/SBAS software receiver (more in (15), whereas the sum is equal to the difference examples can be found in [10, 19, 46, 48, 51–53]). The N − N between the number of bits that are 1 relevant architectural scheme is reported in Figure 16.This 1 0 (represented by N )and thenumberofbits that are 0 block diagram (like that depicted in Figure 15)shows an (indicated by N ). The final result is a reduction of FE using 1-bit digitized data followed by a digital IF-to-BB 0 the input sampling rate from R to R = R /32 in downconverter. s o s From (6), thesinglesample can be written as case of 32-bit processor (or R /64 in case of 64-bit processor). To further minimize the processing time, the operation N − N (done on words of 32 or 64 1 0 s [k] = u[s + n ], IF k k (14) bits) can be computed during the initialization of the software receiver and permanently stored in a look- up table. where n is the noise sample (generally modeled as a (c) The correlation output is multiplied by the complex Gaussian process) and u[·]is the step function (u[x] = 1if wave exp{ j2πf kT},where T = 32/R and f denotes x ≥ 0and u[x] = 0if x< 0). Thus, the downconversion (7) i s i the tested frequency sample, and the result is grouped can be implemented as into an array of W samples to be averaged. This step allows the input noise to be attenuated, also reducing I = s [k] ⊕ u cos 2πf · k · T , k IF IF s the processing rate. (15) Note that, at the output of the first correlators of Q = s [k] ⊕ u sin 2πf · k · T , k IF IF s the correlation module (before the multiplication with exp{ j2πf kT}), the maximum power loss due to unresolved Doppler shift can be evaluated using (13). For instance, where ⊕ is the XOR operator, θ = 0, and x is the focusing on a GPS signal, the worst Doppler shift is | f | = NOT operation on the logical variable x. This formulation 10 kHz [6]. The period of correlation is T = T = N /R , minimizes the processing of the PC, since every Boolean I bit s where N = 32 or 64 bits, and the sampling frequency R bit s operation on 32- or 64-bit (according to the PC architecture) can be extracted from Table 4.Using R = 5.5 MHz, the loss words is done within exactly one clock tick. Therefore, 32 or is 64 samples (32/64 bits) grouped in 32- or 64-bit words can be downconverted during two clock ticks (due to the XOR and 0.05 dB if N = 32, bit NOT operations). Additionally, instead of computing every PL ≈ (16) sample of u[cos(2πf · k · T )], it is preferable to implement IF s 0.19 dB if N = 64. bit a look-up table containing one period of u[cos(2πf · k · IF T )] that is also representative of the sine component. This The PL is low, and it can be neglected in the case of a static approach does efficiently reduce the computation of local receiver, for which | f | ≤ 5kHz [6]. waves, saving both time and memory. Concerning Step (c), the value of W should be chosen Going back to Figure 16, the next module (called large enough to minimize the noise contribute. Nevertheless, correlation module) splits the incoming signal on three par- we should also consider the frequency step used to estimate allel branches, labeled early, prompt,and late.Each branch the Doppler shift, because large values of W can cause correlates the input signal with a shifted local replica of the strong degradations of C/N , due to the presence of a received spreading code. More specifically, the correlation is possible residual frequency offset. Again, (13)can be used done with three different shifts of the local code that are in to evaluate its impact in terms of PL (e.g., let us assume 16 International Journal of Navigation and Observation Correlation module Digital downconverter ∑ ∑ W M 1/W (·) 1/M (·) |·| k=1 i=1 I channel I-Q channel ∑ ∑ Analog/digital W M Acquisition 1/W (·) 1/M (·) |·| DCO k=1 i=1 front-end logic ∑ ∑ ∑ W M Q channel 1/W (·) 1/M (·) |·| k=1 i=1 j2πf kT Tentative frequency: f EP L i NCO Tentative code phase: τ Code shifter Figure 16: Acquisition stage channel of a software receiver. N = 32, W = 100 andafrequencystepof 1kHz,the In thediscretetime domain, thecircular cross- bit residual is f ≤ 500 Hz and PL ≤ 1.24 dB, while with a correlation definition of two functions, x and y ,is Δ n n frequency step of 500 Hz, the residual is f ≤ 250 Hz and M+k−1 PL ≤ 0.30 dB). 1 r (δ) = x · y . (17) k n n+δ The next modules square the incoming samples, to n=k eliminate the dependence on carrier phase, and average over M samples to filter spurious peaks due to residual noise. If the discrete Fourier transform (DFT) F {·} is performed on The outcome is then compared to a threshold to detect r (δ), and neglecting the normalization factor, we get the signal. The acquisition is achieved when the local code R ( ) = F {r (δ)} k k replica is roughly aligned with the incoming spreading code and the frequency estimation well approximates the Doppler M−1 shift. −j2π δ/M = r (δ)e An example of the acquisition of a real GPS signal is δ=0 described below using a GPS/SBAS software receiver [52, 53], ⎡ ⎤ M−1 M+k−1 that makes use of the approach illustrated above. A static −j2π δ/M ⎣ ⎦ = x · y e n n+δ scenario is assumed so that the Doppler shift belongs to δ=0 n=k the interval [−5, 5] kHz. The GPS PRN-09 signal is detected (18) ⎡ ⎤ and the result is plotted in Figure 17. The 3D plot contains M+k−1 M−1 −j2π (n+δ)/M +j2π n/M ⎣ ⎦ the acquisition function as a function of the code timing = x y e e n n+δ (sampled at f = 5.5MHz) and of the frequency offset. The n=k δ=0 frequency step is 1 kHz and the code phase step is 1 chip. M+k−1 The maximum peak is achieved at a code shift of about +j2π n/M = Y ( ) · x e 2500/f (max code phase offset ≤ 1/2 chip) and roughly at n=k f = 1000 Hz (max frequency residual ≤ 500 Hz). This ( ) ( ) rough synchronization can be refined during the tracking = Y · X , stage, as shown in the next section. where Y ( ) = F {y }, X ( )isthe complex conjugate To sum up, the algorithm described above is a simple of X( ) = F {x },and x is a real function. Thus, the n n and basic approach to effectively acquire GNSS signals. correlation becomes Nevertheless, it results to be a very time-consuming tech- nique, because it carries out exhaustive searches in time M−1 −1 +j2π δ/M and frequency domain. Therefore, faster algorithms based on ( ) ( ) ( ) (19) r δ = F {R }= R · e , k k k Fourier transform are typically used [5, 10, 19, 34, 87]. Like =0 the conventional serial search methods, these acquisition −1 where F {·} is the inverse Fourier transform operation. algorithms are based on correlating the incoming signal with To apply this result in the acquisition of a GPS signal, it is a local replica of the received spreading code. However, this sufficient to slightly modify (9) and to include the frequency is performed in the frequency domain instead of in the estimation. Thus, (9) becomes time domain. This implies a parallel computation of the correlation function that sensibly reduces the acquisition M+k−1 j2πf (n+δ)T i s time, since it eliminates the code phase search, as shown in r (δ) = w · e · c , (20) k n n+δ the remaining part of this section. n=k Code shift (t/Ts) International Journal of Navigation and Observation 17 Abuffer of 1 ms of signal has been selected because it ×10 corresponds to one complete period of the GPS C/A code, so it is a good trade-off between the acquisition performance Acquisition of and computational complexity. (A signal buffer length less a GPS signal (PRN09) ×10 than 1 ms involves a correlation with an incomplete code, whereas a length higher than 1 ms increases the computa- 3 tional complexity.) 4 To give an idea of the difference between the DFT acquisition algorithm and the serial search in terms of acqui- sition time, it is sufficient to compare the total number of possible acquisition tentatives. This number corresponds to the total number of combinations code phase c and Doppler ≃ 2500 1000 frequency f . Let us assume a frequency step of 1 kHz (so, ≃ 1000 Hz to compensate a Doppler from −10kHzto10kHz,21 frequency bins are needed) and 1023 different code phases: −2000 (i) in case of serial search the number of combinations is 6000 −4000 1023 · 21 = 21483, Figure 17: Time/frequency acquisition of a GPS signal. (ii) in case of DFT, all code phases are computed in parallel, so the number of combinations is equal to the number of frequency bins, that is 21. where w is the near-baseband incoming complex signal, c n n is the local replica of the received spreading sequence, and This basic observation shows that the serial search can be exp{ j2πf (n + δ)T } is a complex wave that attempts the i s very longer with respect to the DFT acquisition technique. Doppler compensation with the tentative frequency f .Thus, The reduction of the acquisition time is paid in terms from (17), we obtain of computational complexity. Indeed, the complexity of the parallel code phase search is clearly higher than the (i) y = c · exp{ j2πf (n + δ)T }, n+δ n+δ i s conventional serial search acquisition, because, for each (ii) x = w , n n acquisition tentative, it requires the computation of one DFT −1 and one DFT (the DFT of the local code can be done and, consequently, we can apply (18)and (19) to parallelize once off-line) and, consequently, more sum and product the computation of the correlation function. operations than a single correlation in the time domain. It is The DFT-based acquisition scheme is shown in Figure 18. thus apparent that the computational efficiency of the DFT This picture contains a block diagram of the parallel code acquisition algorithm depends on the implementation of the phase search algorithm [10, 19] and the algorithm is briefly DFT transformations. Thus, efficient algorithms, called FFTs summarized as follows: (fast Fourier transforms), are commonly used to calculate (a) a chunk with length 1 ms of the incoming digital sig- the DFT and its inverse, [88]. Indeed, the DFT complexity nal s is downconverted near-baseband (the output is 2 is of order O(M ), whereas the FFT complexity is O(M · w ), log (M)) [88]. Thus, the gain in terms of reduction of the (b) this sequence is Fourier-transformed and complex- computational complexity increases as M increases. conjugated (the output is X ( )), The most common FFT is the Cooley-Tukey algorithm, but some different variants of this algorithm exist. All these (c) the PRN code c (offline generated) is multiplied by n+δ methods are based on the same approach that subdivides the complex wave exp{ j2πf (n + δ)T }, i s the initial Fourier transform in a sequence of length M of (d) the result is a complex input sequence, to be Fourier- Fourier transforms which have a smaller and smaller dimen- transformed (the output is Y ( )), sion. Therefore, they require input buffers that are integer (e) the two sequences are multiplied to compute the multiples of 2 : M = 2 ,where p is an integer. More details correlation in the frequency domain (R ( ) = X ( )· k on the implementation of FFT algorithms are given in [88]. Y ( )), To conclude, we cite the results reported by [10]. Referring to a (MATLAB implemented) software receiver (f) the correlation R ( ) is transformed in the time runonaPentium 4 2.8GHz,itisshown that the serial domain (the output is r (δ)), search is about 87 times slower than the FFT acquisition (g) the maximum of the correlation amplitude, algorithm, but, of course, this last technique bears a higher max[|r (δ)| ], is compared to the threshold λ, computational complexity. (h) if the threshold is crossed, the acquisition ends and the code phase is identified by the index δ and the 4.2.2. Tracking Stage. Though mandatory for the detec- Doppler estimation is f , tion and locking of incoming GNSS signals, the rough (i) otherwise, a new f is selected and the algorithm synchronization achieved by the acquisition stage is not restarts from Step (a). sufficient to directly track the incoming signals and to allow Frequency (Hz) Correlation peak 18 International Journal of Navigation and Observation Digital downconverter I channel Correlation I-Q Fourier chan. ∗ Inverse s X (ℓ) n R (ℓ) r (δ) Analog/digital k k transform + 2 Acquisition max(·) DCO Fourier |·| front-end complex logic transform conjugate Y(ℓ) Q channel Fourier transform Tentative frequency: f Complex wave i generator @ f PRN code generator Figure 18: FFT-based acquisition algorithm. Correlation module Digital downconverter I channel Early I-Q Navigation channel ∑ ∑ Analog/digital ∑ M M 1 2 DCO 1/M () 1/M () processing unit 1 2 i=1 i=1 front-end (NPU) Q channel Costas Late FLL PLL DLL υ^ ^ ^ θ j(2π^ A iT+θ ) k k k discriminator E P L e(k) NCO 1/W () Code shifter i=1 Figure 19: Tracking stage channel of a software receiver. data processing during the navigation stage. Therefore, the received code delay and, finally, to lock the received PRN tracking stage, which follows the acquisition, must perform code. Prompt samples feed frequency and phase loops to the two important tasks listed below [5, 6, 19, 32, 33]. finely estimate carrier frequency and phase and to track their changes. This latter stream is also used to detect the GNSS (a) Refine the synchronization provided by the acquisi- data frames and to decode them for the next navigation stage. tion stage, up to a fine lock of the received signal. The algorithms used to recover and track the synchro- nisms of a GNSS signal are listed below: (b) Maintain the locking of the signal by tracking changes of its code delay and carrier frequency/phase. It is (i) a DLL refines the code phase estimation, thus then possible to exploit the entire code gain (by code allowing the received PRN sequence to be locked and despreading) to detect and decode the navigation tracked; data. (ii) a FLL is used to lock and track the carrier frequency; An example of the tracking stage implementation in a (iii) a PLL is used to lock and track the carrier phase. real-time software receiver is given in Figure 19 (see also [10, 19]). More in detail, the first part of this architecture There exists a large bibliography for these techniques and replicates the same design of the acquisition stage. The their theoretical aspects (e.g., [5, 6, 19, 29, 30, 32–34, 89– chain, made up of the BB downconverter followed by the 92]). This section proposes a practical approach, focusing on correlation module, is composed of a threefold stream of implementation aspects. The interested reader is referred to samples, named “early”(E = I + j · Q ), “prompt” the bibliography for the theoretical details. i E,i E,i (P = I + j · Q ), and “late”(L = I + j · Q ). Early All the aforementioned units have a similar structure i P,i P,i i L,i L,i and late samples are used in a timing loop to estimate the which is displayed in Figure 20.Specifically,an initial error International Journal of Navigation and Observation 19 ED Loop filter NCO Figure 20: General scheme of a D/F/PLL. 0 10 20 30 40 50 60 70 80 90 Time (s) Early |·| Figure 22: C/A code tracking (GPS PRN-30). + e(k) 1/W () i=1 Late |·| 0.16 0.14 Figure 21: DLL discriminator. 0.12 0.1 0.08 0.06 discriminator (or error detector (ED)) evaluates the offset 0.04 between the input parameter, to be assessed (e.g., code phase, 0.02 carrier frequency, etc.), and its estimation. Then, this error feeds the internal loop filter which updates the estimation of −0.02 the input figure, and, finally, the evaluated parameter is used −0.04 by an NCO (numerically controlled oscillator) or a look-up −0.06 table to generate a local wave synchronized with the received −0.08 input reference. −0.1 It is important to remark that the error, detected by −0.12 discriminator, must belong to a specific locking range −0.14 (which typically depends on the kind of discriminator) to allow the lock of the desired input parameter. This −2 −1 012 is why the acquisition stage should be designed with a Code phase error (chip) C/N synchronization accuracy compatible with the locking range 53.33 dB 45 dB Hz Hz of DLL and FLL discriminators (i.e., the maximum error 50 dB 42.5dB Hz Hz that can be recovered). For instance, in case of the DLL, 47.5dB 40 dB Hz Hz the code misalignment cannot be larger than one chip, or, equivalently, the expected code phase offset should belong to Figure 23: DLL S-curves at different C/N ratios. the locking range [−T ,+T ], where T is the chip time [29]. c c c Regarding the DLL, a very common noncoherent dis- criminator is the early-minus-late power [6, 10, 19, 58] reported below: An example of tracking of a real GPS signal is given in 2 2 e = |E | − |L | , (21) Figure 22. The picture shows the PRN-30 code tracked by the i i i software receiver illustrated in [53] (using the tracking stage where the code phase offset, e ,is the difference of the square scheme reported in Figure 19). modulus of early (E )and late (L ) samples. A block scheme To evaluate the DLL locking range, it is sufficient to i i of the DLL discriminator is given in Figure 21. This approach run an open-loop simulation that evaluates the discriminator has the advantage to guarantee a timing error that is not response at each alignment between the received PRN sensitive to the data and the carrier phase but just depends sequence and its local replica. The outcome is the S-curve on the alignment between the received PRN code and its local displayed in Figure 23 ([6, 29]). The picture shows six S- replica. Then, the assessed timing error feeds the first-order curves at different C/N ratios, and, as expected, the locking recursive filter τ = τ − γ · e to update the code phase range is about one chip in advance and late. This means that, i+1 i i estimation, τ .The γ-factor is called step-size,and its value if |e | >T , the incoming PRN code cannot be locked. i i c should be a trade-off between the rapid convergence of the The design of a first-order FLL is very similar to that algorithm and its accuracy. Finally, the estimated code delay of a DLL, but it exploits the rough frequency estimation is exploited by a code shifter to synchronize the local code output by the acquisition stage to track the carrier frequency. phase with that of the incoming sequence. Thus, the discriminator (frequency error detector (FED)) used S-curve Normalized code delay (chips) 20 International Journal of Navigation and Observation −4 −8 −12 0 10 20 30 40 50 60 70 80 90 0 10 20 30 40 50 60 70 80 90 Time (s) Time (s) Figure 26: Carrier phase tracking (GPS PRN-30). Figure 24: Carrier frequency tracking (GPS PRN-30). 0.16 −3 × 10 0.12 0.08 0.04 −0.04 −0.08 −0.12 −200 −150 −100 −50 0 50 100 150 200 −4 Phase error (deg.) −8 Figure 27: PLL S-curve (C/N = 45 dB ). 0 HZ −12 −16 The error e feeds the second-order recursive filter reported −20 i below: −1500 −1000 −500 0 500 1000 1500 Frequency error μ = μ + γ · 1+ ρ · e − γ · e , i i−1 i i−1 (24) Figure 25: FLL S-curve (C/N = 45 dB ). 0 HZ θ = θ + μ , i+1 i i where both the parameters ρ and γ are related to the loop noise bandwidth and to the damping factor (more details are to detect the frequency offset in the simple case of a BPSK in [29]). The output is the estimation of the carrier phase, θ . modulation (as GPS signals) is i The use of a second-order filter has the advantage to e = P · P , (22) support the tracking of the carrier frequency jointly with the i i−1 phase. where P is a prompt sample. Of course, the frequency offset An example of phase tracking is reported in Figure 26. feeds the recursive filter ν = ν +γ·e to update the assessed The picture shows the phase error jitters around 0 degrees i+1 i i carrier frequency, ν (γ is the step-size). Then, the NCO, fed with peaks of ±6 degrees. The S-curve is given in Figure 27. by ν , generates a wave synchronized with the received carrier When the tracking steady state is achieved, and after the frequency. Figure 24 displays an example of tracking for the received data are processed by the Viterbi algorithm for error PRN-30 carrier frequency. correction (this is the case of Galileo and SBAS data that As shown in the DLL, the FED S-curve can be obtained are encoded by convolutional codes [11, 15]), the message evaluating e at different frequency alignments [29]. An frame is detected and pseudoranges are computed. Then, example is given in Figure 25 that shows the capability to lock navigation algorithms are run to calculate user positions. frequency offsets larger than 500 Hz, which is in compliance with maximum frequency error output by the discussed 4.3. Navigation Stage. The tracking stage is followed by the acquisition scheme. navigation stage, which is in charge of running ad hoc Analogous approaches can be considered for the design algorithms to calculate the user position. This implies the of a PLL. The error detector (or phase error detector (PED)) evaluation of four unknown parameters, namely, the three in case of a BPSK signal is components of the receiver position r and the clock bias b, by solving a system of (at least) four equations (one for e = P · sgn P . i i (23) every tracked satellite). The generic equation relevant to the S-Curve Carrier frequency (Hz) S-Curve Carrier phase error (degrees) International Journal of Navigation and Observation 21 ith satellite (i = 1, 2,... , N ,with N ≥ 4) can be expressed as s s [5, 70] PRN-i Path i ρ =r − r  + c · b + ε , (25) i i u i PRN-j Path j where ρ ≈ c(T −T ) is the pseudorange or, in other words, i rx tx the coarse distance between the ith satellite and the receiver PRN-n (the reason for the use of the symbol ≈ will be clarified Path n in the following), (T − T )isthe difference between the rx tx signal reception and the transmission time, r is the satellite PRN-m Path m position, b is the clock bias, and ε is an additive error, whose origin shall be detailed hereafter. The system (25) can be solved by linearizing the equa- T T tx rx tions with a Taylor expansion around an initial approximate estimate of the user position and by using an iterative tech- Figure 28: Relative pseudoranges. nique. In general, the number of equations can be larger than four (as, usually, more than four satellites can be locked), and therefore a least-square solution of the corrections to the of view, assuming a free-space transmission, the pseudorange initial estimates shall be calculated as illustrated in [5, 19]. is simply the product of the speed of light by the difference Following this approach, the required inputs to compute between the reception time T and the transmission time rx the user position are the following: T (which is derived from the received message). In the case tx of an SDR receiver, there is no absolute time reference to evaluate the reception time, and the sampling frequency is (a) the ephemerides are sets of parameters broadcast by the satellite to all the enabled receivers, to let the only reference. Thus, the approach to be pursued consists them compute the satellite position according to the in evaluating, through a time measurement, a “relative pseudorange” which is the distance between two reference Keplerian laws [5, 6]; points. Let us consider the case of a GPS signal. At the (b) the pseudorange, indicated in (25)as ρ ,is the raw receiver side, we are interested in identifying the beginning measure of the distance from a satellite to the receiver of the frame of the message, assumed to be the reference (whereas the true satellite-receiver distance is instead instant and tagged as “subframe 1.” Apart from the satellite denoted as the range), which is affected by many error clock bias, such beginning point is actually transmitted by sources ε , such as satellite clock instability, receiver all the satellites simultaneously, since there exists a control noise, multipath, atmospheric delays, and ephemeris segment that keeps the satellite transmitters aligned. Anyway, mismodelling, that severely degrade its precision [5, the subframe 1 is received at different instants for each 6, 70]; satellite, due to the different distance between the transmitter and the receiver. Thus, by measuring the time difference (c) the pseudorange corrections (typically broadcast by the between a couple of received signals, the receiver can obtain satellite itself or by an additional augmented system, the distance difference from the two relevant satellites. A such as SBAS and LAAS) are used to compensate the pictorial representation of this approach is given in Figure 28, measurement errors, yielding finer pseudoranges to where Δ , Δ ,and Δ are the relative pseudoranges of PRN- j n m calculate a more precise user position [5, 6]. j,PRN-n,and PRN-m with respect to PRN-i.Notethat the maximum time distance between any couple of GPS Ephemerides and pseudorange corrections, together with satellites is less than 19 ms [19], as follows from constellation other essential data (e.g., transmission time, almanacs, and orbital parameters. This is much shorter than a GPS satellite health, etc.), are included in the satellite navigation subframe period, equal to 30 s [6, 7, 19]. Hence, setting a time message broadcast by each satellite. These messages are window of 20 ms at the receiver allows those simultaneously structured in subframes of binary data, each one made transmitted subframes 1 to be discriminated. of a preamble, a subframe ID, a data field, and a parity A relative pseudorange is computed by measuring the check field (for more details, see the GPS interface control time to detect the reference point (e.g., the beginning of the document,(ICD) [7]). This kind of arrangement allows subframe 1) from the input digitized data. To this aim, an a simple search and a reliable detection of the received SDR receiver must consider the following three contributes navigation subframe, by using very standard algorithms. [19]: Details on the implementation of these algorithms and on the data decoding are strictly related to the design of the (a) the initial code phase, desired navigation message and, therefore, are reported in (b) the beginning of the first navigation data, the related ICDs (see [7]for GPS, [11] for Galileo, [15]for (c) the beginning of the reference subframe 1. SBAS, and [8] for GLONASS). The approach used to compute pseudoranges turns out Thus, still adhering to the example of a GPS receiver, to be quite elaborate. Actually, from a purely theoretical point an ideal scheme of the proposed technique is sketched in 22 International Journal of Navigation and Observation ρ = (P − τ )+ N · P + M · T τ i c i i c d ··· PRN-i ··· Beginning of subframe ··· P − τ N P MT c i i c d ρ = (P − τ )+ N · P + M · T j c j j c d ··· PRN-j Beginning of subframe ··· ··· N P MT P − τ j c c j d n ρ = (P − τ )+ N · P +(M − 1) · T n c n n c d ··· PRN-n ··· ··· Beginning of subframe (M − 1)T N P n c d P − τ c n ρ = (P − τ )+ N · P +(M − 1) · T m c m m c d ··· PRN-m ··· ··· Beginning of subframe (M +1)T P − τ N P c m m c PRN-code acquisition Figure 29: Computation of relative pseudoranges. Figure 29,where P is the duration (period) of a PRN-code Coming back to the navigation stage, the overall scheme and T is the data duration. The reference point is marked is giveninFigure 30, which depicts one channel for every by a step. Thus, referring to the PRN-i ranging signal, at the tracked satellite. Each raw pseudorange is preliminarily end of the acquisition, the tracking stage finely synchronizes refined by compensating both the iono- and the tropodelays, the local code with the received one and, at the same time, the satellite clock bias, the relativistic effects, and the group provides the initial code phase τ .After N code periods, delay. Then, each corrected pseudorange is ready to be used i i the beginning of the first data field is obtained, and, finally, to compute the user position by solving the N -equation after M data intervals, the beginning of subframe 1 is found system. An example of a position error plot measured by (checking some control parameters). The same method is a GPS/EGNOS software receiver is shown in Figure 31 used to calculate the time to get the reference point of all [53]. other locked signals, and the differences with respect to the Further details can be found in the huge bibliography PRN-i yield the relative pseudoranges. This approach can addressing navigation algorithms from the subframe detec- also produce negative pseudoranges, so that any constant tion to the user position computation (e.g., [5, 6, 10, 19]). selected from 67 to 86 ms (which is the range of the time Position accuracy is traditionally measured by multiply- delay of a GPS satellite to the receiver) is further added, in ing the standard deviation of the pseudorange error σ by order to make all pseudoranges positive. a factor that is a function of the satellite geometry PDOP The initial pseudorange can be computed by using the (position dilution of precision), yielding theRMS valueof the raw synchronization provided by the acquisition stage which position error ε as [5, 6, 70] RMS measures the code phase to the sample resolution [10, 19]. This means that, for example, when f = 5.5MHz, the ε = σ · PDOP. (26) RMS ρ accuracy is about c/ f ≈ 54.5 m, whereas the accuracy becomes 7.5 m when f = 40 MHz. Of course, it is desirable High PDOPs indicate poor satellite geometry that implies to improve the initial code phase accuracy, because it has low position accuracy. The PDOP evaluation algorithm is adirect effect on the final position accuracy. This result well illustrated in [5, 6, 70]. is achieved during the tracking stage, because the initial rough estimation of the code phase is refined by the DLL unit. Indeed, the outputs of the correlation module (early 5. Conclusions and late) are used by the DLL to accurately determine the code phase residual of the incoming signal and to better In the evolution process of communication systems, the high synchronize the local replica. Consequently, the refined configurability and flexibility, together with the simplicity to estimation of the code phase can be also used to improve update/upgrade, are determining the success of the emerging the pseudorange accuracy, and the remaining measurement SDR technology. An evident example is given by the evo- noise can be significantly reduced by averaging (e.g., see lution of the GNSS scenario, in which new satellite systems Figure 21). and innovative techniquesshould coexist and cooperate with International Journal of Navigation and Observation 23 Satellite delay corrections GD SV transmission + + Δt time estimation r Δb Clock Relativistic i effects correction Δt sv ΔT i Tropospheric correction ΔI i Ionospheric correction From tracking stage Pseudorange i + computation Position, time, and Satellite velocity Satellite position ephemeris computation User position, computation velocity, and time Figure 30: Navigation stage. Position error plot (GPS + EGNOS) −2 −4 −6 −8 −10 −10 −8 −6 −4 −2 0 2 4 6 8 10 East (m) Figure 31: An example of a horizontal plot. the preexisting systems. In this context, traditional hardware (iii) software architecture (multilayer structure with the receivers are characterized by clear limitations in terms of managing, MMI, and operating layers), configurability, flexibility, and capacity to be upgraded. The (iv) front-end architecture and sampling frequency selec- SDR paradigm, supported by the increasing computational tion, power of new processors, seems to be the right answer to (v) signal processing and navigation algorithms. these limitations. The final result is a simple methodology to design and This tutorial gives an overlook to the SDR world through implement a low-cost GNSS SDR receiver. the window opened by the GNSS evolution. To this aim, the overall architecture of a basic software GNSS receiver is Future directions of research will focus on designing high-performance GNSS SDR receivers for specific applica- illustrated in all its aspects. The proposed analysis illustrates the following key issues of the SDR technology: tions, such as monitoring of positioning signals in a local area, safety of life applications, or aircraft navigation. The (i) implementation solutions (SW-controlled HW, reason lies in the huge versatility of the SDR paradigm, which hybrid HW/SW, and fully SW architectures), makes this technology very attractive for a large field of (ii) operation flow of a GNSS receiver, commercial applications. North (m) Number of points 24 International Journal of Navigation and Observation List of Acronyms SIS: Signals in space SNR: Signal-to-noise ratio ADC: Analog-to-digital converter SoL: Safety of life AGC: Automatic gain control SR: Software radio AltBOC: Alternative BOC SV: Space vehicle ASIC: Application-specific integrated circuit SW: Software AWGN: Additive white Gaussian noise TDMA: Time division multiple access BB: Baseband USB: Universal serial bus BER: Bit error rate WAAS: Wide area augmentation system. BOC: Binary offset carrier BM: Base model Acknowledgment CBOC: Composite BOC CDMA: Code division multiple access The authors wish to acknowledge the activity of the Network CEP: Circular error probability of Excellence in Wireless COMmunications NEWCOM++ COTS: Commodity off-the-shelf of the European Commission (contract no. 216715) that CNR: Code-to-noise ratio motivated this work. CPU: Central processing unit D/F/PLL: Delay/frequency/Phase-locked loop References DGPS: Differential GPS DSP: Digital signal processor [1] E. Buracchini, “Software radio concept,” IEEE Communica- E.g.: Exempli gratia tions Magazine, vol. 38, no. 9, pp. 138–143, 2000. EGNOS: European Geostationary Navigation Overlay [2] J.Mitola III and Z.Zvonar, Software Radio Technologies: System Selected Readings, IEEE Press, New York, NY, USA, 2001. FDMA: Frequency division multiple access [3] J. Mitola, “Software radio architecture,” IEEE Communications FPGA: Field programmable gate array Magazine, vol. 33, no. 5, pp. 26–38, 1995. [4] W. Tuttlebee, Software Defined Radio: Enabling Technologies, FE: Front-end John Wiley & Sons, New York, NY, USA, 2002. F/PED: Frequency/phase error detector [5] E. D. Kaplan and C. J. Hegarty, Understanding GPS: Principles FFT: Fast Fourier transform and Applications, Artech House, London, UK, 2nd edition, GBAS: Ground-based augmentation system GEO: Geostationary earth orbit [6] B.W.Parkinson and J. J. Spilker, Global Positioning Systems: GIS: Geographic information system Theory and Applications, American Institute of Aeronautics GLONASS: Global Navigation Satellite System and Astronautics, Washington, DC, USA, 1996. GNSS: Global Navigation Satellite Systems [7] NAVSTAR GPS Space Segment/Navigation User Interface, GPS: Global Positioning System ICD-GPS-200 Rev. C-005R1, ARINC Research Corporation, GSO: Geosynchronous orbit satellite El Segundo, Calif, USA, 2003. [8] “Global Navigation Satellite System Interface Control Docu- HW: Hardware ment,” GLONASS ICD v. 5.0, Moscow, Russia, 2002. ICD: Interface control document [9] G. Gibbons, “Galileo’s new era—step by step the program IF: Intermediate frequency advances,” Inside GNSS, vol. 3, no. 7, 2008. LAAS: Local Area Augmentation System [10] K. Borre, D. Akos, N. Bertelsen, P. Rinder, and S. Jensen, A LNA: Low-noise amplifier Software- Defined GPS and Galileo Receiver: A Single-Frequency L/RHCP: Left/right hand circularly polarized Approach,Birkhaau ¨ ser, Boston, Mass, USA, 2007. MBOC: Multiplexed BOC [11] “Galileo open service, Signal in space interface control doc- MEO: Medium Earth Orbit ument,” OSSIS-ICD d. 1, European Space Agency/European ML: Managing layer GNSS Supervisory Authority, Brussels, Belgium, 2008. MMI: Man-machine interface [12] G. X. Gao, A. Chen, S. Lo, D. De Lorenzo, and P. Enge, “GNSS MSAS: Multi-Functional Satellite Augmentation over China: the compass MEO satellite codes,” Inside GNSS, vol. 2, no. 5, 2007. System [13] F. Boon,F. Wilms,J.-M. Sleewaegen, and W.De Wilde, “More N-GSO: Nongeosynchronous orbit satellite compass points tracking China’s MEO satellites on a hardware NRZ: Non-return-to-zero receiver,” Inside GNSS, vol. 2, no. 5, 2007. OL: Operating layer [14] T. Grelier, J. Dantepal, A. de Latour, A. Ghion, and L. PC: Personal computer Ries, “Compass MEO satellite signals: initial observations and PDOP: Position dilution of precision analysis,” Inside GNSS, vol. 2, no. 4, 2007. PL: Power loss [15] “Minimum operational performance standards for Global PRN: Pseudorandom noise Positioning System/Wide Area Augmentation System airborne RF: Radio frequency equipment,” RTCA/DO 229C, RTCA Inc., Washington, DC, RMS: Root mean square USA, 2001. [16] O. Julien, P. Alves, M. E. Cannon, and G. Lachapelle, “Triple SA: Selective availability frequency GPS/GALILEO for ambiguity resolution,” European SBAS: Satellite-based augmentation system Journal of Navigation, vol. 2, no. 2, pp. 51–57, 2004. SDR: Software-defined radio International Journal of Navigation and Observation 25 [17] A. Smimsky, “Three’s the charm. Triple-frequency combina- [37] G. W. Hein, J.-A. Avila-Rodriguez, S. Wallner et al., “MBOC: tions in future GNSS,” Inside GNSS, vol. 1, no. 5, 2006. the new optimized spreading modulation recommended for GALILEO L1 OS and GPS L1C,” in Proceedings of the IEEE [18] M. S. Grewal, L.R.Weill, and A.P. Andrews, Global Positioning Position Location and Navigation Symposium, pp. 883–892, San Systems, Inertial Navigation, and Integration,John Wiley & Diego, Calif, USA, 2006. Sons, New York, NY, USA, 2001. [38] E. M. Wolmarans and A. J. Truter, “Software radio: implemen- [19] J. B.-Y. Tsui, Fundamentals of GPS Receivers: A Software tation aspects,” in Proceedings of the EUROCOMM,Munich, Approach, John Wiley & Sons, New York, NY, USA, 2005. Germany, 2000. [20] G. Hein, J.-H. Won, and T. Pany, “GNSS software defined [39] B. Sauriol and R. Landry, “FPGA-based architecture for high radio: real receiver or just a tool for experts?” Inside GNSS, throughput, flexible and compact real-time GNSS software vol. 1, no. 5, 2006. defined receiver,” in Proceedings of the Institute of Navigation [21] F. Macchi and M. G. Petovello, “Development of a one channel National Technical Meeting (NTM ’07), pp. 708–717, San Galileo L1 software receiver and testing using real data,” in Diego, Calif, USA, January 2007. Proceedings of the 20th International Technical Meeting of the [40] G. Bacci, M. Calamia, L. Foglia, F. Longo, and P. Mulassano, Satellite Division of the Institute of Navigation (ION GNSS ’07), “SWAN: software systems for navigation applications—an vol. 2, pp. 2256–2269, Fort Worth, Tex, USA, 2007. Italian project,” in Proceedings of the GNSS Vulnerabilities and [22] S. A. Nik and M. Petovello, “Multichannel dual frequency Solutions Conference,Baska, ˇ Croatia, 2008. GLONASS software receiver,” in Proceedings of the 21st Interna- [41] S. Peng and B. M. Ledvina, “A real-time software receiver tional Technical Meeting of the Satellite Division of the Institute for the GLONASS L1 signal,” in Proceedings of the 21st of Navigation (ION GNSS ’08), pp. 614–624, September 2008. International Technical Meeting of the Satellite Division of the [23] M. G. Petovello, C. O’Driscoll, G. Lachapelle, D. Borio, and Institute of Navigation (ION GNSS ’08), vol. 2, pp. 1152–1163, H. Murtaza, “Architecture and benefits of an advanced GNSS software receiver,” Positioning, vol. 1, no. 1, pp. 66–78, 2009. [42] J. Raasakka, H. Hurskainen, T. Paakki, and J. Nurmi, “Mod- [24] M. Fantino, A. Molino, and M. Nicola, “N-Gene: a complete eling multi-core software GNSS receiver with real time SW GPS and Galileo software suite for precise navigation,” in receiver,” in Proceedings of the 22nd International Technical Proceedings of the International Technical Meeting of the Meeting of the Satellite Division of the Institute of Navigation Satellite Division of the Institute of Navigation (ITM ’10),vol. (ION GNSS ’09), vol. 1, pp. 468–473, Savannah, Ga, USA, 2, pp. 1245–1251, San Diego, Calif, USA, 2010. [25] D. F. M. Cristaldi, D. Margaria, and L. Lo Presti, “A multi- [43] D. A. Godsoe,M. E.Kaye, and R.B.Langley, “A framework frequency low-cost architecture for GNSS software receivers,” for real-time GNSS software receiver research,” in Proceedings in Proceedings of the International Technical Meeting of the of the International Technical Meeting of the Satellite Division of Satellite Division of the Institute of Navigation (ITM ’10),vol. the Institute of Navigation (ITM ’10), vol. 2, pp. 892–905, San 2, pp. 849–857, San Diego, Calif, USA, 2010. Diego, Calif, USA, 2010. [26] C. J. Hegarty and E. Chatre, “Evolution of the global ˇ ´ [44] A. Knezevic, C. O’Driscoll, and G. Lachapelle, “Co-processor navigation satellite system (GNSS),” Proceedings of the IEEE, aiding for real-time software GNSS receivers,” in Proceedings vol. 96, no. 12, pp. 1902–1917, 2008. of the International Technical Meeting of the Satellite Division of [27] J. Bor ¨ jesson, GLONASS contributions to space geodesy,Ph.D. the Institute of Navigation (ITM ’10), vol. 2, pp. 837–848, San Diego, Calif, USA, 2010. dissertation, Chalmers University of Technology, Got ¨ eborg, Sweden, 2000. [45] S. Jeon, H. So, H. Noa, T. Lee, and C. Kee, “Development of realtime software GPS receiver using Windows Visual C++ [28] Y.-S. Huang and M.-L. Tsai, “The impact of compass/Beidou-2 and USB RF front-end,” in Proceedings of the International on future GNSS: a perspective from Asia,” in Proceedings of the Technical Meeting of the Institute of Navigation,San Diego, 21st International Technical Meeting of the Satellite Division of Calif, USA, 2010. the Institute of Navigation (ION GNSS ’08), vol. 2, pp. 675–686, Savannah, Ga, USA, 2008. [46] D. M. Akos, A software radio approach to GNSS receiver design, Ph.D. dissertation, Ohio University, Athens, Ohio, USA, 1997. [29] U. Mengali and A. N. D’Andrea, Synchronization Techniques [47] B. M. Ledvina, S. P. Powell, P. M. Kintner, and M. L. Psiaki, “A for Digital Receivers, Plenum Press, New York, NY, USA, 1997. 12-channel real-time GPS L1 software receiver,” in Proceedings [30] J. G. Proakis, Digital Communications, McGraw-Hill, New of theInstitute of Navigation National Technical Meeting (ION York, NY, USA, 4th edition, 2001. NTM ’03), Anaheim, Calif, USA, 2003. [31] G. D. Forney Jr., “The viterbi algorithm,” Proceedings of the [48] C. Ma, G. Lachapelle, and M. E. Cannon, “Implementation IEEE, vol. 61, no. 3, pp. 268–278, 1973. of a software GPS receiver,” in Proceedings of the 17th [32] M. K. Simon, J. K. Omura, R. A. Scholtz, and B. K. Levitt, International Technical Meeting of the Satellite Division of the Spread Spectrum Communications Handbook, McGraw-Hill, Institute of Navigation (ION GNSS ’04), pp. 956–970, Long New York, NY, USA, 2002. Beach, Calif, USA, 2004. [33] J. K. Holmes, Spread-Spectrum Systems for GNSS and Wireless [49] B. M. Ledvina, M. L. Psiaki, D. J.Sheinfeld,A.P. Cerruti,S. Communications, Artech House, London, UK, 2007. P. Powell, and P. M. Kintner, “A real-time GPS civilian L1/L2 [34] R. L. Pickholtz, D. L. Schilling, and L. B. Milstein, “Theory of software receiver,” in Proceedings of the 17th International spreadspectrum communications—a tutorial,” IEEE Transac- Technical Meeting of the Satellite Division of the Institute of tions on Communications, vol. 30, no. 5, pp. 855–884, 1982. Navigation (ION GNSS ’04), pp. 986–1005, Long Beach, Calif, [35] G. Gibbons, “GLONASS—a new look for the 21st century,” USA, September 2004. Inside GNSS, vol. 3, no. 4, 1982. [50] P. Rinder and N. Bertelsen, Design of a single frequency GPS [36] News Update, “China adds details to Compass (Beidou II) software receiver, M.S. thesis, Aalborg University, Aalborg, signal plans,” Inside GNSS, vol. 3, no. 6, 2008. Denmark, 2004. 26 International Journal of Navigation and Observation [51] G. MacGougan, P.-L. Normark, and C. Stahlberg, “Atti- [64] C. O’Driscoll, M. G. Petovello, and G. Lachapelle, “Software tude determination using a real-time GPS/Galileo software receiver strategies for the acquisition and re-acquisition of receiver,” in Proceedings of the ESA Workshop on Satellite weak GPS signals,” in Proceedings of the National Technical Navigation User Equipment Technologies (NAVITEC ’04), Meeting, vol. 2, pp. 843–854, San Diego, Calif, USA, 2008. Noordwijk, The Netherlands, 2004. [65] M. G. Petovello and G. Lachapelle, “Centimeter-level posi- [52] F. Principe, C.Terzi,M.Luise,and M. Casucci, “SOFT-REC: a tioning using an efficient new baseband mixing and despread- lowcost GPS receiver following the software radio paradigm,” ing method for software GNSS receivers,” Eurasip Journal on in Proceedings of the ESA Workshop on Satellite Navigation Advances in Signal Processing, vol. 2008, Article ID 194276, 12 User Equipment Technologies (NAVITEC ’04), Noordwijk, The pages, 2008. Netherlands, 2004. [66] K. Muthuraman, “Theoretical bounds and reliable C/N0 [53] G. Bacci, F. Principe, M.Luise,C.Terzi, and M. Casucci, estimation for modernized GPS signals,” in Proceedings of the “SOFTREC: a GPS real-time software receiver with EGNOS 22nd International Technical Meeting of the Satellite Division augmentation,” in Proceedings of the ESA Workshop on EGNOS of the Institute of Navigation (ION GNSS ’09),vol.6,pp. Performance and Applications, Gdynia, Poland, 2005. 3730–3740, Savannah, Ga, USA, 2009. [54] P.-L.Normark and C.Stahlb ˚ erg, “Hybrid GPS/Galileo real [67] K. Muthuraman, D. Borio, R. Klukas, and G. Lachapelle, time software receiver,” in Proceedings of the 18th International “Adaptive data/pilot carrier phase tracking for modernized Technical Meeting of the Satellite Division of The Institute of GNSS signals,” in Proceedings of the 22nd International Navigation (ION GNSS ’05), vol. 2005, pp. 1906–1913, Long Technical Meeting of the Satellite Division of the Institute of Beach, Calif, USA, 2005. Navigation (ION GNSS ’10), San Diego, Calif, USA, 2010. [55] P. Crosta, G.A.Vecchione,and L. Marradi, “A real-time [68] P. B. Kenington, RF and Baseband Techniques for Software GALILEO/GPS L1 software receiver,” in Proceedings of the ESA Defined Radio, Artech House, London, UK, 2005. Workshop on Satellite Navigation User Equipment Technologies [69] D. M. Akos and J. B. Y. Tsui, “Design and implementation of a (NAVITEC ’06), Noordwijk, The Netherlands, 2006. direct digitization GPS receiver front end,” IEEE Transactions [56] A. Di Cintio,O.Montenbruck,L.L. Presti, R. Lesca, and E. on Microwave Theory and Techniques, vol. 44, no. 12, pp. Guyader, “The GREHDA project: Galileo software receiver for 2334–2339, 1996. high dynamic applications,” in Proceedings of the 20th Interna- [70] P. Misra, B. P. Burke, and M. M. Pratt, “GPS performance in tional Technical Meeting of the Satellite Division of The Institute navigation,” Proceedings of the IEEE, vol. 87, no. 1, pp. 65–85, of Navigation (ION GNSS ’07), vol. 2, pp. 2376–2387, 2007. [57] M. S. Braasch and A. J. Van Dierendonck, “GPS receiver [71] J. M. Kelly and M. S. Braasch, “Validation of theoretical GPS architectures and measurements,” Proceedings of the IEEE,vol. multipath bias characteristics,” in Proceedings of the IEEE 87, no. 1, pp. 48–64, 1999. Aerospace Conference, pp. 31317–31325, Big Sky, Mont, USA, [58] P. Fenton,B.Falkenberg, T. Ford, K.Ng, and A.J.V. March 2001. Dierendonck, “Novatel’s GPS receiver the high performance [72] M. S. Braasch, “Performance comparison of multipath miti- OEM sensor of the future,” in Proceedings of the International gating receiver architectures,” in Proceedings of the IEEE Technical Meeting of the Satellite Division of the Institute of Aerospace Conference, pp. 31309–31315, Big Sky, Mont, USA, Navigation (ION GNSS ’91), Albuquerque, NM, USA, 1991. March 2001. [59] L. Dong, C. Ma, and G. Lachapelle, “Implementation and [73] J. M. Kelly, M. S. Braasch, and M. F. DiBenedetto, “Characteri- verification of a software-based if GPS signal simulator,” in zation of the effects of high multipath phase rates in GPS,” Proceedings of the Institute of Navigation National Meeting GPS Solutions, vol. 7, no. 1, 2003. (NTM ’04), pp. 378–389, San Diego, Calif, USA, January 2004. [74] Novatel website, L1/L2 Antennas, http://www.novatel.com/ [60] B. M. Ledvina, M. L. Psiaki, T.E.Humphreys,S. P. Powell, Documents/Papers/L1L2antennas.pdf. and P. M. Kintner, “A real-time software receiver for the GPS [75] F. Piazza and Q. Huang, “A 1.57-GHz RF front-end for triple and Galileo L1 signals,” in Proceedings of the 19th International conversion GPS receiver,” IEEE Journal of Solid-State Circuits, Technical Meeting of the Satellite Division of the Institute of vol. 33, no. 2, pp. 202–209, 1998. Navigation (ION GNSS ’06), pp. 2321–2333, Fort Worth, Tex, [76] A. Gersho, “Principles of quantization,” IEEE Transactions on USA, September 2006. Circuits and Systems, vol. 25, no. 7, pp. 427–436, 1978. [61] E. Vinande and D. Akos, “Improvements to “a software- [77] C. J. Hegarty, “Analytical model for GNSS receiver implemen- defined GPS and Galileo receiver: Single-frequency tation losses,” in Proceedings of the 22nd International Technical approach”,” in Proceedings of the 20th International Technical Meeting of the Satellite Division of the Institute of Navigation Meeting of the Satellite Division of The Institute of Navigation (ION GNSS ’09), vol. 6, pp. 3205–3218, Savannah, Ga, USA, (ION GNSS ’07), vol. 2, pp. 2230–2236, Fort Worth, Tex, USA, [62] M. Anghileri, T. Pany,D.S.Gui ¨ xens et al., “Performance [78] F. Bastide, D. Akos, C. Macabiau, and B. Roturier, “Automatic gain control (AGC) as an interference assessment tool,” in evaluation of a multi-frequency GPS/Galileo/SBAS software Proceedings of the 16th International Technical Meeting of receiver,” in Proceedings of the 20th International Technical the Satellite Division of The Institute of Navigation (ION Meeting of the Satellite Division of The Institute of Navigation GPS/GNSS ’03), Portland, Ore, USA, 2003. (ION GNSS ’07), pp. 2749–2761, Fort Worth, Tex, USA, [79] R. G. Vaughan, N. L. Scott, and D. R. White, “The theory of September 2007. [63] A. Di Cintio,O.Montenbruck,L.L. Presti, R. Lesca, and E. bandpass sampling,” IEEE Transactions on Signal Processing, vol. 39, no. 9, pp. 1973–1984, 1991. Guyader, “The GREHDA project: Galileo software receiver for high dynamic applications,” in Proceedings of the 20th [80] A. Polydoros and C. L. Weber, “A unified approach to serial International Technical Meeting of the Satellite Division of The search spread-spectrum code acquisition—part I: general Institute of Navigation (ION GNSS ’07), vol. 2, pp. 2376–2387, theory,” IEEE Transactions on Communications, vol. 32, no. 5, Fort Worth, Tex, USA, 2007. pp. 542–549, 1984. International Journal of Navigation and Observation 27 [81] A. Polydoros and C. L. Weber, “A unified approach to serial search spread-spectrum code acquisition—part II: a matched filter receiver,” IEEE Transactions on Communications, vol. 32, no. 5, pp. 550–560, 1984. [82] S. S. Rappaport and D. M. Grieco, “Spread-spectrum signal acquisiton: methods and technology,” IEEE Communications Magazine, vol. 22, no. 6, pp. 6–21, 1984. [83] C. J. Kim and H. J. Lee, “Adaptive acquisition of PN sequences for dsss communications,” IEEE Transactions on Communications, vol. 46, no. 8, pp. 993–996, 1998. [84] S. G. Glisic, “Automatic decision threshold level control (ADTLC) in direct-sequence spread-spectrum systems based on matched filtering,” IEEE Transactions on Communications, vol. 36, no. 4, pp. 519–527, 1988. [85] S. Chung, “New serial search acquisition approach with automatic decision threshold control,” in Proceedings of the IEEE 45th Vehicular Technology Conference, pp. 530–536, Chicago, Ill, USA, July 1995. [86] W. Zhuang, “Noncoherent hybrid parallel PN code acquisition for CDMA mobile communications,” IEEE Transactions on Vehicular Technology, vol. 45, no. 4, pp. 643–656, 1996. [87] R. A. Scholtz, “Multiple access with time-hopping impulse modulation,” in Proceedings of the IEEE Military Communications Conference (MILCOM ’93), pp. 447–450, Boston, Mass, USA, 1993. [88] A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, Englewood Cliffs, NJ, USA, 1999. [89] R. De Gaudenzi,M.Luise,and R. Viola, “Digital chip timing recovery loop for band-limited direct sequence spread- spectrum signals,” IEEE Transactions on Communications,vol. 41, no. 11, pp. 1760–1769, 1993. [90] F. Gardner, Phaselock Techniques, John Wiley & Sons, New York, NY, USA, 3rd edition, 2005. [91] A. N. D’Andrea, U. Mengali, and R. Reggiannini, “Modified Cramer-Rao bound and its application to synchronization problems,” IEEE Transactions on Communications, vol. 42, no. 2, pp. 1391–1399, 1994. [92] G. C. Hsieh and J. C. Hung, “Phase-locked loop techniques—a survey,” IEEE Transactions on Industrial Electronics, vol. 43, no. 6, pp. 609–615, 1996. International Journal of Rotating Machinery International Journal of Journal of The Scientific Journal of Distributed Engineering World Journal Sensors Sensor Networks Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 Volume 2014 Journal of Control Science and Engineering Advances in Civil Engineering Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 Submit your manuscripts at http://www.hindawi.com Journal of Journal of Electrical and Computer Robotics Engineering Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 VLSI Design Advances in OptoElectronics International Journal of Modelling & Aerospace International Journal of Simulation Navigation and in Engineering Engineering Observation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2010 Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com http://www.hindawi.com Volume 2014 International Journal of Active and Passive International Journal of Antennas and Advances in Chemical Engineering Propagation Electronic Components Shock and Vibration Acoustics and Vibration Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014

Journal

International Journal of Navigation and ObservationHindawi Publishing Corporation

Published: May 26, 2011

References