PART3 » History » Version 50

JANVIER, Thibault, 03/23/2016 09:18 AM

1 46 JANVIER, Thibault
h1. PART 5 : Implementation and results.
2 2 COLIN, Tony
3 20 COLIN, Tony
{{toc}}
4 2 COLIN, Tony
5 47 JANVIER, Thibault
This part is dedicated to explain and illustrate the main steps that have been done in order to retrieve a navigation signal and to compute the position of the receiver from the pseudo-range measurements of 4 satellites. [[PART|PART 2]], [[PART2|PART 3]] and [[PART41|PART 4]] provided a theoretical background on GPS signals, the main blocks of a GPS receiver and methods to compute the position using the navigation data. Now, it is time to put this theoretical knowledge into practice.
6 47 JANVIER, Thibault
As lots of VIs have been created, a UML diagram has been drawn to illustrate the structure of the overall code. For each main step that will be described, a link to the UML diagram will be provided, the different VIs to be taken into consideration will be listed, a few key points regarding the implementation will be clarified and the results will be displayed.
7 2 COLIN, Tony
8 2 COLIN, Tony
---
9 2 COLIN, Tony
10 4 COLIN, Tony
h2. 1 - Starting point.
11 2 COLIN, Tony
12 49 JANVIER, Thibault
h3. a - Quid about LabVIEW.
13 1 COLIN, Tony
14 49 JANVIER, Thibault
Labview is a modular dataflow programming language that relies on block diagrams interconnected with each other. Each block diagram represents a node, a function that can be run as soon as its inputs are available. Then, it computes outputs used as inputs by other nodes. Any created program can be reused as a node in a higher-level program, hence the modularity of Labview. While running a program, each input can be controlled thanks to a user interface known as a “front panel”. Likewise, every output can be monitored and displayed using the front panel. As a matter of fact, the front panel is closely linked to the program called the “block diagram”. Indeed, every primary input of the block diagram are defined and controlled via the front panel.
15 1 COLIN, Tony
16 49 JANVIER, Thibault
h3. b - Receiver scheme and milestones.
17 34 COLIN, Tony
18 49 JANVIER, Thibault
The software-defined GPS receiver to be implemented should take as an input a sampled signal that has been received and down-converted by an RF receiver front-end. As our RF receiver front-end was missing an antenna, we used a recorded GPS raw signal from the output of an RF front end (from CD *[1]* under GNSS_signal_records/GPSdata-DiscreteComponents-fs38_192-if9_55.bin). In order to read properly the data that are contained in the recorded file, one needs to know the sampling frequency and the intermediate frequency of the raw signal.
19 49 JANVIER, Thibault
Sampling frequency = 38.192 MHz
20 49 JANVIER, Thibault
Intermediate frequency = 9.55 MHz
21 50 JANVIER, Thibault
The following diagram sums up the general structure of the GPS receiver to be implemented.
22 1 COLIN, Tony
23 50 JANVIER, Thibault
p=. !SDR_GPS_Receiver.png!
24 50 JANVIER, Thibault
*Figure 5.1*: General receiver sheme.
25 34 COLIN, Tony
26 34 COLIN, Tony
h3. c - Local C/A code generation.
27 34 COLIN, Tony
28 43 COLIN, Tony
The files involved are :
29 43 COLIN, Tony
- _CA_Code.vi_
30 43 COLIN, Tony
- _CA_generatorG1.vi_
31 43 COLIN, Tony
- _CA_generatorG2.vi_
32 4 COLIN, Tony
33 4 COLIN, Tony
---
34 4 COLIN, Tony
35 4 COLIN, Tony
h2. 2 - Acquisition.
36 1 COLIN, Tony
37 43 COLIN, Tony
*See the UML Diagram of Section 2 under :* attachment:"Acquisition.png"
38 43 COLIN, Tony
39 43 COLIN, Tony
The files involved are :
40 44 COLIN, Tony
- _Main_Acquisition.vi_ : attachment:"SnapAcquisition.PNG"
41 44 COLIN, Tony
- _Acquisition_subVI.vi_ : attachment:"SnapAcquisitionSub.png"
42 43 COLIN, Tony
- _CA_Code.vi_
43 43 COLIN, Tony
44 37 JANVIER, Thibault
Justification acquisition method in terms of accuracy and time execution
45 37 JANVIER, Thibault
Justification of the step of 500Hz
46 37 JANVIER, Thibault
Methods to avoid the data bit transition while running acquisition
47 37 JANVIER, Thibault
Frequency refine is needed for the PLL of the tracking to converge
48 37 JANVIER, Thibault
Definition of the threshold and how it is implemented
49 37 JANVIER, Thibault
50 37 JANVIER, Thibault
51 4 COLIN, Tony
h3. .......
52 4 COLIN, Tony
53 4 COLIN, Tony
...........
54 4 COLIN, Tony
55 4 COLIN, Tony
---
56 4 COLIN, Tony
57 4 COLIN, Tony
h2. 3 - Tracking.
58 1 COLIN, Tony
59 45 JANVIER, Thibault
Justification of the DLL discriminator
60 45 JANVIER, Thibault
Correction of the blocksize to read as a function of the doppler shift
61 45 JANVIER, Thibault
62 43 COLIN, Tony
*See the UML Diagram of Section 2 under :* attachment:"Track.png"
63 43 COLIN, Tony
64 43 COLIN, Tony
The files involved are :
65 44 COLIN, Tony
- _Main_Carrier_Tracking.vi_ : attachment:"SnapTracking.png"
66 44 COLIN, Tony
- _CalcLoopCoeff.vi_ : attachment:"SnapCalcLoopCoeff.PNG"
67 43 COLIN, Tony
68 4 COLIN, Tony
h3. .......
69 4 COLIN, Tony
70 4 COLIN, Tony
...........
71 4 COLIN, Tony
72 35 COLIN, Tony
p=. !TrackingMin.PNG!
73 35 COLIN, Tony
74 4 COLIN, Tony
---
75 4 COLIN, Tony
76 4 COLIN, Tony
h2. 4 - Navigation Data decoding.
77 4 COLIN, Tony
78 13 COLIN, Tony
*See the UML Diagram of Section 4 under :* attachment:"NavigationData.PNG".
79 10 COLIN, Tony
80 29 COLIN, Tony
h3. a - Delimiting subframes.
81 1 COLIN, Tony
82 29 COLIN, Tony
The files involved are :
83 29 COLIN, Tony
- _FindPreamble.vi_
84 44 COLIN, Tony
- _TestFindPreamble.vi_ : attachment:"SnapTestFindPreamble.PNG"
85 29 COLIN, Tony
- _GenerateFrame.vi_
86 44 COLIN, Tony
- _ParityCheck.vi_ : attachment:"SnapParityCheck.PNG"
87 1 COLIN, Tony
88 1 COLIN, Tony
p=. !Preamble1.PNG! !Preamble2.PNG!
89 23 COLIN, Tony
90 26 COLIN, Tony
p((((. *Figure 5. :* Cross-correlation between navigation frame and local preamble. *Figure 5. :* Subframes with index of delimitation.
91 29 COLIN, Tony
92 23 COLIN, Tony
h3. b- Decoding ephemeris and information within the frame.
93 29 COLIN, Tony
94 29 COLIN, Tony
The files involved are :
95 29 COLIN, Tony
- _Ephemeris.vi_
96 44 COLIN, Tony
- _BinaryArrayToDecimal.vi_ : attachment:"SnapBinaryArrayToDecimal.PNG"
97 44 COLIN, Tony
- _twosComp2dec.vi_ : attachment:"SnapTwosComp2dec.PNG"
98 44 COLIN, Tony
- _ParityCheck.vi__ : attachment:"SnapParityCheck.PNG"
99 4 COLIN, Tony
- _TestEphemeris.vi_
100 4 COLIN, Tony
101 1 COLIN, Tony
---
102 4 COLIN, Tony
103 43 COLIN, Tony
h2. 5 - Elementary blocks for localization.
104 10 COLIN, Tony
105 14 COLIN, Tony
*See the UML Diagram of Section 5 under :* attachment:"Localization.PNG"
106 4 COLIN, Tony
107 31 COLIN, Tony
h3. a - Satellite position.
108 1 COLIN, Tony
109 31 COLIN, Tony
The files involved are :
110 31 COLIN, Tony
- _SatellitePosition.vi_
111 44 COLIN, Tony
- _TestSatellitePosition.vi_ : attachment:"SnapTest_satellite_position.PNG"
112 44 COLIN, Tony
- _Check_time.vi_ : attachment:"SnapCheckTime.PNG"
113 23 COLIN, Tony
114 31 COLIN, Tony
p=. !SatPos.PNG!
115 8 COLIN, Tony
*Figure 5. :* Interface with ephemeris as input and illustration of the satellite position.
116 32 COLIN, Tony
117 1 COLIN, Tony
h3. b - Pseudoranges.
118 32 COLIN, Tony
119 32 COLIN, Tony
The file involved is :
120 8 COLIN, Tony
_PseudorangesComputation.vi_
121 33 COLIN, Tony
122 1 COLIN, Tony
h3. c - Least Square solution for position determination.
123 33 COLIN, Tony
124 33 COLIN, Tony
The files involved are :
125 33 COLIN, Tony
- _LeastSquarePosition.vi_
126 44 COLIN, Tony
- _SatelliteRotationECEF.vi_ : attachment:"SnapSatelliteRotationECEF.PNG"
127 44 COLIN, Tony
- _toTopocentric.vi_ : attachment:"SnaptoTopocentric.PNG"
128 44 COLIN, Tony
- _CartesianToGeodetic.vi_ : attachment:"SnapCartesianToGeodetic.PNG"
129 1 COLIN, Tony
- _TroposphericCorrection.vi_
130 1 COLIN, Tony
131 43 COLIN, Tony
h2. 6 - Receiver position computation.
132 43 COLIN, Tony
133 43 COLIN, Tony
*See the UML Diagram of Section 6 under :* attachment:"Receiver.PNG"
134 43 COLIN, Tony
135 43 COLIN, Tony
The files involved are :
136 43 COLIN, Tony
- _ComputeReceiverPosition.vi_
137 43 COLIN, Tony
- _NavigationProcess.vi_
138 44 COLIN, Tony
- _CartesianToGeodeticForUTM.vi_ : attachment:"SnapCartesianToGeodeticForUTM.PNG"
139 43 COLIN, Tony
- _CartesianToUTM.vi_
140 43 COLIN, Tony
141 43 COLIN, Tony
h2. 7 - Complete UML Diagram of the receiver.
142 2 COLIN, Tony
143 41 COLIN, Tony
*The UML diagram with real size is available under :* attachment:"UMLDiagram.png"
144 6 COLIN, Tony
145 40 COLIN, Tony
Here is a small overview of the structure :
146 40 COLIN, Tony
147 40 COLIN, Tony
p=. !UMLDoverview.PNG!
148 40 COLIN, Tony
149 2 COLIN, Tony
---
150 3 COLIN, Tony
151 3 COLIN, Tony
*References :* 
152 3 COLIN, Tony
*[1]* K. Borre, D. M. Akos, N. Bertelsen, P. Rinder, S. H. Jensen, A software-defined GPS and GALILEO receiver