Software Accelerated GNSS Receiver (Anisha, MSGNSS15)
Software Accelerated GNSS Receiver (Anisha, MSGNSS15)
Software Accelerated GNSS Receiver (Anisha, MSGNSS15)
Systems
MS GNSS15
2017
This page is intentionally left blank
i|Page
Ecole National de lAviation Civile
MS GNSS
Software Accelerated GNSS Receiver
Dissertation By:
ANANTH XAVIER CECILI Anisha
Supervised By:
Laurent BORGAGNI
Oliver JULIEN
ii | P a g e
This page is intentionally left blank
iii | P a g e
Acknowledgement
I would like to express my gratitude to Spectracom, Les Ulis for providing me the opportunity to
work with them on this project, this period has been very helpful for me to learn and evolve
professionally.
I would like to extend my special thanks to my mentor Laurent BORGAGNI, SPECTRACOM. His
support, insight and advice helped me to learn more creative approaches in solving the task assigned
and develop professionally.
I would like to thank my tutor Oliver JULIEN, ENAC. His timely encouragement and assistance had
helped me to progress successfully with my task. His guidance, aided me in tackling the challenges in
this task.
I would like to extend my special thanks to Herve Echelard (SPECTRACOM), for providing the
information with regard to the hardware setup of this project. Jeremy Mathon (SPECTRACOM), who
has helped with logical approach necessary for this project and Joffrey Tuyant (SPECTRACOM), who
helped gain the information that aided for the configuration of the RF front end designed in this project.
Special thanks to all my colleagues at Spectracom and my family who supported me during this
endeavor.
i|Page
This page is intentionally left blank
ii | P a g e
Abstract
Global Navigation Satellite System (GNSS) Receivers are the user interface to the GNSS
constellations. They process the signal transmitted by the satellites. The information provided by the
receivers can be modified based on the area of application, this research will be focus on retrieving the
receivers position (navigation solution). The work will be structured in 4 main stages. In the first stage
of this work, we will focus on defining the parameters needed for the acceleration of the MAX2769C
evaluation kit which would consist of MAX2769C (a universal GNSS receiver) and INTF3000
(designed to facilitate the interfacing of Maxims evaluation kit (EV) boards to any personal computer
(PC) through the USB port) and the proposed design of the RF front-end. In the second stage, we deal
with building a RF front-end for the GNSS receiver using MAX2769 evaluation kit and sketchboard
(Spectracom hardware / firmware), which would be interacting with laptop through a universal serial
bus (USB) cable and a personal computer through a local ethernet connection. The GUI in the laptop
will help to configure the registers in the MAX 2769C evaluation kit using the configurations discussed
in the previous stage. The personal computer would contain the tool (TShark) needed to receive and
record the data. The third stage deals with data collection using the RF front-end built in the previous
stage and processing the data using SoftGNSS v3.0 (a free MATLAB tool for GPS software receiver)
updated with few more capabilities such as alternative acquisition algorithm, carrier to noise ratio
estimator, ionospheric correction to retrieve the receivers navigation solution. In the fourth stage, we
will discuss the technique to generate a VHDL or Verilog code for the SoftGNSS v3.0 MATLAB code,
this will be performed using the HDL Coder provided in MATLAB. A design under test MATLAB
function and test bench script will be scripted for the SoftGNSS tool. A partial code implementation is
performed. The future work will be to complete the VHDL code generation using the HDL coder and
modify the generated VHDL or Verilog script to implement it on the sketchboard (used previously for
data collection) which is a Spectracom hardware / firmware; The conclusive chapter of this study will
be a summary of all the results obtained that may contribute to the receivers navigation solution, the
work carried out during the study and the goals achieved.
Keywords: GNSS, MAX2769C evaluation kit, Software Accelerated Receiver, HDL coder,
VHDL/ Verilog.
iii | P a g e
This page is intentionally left blank
iv | P a g e
Table of Contents
Acknowledgement .................................................................................................................................... i
Abstract ...................................................................................................................................................iii
List of Figures ......................................................................................................................................... ix
List of Acronyms ................................................................................................................................... xiii
List of Symbols ...................................................................................................................................... xv
Introduction ............................................................................................................................................. 1
1 Internship Overview ........................................................................................................................ 3
1.1 Subject of The Internship ........................................................................................................ 3
1.2 Objective ................................................................................................................................. 3
1.3 Previous Study......................................................................................................................... 4
1.4 Solution Proposed.................................................................................................................... 4
1.5 Stage of Project ....................................................................................................................... 4
1.5.1 Initial Objective ............................................................................................................... 4
1.5.2 Report Structure .............................................................................................................. 4
1.5.3 Final State ........................................................................................................................ 5
2 RF Front-end Design and Configuration ......................................................................................... 7
2.1 Introduction ............................................................................................................................. 7
2.2 MAX2769C and INTF3000 .................................................................................................... 8
2.3 Integrated active antenna sensor............................................................................................ 15
2.3.1 Theory ........................................................................................................................... 15
2.3.2 Setting for Configuration............................................................................................... 16
2.4 Low Noise Amplifier (LNA) ................................................................................................. 16
2.4.1 Theory ........................................................................................................................... 16
2.4.2 Setting for Configuration............................................................................................... 16
2.5 Mixer ..................................................................................................................................... 17
2.5.1 Theory ........................................................................................................................... 17
2.5.2 Setting for Configuration............................................................................................... 18
2.6 IF filter................................................................................................................................... 18
2.6.1 Theory ........................................................................................................................... 18
2.6.2 Understanding IF-Filter Center Frequency and Bandwidth: ......................................... 19
2.6.3 Setting for Configuration............................................................................................... 21
2.7 Programmable Gain Amplifier (PGA) .................................................................................. 22
2.7.1 Theory ........................................................................................................................... 22
2.7.2 Setting for Configuration............................................................................................... 22
v|Page
2.8 Automatic Gain Control (AGC) ............................................................................................ 23
2.8.1 Theory ........................................................................................................................... 23
2.8.2 Setting for Configuration............................................................................................... 24
2.9 Synthesizer ............................................................................................................................ 25
2.9.1 Theory ........................................................................................................................... 25
2.9.2 Settings for Configuration ............................................................................................. 27
2.10 Crystal Oscillator ................................................................................................................... 28
2.10.1 Theory ........................................................................................................................... 28
2.10.2 Setting for The Configuration ....................................................................................... 28
2.11 Analog to Digital Convertor (ADC) ...................................................................................... 28
2.11.1 Theory ........................................................................................................................... 28
2.11.2 Setting for Configuration............................................................................................... 30
2.12 Conclusion ............................................................................................................................. 31
3 Assembly and Processing .............................................................................................................. 32
3.1 Introduction ........................................................................................................................... 32
3.2 Radio Frequency Front-end ................................................................................................... 32
3.3 MAX2769C Evaluation Kit and INTF3000 Setup ................................................................ 33
3.4 MAX2769C Evaluation Kit and Sketchboard Setup ............................................................. 34
3.5 Conclusion ............................................................................................................................. 37
4 Data Collection Using the RF Front End and Post Processing...................................................... 38
4.1 Introduction ........................................................................................................................... 38
4.2 Software processing .............................................................................................................. 39
4.2.1 Introduction ................................................................................................................... 39
4.2.2 SoftGNSS ...................................................................................................................... 40
4.3 Parameters and Processing Flow ........................................................................................... 40
4.4 Processing Flow .................................................................................................................... 41
4.4.1 Introduction ................................................................................................................... 41
4.4.2 Acquisition .................................................................................................................... 43
4.4.3 Tracking......................................................................................................................... 46
4.4.4 C/N0 Estimator............................................................................................................... 48
4.4.5 Data Decoding and Position Solution............................................................................ 49
4.4.6 Position solution output ................................................................................................. 56
4.5 Test ........................................................................................................................................ 57
4.5.1 Introduction ................................................................................................................... 57
4.5.2 GSG-5 GNSS Signal Generator and System Generator ................................................ 57
4.5.3 Test scenario .................................................................................................................. 58
vi | P a g e
4.5.4 Conclusion of the test .................................................................................................... 63
4.6 Conclusion ............................................................................................................................. 63
5 VHDL Generation ......................................................................................................................... 64
5.1 Introduction ........................................................................................................................... 64
5.2 MATLAB to VHDL conversion ........................................................................................... 64
5.2.1 Test bench...................................................................................................................... 64
5.2.2 Design under test (DUT) ............................................................................................... 65
5.2.3 HDL coder ..................................................................................................................... 65
5.3 Conclusion ............................................................................................................................. 72
6 Conclusion ..................................................................................................................................... 73
7 Reference ....................................................................................................................................... 74
8 Annexes ............................................................................................................................................ i
8.1 Annexes 1 ................................................................................................................................. i
8.2 Annexes 2 ................................................................................................................................ iv
vii | P a g e
This page is intentionally left blank
viii | P a g e
List of Figures
Figure 2-1 Block Diagram of The Proposed Design for The RF Front-End ______________________________ 8
Figure 2-2 MAX 2769C Pin Configuration _______________________________________________________ 9
Figure 2-3 Configuration Register 1 ____________________________________________________________ 10
Figure 2-4 Configuration Register 2 ____________________________________________________________ 10
Figure 2-5 Configuration Register 3 ____________________________________________________________ 11
Figure 2-6 PLL Configuration Register _________________________________________________________ 11
Figure 2-7 PLL Division Ratio Register _________________________________________________________ 12
Figure 2-8 PLL Fraction Division Register ______________________________________________________ 12
Figure 2-9 Stream Interface Register ___________________________________________________________ 13
Figure 2-10 Fractional Clock Division Register ___________________________________________________ 13
Figure 2-11 Test Register 1 ___________________________________________________________________ 14
Figure 2-12 Test Register 2 ___________________________________________________________________ 14
Figure 2-13 GUI For Entry Configuration _______________________________________________________ 15
Figure 2-14 LNA selection in GUI _____________________________________________________________ 17
Figure 2-15 Mixer Filter Pole Selection in GUI ___________________________________________________ 18
Figure 2-16 Inter mediate Frequency Filter Configuration in the GUI _________________________________ 21
Figure 2-17 AGC Gain Configuration __________________________________________________________ 22
Figure 2-18 Configuration Register 3 in GUI _____________________________________________________ 23
Figure 2-19 Automatic Gain Control Configuration in GUI _________________________________________ 24
Figure 2-20 Configuration Register 2 in GUI _____________________________________________________ 25
Figure 2-21 PLL Division Ratio Register in GUI__________________________________________________ 26
Figure 2-22 PLL Fraction Division Ratio Register in GUI __________________________________________ 26
Figure 2-23 Synthesizer Configuration in GUI ___________________________________________________ 27
Figure 2-24 ADC and Output Driver Configuration in GUI _________________________________________ 30
Figure 2-25 Configuration Register 2 in GUI _____________________________________________________ 31
Figure 3-1 MAX2769C and INTF3000 Setup ____________________________________________________ 33
Figure 3-2 MAX2769C Evaluation Kit and Sketchboard Interface ____________________________________ 35
Figure 3-3 RF Front-end Assembly for Data Collection ____________________________________________ 36
Figure 4-1 Software Accelerated GNSS Receiver Partial Implementation ______________________________ 39
Figure 4-2 Time Domain Representation of The Data Probed ________________________________________ 41
Figure 4-3 Frequency Domain Representation of The Data Probed ___________________________________ 42
Figure 4-4 Histogram Representation of The Data Probed __________________________________________ 42
Figure 4-5 Acquisition Output ________________________________________________________________ 44
Figure 4-6 Acquisition Code Output ____________________________________________________________ 45
Figure 4-7 Tracking Result ___________________________________________________________________ 47
Figure 4-8 Subframe 4 Page 18 ________________________________________________________________ 51
Figure 4-9 Position in UTM System ____________________________________________________________ 57
ix | P a g e
Figure 4-10 Sky Plot ________________________________________________________________________ 57
Figure 4-11 Acquisition Output _______________________________________________________________ 59
Figure 4-12 PRN9 Channel 1 _________________________________________________________________ 59
Figure 4-13 PRN 7 Channel 2 _________________________________________________________________ 60
Figure 4-14 PRN 2 Channel 3 _________________________________________________________________ 60
Figure 4-15 PRN 30 Channel 4 ________________________________________________________________ 60
Figure 4-16 PRN 6 Channel 5 _________________________________________________________________ 61
Figure 4-17 PRN 1 Channel 6 _________________________________________________________________ 61
Figure 4-18 PRN 25 Channel 7 ________________________________________________________________ 62
Figure 4-19 PRN 4 Channel 8 _________________________________________________________________ 62
Figure 4-20 Navigation Solution _______________________________________________________________ 62
Figure 5-1 HDL Coder ______________________________________________________________________ 65
Figure 5-2 Workflow Advisorfor HDL Code Generation ___________________________________________ 66
Figure 5-3 Input Types Definition _____________________________________________________________ 66
Figure 5-4 Fixed Points Conversion (a) _________________________________________________________ 67
Figure 5-5 Fixed Point Conversion (b) __________________________________________________________ 68
Figure 5-6 Select Code Generation Target _______________________________________________________ 68
Figure 5-7 HDL Code Generation______________________________________________________________ 69
Figure 5-8 Code Generation Target ALTERA QUARTUS II ________________________________________ 70
Figure 5-9 HDL Code Generation Based on The Target ____________________________________________ 71
Figure 5-10 VHDL Code Verification __________________________________________________________ 72
Figure 8-1 Channel 1 __________________________________________________________________________i
Figure 8-2 Channel 2 __________________________________________________________________________i
Figure 8-3 Channel 3 _________________________________________________________________________ ii
Figure 8-4 Channel 4 _________________________________________________________________________ ii
Figure 8-5 Channel 5 _________________________________________________________________________ ii
Figure 8-6 Channel 6 _________________________________________________________________________ iii
Figure 8-7 Channel 7 _________________________________________________________________________ iii
Figure 8-8 Channel 8 _________________________________________________________________________ iii
x|Page
List of Tables
Table 2-1 Antenna Bias......................................................................................................................................... 16
Table 2-2 LNA Mode Selection ............................................................................................................................ 17
Table 2-3 Center Frequency Configuration .......................................................................................................... 19
Table 2-4 Frequency Bandwidth Configuration for 3dB Bandwidth .................................................................... 19
Table 2-5 Intermediate Frequency Filter Mode Configuration ............................................................................. 20
Table 2-6 Intermediate Frequency Filter Order Configuration ............................................................................. 20
Table 2-7 Frequency Bandwidth Configuration .................................................................................................... 20
Table 2-8 Intermediate frequency Center Configuration for Sampling Frequency Configuration ....................... 21
Table 2-9 AGC Gain Configuration ...................................................................................................................... 22
Table 2-10 Magnitude Bit Density Reference Configuration ............................................................................... 23
Table 2-11 Reference Divider Configuration ........................................................................................................ 28
Table 2-12 Output Driven Configuration .............................................................................................................. 29
Table 2-13 ADC Output Data Format Configuration............................................................................................ 29
Table 2-14 In-phase Quadrature Channel Configuration ...................................................................................... 29
Table 2-15 ADC Output Bit Configuration ........................................................................................................... 30
Table 4-1 Acquisition Output................................................................................................................................ 45
Table 4-2 Acquisition Code Output ...................................................................................................................... 46
Table 4-3 Carrier to Noise Ratio ........................................................................................................................... 49
Table 4-4 Ionosphere Parameters .......................................................................................................................... 50
Table 4-5 UTC Parameters.................................................................................................................................... 55
Table 8-1 Ephemeris Parameters .............................................................................................................................v
Table 8-2 Satellite Clock And Health Data ............................................................................................................. vi
xi | P a g e
This page is intentionally left blank
xii | P a g e
List of Acronyms
ADC Analog to Digital Converter
AGC Automatic Gain Control
AGC Automatic Gain Control
BPSK Binary Phase Shift Keying
C/A Coarse Acquisition
C/N0 Carrier to Noise Ratio
CDMA Code Division Multiple Access
CMOS Complementary Metal Oxide Semiconductor
COTS Commercial Off-The-Shelf
DFT Discrete Fourier Transform
DLL Delay Lock Loop
DUT Design Under Test
FBW Frequency Bandwidth
FCEN Center Frequency of The IF Filter
FFT Fast Fourier Transform
FPGA Field Programmable Gate Array
GNSS Global Navigation Satellite System
GPS Global Positioning System
GUI Graphical User Interface
HDL Hardware Description Language
I Inphase component
IF Intermediate Frequency
IFFT Inverse Fast Fourier Transform
IS Interface Specification
LNA Low Noise Amplifier
LO Local Oscillator
NBP Narrow Band Power
NCO Numerical Control Oscillator
PGA Programmable Gain Amplifier
PLL Phase Lock Loop
PRM Power Ratio Method
Q Quadrature component
R&D Research & Development
RDIV Reference Divider
RF Radio Frequency
xiii | P a g e
RF Radio Frequency
SOC_RF System on Chip
SS Space Segment
SWAP Size Weight and Power
US User Segment
USB Universal Serial Bus
UTC Universal Coordinated Time
VCO Voltage Control Oscillator
VGA Video Graphics Array
VHDL Very High Speed Integrated Circuit Hardware
Description Language
WBP Wide Band Power
xiv | P a g e
List of Symbols
Normalized Power
Ionospheric Model
0 , 1 , 2 ,3 , 0 , 1 , 2 , 3 Ionospheric Parameters
E Elevation angle between the user and the satellite in semi-circles.
A Azimuth angle between the user and the satellite, measured clockwise
positive from the true North in semi-circles.
Users geodetic latitude in semi-circles WGS-84
Users geodetic longitude in semi-circles WGS-84
F Obliquity factor (dimensionless).
t Local time (seconds).
Geomagnetic latitude of the earth projection of the ionospheric
intersection point (mean ionospheric height assumed 350 km).
Geodetic longitude of the earth projection of the ionospheric
intersection point in semi-circles.
Geodetic latitude of the earth projection of the ionospheric
intersection point in semi-circles.
Earths central angle between the user position and the earth
projection of the ionospheric intersection point in semi-circles.
Delta time due to leap seconds
0 1 Constants and first order terms of polynomial
Reference time for UTC data
Current week number (can be extracted from the subframe 1)
xv | P a g e
This page is intentionally left blank
xvi | P a g e
Introduction
Global Navigation Satellite System (GNSS) receiver is generally an electronic component that
is used to receive, digitalize and process the signal using, specific configurations implemented in the
internal electronic components to retrieve the data from the GNSS satellite constellations and to provide
the user with the position, velocity and time of the receiver. This research provides a description of the
procedure to build a RF front-end (to collect GNSS signal), process the data and transfer from a software
processing of the receiver s task to the hardware implementation of the software processing, also known
as the software acceleration of the GNSS receiver. In this research, we will only be dealing with GPS
L1 bands C/A Code signal. The main idea behind the initial acceleration would be to build a RF front-
end and accelerate it. Then test the data using a software program and provide a solution for the
acceleration of the program.
The chapter one Internship Overview of this documentation, will provide the reader with the
idea behind the discussion and approach of each chapter in this work. It also helps to bridge the gap
between each stage of implementation involved in this project as, it describes the subject of the work,
the objectives to be met, the solution proposed for the work and the detailed stages of this project.
The second chapter RF Front-end Design and Configuration provides the detailed
explanation to the parameters necessary for configuring the RF front-end. The RF front-end will be
configured to receive the GPS L1 band signals (1575.42MHz), it has been widely used for the navigation
purpose apart from the other application of this band. So, the parameters used to design the RF front-
end needs to be configured keeping the characteristics of the signal to be received in mind. The
Intermediate Frequency (IF) at the receiver, the center frequency of the IF filter, tuning the synthesizer
and settings of the Analog to Digital Convertor (ADC) plays a significant role in determining and
receiving the desired signal from the RF front-end; these settings are explained, the reason for choosing
the values and the way to set them on MAX2769C evaluation kit are explained in this chapter.
The chapter three Assembly and Processing explains the way to piece together a RF front-
end using the MAX2769C evaluation kit provided by Maxim Integrated, Sketchboard provided by
Spectracom used to provide an interface between MAX2769C evaluation kit and the peripherals used
to collect the GPS signal, a laptop and a Personal Computer (PC).
The chapter four Data Collection Using the RF Front End and Post Processing deals with
the processing of the data collected using the RF front-end designed in the previous chapter. The
processing of the data was done using SoftGNSS v3.0 an open source MATLAB code. In this chapter,
we discuss, the transition from the parameters configured (explained in chapter two) in the proposed
design of RF front-end to the software initialization. This chapter also briefly explains the working of
1|Page
the algorithm for navigation solution of the receiver and retrieval of the receiver position (which is the
main aim of our GPS receiver).
The chapter five VHDL Generation provides an insight on one way to implement the post -
processing of the GNSS data using a receiver that in future would be designed for the Spectracom
hardware/firmware. We would discuss the steps necessary for the implementation, the way the existing
programming tool could be modified, the progress of the work and the conversion performed on a small
segment of the code. The future work would be to achieve the complete conversion and acceleration.
The concluding chapter provides the summary of the work during the internship. It explains the
link between each task and the way this work may serve as a starting point to further research.
2|Page
1 Internship Overview
Over the past decade there has been wide range of study both in the academic sectors and the
industrial sectors, on how to use the intermediate frequency (IF) of the GNSS data for the purpose of
post-processing (to obtain navigation fix and position). In this research, we would explore how to receive
the GNSS data, record it and perform analysis on it, which may provide to be useful for a wide range of
applications.
On a global view GNSS signals comprises of GPS, GALILEO, GLONASS and BEIDOU. This
project would describe the steps necessary to design a radio frequency (RF) front-end for the GPS L1
C/A signals and design a program to implement it on the sketchboard (partial implementation currently),
which is a hardware/firmware designed by Spectracom.
The subject of the internship will be to develop a mock of a software accelerated GNSS receiver
running on the Spectracom hardware SOC FPGA platform.
Define what exact signal processing functions needs to be accelerated in order to achieve real
time computation of the GNSS signals (configuring the parameters for data collection).
Find a solution to perform the necessary accelerations (any existing component needed to build
a RF front-end).
Find a COTS SOC_RF board (Commercial Off-The-Shelf system on chip radio frequency) that
will perform the GNSS signal acquisition and will be connected to Spectracom Hardware.
Develop and implement the complete GNSS software and acceleration algorithms onto the
Spectracom Hardware and Firmware. Make a mock of a complete solution working.
1.2 Objective
During the course of the work the objective or the subject of the internship was modified into the
following task that would provide the way to build a Global Positioning System (GPS) receiver:
Study the literature about how to perform different processing steps especially acquisition
and tracking. Recheck the code phase and delay acquired using a complementary algorithm.
3|Page
Add C/N0 (carrier-to-noise ratio) estimator to the existing code.
Add decoding of the subframe 4 and 5 (optional).
Suggest a way to implement these methods in the current MATLAB code for the receiver
using MAX 2769C as the RF front-end.
Support Spectracom engineers in implementing the acceleration methods in the receiver mock
(comprising of RF front end and the MATLAB code running on a laptop), if time permits.
Explain the transmission and reception of the GNSS receivers and document the details.
To read, understand and reproduce the work Are there low - cost and low - weight options
for IF storage? by Mark PETOVELLO, Daniel OLESEN, Jakob JAKOBSEN, Per
KNUDSEN.
The first stage of the project was to propose a Commercial Off-The-Shelf (COTS) Multi-
core System-on-Chip (SoC) RF board that will perform the GNSS signal acquisition. So,
with refence to the article by (Mark PETOVELLO, 2016) MAX2769C will be used to
build the RF front-end.
Since the VHDL code generation is only partially done the generic implementation will be the future
task to be performed / continued in near future.
5|Page
This page is intentionally left blank
6|Page
2 RF Front-end Design and Configuration
The aim of this chapter is to describe the parameters required to begin the signal acceleration using
the components chosen for building the RF front-end. This chapter will provide a detailed description
of the settings in the MAX2769C required for the acceleration of the MAX276C chip for the receiver.
2.1 Introduction
The RF front-end will be configured to receive the GPS L1 band signals (1575.42MHz), it has
been widely used for the navigation purpose apart from the other application of this band. This band
comprises of the signals: the GPS L1 C/A Code, GPS L1 P(Y) Code and the GPS L1 M- Code. The new
civil signal L1C will be available with the first Block III launch, tentatively scheduled for the first half
of fiscal year 2017. The Coarse /Acquisition (C/A) code signal is currently used of mass market
applications. The Pseudo Random Noise sequence (PRN) for C/A code of satellite vehicle (SV) IDs, is
a Gold code of 1 millisecond in length at a chipping rate of 1.023Mbps. This gold code sequence is a
linear pattern generated by the modulo-2 addition of two subsequences. These two subsequences are
1023 chip long linear pattern. The L1 C/A code uses the Code Division Multiple Access (CDMA). It
only comprises of the data component and uses Binary Phase Shift Keying (BPSK) modulation scheme.
The code frequency of this signal is 1.023MHz, with a PRN code length of 1023 at a data rate of
50bps/50sps. (ESA, 2011) (European Space Agency, Generic Receiver Description, 2011).
The RF front-end in this research should be built keeping in mind the properties of the signal to
be collected (that is the reason behind the previous paragraph). The proposed design consists of an GNSS
antenna mounted on the roof top of the SPECTRACOM - Les Ulis, which is connected to the R&D tech
bench where we had assembled a setup using MAX2769C by MAXIM integrated, sketchboard by
SPECTRACOM, connect to a laptop and a personal computer refer Figure 2-1 Block Diagram of The
Proposed Design for The RF Front-End.
The MAX2769C is a GNSS universal receiver covering L1/E1, B1, G1 bands for GPS, Galileo,
BeiDou and GLONASS satellite systems on a single chip. Incorporated on this chip is a complete
receiver chain which consists of a Low Noise Amplifier (LNA) with dual input, mixer, image rejection
filter, programmable gain amplifier (PGA) and a multibit analog to digital convertor (ADC), voltage
control oscillator (VCO), crystal oscillator, a N fraction frequency synthesizer to program the local
oscillator (LO) frequency. The MAX2769C eliminates the need for an external IF filter by implementing
a on chip monolithic filter. It also has a delta-sigma fraction N frequency synthesizer. (MAXIM
INTEGRATED, 2016)
7|Page
Figure 2-1 Block Diagram of The Proposed Design for The RF Front-End
The evaluation kit also be programed by a Graphical User Interface (GUI) that can be installed on
the laptop and connected to kit as explained in the in the section MAX2769C Evaluation Kit and
INTF3000 Setup. The Figure 2-2 MAX 2769C Pin Configuration shows the pin configuration of the
MAX2769C chip that forms a, integral part of the MAXIM evaluation kit. (MAXIM INTEGRATED,
2016)
8|Page
Figure 2-2 MAX 2769C Pin Configuration
9|Page
Figure 2-3 Configuration Register 1
10 | P a g e
Figure 2-5 Configuration Register 3
11 | P a g e
Figure 2-7 PLL Division Ratio Register
12 | P a g e
Figure 2-9 Stream Interface Register
13 | P a g e
Figure 2-11 Test Register 1
14 | P a g e
Figure 2-13 GUI For Entry Configuration
Once the configurations are set and after the kit is online we need to press the SEND ALL tab
to send the configurations to the evaluation kit. The way to configure the registers are discussed in the
sections Integrated active antenna sensor, Low Noise Amplifier (LNA), Mixer, IF filter,
Programmable Gain Amplifier (PGA), Automatic Gain Control (AGC), Synthesizer, Crystal Oscillator
,Analog to Digital Convertor (ADC) . (MAXIM INTEGRATED, 2016)
15 | P a g e
as close as possible to the pin) to achieve a low 200mV dropout for a 20mA load current. A logic-low
in ANTEN disables the antenna bias. The active antenna circuit also features short-circuit protection to
prevent the output from being shorted to ground. (MAXIM INTEGRATED, 2016) , (MAXIM
INTEGRATED, 2016) (MAXIM INTEGRATED, 2016), (MAXIM INTEGRATED, 2016).
2.3.2 Setting for Configuration
MAX2769C is used in the active antenna configuration. The ANT BIAS ENABLE pin is kept
active by setting it to 1(Table 2-1 Antenna Bias) throughout the data collection to close the switch that
connects the antenna bias to the RF section supply voltage, that bypasses to the ground with 100nF and
100pF capacitor in parallel as close as possible to the pin. Thus, achieving a low 200mV dropout for
20mA load current.
16 | P a g e
Table 2-2 LNA Mode Selection , the setup for this task was configuration as 10.
2.5 Mixer
2.5.1 Theory
The MAX2769C includes a quadrature mixer to output low-IF or zero-IF (I and Q signals). The
quadrature mixer is internally matched to 50ohms and requires a low-side LO injection. The output of
the LNA and the input of the mixer are brought off-chip to facilitate the use of a SAW filter. On
MAX2769C, the RF signal has been made accessible between the first LNA stage output and mixer
input (pins 2 and 5 respectively refer Figure 2-3 Configuration Register 1). If filtering is not desired,
these pins can be connected through a coupling capacitor. However, filtering introduced at this point
has minimal effect on the excellent sensitivity of the receiver. For example, for typical device
parameters, a SAW filter with 1dB insertion loss would degrade cascaded noise figure (and thus GPS
sensitivity) by only about 0.15dB. (MAXIM INTEGRATED, 2016)
17 | P a g e
While no external filtering required for stand-alone applications, coexistence with cellular or
WILAN transmissions in close proximity may require additional filtering to prevent overdriving the
GPS receiver front-end. The MIXEN, mixer enable should also be set to either 1 for ON /ENABLE or
0 for OFF/DISABLE. The mixer is set at location 12 of the configuration register 1 as shown in Figure
2-3 Configuration Register 1. The mixer pole has to be set at location 15 of the configuration register 1
to either 1 to program the passive filter pole at mixer output at 36MHz or set 0 to program pole at
13MHz. (MAXIM INTEGRATED, 2016)
2.6 IF filter
2.6.1 Theory
Filtering at intermediate frequency is a must, as it limits the noise bandwidth and improves
sensitivity at the same time it helps reducing interference. The MAX2769C's IF filtering is highly
rd th
flexible. The Butterworth IF filter can be configured either as 3 order (bandpass or low pass) or 5
order (bandpass or low pass) as the application dictates. In bandpass mode, the (double-sided) 3dB
bandwidths can be set to 2.5MHz, 4.2MHz or 9.66MHz. These bandwidths can also be used in low-pass
mode. In low-pass mode, there is also the option of setting the double-sided filter bandwidth to 18MHz.
The FECN can be set at the location 5 to10 in the configuration register 1 which is shown in Figure 2-3
18 | P a g e
Configuration Register 1 , this is for the IF center frequency programming. The FBW for the IF filters
center bandwidth selection, can be set in the location 3,4 in the configuration register 1. The FCENX or
the polyphase filter selection has to be set at the location 1 in the configuration register 1. The F3OR5
or the filter order selection can be set at the location 2 in the configuration register 1. The FGAIN is
used to set the IF filter gain setting and is set at the location 0 of the configuration register 1 to either 1
for 26dB and 0 for 17 dB, but when it is set to 0 the filter gain is reduced by 6dB. (MAXIM INTEGRATED,
2016) (MAXIM INTEGRATED, n.d.), (MAXIM INTEGRATED, 2016), (MAXIM INTEGRATED, 2016)
Table 2-3 Center Frequency Configuration. When calculating the center frequency of the IF
filter, the FCEN bits set in the GUI. It need not be flipped as it is corrected inside the registers.
This is explained in the following section. The IF filter center frequency assignment is
dependent on the FBW setting as shown in the
Table 2-4 Frequency Bandwidth Configuration for 3dB Bandwidth. (MAXIM INTEGRATED,
n.d.) (MAXIM INTEGRATED, 2016) (MAXIM INTEGRATED, 2016)
19 | P a g e
For a 3rd order filter bandwidth 2.5 MHz measured at 4 MHz offset we have stopband
attenuation of 30dB and for 5th order filter bandwidth 2.5 MHz measured at 4 MHz offset we have
stopband attenuation of 40dB to 49.5dB. The IF filter of the receiver can be programmed to be a lowpass
filter or a bandpass filter based on the settings of the bit FCENX (center frequency) either 0 for low pass
filter mode or 1 for band pass filter mode, refer Table 2-5 Intermediate Frequency Filter Mode
Configuration. Also, the IF filter can be configured either as a 3rd order Butterworth filter for a reduced
group delay or as 5th order Butterworth. (MAXIM INTEGRATED, n.d.) (MAXIM INTEGRATED,
2016) (MAXIM INTEGRATED, 2016) (MAXIM INTEGRATED, 2016)
Butterworth filter for a steeper out-of-band rejection by setting the bit F3OR5 either 1 or 0,
respectively in the Configuration 1 register. (Refer Figure 2-3 Configuration Register 1,
Table 2-6 Intermediate Frequency Filter Order Configuration). The two-sided 3dB corner bandwidth
can be selected to be 2.5 MHz, 4.2 MHz, 9.66 MHz by programming bits FBW in the Configuration 1
register. When the filter is enabled by changing bit FCENX in the Configuration 1 register to 1, the
lowpass filter becomes a bandpass filter and the center frequency can be programmed by bits FCEN and
FCENMSB in the Configuration 1 register. The IF center frequency is adjustable in 127 steps with a 7-
bit FCEN (IF filter frequency center) word with 6bit FCEN (IF filter frequency center) and 1-bit
FCENMSB (IF filter frequencys center most significant bit). (MAXIM INTEGRATED, n.d.) (MAXIM
INTEGRATED, 2016) (MAXIM INTEGRATED, 2016) (MAXIM INTEGRATED, 2016)
FCENX FILTER MODE
(CONFIGURATION 1 REGISTER)
0 LOWPASS
1 BANDPASS
Table 2-5 Intermediate Frequency Filter Mode Configuration
FBW BANDWIDTH
(CONFIGURATION 1 REGISTER) (MHz)
00 2.5
10 4.2
01 9.66
11 (low -pass mode) 9 (single- sided)
Table 2-7 Frequency Bandwidth Configuration
20 | P a g e
FBW FCEN IF CENTER
(CONFIGURATION 1 (CONFIGURATION 1 FREQUENCY
REGISTER) REGISTER) (MHz)
00 001101 3.9
10 001101 7.1
01 1111101 10.7
Table 2-8 Intermediate frequency Center Configuration for Sampling Frequency Configuration
FBW = 00,
FCEN =001101,
IF CENTER FREQUENCY = 3.9MHz,
IF filter order =3rd order with
F3OR5=1,
FCENX = 1 with Low Pass mode,
FGAIN is set to 1=26 dB.
21 | P a g e
2.7 Programmable Gain Amplifier (PGA)
2.7.1 Theory
The MAX2769C integrates a baseband programmable gain amplifier that provides 59dB of gain
control range. The PGA gain can be programmed through the serial interface in steps of dB per LSB by
setting bits GAININ in the Configuration 3 register (Figure 2-5 Configuration Register 3) at the location
22 to 27. Set bits 12 and 11 (AGCMODE) in the Configuration 2 register (Figure 2-4 Configuration
Register 2) to 10 in order to control the gain of the PGA directly from the 3-wire interface. (MAXIM
INTEGRATED, 2016)
GAININ GAIN
(CONFIGURATION 3 REGISTER) (dB)
000000 0
101011 42
101100 43
101110 45
111010 57
111111 62
22 | P a g e
Figure 2-18 Configuration Register 3 in GUI
23 | P a g e
Figure 2-19 Automatic Gain Control Configuration in GUI
170
( ) (100) = 33%
512
( 1)
Thus, we have set gain reference to 170. Converting from decimal to binary it is represented as
000010101010. (refer Figure 2-20 Configuration Register 2 in GUI)
24 | P a g e
Figure 2-20 Configuration Register 2 in GUI
2.9 Synthesizer
2.9.1 Theory
The MAX2769C integrates a 20-bit sigma-delta fractional-N synthesizer allowing the device to
tune to a required VCO frequency with an accuracy of approximately Q factor of 30Hz. The synthesizer
includes a 10-bit reference divider with a divisor range programmable from 1 to 1023, a 15-bit integer
portion main divider with a divisor range programmable from 36 to 32767, and a 20-bit fractional
portion main divider. The reference divider is programmable by bits RDIV in the PLL integer division
ratio register, and can accommodate reference frequencies from 8MHz to 32MHz. The reference divider
needs to be set so that the comparison frequency falls between 0.05MHz to 32MHz.The PLL loop filter
is the only external block of the synthesizer. A typical PLL filter is a classic C-R-C network at the
charge-pump output. The charge-pump output sink and source current is 0.5mA by default, and the LO
tuning gain is 57MHz/V. The RDIV can be set using the PLL division ratio register (Figure 2-7 PLL
Division Ratio Register) at location 3 to 12 and the NDIV can be set at location 13 to 27 in the same
register. Let us see the recommended loop filter component values for fCOMP at 1.023MHz and the loop
bandwidth at 50kHz. The desired integer and fractional divider ratios can be calculated by dividing the
LO frequency (fLO) by fCOMP. The fCOMP can be calculated by dividing the TCXO frequency (fTCXO) by
the reference division ratio (RDIV). For the TCXO frequency at 20MHz, RDIV set to 1 (refer Figure
2-7 PLL Division Ratio Register), and the nominal LO frequency set to 1575.42MHz. The following
method can be used when calculating divider ratios supporting various reference and comparison
frequencies as shown in equations( 2),( 3). (MAXIM INTEGRATED, 2016) (MAXIM INTEGRATED, 2016)
25 | P a g e
=
( 2)
( 3)
26 | P a g e
2.9.2 Settings for Configuration
For our analysis, we have set the TCXO frequency to be 1540MHz, the reference division ratio
(RDIV) to 16MHz, the LO frequency to 1575.42MHz (refer Figure 2-23 Synthesizer Configuration in
GUI). The comparison frequency was calculated as in ( 4).
1.540
= = = 96250
16
( 4)
Once the value of the comparison frequency is known the LO frequency divider value can be obtained
as shown ( 5),( 6).
1575420
= = = 16368
96250
( 5)
( 6)
27 | P a g e
2.10 Crystal Oscillator
2.10.1 Theory
The MAX2769C includes an on-chip crystal oscillator. A parallel mode crystal is required when
the crystal oscillator is being used. It is recommended that an AC-coupling capacitor be used in series
with the crystal and the XTAL pin to optimize the desired load capacitance and to center the crystal-
oscillator frequency. Take the parasitic loss of interconnect traces on the PCB into account when
optimizing the load capacitance. The MAX2769C EV kit utilizes a 16.368MHz crystal designed for a
12pF load capacitance. A series capacitor of 23pF is used to center the crystal oscillator frequency in
addition, the 5-bit serial-interface word, XTALCAP in the PLL Configuration register can be used to
vary the crystal-oscillator frequency electronically. The range of the electronic adjustment depends on
how much the chosen crystal frequency can be pulled by the varying capacitor. The frequency of the
crystal oscillator used on the MAX2769C EV kit has a range of approximately 200Hz. The MAX2769C
provides a reference clock output. The frequency of the clock can be adjusted to crystal-oscillator
frequency, a quarter of the oscillator frequency, a half of the oscillator frequency (fXTAL 32MHz),
or twice the oscillator frequency (fXTAL 16MHz), by programming bits REFDIV (refer
Table 2-11 Reference Divider Configuration) in the PLL Configuration register at location 21 and 22.
(MAXIM INTEGRATED, 2016)
REFDIV CLOCK OUTPUT
(PLL CONFIGURATION REGISTER)
00 XTAL frequency x 2
01 XTAL frequency /4
10 XTAL frequency/2
11 XTAL frequency
28 | P a g e
unsigned binary, the sign and magnitude, or the twos complement format by setting bits FORMAT in
Configuration register 2 at location 9 and 10 (refer
Table 2-13 ADC Output Data Format Configuration).
The maximum sampling rate of the ADC is approximately 50Msps. The sampled output is
provided in a 2-bit format (1-bit magnitude and 1-bit sign) by default and can be configured as a 1-bit
or 2-bit in both I and Q channels, or 1-bit, 2-bit, or 3-bit in the I channel only. This selection can be done
using IQEN in configuration 2 register at location 27 (refer
Table 2-14 In-phase Quadrature Channel Configuration). (MAXIM INTEGRATED, 2016)
DRVCFG OUTPUT DRIVEN
(CONFIGURATION 2 REGISTER) CONFIGURATION
00 CMOS LOGIC
01 RESERVED
1X ANALOG OUTPUTS
(ADC BYPASS MODE)
Most significant bits (MSB) bits are output at I1 or Q1 pins and LSB bits are output at I0 or Q0
pins, for the I or Q channel respectively. In the case of 3-bits, output data format is selected in the I
channel only. The MSB is output at I1, the second bit is at I0, and the LSB is at Q1. The number of bits
of the ADC can be configured through BITS in configuration 2 register (refer
29 | P a g e
Table 2-15 ADC Output Bit Configuration). The on-chip ADCs can be bypassed and the analog output
from the PGA can be taken out directly when the bits DRVCFG (refer
Table 2-12 Output Driven Configuration) are set to 1X. (MAXIM INTEGRATED, 2016) , (MAXIM
INTEGRATED, 2016).
000 1 BITS
010 2 BITS
100 3 BITS
30 | P a g e
(MAXIM INTEGRATED, 2016)
2.12 Conclusion
Thus, this chapter explains the parameters to be set in the MAX2769C evaluation (EV) kit for
receiving the GPS L1 signal. This entire chapter has provided a detailed description of the parameters
that need to be set to build a RF front-end using other components that will be discussed in the chapters
Assembly and Processing and Data Collection Using the RF Front End and Post Processing.
The main reason for the detailed description of these parameters is because, they will provide the
key to configure a receiver in which IF will be replaced by Direct RF (for future progress of this
research).
31 | P a g e
3 Assembly and Processing
3.1 Introduction
This chapter describes the way to build a RF front-end to receive GPS signal. This chapter also
discusses about the components, assembly and acceleration of a GNSS (GPS) receiver with the
configuration discussed in the previous chapter. Thus, helping us build a RF front-end for the mock of
the software accelerated GNSS receiver.
The assembly of these components are discussed in the MAX2769C Evaluation Kit and
INTF3000 Setup and MAX2769C Evaluation Kit and Sketchboard Setup.
32 | P a g e
3.3 MAX2769C Evaluation Kit and INTF3000 Setup
The setup explained in the following paragraph is shown in the Figure 3-1 MAX2769C and
INTF3000 Setup
DC Power supply of +3volts and -3 volts or 0volts, from the Ammeter is connected to pins
W19 and W20 (grounded) respectively. Shown by the yellow and black wires denoted in
the 1st point in the figure.
DC Power supply of +5volts and -5 volts, from the Ammeter is connected to pins W12,
W11 respectively and W10 is grounded. Shown by the yellow, red and black wires denoted
in the 1st point in the figure.
A universal serial bus (USB) cable is connected to a personal computer (PC) as denoted by
the 2nd point in the figure.
A Coaxial N connector to SubMiniature Version A connectors is connected to RF_LNA_IN
port at pin C26. This is the connected to an active antenna and denoted by the 3 rd point in
the figure.
A SubMiniature Version A connectors (SMA) is connected from J8 (LNA_OUT) to J12
(MIX_IN). As denoted in the 4th point in the figure.
The MAX2769C evaluation kit is connected to INTF3000 as denoted in the 5th point in the
figure.
33 | P a g e
3.4 MAX2769C Evaluation Kit and Sketchboard Setup
The setup explained in the following paragraph is shown in the Figure 3-2 MAX2769C Evaluation
Kit and Sketchboard Interface.
The power supply of +12 volts from an ammeter to the sketchboard is provided at J1102 pin
and denoted by the 1st point in the figure.
The ethernet cable is connected to at J550ETH NIOS pin and denoted by the 2nd point in the
figure, this is connected to a D-LINK switch on the other end.
The video graphics array (VGA) cable is connected to the pin J1050 and denoted by the 3rd
point in the figure. This cable is connected to a PC screen at the other end.
The previously setup MAX2769C and INTF3000 evaluation kit is connected to the
sketchboard using a ribbon cable at pin J9 providing the CLK_OUT, Q+_OUT, Q-_OUT,
I+_OUT, I-_OUT from the MAX evaluation kit to pin J700 at the sketchboard. This is
denoted in the 4th point in the figure.
Finally, a FPGA JTAG is connected from the pin J4 on the sketchboard to the ethernet
blaster which is connected to an AC power source and ethernet cable, connected to the D-
Link switch.
This is linked to a remote PC containing TShark, which is a network analysis tool formerly
known as Ethereal that captures packets in real time and display them in human-readable
format. This PC will be used for collection of data from the RF front-end.
34 | P a g e
Figure 3-2 MAX2769C Evaluation Kit and Sketchboard Interface
35 | P a g e
The Figure 3-3 RF Front-end Assembly for Data Collection shows the entire RF front-end setup.
This was done at SPECTRACOM, Les Ulis. Thus, a RF font-end was built using the components as
discussed in the section Radio Frequency Front-end. The INTF3000 is connected to the laptop through
a universal serial bus cable and the GUI installed in the laptop helps us to configure the MAX2769C
evaluation kit.
36 | P a g e
3.5 Conclusion
Thus, an RF front-end for the mock was built using the components described in Radio
Frequency Front-end. Now the next stage is to collect the signals and post-process the data to
determine the validity of the signals collected. These processed signals will provide useful information
that would validate our design and can provide a key for further modifications.
37 | P a g e
4 Data Collection Using the RF Front End and Post Processing
This chapter describes the procedure used for data processing also known as post processing
using the data from RF front-end to build a mock of the software accelerated GNSS receiver.
4.1 Introduction
The RF front end built as described in the previous chapter Assembly and Processing, will be
used to collect GNSS signals from the satellites providing the GPS data. The data was recorded to a
remote computer using TShark. TShark, is a network analysis tool formerly known as Ethereal, captures
packets in real time and display them in human-readable format. The data recorded is processed using
MATLAB, with the help of SoftGNSS v3.0. The route map of this processing is shown in the Figure
4-1 Software Accelerated GNSS Receiver Partial Implementation.
The area in gray (in the Figure 4-1 Software Accelerated GNSS Receiver Partial Implementation)
refers to the RF front end that was built using hardware components. They comprise of the connection
from the GNSS antenna to the test bench, the antennas feed is connected to MAXIM evaluation kit.
The kit is connected to the sketchboard as shown in Figure 3-2 MAX2769C Evaluation Kit and
Sketchboard Interface.
The area in orange (in the Figure 4-1 Software Accelerated GNSS Receiver Partial
Implementation) denotes the processing done on the Laptop and a remote PC. The laptop has the GUI
for the MAXIM evaluation kit installed in it, the configuration is set in the GUI as shown in Figure 2-13
GUI For Entry Configuration and fed back to the kit. The data captured from the RF front-end is
collected in the remote PC using TShark and fed to the MATLAB installed in the laptop.
The area in green (in the Figure 4-1 Software Accelerated GNSS Receiver Partial Implementation)
shows the digitalized data that will be collected as an output from the designed RF front-end. They are
in the Inphase and Quadrature form.
The data was collected for 15 minutes on the 15th of May 2017, the collected data will be processed
using the SoftGNSS version 3.0 in MATLAB. The main aim of this section is to understand the
processing involved in the SoftGNSS, analyze the collected data and to mainly check if the RF front-
end design is reliable.
38 | P a g e
Figure 4-1 Software Accelerated GNSS Receiver Partial Implementation
39 | P a g e
analysis is called post processing. The post processing/ software processing of the receiver is divided
into three stages
Acquisition stage
Tracking stage
Navigation solution extraction.
The cold start is a condition in which the receiver is not dependent on the previously stored
information and starts searching for satellites in view, this process is also called acquisition. In our case
study since the receiver is being tested for the first time it has no prior information, and hence is treated
as the cold start. (Zheng, Febuary ,2005). (This paper does not provide complete explanation of the
theory of baseband processing since it is not the aim of the work, explanation is provided in (Kia Borre,
2007) ( M Dennis Akos, 1997) (Zheng, Febuary ,2005), (ESA, GMV, 2011).
4.2.2 SoftGNSS
The data collected from the RF front-end is processed using SoftGNSS v3.0 which is a
MATLAB tool. It is available for free and can be redistributed and/or modified. The software comes in
with DVD along with the book named Software Defined GPS and Galileo Receiver. And is also
available online. (Kia Borre, 2007) ( M Dennis Akos, 1997).
This software tool is used to implements a software defined GPS receiver but it has its own
limitations. This software is capable of processing a GPS signal and execute all the stages of processing
that would provide us the navigation solution for the receiver. The stages mentioned in this discussion
are acquisition, tracking and navigation solution estimation. This software needs to be further optimized
based on the users needs. Since our current task is to build a RF front-end for collecting GPS signals
and to perform steps to accelerate the software receiver we need not concentrate on optimizing the code.
The software processing starts with the script init.m where the environment required for the
program to run is initialized. The next function is called initSettings.m, this is the file where the
important parameters needed for the execution of the program will have to be set as discussed in
Parameters and Processing Flow.
40 | P a g e
Intermediate frequency.
Code frequency.
Satellite list.
Search band size.
Acquisition threshold.
Code tracking loop noise bandwidth.
Code tracking loop damping ratio.
Code tracking loop correlator spacing.
Carrier tracking loop damping ratio.
Carrier tracking loop noise bandwidth.
Period of calculating pseudorange and position.
Elevation mask.
Some constants.
The parameters set in this function is common to the complete program. In our case we set the
sampling frequency to 16.368MHz since it was the sampling frequency set in the RF front-end, it is
mentioned in the section Settings for Configuration of Synthesizer . The intermediate frequency is set
to 3.9 MHz as set in the RF front-end in the section Setting for Configuration of IF filter. The code
frequency is set as 1.023MHz as set in the RF front-end, it is mentioned in the section Theory of
Synthesizer.
41 | P a g e
The Figure 4-3 Frequency Domain Representation of The Data Probed, shows the frequency
domain representation of the data probed with time in megahertz in x-axis and magnitude of the signal
in the y-axis.
The Figure 4-4 Histogram Representation of The Data Probed, represents the histogram of the
data probed with the bins in x-axis and the number of bins in the y-axis. (Histogram determines the bin
edges using an automatic binning algorithm that returns uniform bins of a width that is chosen to cover
the range of values in X and reveal the shape of the underlying distribution.) (MATLAB, 2017).
After the displaying of the above shown figures the program enters the function
postProcessing.m. This function coordinates the entire software receiver processing; the post-
processing performs three main processes
Acquisition process
Tracking process
Navigation solution extraction process.
The postProcessing script opens the data file and reads from a certain point and acquires the
satellites in the data being processed using the acquisition.m the working of the function is described
42 | P a g e
in the section Acquisition. Then the list of the acquired satellites is passed on to the tracking stage. The
tracking is performed by the function tracking.m and trackinglong.m and described in the section
Tracking. The reason we use two tracking functions is because the function tracking.m has the
correlation interval set to 1ms and the function trackinglong.m has the correlation interval set to 10ms;
this can be used to perform the C/N0 estimation using the Power Ratio Method and is detailed in the
section C/N0 Estimator. Once the tracking stage is successful, the navigation solution extraction is
performed by the function postNavigation.m and explained in Data Decoding and Position Solution.
This function extracts the subframe using the information retrieved from the tracking stage and extracts
data from each subframe to compute the position of the receiver. ( M Dennis Akos, 1997)
4.4.2 Acquisition
The acquisition is the first stage of processing in the software processing. The goal of acquisition
is to identify the satellites visible to the user, thus the useful signals presence can be detected i.e. to
detect the GPS signal in the recorded data file and determine the carrier frequency and the code phase.
This process will provide us with a rough estimation in order to start the tracking process. For the
purpose of acquisition, we need to set few parameters. (Kia Borre, 2007), ( M Dennis Akos, 1997).
Parameters
The acquisition requires the acquisition satellite list which will be set as 1 to 32. The acquisition
threshold is set as 2.5. To perform acquisition, we need to initialize few variables needed for calculation,
they are all sampled for 1ms of data which corresponds to 1 code period, the sampling period known as
the sample per code in the acquisition function, a C/A code table for all PRN in the satellite list and
memory to store the computed values (these values will be used for the future processing in the
postProcessing.m function). (Kia Borre, 2007), ( M Dennis Akos, 1997).
The acquisition process consists of a three- dimensional search in time (code phase), frequency
and satellite-specific PRN code (Fredrik Johanson, 1998). Once the parameters are initialized the
acquisition process begins.
43 | P a g e
as the peak size which is determined and stored. One code chip around a chip is excluded from the result
obtained. ( M Dennis Akos, 1997)
To look for the correlation peak in the results, we search for the highest peak size and compare
it to the second highest peak size, this second highest peak is chosen not closer than 1 chip to the highest
peak size. Thus, the correlation peak, carrier frequency, code phase is searched and stored. The first
C/A code phase is chosen and the range to be excluded around this chip is determined. The second
highest correlation peak in the same frequency bin is searched and the ratio of the value in the peak size
to the second highest peak size provides us the value of the peak metric, which will be used to decide if
the signal is present or not. The detector does not depend on the sampling frequency and therefore is not
dependent on the size of the peak and noise level. ( M Dennis Akos, 1997)
If the peak metric is greater than the acquisition threshold that was set earlier then, the presence
of the signal is confirmed. In which case, the fine carrier frequency is found via post correlation Fast
Fourier Transform, which is applied to the data and the maximum value is found. This value will help
the PLL in the tracking loop to start tracking the signal. A frequency accuracy of 0.5kHz is too coarse
for the PLL to start tracking. If the peak metric is less than the acquisition threshold, then we can
conclude the signal is not present in the search space, thus concluding the absence of the specific PRN
in the bin. The acquisition search algorithm used in the software tool is FFT-IFFT.
The acquisition is done as programmed in the SoftGNSS v3.0 ( M Dennis Akos, 1997). The
type of acquisition done in this program is the parallel code search acquisition technique.
Acquisition Output
44 | P a g e
The Figure 4-5 Acquisition Output shows, bars in green for the satellites with a specific
PRN acquired due to the presence of the signals and the signals for other PRNs that were absent or not
acquired because it is below the threshold are denoted by the bars in blue. Also, the Table 4-1
Acquisition Output was provided as an output and displayed in the command window in MATLAB with
the carrier frequency, code phase, doppler shift, PRN acquired.
After the code phase and the frequency of the data are determined the values are stored in a
structure and the acquisition is performed for all the satellites in the acquisition satellite list. The post-
processing creates a channel structure for the tracking function to begin. With this output, the function
acquisition.m was processed. The program flow routes back to the postProcessing.m function and
proceeds with the next block of acquisition to re-check the code phase obtained from the previous
acquisition loop.
The acquisitionCode.m is based on the code written by (Borio Daniele, 2013). The output
from the acquisitionCode.m function is as shown below in Figure 4-6 Acquisition Code Output where
7 satellites are acquired and are denoted by the green bars (Borio Daniele, 2013). The modified codes
are available at Spectracom.
45 | P a g e
Table 4-2 Acquisition Code Output presents the output from the acquisitionCode.m. This program
was used to check the outputs obtained from the previous acquisition (not necessary for the receiver
implementation it is only for future study purposes as requested).
4.4.3 Tracking
Introduction
The step that follows acquisition will be tracking. We will have to perform code tracking and
carrier tracking. The code tracking will be performed by the delay locked loop (DLL) and the carrier
tracking will be performed by the phase locked loop (PLL).
Tracking loop continuously tracks the incoming satellite signal to generate code delay and carrier
phase to regenerate local PRN code replica until synchronization. After synchronization with incoming
signal and demodulation of the navigation message, the receiver compute pseudorange of each SV.
Numerical Control Oscillators (NCO) convert the filter outputs into usable correction factors of doppler
frequency and code delay, which are fed back to the doppler removal and local code generators blocks.
(European Space Agency, tracking loop, 2011).
Discriminator: DLL Early Minus Late (coherent) or Early Minus Late Power or Dot Product
(non- coherent). PLL Product and Arctangent.
Then the tracking process begins by initializing all the variables needed for the tracking process
and also creating memory for storing the results from this stage. The tracking of the acquired satellite
channels is performed one after the other in an iterative manner. First the C/A code for a single channel
is calculated, the data is processed based on the number of code periods which is based on the number
of milliseconds to process (provided in the initSettings.m in SoftGNSS software tool) ( M Dennis Akos,
1997).
46 | P a g e
The primary step is to read the samples that are needed to be processed. The iteration begins with
calculating the early code, late code and the prompt code. Then the carrier frequency at which the signal
will be changed to baseband is computed. This computed carrier frequency is mixed with the data for
generating a baseband signal. Then the accumulated values for early, late and prompt versions of the I
(In-phase) and Q (Quadrature) channel are generated (i.e. I_E, I_P, I_L, Q_E, Q_P, Q_L). The
accumulated values of the channels are used to compute the errors in the PLL (Phase Lock Loop) by
implementing the carrier loop filter which acts as the phase detector and also updates the correction in
the carrier NCO (Numerically Controlled Oscillator). The values computed previously are used for
calculating the errors in the DLL (Delay Lock Loop) and to update the code NCO. The output of the
tracking loop for the channel is saved and the process is repeated until the end of the code period. When
the tracking is completed for a single channel, the previously discussed process is repeated for the next
channel until all the channel are tracked. Once the tracking is complete, we proceed to C/N0 estimation,
the method chosen for this estimation is explained in detail in the section C/N0 Estimator.
The demodulated in-phase (I prompt) and quadrature (Q prompt) components are plotted, where
the navigation data bits are present in the correlator outputs of the code tracking loop. As expected, two
bubbles appear due to the navigation bit sign transitions. In-phase prompt accumulation (I prompt),
indicates the navigation bits in the incoming signal. The tracking results for the satellites tracked are
available in the Annexes 1.The Figure 4-7 Tracking Result denotes the following: the I and Q
components of the baseband signal are shown using the scatter plot. The value of the navigation data
transition is also shown in the first row which is the value of the I prompt. In the second row, the plots
for the raw PLL discriminator and the ELP correlation values are shown. The third row of the plot shows
the filtered PLL discriminator, the raw PLL and filtered DLL discriminators. The raw DLL or raw PLL
discriminator denotes the error in the NCO. The filtered DLL and PLL represents the value of the
discriminator.
47 | P a g e
4.4.4 C/N0 Estimator
The results from the tracking loops are provided as an input to this estimator. The tracking
function has a correlation time of 1ms and the tracking long function has a correlation time of 10ms.
The results from the I_P and Q_P are used for the processing of the C/N0 estimator. For this computation,
the power ratio method is used. The power of the signal is computed with a relatively short coherent
integration time. Then the power is computed over a narrow bandwidth with a longer coherent
integration time. the wideband power (WBP) is computed using 1 ms coherent integration time and
explained in (CARRIER TO NOISE DENSITY AND AI FOR INS/GPS INTEGRATION, 2009).
Carrier to Noise ratio (C/N0) is the ratio of the received carrier power to the noise density. The
C/N0 can be estimated accurately based on the measurements taken in a digital sampling GNSS receiver.
The carrier power estimation is implemented in the article (Marco Pini, 2008) , (Jeehyeon Baek, 2013)
; The algorithm is as below. The carrier to noise density ratio estimation is performed using the power
ratio method (PRM), as summarized below based on (Abbasiannik, 2009). In this method, the power of
the signal is computed over a wide bandwidth with a relatively short coherent integration time. Then,
the power is computed over a narrow bandwidth with a longer coherent integration time. Thus, the
wideband power (WBP) is computed using 1 ms coherent integration time as in ( 7)
= ( 2 + 2 )
=1
( 7)
2 2
= ( ) + ( ))
=1 =1
( 8)
The ratio of equations ( 7)and ( 8) is called normalized power (NP) and is computed as in ( 9)
( 9)
These normalized power values are averaged over h samples as shown in ( 10)
1
=
=1
( 10)
48 | P a g e
Finally, C/N0 is estimated with the following equation ( 11)
1 1
= 1010 [ ]
0
( 11)
The Table 4-3 Carrier to Noise Ratio represents the output of the estimation. The MATLAB
code for this estimator is available at Spectracom.
Once the tracking is complete the postProcessing script proceeds to the execution of the next
function postNavigation.m. The function postNavigation is used to find the navigation solution for
the data that is fed as an input to this algorithm. The navigation solution can only be found if the number
of milliseconds tracked is bigger than 36000 (36seconds) and if there are more than 4 or more satellites
in the tracking results. In our case there are 5 satellites in the tracking results so we can proceed with
the execution of algorithm to determine the navigation solution.
The first step is to determine the preamble. For finding the preamble, the results from the I_P,
In-phase of the prompt for each channel is needed. For each value, if the result is bigger than 0 the bit
is determined as 1 and if it is less than 0 the bit is determined as -1. Then, the preamble and the vector
of the bits are correlated to find the maximum and a possible preamble. To validate the preamble, the
distance between the two preambles must be 6000 milliseconds. Then, the navigation bit close to the
preambles beginning are checked for the parity. If the parity check is successful then the preamble is
found and checked.
From the start of the preamble, the bits can be calculated. After the bits are calculated, for each
position solution, the pseudorange are determined and the solution for the satellites position and the
clock correction can be determined.
49 | P a g e
Since the subframe 1,2,3 are already decoded the navigation solution can be extracted from the
data extracted, ( M Dennis Akos, 1997) but in the case of the subframe 4 and 5 there has been no coding
performed for the extraction and hence the extraction of these 4th subframes will be discussed in the
following section.
Subframe 4
The subframe 4 page 18 is shown in Figure 4-8 Subframe 4 Page 18. It contains ionospheric
information and UTC information. The algorithm used for the correction are discussed in The
Ionospheric Model, UTC Algorithm and the extraction of this information is discussed in Ionospheric
data, Universal Coordinated Time (UTC) Parameters (ARINC Engineering Services, 2006).
Ionospheric data
The ionospheric parameters need to be extracted from the subframe 4 for the computation of
the ionospheric delay. These data are present in the page 18. The data in the subframe 4 page 18 as
shown in
Table 4-4 Ionosphere Parameters. This subframe lasts for 6 seconds and has 300 bits. P is the parity
bits, t is non-information bearing bits used for the parity computation, C is the TLM bits 23 & 24 which
are reserved. The subframe is updates by the control segment et least every 6th day. The scale factor is
shown in
0 8* 2-30 Seconds
1 8* 2-27 sec/semi-circle
2 8* 2-24 sec/(semi-circle)2
3 8* 2-24 sec/(semi-circle)3
0 8* 211 Seconds
1 8* 214 sec/semi-circle
2 8* 216 sec/(semi-circle)2
3 8* 216 sec/(semi-circle)3
* Parameters so indicated are twos complement, the sign bit (+/-) occupying the MSB
50 | P a g e
Figure 4-8 Subframe 4 Page 18
51 | P a g e
4.4.5.1.1.1 The Ionospheric Model
To correct the received time from the satellite for the ionospheric effect, the SPS are
supposed to use the parameters in the page 18 of the subframe 4. It may be estimated that the use of this
model will provide at least 50 percentage reduction in the single-frequency users RMS error due to the
ionospheric propagation effects (Jorgen Rhodin, 2000) .
2 4
[ 5.0 109 + () (1 + )] , || < 1.57
= { 2 24
[ 5.0 109 ] , || 1.57
( 12)
Where T is referred to as the L1 frequency, AMP is in( 13) , PER is in ( 14) , F is in ( 15).
3
, 0
= { =0
< 0 , = 0
( 13)
3
, 72,000
= { =0
< 72, 000, = 72,000
( 14)
( 15)
Where are the satellite transmitted data words with n=0,1,2,3. Few other terms are required
to solve the equations above and they are listed below.
( 16)
( 17)
52 | P a g e
+ cos()( ), | | 0.416
= { > 0.416, = +0.416
< 0.416, = 0.416
( 18)
0.00137
= 0.022 ( )
+ 0.11
( 19)
= 4.32 104 + ()
( 20)
Where 0 < 86400, therefore: if >= 86400 seconds, subtract 86400 seconds; if < 0 seconds,
add 86400 seconds.
The terms used in the computation of the ionospheric delay are as follows:
= the coefficient of cubic equation representing the amplitude of the vertical delay (4
coefficient - 8 bits each).
= the coefficient of cubic equation representing the period of the model h (4 coefficient - 8
bits each).
A azimuth angle between the user and the satellite, measured clockwise positive from the true
North in semi-circles.
Computed terms
53 | P a g e
geomagnetic latitude of the earth projection of the ionospheric intersection point (mean
ionospheric height assumed 350 km).
geodetic longitude of the earth projection of the ionospheric intersection point in semi-circles.
geodetic latitude of the earth projection of the ionospheric intersection point in semi-circles.
earths central angle between the user position and the earth projection of the ionospheric
intersection point in semi-circles.
The algorithm is discussed in (Jorgen Rhodin, 2000), (ARINC Engineering Services, 2006),
(Ionospheric model, 2000). This algorithm was coded in MATLAB and added to the SoftGNSS code.
Thus, the ionospheric delay was corrected. The MATLAB code for this algorithm is available at
Spectracom.
8* 1 - Seconds
8 1 - Weeks
8 1 - Weeks
DN 8**** 1 7 Days
8* 1 - Seconds
* Parameters so indicated are twos complement, the sign bit (+/-) occupying the MSB
*** unless otherwise indicated in this column, effective range is the maximum range attainable
with indicated bit allocation and scalar factor
****right justified
54 | P a g e
Table 4-5 UTC Parameters
The Day one is the first day relative to the end/start of the week and the value consists
of eight bits which shall be a modulo 256 binary representation of the GPS week number to which the
DN is referred. The user must account for the truncated nature of this parameters as well as truncated
WN, and due to rollover of full week number. The CS shall manage these parameters such
that, when and differ, the absolute value of the difference between the untruncated WN and
values shall not exceed 127.
Based on the relationship between the effective date to the users current GPS time, there exist
three different UTC/GPS relationships that are described as follows:
a) Whenever the effective time indicated by the WNLSF and the DN values is not in the past
(relative to the users present time) and the users present time does not fall in the time span
which starts at six hours prior to the effectivity time and ends at six hours after the effectivity
time, the UTC/GPS-time relationship is given by
= ( )[ 86400 ]
( 21)
( 22)
( 23)
Where,
delta time due to leap seconds
0 1 constants and first order terms of polynomial
reference time for UTC data
current week number (can be extracted from the subframe 1)
55 | P a g e
UTC reference week number
The estimated GPS time ( ) shall be in seconds relative to the end/start of the week. During
the normal and short -term extended operations, the reference time for UTC data is dome
multiple of 212 seconds occurring approximately 70 hours after the first valid transmission
time for this UTC data set. The reference time of UTC data shall be referred to start of the
week number given I page 18 of subframe 4. The WNt value consists of eight bit which shall
be a modulo 256 binary representation of the GPS week number to which tot is referred. The
user must account for the truncated nature of this parameters as well as the truncation of WN,
WNt, WNLSF due to the rollover of the full week number; the CS shall manage these
parameters such that the absolute value of the difference between the untruncated WN, WNt
values shall not exceed 127.
b) Whenever the users current time falls within the time span of six hours prior to the effectivity
time to six hours after the time, proper accommodation of the leap seconds event with a
possible week number transition is provided by the following expression for UTC
= ((86400 + )),
( 24)
Where
= ( 43200)[ 86400] + 43200,
( 25)
And the definition of UTC as in the previous condition given by ( 21) applies throughout the
transition.
c) When the effectivity time of leap second event, indicated by WNLSF and DN values , is in the
past, the relationship is equation ( 21) is valid except that the value of
.
The algorithm is discussed in (Jorgen Rhodin, 2000), (ARINC Engineering Services, 2006). This
algorithm was added to the SoftGNSS code in MATLAB and is available at Spectracom.
56 | P a g e
Figure 4-9 Position in UTM System
4.5 Test
4.5.1 Introduction
After the successful design of the RF front-end with proper configurations, a test was performed
using the RF front-end and the SoftGNSS software tool. The task to be studied was sudden
disappearance of satellites from the simulated sky during a simulation in GSG-5.
57 | P a g e
configuration is the perfect for navigational fix and position testing, for the in-line product testing or
engineering and development (Spectracom Corp, 2016).
a) Investigate the sudden disappearance and re-appearance (drop) of satellites from the
simulated sky during the simulation,
Although, the satellites appearance and disappearance to a static receiver does not seem to be a
major problem in the case of the simulator. This becomes a problem when in the same scenario the
satellites disappear in random time. During the first test, the satellite drop (case with no satellite in
the sky for a duration of 5 minutes) was noted after 14 hours of the test; during the second test, this
anomaly was observed 2 hours after the commence of the test. With the few number of tests the
drop was observed at random intervals (drop for 10 minutes / 5 minutes) and random timing (after
2 hours/14 hours/ 29 hours/ 2 days).
Since the simulator has a capability where the elevation mask of the satellite can be set, it was
deemed an anomaly to view satellites below the elevation mask.
This task was analyzed with a team of software and hardware engineers. And to study the
satellites position in sky the test was simultaneously run in u-blox receiver. This task was performed for
only GPS satellites at L1 band.
For the test, the RF front-end designed in the chapter Assembly and Processing was used. It
was connected to the GSG instead of an antenna. The data collection was performed as described in the
section Data Collection Using the RF Front End and Post Processing for 48 hours and the segment
where the error occurred was extracted using TShark. The data processing was performed using the
SoftGNSS tool as described in the section Parameters and Processing Flow. This extracted data was
processed and the output was studied at each point of processing to find the point at which an error could
have occurred.
Acquisition
The bars in green represent the acquired SV and the bars in blue represent the SV that were
below the threshold or not acquired. 14 satellites were acquired as set in the GSG settings.
58 | P a g e
Figure 4-11 Acquisition Output
Tracking
After the acquisition was successful with 14 satellites, we proceed to the tracking stage where
5 satellites were tracked. The bit transition can be clearly observed for the tracked satellites as shown in
Figure 4-12 PRN9 Channel 1,Figure 4-13 PRN 7 Channel 2, Figure 4-14 PRN 2 Channel 3, Figure 4-15
PRN 30 Channel 4, Figure 4-16 PRN 6 Channel 5.
59 | P a g e
Figure 4-13 PRN 7 Channel 2
60 | P a g e
Figure 4-16 PRN 6 Channel 5
Since the other satellites could not be tracked the remaining 3 channels as in Figure 4-17 PRN 1
Channel 6, Figure 4-18 PRN 25 Channel 7, Figure 4-19 PRN 4 Channel 8 the bit transitions cannot be
seen. For the navigation solution extraction, more than 4 satellites are required and this condition being
satisfied we pass on to the next stage.
61 | P a g e
Figure 4-18 PRN 25 Channel 7
The Figure 4-20 Navigation Solution shows the output of navigation solution extraction.
62 | P a g e
to be checked; Then it was noted that for satellites with SV ID above 25 the decoding of the almanac
data in the GSG had a minor bug. After analyzing the section where the subframe decoding occurs,
inside the simulator we got a clear picture of the bug and rectified it. This analysis was possible only
because the RF front-end that was built as a part of this research was configured properly to collect GPS
data using the simulator. And thanks to the SoftGNSS tool that allows visualizing the processing of a
GNSS receiver at each intermediate stage. The output of the navigation solution is shown in Figure 4-20
Navigation Solution.
4.6 Conclusion
The aim of this chapter Data Collection Using the RF Front End and Post Processing was
to understand how the processing works at each stage of the software receiver and check the working
of the RF front-end that was designed at Spectracom. These goals were achieved successfully and the
configuration of the RF front-end was found to be good for a GPS receiver. Thus, a mock of the
software accelerated GNSS (GPS) receiver was built. For complete acceleration (hardware) of the
GNSS receiver all the software processing should be implemented on to the sketchboard. As of now
we have successfully built a software accelerated GNSS (GPS) receiver.
63 | P a g e
5 VHDL Generation
5.1 Introduction
In order to transfer the capabilities of the GNSS (GPS) receiver as coded in the SoftGNSS v3.0
to a firmware/hardware, the program has to be converted into VHDL. This chapter deals with a final
part of software acceleration. This can be done by either re-writing the entire code in VHDL / Verilog
or by generating a code using HDL coder which helps to convert the MATLAB code into VHDL. Since
this process requires more time a partial implementation was done. Thus, supporting Spectracom
engineers to implement the acceleration methods in the receiver mock.
64 | P a g e
The in-built function Fast Fourier Transform could not be used directly for the code conversion
hence a table containing the results of the CA Code Table for the PRN 5 was generated and fed
as an input to the further processing.
The function-call containing the design under test named PostProcessing is defined in the test
bench.
Once the MATLAB Function is chosen, we can auto-define the inputs or manually define the
inputs and their data types (refer Figure 5-1 HDL Coder). Next, we need to choose the test bench and
click on Workflow Advisor. It opens a dialog box as shown in Figure 5-2 Workflow Advisorfor HDL
Code Generation.
65 | P a g e
Figure 5-2 Workflow Advisorfor HDL Code Generation
After the workflow advisor opens we need to choose if we want to convert to fixed point at built-
in time or we want to keep the original data types. In order to convert to VHDL/Verilog we need to
choose to convert to fixed point at built-in time. Next, step is to define the input types manually or
simply click Run. This can be done as shown in Figure 5-3 Input Types Definition.
66 | P a g e
Once the inputs datatype and size are obtained by executing the test bench that was loaded, we
proceed to the fixed point conversion; this is as shown in Figure 5-4 Fixed Points Conversion (a) and
Figure 5-5 Fixed Point Conversion (b). (a) shows the conversion tool with the inputs, data types, size,
the fixed-point conversion types. This will be assigned automatically and can be modified manually.
Figure 5-5 Fixed Point Conversion (b) shows the step once the conversion of the fixed point is
successful. Then the numeric types need to be checked, this can be done by clicking on the tab validate
types. Once, successful the control is automatically transferred to the next step Select code generation
target as shown in Figure 5-6 Select Code Generation Target. Once, successful the following will be
displayed:
67 | P a g e
Figure 5-5 Fixed Point Conversion (b)
The code generation target can be chosen if the tool path is setup. If not, we can choose Generic
ASCI/FPGA and proceed with the code generation as done in the Figure 5-6 Select Code Generation
Target.
The next control is transferred to HDL code generation. Here the type of code to be generated
either VHDL or Verilog can be chosen. In this case VHDL is chosen. The settings need to be modified
in the tabs coding style, coding standard, clocks & ports, optimization, advanced and script option. Once
68 | P a g e
the options are chosen we again click Run, to execute the code generation. And when successful the
following will be displayed:
In the case when the code generation target has to be chosen, we need to choose the tool path;
this can be done by typing the following in the command window
This is done to setup system environment to initialize FPGA synthesis software. The previously
mentioned steps were repeated after the code generation target was set to Altera II by choosing it in the
synthesis tool and this is shown in Figure 5-8 Code Generation Target ALTERA QUARTUS II. The
chip family was chosen as Cyclone V and the design was chosen as 5CSXFC6D6F31I7.
69 | P a g e
Figure 5-8 Code Generation Target ALTERA QUARTUS II
Now the control is transferred to the next page HDL Code Generation as shown in Figure 5-9 HDL
Code Generation Based on The Target. After the tabs are configured as discussed in the earlier case
(when the target was not chosen), the Run command is clicked again to begin the code generation. When
the code generation is complete. The following message is displayed:
After this stage, the HDL code generated can be verified and optimized for the design location. This
would require direct connection to the hardware SoC.
70 | P a g e
Figure 5-9 HDL Code Generation Based on The Target
The next control is transferred to HDL VERIFICATION, the first step is to verify with HDL test
bench. This was successful and the following was displayed as shown in Figure 5-10 VHDL Code
Verification.
71 | P a g e
Figure 5-10 VHDL Code Verification
The next stages of implementation will be done in future work. Since it required connecting to
the hardware sketchboard and could not be done at present.
The converted VHDL code and the coding used for the VHDL code generation written in MATLAB is
available at Spectracom.
5.3 Conclusion
The VHDL code generation for the partial acquisition stage was successful and a test bench
VHDL code was successfully generated. Since the aim of this chapter was to provide a way to
accelerate/implement the software tool on Spectracom hardware/firmware, it was done by generating a
VHDL code that could be used for the acceleration by implementing it in a CycloneV chip on the
sketchboard. The aim of this work was fulfilled partially. Thus, we conclude that it is possible to generate
a VHDL code using this procedure and this will support Spectracom engineers in implementing the
acceleration methods in the receiver mock.
72 | P a g e
6 Conclusion
This work has focused on the acceleration of a RF front that would be necessary to build a GNSS
receiver, and provide a starting point for the complete acceleration of the GNSS receiver in future. First,
the parameters needed to setup the MAX2769C were introduced, this would benefit for transferring
from receiving GNSS signals at intermediate frequency that is presented in this work to receiving using
direct RF in future implementations. These parameters are only applicable for the reception of GPS L1
signal in the current work. Secondly, the RF front-end was successfully designed, assembled and
configured or accelerated to receive GPS L1 signal with the help of MAX2769C evaluation kit,
sketchboard and other peripherals listed. Thirdly, GPS L1 signal was recorded using the RF front-end
and post-processed using SoftGNSS v3.0 with extra capabilities such as C/N0 estimator and subframe 4
decoding. Then, a test was performed using GSG-5 to analyze the data logged using the simulator and
debug the error in the previous version of the simulator. Thus, a GNSS software receiver was
successfully accelerated. Finally, a partial acceleration of the acquisition algorithm with reference to
SoftGNSS ( M Dennis Akos, 1997) was performed with the help of HDL coder tool (MATLAB, 2017).
This would provide a way and support for the Spectracom engineers for complete acceleration of the
receiver in future. Thus, the goals of the work were achieved.
The future work about this study will require writing a complete software GNSS code in MATLAB
and generating the VHDL code for conversion using MATLAB. Once the complete code is generated
and the hardware connection to the sketchboard (Spectracom s hardware/firmware) is established the
code can be implemented in the sketchboard.
73 | P a g e
7 Reference
[1] M Dennis Akos. (1997). A SOFTWARE RADIO APPROACH TO GLOBAL NAVIGATION SATELLITE
SYSTEM RECEIVER DESIGN. Rcupr sur
https://web.stanford.edu/group/scpnt/gpslab/pubs/theses/DennisAkosThesis97.pdf
[3] ARINC Engineering Services. (2006). NAVSTAR GPS Space Segement/ Navigation User
Segment Interface ,IS-GPS-200. Rcupr sur http://www.gps.gov/technical/icwg/IS-GPS-
200D.pdf
[4] Borio Daniele. (2013). Lab on GNSS Signal Processing Part I. Rcupr sur
http://www.danieleborio.altervista.org/sumschool/EsaSc_Lab1_BorioD_07Jun13.pdf
[5] CHANTHANLANSY, L. (2009). CARRIER TO NOISE DENSITY AND AI FOR INS/GPS INTEGRATION.
Rcupr sur http://www.insidegnss.com/auto/sepoct09-gnss-sol.pdf
[6] ESA, G. (2011). Front End of GNSS reciever . Rcupr sur Navipedia:
http://www.navipedia.net/index.php/Front_End
[8] European Space Agency, G. (2011). Generic Receiver Description. Rcupr sur Navipedia:
http://www.navipedia.net/index.php/Generic_Receiver_Description
[9] European Space Agency, G. (2011). tracking loop. Rcupr sur Navipedia:
http://www.navipedia.net/index.php/Tracking_Loops
[13]Jorgen Rhodin, M. R. (2000). Global Navigation Satellite System GNSS. Rcupr sur
http://www.sm.luth.se/csee/courses/sms/019/2000/gps/report_gps_2000.pdf
[14]Kia Borre, D. M. (2007). A Software-Defined GPS and Galileo Reciever : Single frequency
approach. Applied and Numeric Harmonic Analysis. Rcupr sur
http://read.pudn.com/downloads154/sourcecode/app/685304/GNSS_SDR/A%20Software-
Defined%20GPS%20and%20Galileo%20Receiver.pdf
[15]Marco Pini, E. F. (2008). Performance Evaluation of C/N0 Estimators Using a Real Time GNSS
Software Receiver. Rcupr sur http://ieeexplore.ieee.org/abstract/document/4621371/
74 | P a g e
[16]Mark PETOVELLO, D. O. (2016). Are there low - cost and low - weight options for IF storage?
INSIDE GNSS.
[24]Zheng, S. Y. (Febuary ,2005). Signal Acquisition And Tracking For A Software GPS Reciever .
Virginia.
75 | P a g e
8 Annexes
This section summarizes details that were not provided in the explanation of the report, they are
only for addition information.
8.1 Annexes 1
The results of the tracking loops that were generated using SoftGNSS are provided below in
Figure 8-1 Channel 1, Figure 8-2 Channel 2, Figure 8-3 Channel 3, Figure 8-4 Channel 4, Figure 8-5
Channel 5, Figure 8-6 Channel 6, Figure 8-7 Channel 7, Figure 8-8 Channel 8. Since only 7 channels were
acquired during acquisition there are 7 tracking outputs and the channel 8 is empty because no signal
was acquired in that channel.
i|Page
Figure 8-3 Channel 3
ii | P a g e
Figure 8-6 Channel 6
For the tracking of these signals the following parameters were set
iii | P a g e
The satellites with PRN 13, PRN 5, PRN 15, PRN 30, PRN 28 were tracked successfully and
satellites with PRN 22, PRN 23 were not tracked, there is a possibility they were not visible to the
receiver at that time.
8.2 Annexes 2
For the navigation solution extraction, the following step/process has to be done
The demodulated navigation bit combined with the code tracking loop measurements provide
the necessary data to compute the position solution.
If found then proceed and perform parity check (20-XIV (ICD-200C document)) and decode
the word.
Recover satellite clock, satellite health data, ephemeris parameters, satellite position in ECEF
coordinates system, pseudorange
The origin is in the geo-center. X axis is at the intersection of Equatorial plane and Greenwich
Meridian. Z axis is given by the direction of Conventional Terrestrial Pole. The axes are co-
rotating with the Earth and defined by WGS84 for GPS System.
To obtain the GNSS satellite coordinates from the navigation message specific algorithms
must be respected for computation of:
2. mean anomaly at tk
3. eccentric anomaly Ek
4. true anomaly vk
5. argument of latitude uk
6. radial distance rk
Square Root
of Semi
Major Axis
v|Page
Fields PRN 5 PRN 13 PRN 15 PRN 28 PRN 30
a f 2 (s/s^2) Clock 0 0 0 0 0
Correction Term
vi | P a g e