Modeling and Performance Analysis of GPS Vector Tracking Algorithms
Except where reference is made to the work of others, the work described in this
dissertation is my own or was done in collaboration with my advisory committee. This
dissertation does not include proprietary or classified information.
Matthew Lashley
Certificate of Approval:
David M. Bevly, Co-Chair
Associate Professor
Mechanical Engineering
John Y. Hung, Co-Chair
Professor
Electrical and Computer Engineering
Jitendra K. Tugnait
Professor
Electrical and Computer Engineering
George T. Flowers
Dean
Graduate School
Modeling and Performance Analysis of GPS Vector Tracking Algorithms
Matthew Lashley
A Dissertation
Submitted to
the Graduate Faculty of
Auburn University
in Partial Fulfillment of the
Requirements for the
Degree of
Doctor of Philosophy
Auburn, Alabama
December 18, 2009
Modeling and Performance Analysis of GPS Vector Tracking Algorithms
Matthew Lashley
Permission is granted to Auburn University to make copies of this dissertation at its
discretion, upon the request of individuals or institutions and at
their expense. The author reserves all publication rights.
Signature of Author
Date of Graduation
iii
Vita
Matthew Vernon Lashley was born in Roanoke, Alabama on November 12, 1981. He is
the second child of Vernon and Vicky Lashley, and has an older brother, William. Matthew
grew up in the small community of Malone, near the town of Wadley, Alabama. He gradu-
ated from Wadley High School in 2000. Matthew earned his bachelor?s degree in electrical
engineering in May 2004 from Auburn University. Matthew started graduate school in the
electrical engineering department studying control systems under Dr. John Hung in the
Fall of 2004. In the Fall of 2005 Matthew accepted a position in the GPS and Vehicle
Dynamics Lab (GAVLAB) as a graduate research assistant, working for Dr. David Bevly.
Matthew received his M.S. in electrical engineering in December of 2006. In January 2007,
he started working toward his doctorate in electrical engineering at Auburn University un-
der the advisement of Dr. Hung and Dr. Bevly. Matthew became a employee of Navigation
Technology Associates (NTA) in January 2007. He plans on continuing to work for NTA
after he finishes his doctorate.
iv
Dissertation Abstract
Modeling and Performance Analysis of GPS Vector Tracking Algorithms
Matthew Lashley
Doctor of Philosophy, December 18, 2009
(M.S., Auburn University, 2006)
(B.E.E., Auburn University, 2004)
417 Typed Pages
Directed by John Y. Hung and David M. Bevly
This dissertation provides a detailed analysis of GPS vector tracking algorithms and the
advantages they have over traditional receiver architectures. Standard GPS receivers use a
decentralized architecture that separates the tasks of signal tracking and position/velocity
estimation. Vector tracking algorithms combine the two tasks into a single algorithm. The
signals from the various satellites are processed collectively through a Kalman filter.
The advantages of vector tracking over traditional, scalar tracking methods are thor-
oughly investigated. A method for making a valid comparison between vector and scalar
tracking loops is developed. This technique avoids the ambiguities encountered when at-
tempting to make a valid comparison between tracking loops (which are characterized by
noise bandwidths and loop order) and the Kalman filters (which are characterized by process
and measurement noise covariance matrices) that are used by vector tracking algorithms.
The improvement in performance offered by vector tracking is calculated in multiple differ-
ent scenarios.
Rule of thumb analysis techniques for scalar Frequency Lock Loops (FLL) are extended
to the vector tracking case. The analysis tools provide a simple method for analyzing the
v
performance of vector tracking loops. The analysis tools are verified using Monte Carlo
simulations. Monte Carlo simulations are also used to study the effects of carrier to noise
power density (C/No) ratio estimation and the advantage offered by vector tracking over
scalar tracking. The improvement from vector tracking ranges from 2.4 to 6.2 dB in various
scenarios.
The difference in the performance of the three vector tracking architectures is analyzed.
The effects of using a federated architecture with and without information sharing between
the receiver?s channels are studied. A combination of covariance analysis and Monte Carlo
simulation is used to analyze the performance of the three algorithms. The federated al-
gorithm without information sharing performs poorer than the other two architectures.
However, at low C/N0 ratios the difference in the performance of the three algorithms
becomes virtually zero.
The analysis of different vector tracking architectures is then extended to an analysis
of different Deeply Integrated (DI) architectures. The effects of using a federated filtering
architecture on DI?s performance are investigated. Covariance analysis and Monte Carlo
simulation are also used to study the performance of the different DI algorithms. The
results from the DI analysis mirror the results from the analysis of different vector tracking
algorithms. The different DI architectures exhibit the same performance at lowC/N0 ratios.
The vector tracking algorithms are also implemented in MATLAB. The algorithms
are tested using data collected from an environment with dense foliage (having widely
fluctuating signal levels) and from an urban canyon type environment. The performance of
the vector tracking algorithms is compared to that of a NovAtel ProPak-V3 receiver in the
vi
same scenarios. The vector tracking algorithms provide near continuous coverage through
both environments while the NovAtel receiver exhibits periods of prolonged outages.
vii
Acknowledgments
I would like to thank all my family and friends for their support during my time in
graduate school. I would not have been able to complete my doctorate without their help. I
would also like to thank Dr. John Hung for advising me during my time in graduate school.
Dr. Hung has always been willing set aside time to share his knowledge and wisdom with
me. Dr. Hung has been a mentor and role model to me and many other students at Auburn
University.
I also owe a debt of gratitude to Dr. David Bevly. Dr. Bevly originally hired me as a
research assistant when I was a master?s student. He provided me with an office and all the
equipment used to perform the research in this dissertation. It has been a great experience
working and interacting with someone like Dr. Bevly who is heavily involved in navigation
research.
I would also like to thank all the members of the GPS and Vehicle Dynamics Lab
(GAVLAB) that I have worked with. Without their help I could not have completed my
research. I would specifically like to acknowledge the help of William Travis. He spent a
great deal of time helping me collect the data used in this dissertation.
I would like to thank the owners of Navigation Technology Associates (NTA) for em-
ploying me and allowing me to continue my education at Auburn. Specifically, I would like
to thank Shannon Fields and Jeff Rhea. I am also obliged to Bill Negast at NTA for helping
collect the RF simulator data used in the dissertation and for his proof reading services. I
would also like to thank Brian Baeder and Edwin Hogan at the U.S. Army Aviation and
Missile Research, Development and Engineering Center (AMRDEC) for their support.
viii
Style manual or journal used Journal of Approximation Theory (together with the style
known as ?aums?). Bibliography follows van Leunen?s A Handbook for Scholars.
Computer software used The document preparation package TEX (specifically LATEX)
together with the departmental style-file aums.sty.
ix
Table of Contents
List of Figures xiv
1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Prior Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Vector Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Aided Receivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Deficiencies in the Current Understanding of Deeply Integrated
GPS/INS Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 GPS Signal Structure 24
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 General Signal Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 GPS Carrier Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Gold Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5 Data Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3 Position and Velocity Determination 33
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Received Signal Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Position Determination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4 Velocity Determination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 Signal Tracking 40
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Conventional Tracking Loops . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Receiver Noise Performance Metrics . . . . . . . . . . . . . . . . . . . . . . 45
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5 Vector Tracking Receiver 50
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2 Traditional Receiver Architecture . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3 Vector Tracking Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.1 Position-State Formulation . . . . . . . . . . . . . . . . . . . . . . . 54
x
5.3.2 Pseudorange-State Formulation . . . . . . . . . . . . . . . . . . . . . 58
5.4 Carrier Phase Vector Tracking . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6 Vector Tracking Loop Performance 65
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.2 Weighted Least Squares Example . . . . . . . . . . . . . . . . . . . . . . . . 65
6.2.1 Scalar Tracking Method . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.2.2 Vector Tracking Method . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.2.3 Performance Gain from Collective Processing . . . . . . . . . . . . . 71
6.3 Coupled and Decoupled Pseudorange State VDFLL . . . . . . . . . . . . . 74
6.3.1 Pseudorange State VDFLL Covariance Analysis . . . . . . . . . . . 79
6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7 Vector Tracking Loss of Lock Performance Analysis 86
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.2 Rule of Thumb Analysis Techniques . . . . . . . . . . . . . . . . . . . . . . 87
7.2.1 Frequency Lock Loop Analysis . . . . . . . . . . . . . . . . . . . . . 87
7.2.2 Vector Delay/Frequency Lock Loop Analysis . . . . . . . . . . . . . 90
7.2.3 Vector Delay/Frequency Lock Thermal Noise Performance . . . . . . 92
7.2.4 Vector Delay/Frequency Lock Loop Dynamic Stress Steady State Per-
formance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.2.5 Scenario Dependent Vector Delay/Frequency Lock Loop Dynamic
Stress Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.3 Monte Carlo Simulation Results . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.3.1 Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.3.2 Simulation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.3.3 Effect of C/N0 Estimation . . . . . . . . . . . . . . . . . . . . . . . . 117
7.3.4 Comparison of Scalar and Vector Tracking Algorithms . . . . . . . . 122
7.4 High Dynamics Simulation Results . . . . . . . . . . . . . . . . . . . . . . . 133
7.4.1 Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.4.2 Simulation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8 Analysis of Different Vector Tracking Architectures 143
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
8.2 Deep Integration Filter Architectures . . . . . . . . . . . . . . . . . . . . . . 143
8.3 Single Central Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.4 Federated Filtering Architectures . . . . . . . . . . . . . . . . . . . . . . . . 150
8.4.1 Federated Architecture with Coupled Channel Residual Filter . . . . 151
8.4.2 Federated Architecture with Decoupled Channel Residual Filters . . 159
8.5 Covariance Analysis of Vector Tracking Architectures . . . . . . . . . . . . . 167
xi
8.5.1 Covariance Analysis Results for Eleven Satellite Scenario . . . . . . 173
8.5.2 Covariance Analysis Results for Five Satellite Scenario . . . . . . . . 183
8.6 Monte Carlo Test Results of Vector Tracking Architectures . . . . . . . . . 186
8.6.1 Monte Carlo Simulation Results for Eleven Satellite Scenario . . . . 188
8.6.2 Monte Carlo Simulation Results for Five Satellite Scenario . . . . . 195
8.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9 Analysis of Different Deep Integration Architectures 201
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.2 Deep Integration Architectures . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.2.1 Deep Integration with Centralized Filter . . . . . . . . . . . . . . . . 204
9.2.2 Federated Filtering Architectures . . . . . . . . . . . . . . . . . . . . 209
9.2.3 Federated Deep Integration Filter with Coupled Channels . . . . . . 210
9.2.4 Federated Deep Integration Filter with Decoupled Channels . . . . . 221
9.3 Covariance Analysis of Deeply Integrated Architectures . . . . . . . . . . . 231
9.3.1 Tactical Grade IMU, Temperature Controlled Oscillator, and Eleven
Satellite Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
9.3.2 Automotive Grade IMU, Temperature Controlled Oscillator, and Five
Satellite Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
9.4 Monte Carlo Test Results of Deep Integration Architectures . . . . . . . . . 251
9.4.1 Eleven Satellite and Tactical Grade IMU Monte Carlo Simulation
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
9.4.2 Five Satellite and Automotive Grade IMU Monte Carlo Simulation
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
9.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
10 Live Sky Test Results Using Vector Tracking 261
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
10.2 Vector Tracking Test Results in Dense Foliage . . . . . . . . . . . . . . . . . 261
10.3 Vector Tracking Test Results in an Urban Canyon . . . . . . . . . . . . . . 273
10.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
11 Conclusion and Future Work 287
11.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
11.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Bibliography 294
Appendices 303
A Equivalence of Position-State and Pseudorange-State Vector Track-
ing Formulations 304
A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
xii
A.2 Covariance Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
A.2.1 Position-State Covariance Analysis . . . . . . . . . . . . . . . . . . . 306
A.2.2 Pseudorange-State Covariance Analysis . . . . . . . . . . . . . . . . 310
A.2.3 Equivalence in Steady State Prediction Errors . . . . . . . . . . . . . 313
B C/N0 Ratio Estimation 318
B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
B.2 Noise Power Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
B.3 Signal Amplitude Measurements . . . . . . . . . . . . . . . . . . . . . . . . 320
B.4 Amplitude Kalman Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
B.5 Adaptive Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
C Additional Plots 328
C.1 Additional Plots From Chapter 7 Section 3.2 . . . . . . . . . . . . . . . . . 328
C.2 Additional Plots From Chapter 7 Section 3.4 . . . . . . . . . . . . . . . . . 335
C.3 Additional Plots From Chapter 8 Section 6.1 . . . . . . . . . . . . . . . . . 342
C.4 Additional Plots From Chapter 8 Section 6.2 . . . . . . . . . . . . . . . . . 350
C.5 Additional Plots From Chapter 9 Section 3.1 . . . . . . . . . . . . . . . . . 362
C.6 Additional Plots From Chapter 9 Section 3.2 . . . . . . . . . . . . . . . . . 365
C.7 Additional Plots From Chapter 9 Section 4.1 . . . . . . . . . . . . . . . . . 368
C.8 Additional Plots From Chapter 9 Section 4.2 . . . . . . . . . . . . . . . . . 371
D Error State Recursions 374
D.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
D.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
D.3 Error State Recursions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
E Inertial Sensor Integration and Error Modeling 382
E.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
E.2 Strap down Inertial Measurement Units . . . . . . . . . . . . . . . . . . . . 382
E.3 Inertial Measurement Unit Error Modeling . . . . . . . . . . . . . . . . . . 385
E.4 Extended Kalman Filter for Tight and Deeply Integrated Architectures . . 387
xiii
List of Figures
1.1 Loosely Coupled Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Tightly Coupled Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Ultra-Tightly Coupled Architecture . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Raytheon Method of Ultra-Tight Coupling [Horslund and Hooker, 1999] . . 12
1.5 Anthony Abbott Method of Ultra-Tight Coupling [Abbott and Lillo, 2003] . 13
1.6 Draper Method of Deep Integration [Gustafson et al., 2001] . . . . . . . . . 15
2.1 Autocorrelation Function of Gold Codes . . . . . . . . . . . . . . . . . . . . 29
2.2 Ideal Autocorrelation Function of Gold Codes . . . . . . . . . . . . . . . . . 30
2.3 Cross-Correlation of Different Gold Codes . . . . . . . . . . . . . . . . . . . 30
2.4 Arrangement of the GPS Navigation Message, [Hamm, 2005] . . . . . . . . 31
4.1 Receiver Correlator Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Delay Lock Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 Costas Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4 Frequency Lock Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.5 J/S Performance of an Unaided GPS Receiver for Wideband Jammer . . . 48
5.1 Traditional Receiver Architecture . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 Vector Tracking Receiver Architecture . . . . . . . . . . . . . . . . . . . . . 52
5.3 Cascaded Vector Phase Lock Loop Architecture . . . . . . . . . . . . . . . . 62
6.1 Position Dilution of Precision and Number of Satellites Throughout Data
Collection Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
xiv
6.2 Maximum and Minimum Performance Gain in C/N0 from Vector Tracking
for Weighted Least Squares Example . . . . . . . . . . . . . . . . . . . . . . 73
6.3 Pseudorange-Rate Variance Versus C/N0 for Coupled and Decoupled Filters 81
6.4 Maximum and Minimum Performance Gain in C/N0 from Vector Tracking
Assuming Equal Signal Powers. . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.5 Maximum and Minimum Performance Gain in C/N0 for Vector Tracking
Using Actual Signal Powers . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7.1 VDFLL Thermal Noise Jitter Versus C/No When Tracking Five Satellites . 96
7.2 VDFLL Thermal Noise Jitter Versus C/No When Tracking Seven Satellites 97
7.3 VDFLL Thermal Noise Jitter Versus C/No When Tracking Eleven Satellites 97
7.4 Maximum Jerk Stress Versus C/No When Tracking Five Satellites . . . . . 102
7.5 Maximum Jerk Stress Versus C/No When Tracking Five Satellites . . . . . 102
7.6 Maximum Jerk Stress Versus C/No When Tracking Eleven Satellites . . . . 103
7.7 Maximum Jerk Stress Versus C/No When Tracking Eleven Satellites . . . . 104
7.8 VDFLL Thermal Noise Analysis with 11 Satellites and ?2x= .2 m2/s2 . . . . 110
7.9 VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= .2 m2/s2 111
7.10 VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 2 m2/s2 111
7.11 VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 10 m2/s2 112
7.12 VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 50 m2/s2 113
7.13 VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 100 m2/s2 113
7.14 VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 300 m2/s2 114
7.15 VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= .02 m2/s2 115
7.16 VDFLL Simulation Results for 11 Satellites and ?2= 300 m2/s2 With and
Without Prior Knowledge of C/No ratio . . . . . . . . . . . . . . . . . . . . 119
xv
7.17 VDFLL Simulation Results for 11 Satellites and ?2= 50 m2/s2 With and
Without Prior Knowledge of C/No ratio . . . . . . . . . . . . . . . . . . . . 119
7.18 VDFLL Simulation Results for 11 Satellites and ?2= 10 m2/s2 With and
Without Prior Knowledge of C/No ratio . . . . . . . . . . . . . . . . . . . . 120
7.19 VDFLL Simulation Results for 11 Satellites and ?2= 2 m2/s2 With and
Without Prior Knowledge of C/No ratio . . . . . . . . . . . . . . . . . . . . 120
7.20 VDFLL Simulation Results for 11 Satellites and ?2= .2 m2/s2 With and
Without Prior Knowledge of C/No ratio . . . . . . . . . . . . . . . . . . . . 121
7.21 VDFLL Simulation Results for 11 Satellites and ?2= .02 m2/s2 With and
Without Prior Knowledge of C/No ratio . . . . . . . . . . . . . . . . . . . . 121
7.22 Thermal Noise Analysis Results for 11 Satellites and ?2= 10 m2/s2 . . . . . 125
7.23 Monte Carlo Simulation Results for 11 Satellites and ?2= 10 m2/s2 . . . . 126
7.24 Thermal Noise Analysis Results for 11 Satellites and ?2= 50 m2/s2 . . . . . 127
7.25 Monte Carlo Simulation Results for 11 Satellites and ?2= 50 m2/s2 . . . . 127
7.26 Thermal Noise Analysis Results for 11 Satellites and ?2= 100 m2/s2 . . . . 128
7.27 Monte Carlo Simulation Results for 11 Satellites and ?2= 100 m2/s2 . . . . 129
7.28 Monte Carlo Simulation Results for a Single Channel of the Decoupled Filter 132
7.29 ECEF Y and Z Coordinates During Simulation . . . . . . . . . . . . . . . . 135
7.30 VDFLL Thermal Noise Jitter and Dynamic Stress Error at 19 dB-Hz Using
5 Satellites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.31 VDFLL Thermal Noise Jitter and Dynamic Stress Error at 16 dB-Hz Using
7 Satellites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.32 VDFLL Velocity Estimate Errors Using 7 Satellites at 16 dB-Hz . . . . . . 138
7.33 VDFLL Y and Z-Axis Acceleration Data Using 11 Satellites at 16 dB-Hz . 138
7.34 2 Hz FLL and VDFLL Performance at 19 dB-Hz . . . . . . . . . . . . . . . 140
8.1 Single Centralized Filter Architecture . . . . . . . . . . . . . . . . . . . . . 146
xvi
8.2 Federated Filter Architecture with Coupled-Channel Residual Filters . . . . 151
8.3 Federated Filter Architecture with Decoupled-Channel Residual Filters . . . 159
8.4 Covariance Analysis Results, X-axis Position Error for the Different Filter
Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.5 Covariance Analysis Results, X-axis Velocity Error for the Different Filter
Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.6 Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . 175
8.7 Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . 176
8.8 Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters when Varying the Process and Measurement Noise179
8.9 Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters when Varying the Process and Measurement Noise179
8.10 Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . 180
8.11 Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . 181
8.12 Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . 182
8.13 Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . 182
8.14 Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . 183
8.15 Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . 184
8.16 Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . 185
xvii
8.17 Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . 185
8.18 Monte Carlo Simulation Results for the X-AxisPosition with ElevenSatellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
8.19 Monte Carlo Simulation Results for the X-Axis Velocity with Eleven Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.20 Monte Carlo Simulation Results for the Clock Bias with Eleven Satellites and
?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.21 Monte Carlo Simulation Results for the Clock Drift with Eleven Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.22 Monte Carlo Simulation Results for the X-AxisPosition with ElevenSatellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
8.23 Monte Carlo Simulation Results for the X-Axis Velocity with Eleven Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.24 Monte Carlo Simulation Results for the Clock Bias with Eleven Satellites and
?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.25 Monte Carlo Simulation Results for the Clock Drift with Eleven Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
8.26 Monte Carlo Simulation Results for the X-Axis Position with Five Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8.27 Monte Carlo Simulation Results for the X-Axis Velocity with Five Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8.28 Monte Carlo Simulation Results for the X-Axis Position with Five Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.29 Monte Carlo Simulation Results for the X-Axis Velocity with Five Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.1 Centralized Deep Integration Filter . . . . . . . . . . . . . . . . . . . . . . . 205
9.2 Federated Deep Integration Filter with Coupled Channels . . . . . . . . . . 211
xviii
9.3 Federated Deep Integration Filter with Decoupled Channels . . . . . . . . . 222
9.4 Receiver Trajectory During Flight Profile . . . . . . . . . . . . . . . . . . . 234
9.5 Covariance Analysis Results for the X-Axis Position State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 236
9.6 Covariance Analysis Results for the X-Axis Velocity State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.7 Covariance Analysis Results for the Clock Bias State with Eleven Satellites
and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
9.8 Covariance Analysis Results for the Clock Drift State with Eleven Satellites
and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
9.9 X-Axis Position Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 45 dB-Hz . . . . . . . . . . . . . . . . 241
9.10 X-Axis Velocity Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 45 dB-Hz . . . . . . . . . . . . . . . . 241
9.11 Channel One Pseudorange Variance Before and After Update Rate Change
with Eleven Satellites and Tactical Grade IMU at 45 dB-Hz . . . . . . . . . 242
9.12 Channel One Pseudorange-Rate Variance Before and After Update Rate
Change with Eleven Satellites and Tactical Grade IMU at 45 dB-Hz . . . . 243
9.13 X-Axis Position Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 20 dB-Hz . . . . . . . . . . . . . . . . 244
9.14 X-Axis Velocity Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 20 dB-Hz . . . . . . . . . . . . . . . . 245
9.15 Covariance Analysis Results for the X-Axis Position State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 246
9.16 Covariance Analysis Results for the X-Axis Velocity State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 247
9.17 Covariance Analysis Results for the X-Axis Position State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
xix
9.18 Covariance Analysis Results for the X-Axis Velocity State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
9.19 Covariance Analysis Results for the Clock Bias State with Five Satellites and
Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
9.20 Covariance Analysis Results for the Clock Drift State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
9.21 Monte Carlo Simulation Results for the X-Axis Position State with Eleven
Satellites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . 254
9.22 Monte Carlo Simulation Results for the X-Axis Velocity State with Eleven
Satellites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . 254
9.23 Monte Carlo Simulation Results for the Clock Bias State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 255
9.24 Monte Carlo Simulation Results for the Clock Drift State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 256
9.25 Monte Carlo Simulation Results for the X-Axis Position State with Five
Satellites and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . 257
9.26 Monte Carlo Simulation Results for the X-Axis Velocity State with Five
Satellites and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . 257
9.27 Monte Carlo Simulation Results for the Clock Bias State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
9.28 Monte Carlo Simulation Results for the Clock Drift State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
10.1 Mini Baja Course at NCAT (from Google Earth) . . . . . . . . . . . . . . . 262
10.2 ATV and Hardware Used to Collect Data . . . . . . . . . . . . . . . . . . . 263
10.3 Skyplot of Visible Satellites for the First Data Set (from NordNav Receiver) 264
10.4 Estimated C/No Ratios for the First Data Set . . . . . . . . . . . . . . . . . 265
10.5 Estimated Velocities from the VDFLL for the First Data Set . . . . . . . . 265
10.6 Estimated Accelerations from the VDFLL for the First Data Set . . . . . . 266
xx
10.7 Position Estimates from the VDFLL and NovAtel for the First Data Set . . 266
10.8 Position Estimates from the VDFLL and NovAtel for the First Data Set . . 267
10.9 Position Estimates from the VDFLL and NovAtel for the First Data Set . . 267
10.10Skyplot of Visible Satellites for the Second Data Set (from NordNav Receiver)269
10.11Estimated C/No Ratios for the Second Data Set . . . . . . . . . . . . . . . 269
10.12Estimated Velocities from the VDFLL for the Second Data Set . . . . . . . 270
10.13Estimated Accelerations from the VDFLL for the Second Data Set . . . . . 271
10.14Position Estimates from the VDFLL and NovAtel for the Second Data Set . 271
10.15Position Estimates from the VDFLL and NovAtel for the Second Data Set . 272
10.16Position Estimates from the VDFLL and NovAtel for the Second Data Set . 272
10.17Urban Canyon at the Intersection of Peachtree ST. NE and Andrew Young
International Blvd. NE, Looking North (from Google Street View) . . . . . 274
10.18Skyplot of Visible Satellites for the Atlanta Data (from NordNav Receiver) 276
10.19Estimated C/No Ratios for the Total Atlanta Data Set . . . . . . . . . . . . 276
10.20Position Estimates of the VDFLL and NovAtel . . . . . . . . . . . . . . . . 277
10.21Position Estimates of the VDFLL and NovAtel Overladed on a Map of Down-
town Atlanta (from Google Earth and GPS Visualizer) . . . . . . . . . . . . 279
10.22Position Estimates from the VDFLL and NovAtel for the Second Data Set
(from Google Earth and GPS Visualizer) . . . . . . . . . . . . . . . . . . . . 281
10.23Position Estimates from the VDFLL and NovAtel While Inside Extreme
Urban Canyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
10.24Estimated C/No Ratios While in Urban Canyon . . . . . . . . . . . . . . . 283
10.25Position Estimates from the VDFLL and NovAtel . . . . . . . . . . . . . . 283
10.26Position Estimates of the VDFLL and NovAtel Overladed on a Map of At-
lanta (from Google Earth and GPS Visualizer) . . . . . . . . . . . . . . . . 285
xxi
B.1 C/N0 Estimated Using Adaptive Filtering Techniques . . . . . . . . . . . . 327
C.1 VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= .2 m2/s2 . 328
C.2 VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 2 m2/s2 . 329
C.3 VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 10 m2/s2 329
C.4 VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 50 m2/s2 330
C.5 VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 100 m2/s2 330
C.6 VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 300 m2/s2 331
C.7 VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= .2 m2/s2 . 331
C.8 VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 2 m2/s2 . 332
C.9 VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 10 m2/s2 332
C.10 VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 50 m2/s2 333
C.11 VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 100 m2/s2 333
C.12 VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 300 m2/s2 334
C.13 Thermal Noise Analysis Results for 7 Satellites and ?2= 10 m2/s2 . . . . . 335
C.14 Monte Carlo Simulation Results for 7 Satellites and ?2= 10 m2/s2 . . . . . 336
C.15 Thermal Noise Analysis Results for 7 Satellites and ?2= 50 m2/s2 . . . . . 336
C.16 Monte Carlo Simulation Results for 7 Satellites and ?2= 50 m2/s2 . . . . . 337
C.17 Thermal Noise Analysis Results for 7 Satellites and ?2= 100 m2/s2 . . . . . 337
C.18 4.5Monte Carlo Simulation Results for 7 Satellites and ?2= 100 m2/s2 . . . 338
C.19 Thermal Noise Analysis Results for 5 Satellites and ?2= 10 m2/s2 . . . . . 338
C.20 Monte Carlo Simulation Results for 5 Satellites and ?2= 10 m2/s2 . . . . . 339
C.21 Thermal Noise Analysis Results for 5 Satellites and ?2= 50 m2/s2 . . . . . 339
xxii
C.22 Monte Carlo Simulation Results for 5 Satellites and ?2= 50 m2/s2 . . . . . 340
C.23 Thermal Noise Analysis Results for 5 Satellites and ?2= 100 m2/s2 . . . . . 340
C.24 Monte Carlo Simulation Results for 5 Satellites and ?2= 100 m2/s2 . . . . 341
C.25 Monte Carlo Simulation Results for the Y-AxisPosition with ElevenSatellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
C.26 Monte Carlo Simulation Results for the Y-Axis Velocity with Eleven Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
C.27 Monte Carlo Simulation Results for the Z-Axis Position with Eleven Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
C.28 Monte Carlo Simulation Results for the Z-Axis Velocity with Eleven Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
C.29 Monte Carlo Simulation Results for the X-AxisPosition with ElevenSatellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
C.30 Monte Carlo Simulation Results for the X-Axis Velocity with Eleven Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
C.31 Monte Carlo Simulation Results for the Y-AxisPosition with ElevenSatellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
C.32 Monte Carlo Simulation Results for the Y-Axis Velocity with Eleven Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
C.33 Monte Carlo Simulation Results for the Z-Axis Position with Eleven Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
C.34 Monte Carlo Simulation Results for the Z-Axis Velocity with Eleven Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
C.35 Monte Carlo Simulation Results for the Clock Bias with Eleven Satellites and
?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
C.36 Monte Carlo Simulation Results for the Clock Drift with Eleven Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
C.37 Monte Carlo Simulation Results for the Y-AxisPosition with ElevenSatellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
xxiii
C.38 Monte Carlo Simulation Results for the Y-Axis Velocity with Eleven Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
C.39 Monte Carlo Simulation Results for the Z-Axis Position with Eleven Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
C.40 Monte Carlo Simulation Results for the Z-Axis Velocity with Eleven Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
C.41 Monte Carlo Simulation Results for the Y-Axis Position with Five Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
C.42 Monte Carlo Simulation Results for the Y-Axis Velocity with Five Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
C.43 Monte Carlo Simulation Results for the Z-Axis Position with Five Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
C.44 Monte Carlo Simulation Results for the Z-Axis Velocity with Five Satellites
and ?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
C.45 Monte Carlo Simulation Results for the Clock Bias with Five Satellites and
?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
C.46 Monte Carlo Simulation Results for the Clock Drift with Five Satellites and
?2=2 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
C.47 Monte Carlo Simulation Results for the X-Axis Position with Five Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
C.48 Monte Carlo Simulation Results for the X-Axis Velocity with Five Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
C.49 Monte Carlo Simulation Results for the Y-Axis Position with Five Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
C.50 Monte Carlo Simulation Results for the Y-Axis Velocity with Five Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
C.51 Monte Carlo Simulation Results for the Z-Axis Position with Five Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
C.52 Monte Carlo Simulation Results for the Z-Axis Velocity with Five Satellites
and ?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
xxiv
C.53 Monte Carlo Simulation Results for the Clock Bias with Five Satellites and
?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
C.54 Monte Carlo Simulation Results for the Clock Drift with Five Satellites and
?2=10 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
C.55 Monte Carlo Simulation Results for the Y-Axis Position with Five Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
C.56 Monte Carlo Simulation Results for the Y-Axis Velocity with Five Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
C.57 Monte Carlo Simulation Results for the Z-Axis Position with Five Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
C.58 Monte Carlo Simulation Results for the Z-Axis Velocity with Five Satellites
and ?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
C.59 Monte Carlo Simulation Results for the Clock Bias with Five Satellites and
?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
C.60 Monte Carlo Simulation Results for the Clock Drift with Five Satellites and
?2=50 m2/s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
C.61 Covariance Analysis Results for the Y-Axis Position State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 362
C.62 Covariance Analysis Results for the Y-Axis Velocity State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 363
C.63 Covariance Analysis Results for the Z-Axis Position State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 363
C.64 Covariance Analysis Results for the Z-Axis Velocity State with Eleven Satel-
lites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . 364
C.65 Covariance Analysis Results for the Y-Axis Position State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
C.66 Covariance Analysis Results for the Y-Axis Velocity State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
C.67 Covariance Analysis Results for the Z-Axis Position State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
xxv
C.68 Covariance Analysis Results for the Z-Axis Velocity State with Five Satellites
and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
C.69 Monte Carlo Simulation Results for the Y-Axis Position State with Eleven
Satellites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . 368
C.70 Monte Carlo Simulation Results for the Y-Axis Velocity State with Eleven
Satellites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . 369
C.71 Monte Carlo Simulation Results for the Z-Axis Position State with Eleven
Satellites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . 369
C.72 Monte Carlo Simulation Results for the Z-Axis Velocity State with Eleven
Satellites and Tactical Grade IMU . . . . . . . . . . . . . . . . . . . . . . . 370
C.73 Monte Carlo Simulation Results for the Y-Axis Position State with Five
Satellites and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . 371
C.74 Monte Carlo Simulation Results for the Y-Axis Velocity State with Five
Satellites and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . 372
C.75 Monte Carlo Simulation Results for the Z-Axis Position State with Five Satel-
lites and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . 372
C.76 Monte Carlo Simulation Results for the Z-Axis Velocity State with Five Satel-
lites and Automotive Grade IMU . . . . . . . . . . . . . . . . . . . . . . . . 373
D.1 Federated Filter Architecture with Decoupled-Channel Residual Filters . . . 375
xxvi
Chapter 1
Introduction
1.1 Motivation
The NAVSTAR Global Positioning System (GPS) was developed in the 1970?s by
the Department of Defense (DoD). The purpose of the GPS system was to provide the
U.S. military with accurate measurements of position, velocity, and time (PVT). The DoD
desired position estimates with a root-mean-square (rms) error of ten meters, velocity es-
timates with an rms error of .1 m/s, and time estimates with an rms error of 100 ns,
[Misra and Enge, 2001]. The system was also equipped with a less accurate, civilian com-
ponent that non-military user?s could use. Today the U.S. military uses the GPS system
extensively. It is used for a myriad of tasks from as simple as personal navigation, to
the guidance of precision munitions. Civilian usage of the GPS system has also become
widespread. Many automobiles come equipped with GPS receivers and hand held receivers
have become commonplace among joggers, hunters, and hikers. Industrial applications of
the GPS system range from land surveying, to precision agriculture, to its usage in the
finance system as a timing standard.
Despite its widespread application and usage, the GPS system has several inherent
shortcomings. The primary foible of the system is the power level of the received sig-
nals. For the civilian user, the power of the received signals is approximately 10?16 watts,
[Misra and Enge, 2001]. The low power level of the GPS signal makes it very susceptible
to intentional and unintentional jamming. In fact, only about 3 pW of wideband RF inter-
ference is required to disable a civilian GPS receiver, [Ward, 1996a]. A wideband jammer
1
with an Effective Radiated Power (ERP) of only 5 Watts can incapacitate civilian receivers
within about a 10 mile radius [Ward, 1996a]. Military receivers are more robust in terms of
their jamming immunity, but are still relatively easy to jam. A 100 Watt jammer can dis-
able military receivers within a 25 km radius [Gustafson et al., 2000b]. In addition to being
highly effective, GPS jammers are inexpensive to make. A jammer with several hundred
watts of power can be manufactured at a cost of 25 dollars or less [Gustafson et al., 2000b].
In hostile environments, jamming represents a major threat to the GPS system. Civilian
receivers are much less likely to encounter intentional jamming or RF interference. How-
ever, civilian receivers will lose signal lock and cease to function in environments with dense
overhead foliage or in urban canyons.
Another shortcoming of GPS, and satellite based navigation systems in general, is the
need to maintain line of sight between the user?s antenna and the satellites. Blockage of the
satellite signal disables the GPS receiver. During periods of blockage, the tracking loops
inside the receiver are in a state of random walk [Dierendonck, 1996]. After prolonged
periods of signal unavailability, the receiver must re-enter the time consuming acquisition
stage before it can reinitialized its tracking loops. The tracking loops inside the receiver are
also sensitive to the dynamics of the receiver. High dynamics can cause the tracking loops
to fail.
In an effort to improve GPS availability, various methods of increasing the robustness
of receivers have been investigated. The two methods investigated in this dissertation are
advanced signal tracking algorithms and the fusion of GPS with other sensors. More specif-
ically, vector based tracking algorithms are studied and different methods of incorporating
2
Inertial Measurement Units (IMU?s) with GPS receivers are investigated (known as Deep
Integration or Ultra-Tight Coupling).
1.2 Prior Work
In this section, prior work in vector based signal processing and aided receivers is
covered.
1.2.1 Vector Tracking
Vector tracking algorithms are an advanced method of processing the received GPS
signals. They have the ability to function at lower carrier to noise power density (C/No)
ratios and in higher dynamics than traditional GPS receivers. Receivers must track the
signals broadcast from at least four GPS satellites in order to navigate. Traditional receivers
track the signals from different satellites independent of one another using tracking loops.
Instead of processing the signals separately, vector tracking algorithms use a single Kalman
filter to simultaneously track the GPS signals and determine the user?s position, velocity,
etc. Vector based methods combine the tasks of signal tracking and navigation into a single
algorithm.
Tracking the GPS signals together, rather than separately, gives the vector tracking
algorithms several advantages. The task of tracking the user?s dynamics is accomplished
jointly, by all the channels together. Using standard tracking loops, each channel must track
the line-of-sight dynamics of the receiver by itself. The received signal power may also be too
low for the tracking loops in each channel to operate. However, there can still be sufficient
aggregate signal power in the sum of the channels to allow the vector based methods to
3
operate. Another advantage of the vector based methods is that the user?s dynamics can
be constrained to be in different dimensions [Spilker, Jr., 1996a]. For applications such as
pedestrian, ship, and automotive navigation, the majority of the receiver dynamics occur
in only two axes. Vector tracking algorithms can account for constrained user dynamics.
The concept of vector tracking originates in the early 1980?s [Copps et al., 1980]
[Sennott, 1984]. In the 1990?s, researchers from Bradley University published several papers
using a GPS receiver with coupled signal tracking channels to achieve improved performance
[Sennott and Senffner, 1997], [Sennott and Senffner, 1995], [Sennott and Senffner, 1992b],
[Sennott and Senffner, 1992a]. The most commonly cited reference for vector tracking ap-
peared in 1996 [Spilker, Jr., 1996a], where the Vector Delay Lock Loop (VDLL) is intro-
duced and many of the commonly cited advantages of vector tracking are listed. However,
few practical details of implementing the VDLL are included. A host of papers on vector
tracking have appeared since the turn of the century. Researchers from the University of Cal-
gary investigated different methods of estimating the phases of the received carrier signals for
a federated vector tracking architecture in [Petovello and Lachapelle, 2006]. The robustness
of the a VectorDelay/FrequencyLockLoop (VDFLL)is demonstrated in[Pany et al., 2005].
The ability of the VDFLL to operate in heavy foliage and reacquire blocked signals is stud-
ied in [Lashley and Bevly, 2008], [Lashley and Bevly, 2007], and [Kiesel et al., 2007]. The
VDFLL is used to estimated the power of weak signals in [Pany and Eissfeller, 2006]. A de-
tailed covariance analysis of the VDLL is performed in [Benson, 2007]. In [Benson, 2007],
the average interference benefit of the VDLL over the scalar Delay Lock Loop (DLL) is
quoted as being from 3 to 5.9 dB for varying satellite geometries. In [Lashley et al., 2008],
4
the authors demonstrated the ability of the VDFLL to operate through 2 G and 4 G turns
at 16 dB-Hz.
1.2.2 Aided Receivers
Additional sensors are often fused with GPS to produce a more robust navigation sys-
tem. The most common sensors used are inertial measurement units (IMU?s). Other sensors
include dopplerometers, altimeters, speedometers, and odometers, [Bullock et al., 2006].
Inertial sensors provide acceleration measurements and angular rate measurements in the
reference frame that they are mounted. Integrating the IMU measurements produces es-
timates of the user?s change in velocity and change in position. The strengths of IMU?s
are that they can provide updates at several hundred Hertz and are immune to jamming.
However, IMU?s have inherit flaws of their own. They suffer from biases and drifts that
cause errors to accumulate over time. Additionally, IMU?s contain scale factors that must
be estimated in order to determine the true accelerations and angular rates experienced,
[Flenniken, IV, 2005] [Pethel, 2006].
The strengths and weaknesses of IMU?s and GPS complement each other. The mea-
surements provided by an IMU serve to update the user?s PVT between GPS updates.
During times of satellite occlusion, the IMU can be used to dead reckon and can help in
re-initializing the tracking loops when the satellites reappear. On the other hand, the GPS
measurements can be used to correct the drift in the dead reckoned IMU position esti-
mates. The bias?s and scale factors in the IMU?s can also be estimated at the GPS updates,
[Godha, 2004].
5
The Kalman filter is the default method of integrating GPS and IMU measurements.
Combining the two systems through a Kalman filter provides overall improved performance,
[Levy, 1997]. However, there is always the question of how exactly to fuse the two systems.
Currently, the various architectures used to meld GPS and IMU systems fall into three
categories, [Kreye et al., 2004]. The three classes of coupling, in order of complexity, are
loose coupling, tight coupling, and ultra-tight coupling (UTC), which is also referred to as
deeply integrated (DI).
Loose Coupling
Most integrated navigation systems are loosely coupled. The loosely coupled archi-
tecture is the simplest coupling scheme and provides significantly better performance than
stand alone GPS or INS systems. Figure 1.1 shows a block diagram of a loosely coupled
system. The two different systems are used to separately produce estimates of the plat-
form?s navigation states. The GPS and INS estimates are then combined by a Kalman
filter. The Kalman filter produces improved state estimates and estimates the error states
of the INS system, [Kreye et al., 2004]. An advantage of the loose coupling method is that
the GPS receiver itself does not need to be modeled extensively. However, the GPS re-
ceiver contains internal filters and therefore the noise in the provided GPS measurement
is not white. The colored noise means the Kalman filter is no longer an optimal observer
and requires additional tuning. In addition, a loosely coupled system only receives GPS
measurements if there is enough information to complete a full, GPS alone, position solu-
tion, [Gautier, 2003]. In situations where fewer than four satellite signals are available, no
6
measurements are provided by the GPS receiver to the Kalman filter and the navigation
solution reverts to dead reckoning.
Figure 1.1: Loosely Coupled Architecture
Tight Coupling
Tightly coupled systems combine the inertial sensors and GPS at a deeper level. Fig-
ure 1.2 shows a diagram of a generic tightly coupled system. The navigation filter receives
the raw pseudorange and pseudorange-rate measurements from the GPS receiver. This al-
lows the filter to still receive information from the GPS receiver when there are less than
four satellites available. Many tightly coupled systems also use the acceleration information
provided by the INS to predict the Doppler shift caused by the user?s dynamics. This infor-
mation is then fed back to the tracking loops. This improves the performance of the GPS
receiver?s tracking loops and their ability to maintain lock in high dynamic environments,
[Kreye et al., 2004]. The bandwidths of the tracking loops can also be narrowed because
of the reduced need to track unknown user dynamics. The main drawback of the tightly
coupled system is its complexity [Gautier, 2003]. Substantial improvements in navigation
7
accuracy are obtained through tight coupling [Cox, 1978]. In the case of degraded satellite
coverage, the performance of loosely coupled systems can be significantly worse than that
of a tightly coupled system [Weiss and Kee, 1995].
Figure 1.2: Tightly Coupled Architecture
The robustness of the tracking loops to interference and jamming can be improved if
they are Doppler-aided. In [Gebre-Egziabher et al., 2005], the authors report an increase
of 4 dB in carrier phase tracking threshold with Doppler-aiding. The analysis that was
performed assumed a nominal grade receiver clock (TCXO) and a tactical grade IMU.
The authors report that at low tracking loop bandwidths the dominant noise sources are
oscillator instabilities and vibration-induced phase error. Other authors have reported a 14
dB improvement in phase noise suppression when using Doppler-aided, narrow bandwidth
tracking loops versus non-aided loops [Alban et al., 2003] [Alban and Dietrich, 2004].
When the bandwidths of the tracking loops are reduced, their ability to reject noise
improves. However, the decorrelation times associated with errors in the tracking loops
increases. This fact has major consequences for the central navigation filter. The reason
is that the noise present in the measurements provided to the Kalman filter is assumed to
8
be white. Time correlated errors in the tracking loops can lead to filter divergence if not
properly modeled.
Deep Integration and Ultra-tight Coupling
Ultra-tight coupling, or deep integration, is the most complicated and involved form
of GPS/INS fusion. It takes the general architecture of vector tracking and adds to it an
IMU system. Figure 1.3 shows a general block diagram of a DI/ultra-tight system. In a DI
navigation system, the INS and the GPS receiver are tied together at the most basic level.
The raw IMU measurements are fed directly into the navigation Kalman filter. The filter
then predicts the pseudorange and pseudorange-rates. The filter?s predictions are then used
to control the inputs to the integrate and dump functions inside the GPS receiver. The
signals produced by the integrate and dump functions are then processed by the filter to
estimate the error?s in the IMU related states. In a complete DI system, the task of tracking
the GPS signals is accomplished by the navigation filter itself, [Kreye et al., 2004].
Figure 1.3: Ultra-Tightly Coupled Architecture
9
The original concept of ultra-tight coupling/DI is found in [Copps et al., 1980]. In
[Copps et al., 1980], an integrated signal tracker/navigation algorithm is formulated. The
GPS satellite signals are not tracked individually in their own channels, but instead are
processed collectively by a single algorithm. The DI algorithm relies on the fact that the
pseudorange and pseudorange-rate observed by the user are defined by the user?s position
and velocity, and the satellite geometry. The satellite geometry is determined by using the
broadcast satellite ephemeris. Standard GPS receiver?s determine the user?s position and
velocity from the received signals. In a DI system, the GPS signals are predicted based on
the user?s position and velocity. Residuals in the correlator outputs are then used to update
the user?s estimated position and velocity.
The authors of [Copps et al., 1980] compare their integrated tracking algorithm to a
more traditional partitioned system. Both systems rely on code tracking only because the
carrier signal tracking is assumed to be lost. The partitioned system is essentially tight
coupling with inertial aiding to the Delay Lock Loops (DLL?s). The systems are compared
through two dimensional simulations with three satellites available, with various levels of
jamming present. Both algorithms function at 60 dB of jammer-to-signal power (J/S), but
fail at 65 dB. A 2 dB improvement inJ/S is observed in the integrated system, relative to the
partitioned system. The integrated system is also found to be better suited to high dynamic
maneuvers at highJ/S levels. Researchers at Bradley University also published several early
papers using coupled signal tracking/navigation algorithms [Sennott and Senffner, 1992b],
[Sennott and Senffner, 1995], [Sennott and Senffner, 1992a]. Performance improvements of
8 to 15 dB are reported for the coupled signal tracking/navigation algorithm over traditional
methods [Sennott and Senffner, 1992a].
10
The Raytheon company obtained a patent for their method of performing Ultra-Tight
Coupling (UTC) in 1998, [Horslund and Hooker, 1999]. Figure 1.4 shows a the block dia-
gram of their method included in the patent. The Raytheon method uses a NAV function
to estimate the user?s navigation states in the earth centered, earth fixed (ECEF) coordi-
nate frame. The NAV function is driven by the output of a GPS residual Kalman filter
and IMU. These states include user position, velocity, IMU alignment states, and initial
attitude. The estimated state vector of the NAV function is used by a line of sight (LOS)
geometry function to predict the pseudorange and pseudorange-rate for each individual
satellite being tracked. The LOS function then sends the predictions to a signal processing
chip (SPC) that performs the integrate and dump functions for each channel. The outputs
of the integrate and dump functions are then used to form pseudorange and pseudorange-
rate residuals. These residuals are then processed by a Kalman filter. The Kalman filter
estimates corrections to the navigation states from the GPS residuals. These corrections
are in turn used by the NAV function to close the loop.
The increase in jamming immunity offered by the Raytheon method is quoted with
and without Data Wipe-Off (DWO) being used for P(Y) code tracking. Data wipe-off
is a technique that effectively predicts the navigation data bits and allows for integrate
and dump times greater than 20 milliseconds. Carrier and code tracking is reported to be
possible with 15 dB more jamming when using DWO and 6 dB more jamming without DWO
[Horslund and Hooker, 1999]. The increase in tolerable jamming is quoted relative to the
state of the art. Using a low grade ring laser gyro, quality carrier measurements are quoted
as being available for carrier phase and frequency measurements at J/S levels of 70 to 75
dB [Horslund and Hooker, 1999]. Code tracking is also reported possible in the range of
11
Figure 1.4: Raytheon Method of Ultra-Tight Coupling [Horslund and Hooker, 1999]
75 dB J/S [Horslund and Hooker, 1999]. In [Lewis, 2003], Raytheon?s UTC algorithm was
compared with a tightly coupled system in different jamming scenarios and with different
grade IMU?s. A 6 to 8 dB improvement in jamming performance was observed for the UTC
algorithm relative to the tightly coupled system when using a poor quality Temperature
Controlled Oscillator (TCXO) and IMU. A series of papers by Raytheon scientists have
also studied the effects of antenna arm flexure on UTC performance, [Quinn et al., 2005]
[Quinn et al., 2006].
Anthony Abbott developed a different ultra-tight method and obtained a patent for
it in 1999, [Abbott and Lillo, 2003]. Figure 1.5 shows a block diagram of the his method.
The Abbott method operates on similar principles as the Raytheon method. The main
difference is that Abbott uses a federated Kalman filtering scheme, [Carlson, 1988]. A large
integration Kalman filter updates the error state vector every second. The previous epoch?s
error state vector and the IMU samples are used between epochs of the integration filter by
12
Figure 1.5: Anthony Abbott Method of Ultra-Tight Coupling [Abbott and Lillo, 2003]
13
the inertial navigation calculator. The inertial navigation calculator provides estimates of
the user?s navigation states. These estimates are used by the pseudorange and pseudorange-
rate calculator to predict the inputs to the 50 Hz correlator bank. The output of each bank
of correlators is processed by a Kalman prefilter. A Kalman prefilter exits for each satellite
being tracked. The prefilters process the outputs of their respective correlators between
updates of the integration filter. At measurement epochs of the integration filter, each pre-
filter provides the integration filter with measurements of pseudorange, pseudorange-rate,
and pseudorange acceleration. The prefilters also provide an empirically determined three
by three measurement covariance matrix. The integration filter processes the measurements
of the smaller prefilters and updates the error state vector. The updated error state vector
is then used until the next measurement epoch of the integration filter. In [Ohlmeyer, 2006],
the jamming immunity of an ultra-tightly coupled system based on [Abbott and Lillo, 2003]
is tested in various jamming scenarios. The test scenario has the receiver flying toward a
jammer broadcasting in the P(Y) code 20-Mhz bandwidth. The power level of the jammer
is varied from 10 to 150 W. The effective C/N0 ratio varies as the receiver approaches the
jammer. Using a medium grade Micro Electro-Mechanical (MEMS) IMU, the UTC algo-
rithm begins to degrade at J/S levels around 75 dB for P(Y) code tracking. The fact that
the C/N0 ratio is not held constant makes ascertaining the maximum tolerable J/S of the
system difficult. A side by side comparision with a tightly coupled system was also not
performed.
The Charles Stark Draper Laboratory patented a DI algorithm in 2001,
[Gustafson et al., 2001]. Figure 1.6 shows a block diagram of the Draper method. The
Draper method is similar in basic concept to the Raytheon and Abbott methods. The
14
Figure 1.6: Draper Method of Deep Integration [Gustafson et al., 2001]
15
inputs to the correlation and integration block are derived from the user?s navigation state.
The outputs of the correlation and integration block are then used to update the navigation
state vector. The major distinction in the Draper method is the filtering algorithm used to
process the GPS and IMU measurements. The navigation filter techniques used by Draper
?are significant departures from traditional Kalman and extended Kalman filter algorithms
generally used for GPS-based navigation.? The state and covariance propagation step of
their filter is essentially the same as the Extended Kalman filter, however their filter differs
from the EKF in how it performs the GPS measurement update. Draper Labs also makes
use of an extended bank of range correlators [Gustafson et al., 2000c]. The majority of
traditional code discriminators have a linear operating range of +/- one half chip of code
phase error. The extended bank of range correlators is used to increase the detector range
beyond one half chip. The disadvantage of using multiple correlators is that it increases the
amount of noise present in the discriminator output [Bowles, 1980].
The performance enhancement offered by Draper?s algorithm is studied in a series
of papers authored by Draper scientists themselves. The benefits of their algorithm are
quoted as being 15 to 20 dB improvement in code tracking for wideband jamming over
traditional tight coupling [Gustafson et al., 2000b], [Gustafson et al., 2000a]. The perfor-
mance of both algorithms was assessed through Monte Carlo simulations, over which the
magnitude of the jamming was held constant. The hardware testbed used to analyze the DI
algorithm is described in [Flueckiger et al., 2005]. A third paper compared the code track-
ing abilities of Draper?s DI algorithm to a fixed-gain and adaptive gain code tracking loop
16
[Gustafson and Dowdle, 2003]. An overall lack of block diagrams and equations makes inter-
preting the results in [Gustafson and Dowdle, 2003] very difficult. The Draper DI algorithm
has also been used for pedestrian navigation and indoor positioning [Landis et al., 2006].
Researchers at Ohio University have developed, implemented, and tested their own DI
algorithms [Soloviev et al., 2004b], [Soloviev et al., 2008], [Gunawardena et al., 2004]
[Soloviev et al., 2004a]. They have reported carrier phase tracking at 15 dB-Hz with an
oven-controlled crystal oscillator (OCXO) and low cost inertial sensors. The algorithms?
improvement in performance over [Gebre-Egziabher et al., 2005] stems mainly from extend-
ing the pre-detection integration time beyond the 20 ms data bit period to about 1 s. Prior
knowledge of the data bits is not assumed and an energy-based bit estimation algorithm
is used to detect bit transitions during the integration period. The Ohio University re-
searchers have also applied their DI algorithms for tracking weak GPS signals in urban
environments [Soloviev et al., 2007] and for constructively using multipath signals in urban
canyons [Soloviev and van Graas, 2008].
Several other companies have developed their own DI algorithms, including L-3 commu-
nications [Besser et al., 2002] [Crane, 2007], KVH and NovAtel [Kennedy and Rossi, 2008],
Honeywell/Rockwell Collins [Buck et al., 2006], the Center for Remote Sensing
[Jovancevic and Ganguly, 2005] [Dyrud et al., 2007] [Woessner et al., 2006], and Tracking
and Imaging Systems [Sennott and Senffner, 1997]. These references are primarily product
announcements with limited analysis of the DI systems. Several other researchers have sim-
ilarly published alternate formulations of DI algorithms [Kim et al., 2003], [Ziedan, 2006a],
[Li and Wang, 2006].
17
Researchers at QinetiQ published an article on an Adaptive Tightly Coupled (ATC)
algorithm in 2003 [Groves and Long, 2003]. The ATC algorithm uses inertial aiding of the
tracking loops and a central Kalman filter to estimate errors in the inertial sensors. The
distinction in their algorithm is that the bandwidths of the tracking loops are adapted
for varying C/No ratios. Reducing the bandwidths causes the correlation times associated
with errors in the tracking loops to increase, therefore the assumptions of the Kalman filter
are violated when the noise present in the measurements is time correlated. The ATC
algorithm uses several different methods for dealing with the correlated measurement noise
that is encountered when the tracking loop bandwidths are significantly narrowed. The
authors of the ATC algorithm also make comparisons between it and deep integration.
According to the QinetiQ researchers, ?deep integration brings an improvement in anti-jam
margin of up to 2dB over that achievable with the ATC technique, ...?.
In another paper, QinetiQ researchers demonstrated the weak signal tracking abilities of
a noncoherent DI algorithm [Groves et al., 2007]. They made several relevant observations
when testing their system. Their first observation is that DI has an inherent ability to
bridge signal outages. This is due to changing the measurement noise covariance matrix in
weak signal conditions. During periods of intense jamming, the GPS residuals are effectively
ignored and the IMU is basically used to dead reckon through the signal outage. When the
jamming abates, the GPS derived measurements are then used to correct the accumulated
IMU errors (provided that the dead reckoned position has not drifted to far). This ability
to bridge outages can distort the results of Monte Carlo simulations. For example, the
QinetiQ researchers first determined the maximum sustained J/S their DI algorithm could
tolerate. Then, they performed a series of simulations where the J/S level was increased
18
in steps of about 1 dB every 25 s. The DI algorithm did not lose lock until the J/S was
about 3 dB above the maximum sustainable J/S. The QinetiQ researchers concluded that
simulations involving continually increasing J/S levels must be interpreted with caution
[Groves et al., 2007].
A second observation made in [Groves et al., 2007] is the effect that C/N0 ratio es-
timation has on DI?s performance. The measurement noise covariance matrix of the DI
Kalman filter is based on the estimated C/N0 ratio. At low signal levels, measured C/N0
ratio?s must be averaged for several seconds to yield accurate estimates. For C/N0?s less
than 10 dB-Hz, an averaging time of at least 5 s must be used [Groves et al., 2007]. The
QinetiQ researchers performed a series of three trials. In one trial, the DI algorithm used
an adaptive averaging time that was based on the current estimated C/N0. This setup was
used to determine the code tracking threshold of the DI algorithm. Another trial used a
fixed 1 s averaging time, and yet another trial actually provided the DI algorithm with the
true C/N0 ratio used in the simulation. Using the fixed 1 s averaging time reduced the code
tracking threshold by nearly 2 dB, and using the true value of C/N0 improved the code
tracking threshold by about 3 dB [Groves et al., 2007]. From their simulations, the QinetiQ
researchers concluded that C/N0 ratio estimation is a key limiting factor on the ability of
DI algorithms to function at low C/N0 ratios [Groves et al., 2007].
1.2.3 DeficienciesintheCurrentUnderstandingofDeeplyIntegratedGPS/INS
Systems
The amount of jamming immunity offered by deep integration is a major unresolved
question. The quoted benefits of DI relative to tight coupling vary greatly. Optimistic
19
estimates range from 15 to 20 dB [Gustafson et al., 2000b], while pessimistic estimates put
the increase at a maximum of 2 dB [Groves and Long, 2003]. The technical details of the
algorithms and the circumstances under which they were tested are also absent from the
published literature. The exact manner in which the algorithms are tested has a significant
effect on their performance [Groves et al., 2007].
The majority of papers on DI focus solely on its performance at low C/N0 ratios. A
comparision in the performance of a DI algorithm to the performance of a tightly coupled
algorithm in a degraded satellite geometry scenario has not been performed. It is unclear
whether DI can perform better than a tightly coupled system in situations with three or
fewer satellites.
A fundamental question that has yet to be resolved is the exact reason why DI per-
forms better than tight coupling. It is often asserted that the lack of intermediate tracking
loops is the reason for DI?s improved performance. This assertion has not been proved
mathematically in any of the published reports on DI. A heuristic argument, based on the
decentralized nature of tracking loops, is generally offered. The idea is based on the fact
that tracking loops use measurements from a single satellite to estimate the pseudorange
and pseudorange-rate to that satellite. An overall improvement in signal tracking should
occur when all the channels of the receiver are tied together through the navigation states
of the user. Instead of twelve delay lock loops attempting to estimate twelve separate
pseudoranges, four variables (three positions and a clock bias) are estimated using twelve
measurements in a vector tracking architecture.
20
If the improvements offered by DI are from the elimination of tracking loops, it raisesthe
question of whether federated DI architectures are superior to tight coupling. The Tony Ab-
bott method of deep integration relies on a bank of small prefilters [Abbott and Lillo, 2003].
A prefilter exist for each satellite and processes the correlator output for that specific satel-
lite. A central filter then uses the states of the smaller filters to estimate the IMU error
states. These prefilters are essentially the same as tracking loops and should therefore incur
the same loss of optimality.
The use of tracking loops also introduces correlated errors in the pseudorange and
pseudorange-rate measurements. The measurement updates of the central Kalman filter are
generally separated by enough time to guarantee that the noise present in the measurements
is not time correlated. Between measurement updates of the central filter, multiple integrate
and dump cycles occur. Therefore, maximum usage of the information present in the
correlator outputs does not occur due to the delayed update times of the central filter. In
other words, information is being wasted while waiting for the noise in the tracking loops to
become uncorrelated. In a non-federated DI architecture, such as the Draper and Raytheon
methods, the correlator outputs are used directly by the filter as they become available. No
information is ?thrown away? between update cycles of the central filter.
1.3 Contributions
The research presented in this dissertation studies the advantages offered by vector
tracking algorithms over traditional architectures. A combination of analysis, Monte Carlo
simulations, and RF data is used to study vector tracking algorithms. First, the origin
of vector tracking?s performance advantage relative to scalar tracking is explained using
21
weighted least squares. Second, two distinct formulations of vector tracking are explored.
The two incarnations are the position-state and pseudorange-state formulations of vector
tracking. The equivalence in performance of the two algorithms in steady state is proven. By
manipulating the structure of the pseudorange-state formulation, a method of making valid
comparisons between scalar and vector tracking algorithms is introduced. The comparison
method provides a simple way of determining the performance improvement solely from the
coupling of the receiver channels together.
Analysis tools for studying the loss of lock performance of vector tracking algorithms
are the third contribution of the dissertation. The analysis tools are derived by taking rule-
of-thumb tracking thresholds for scalar tracking loops and expanding them to include the
vector case. The analysis tools include the effects of thermal noise and receiver dynamics.
The analysis tools are verified by using an array of Monte Carlo simulations and data
collected from an RF simulator. The Monte Carlo simulations are also used to study the
effect of requiring the algorithms to estimate the C/N0 ratio, as opposed to assuming it is
known a priori. The simulations are also used study the advantage vector tracking offers
over scalar tracking in a variety of different scenarios. The pseudorange-state formulation
of vector tracking is used to ensure a valid comparison is made.
The fourth contribution of this dissertation is an analysis of federated vector track-
ing architectures. This analysis of different architectures is undertaken to determine the
performance loss when using a federated architecture, such as in [Abbott and Lillo, 2003].
Three different architectures are studied. The first uses a single central Kalman filter to
perform the tasks of signal tracking and navigation state estimation. The second and third
architectures both use a federated filtering architecture. In the federated architecture, a
22
master filter and an array of residual filters are used to jointly accomplish the tasks of signal
tracking and navigation state estimation. The distinction in the two federated architectures
is whether or not the residual filters are coupled together. The pseudorange-state formula-
tion is again used to make a valid comparison between using coupled and decoupled channel
residual filters.
The fifth contribution of this dissertation is an analysis of different deeply integrated
architectures. The deeply integrated algorithms are formed by taking the three different
vector tracking architectures and including an inertial measurement unit. The effects of
using a federated filtering architecture with and without the coupling of the channels of the
receiver together on DI?s performance are analyzed.
The sixth and final contribution of this dissertation is a series of live-sky tests of
the vector tracking algorithms. A software GPS receiver is used to collect intermediate
frequency (IF) data. The vector tracking algorithms are implemented in MATLAB and are
used to process the live-sky data. Data is collected from environments with dense foliage
and from urban canyon environments. The performance of the vector tracking algorithms
is compared to that of a high-end commercial GPS receiver.
23
Chapter 2
GPS Signal Structure
2.1 Introduction
This chapter describes the signals within the GPS system and their unique properties
that allow for global navigation. The modulation techniques and timing schemes employed
by GPS are explained. All GPS receivers rely on the same basic properties of the GPS signals
to function, regardless of their complexity or structure. The GPS system is composed of
civilian and military components. Due to its availability, more attention is directed at the
civilian component of the spectrum. Subsequent chapters will discuss how the signals are
processed inside the receiver.
2.2 General Signal Structure
The GPS system is a code division, multiple access (CDMA) digital communication
link. Each satellite?s signal consists of a sinusoidal carrier, a digital navigation message, and
a unique wide bandwidth pseudo random noise (PRN) sequence. The navigation message
and PRN sequence (code) are encoded in the phase of the carrier signal by using binary
phase shift keying (BPSK) modulation techniques [Sklar, 2001]. The system?s multiple
satellites all operate at the same frequency while not interfering with each other. This is
made possible through the use of unique PRN codes. Additionally, the PRN codes are
used to measure the range from each satellite to the user. The data message broadcast by
each satellite provides sufficient information to calculate the position of the satellite. Using
24
range measurements to four or more satellite?s and using the data message to determine
their positions, the user can solve for their position.
Satellite signals currently consist of civilian and military components. The civilian
component of the signal is available to all users and can be used for position determination.
The military portion of the satellite signal is only available to secure users and provides
enhanced positioning capabilities. For much of the work described in this dissertation, only
the civilian component of the GPS signal is considered.
The user must obtain the data message to determine the satellite positions. The
user must also measure the phase of each of the PRN sequences being received from the
satellites. Measuring the PRN phase of each received code is equivalent to measuring the
relative range to each satellite. The receiver exploits the properties of the carrier and PRN
signals to accomplish these tasks. The autocorrelation properties of the PRN sequences are
used to determine the phases of the received PRN codes.
2.3 GPS Carrier Signal
The GPS satellites broadcast at two different center frequencies. The link 1 (L1)
frequency is approximately 1575.42 MHz and the link 2 (L2) frequency is roughly 1227.6
MHz. The exact frequencies of L1 and L2 are shown in (2.1).
L1 = 154?10.23 MHz (2.1)
L2 = 120?10.23 MHz
The L1 and L2 frequencies are both multiples of a 10.23 MHz master clock. The L1 and L2
signals are partially offset from their nominal values when transmitted to help correct for
25
relativistic effects. Dual frequency users can compensate for ionospheric effects by exploiting
the frequency dependence in the ionospheric delay, [Spilker, Jr., 1996b].
The L1 signal, broadcast by the ith satellite, is composed of an in-phase and quadra-
ture component. Both components consist of a PRN sequence (also called Gold code), the
navigation data message, and their sinusoidal carriers. The in-phase component is modu-
lated by the Coarse/Acquisition (C/A) Gold code Gi(t) and the data message Di(t) of the
satellite. The quadrature component of the L1 signal is modulated by Precision (P) Gold
code Pi(t) and the same data message as the in-phase component. The C/A code, P code,
and data message are all unique to each satellite. The power Pc of the in-phase component
is 3 dB stronger than the power of the quadraphase component, Pp, [Spilker, Jr., 1996b].
The L1 signal is given by:
SL1i =radicalbig2PcGi(t)Di(t)cos(?1t+?)+
radicalBig
2Pp,L1Pi(t)Di(t)sin(?1t+?) (2.2)
The L2 signal is modulated by the same data message as the L1 signal, (2.3).
SL2i =
radicalBig
2Pp,L2Pi(t)Di(t)cos(?2t+?) (2.3)
TheL2 signal is modulated by either P or C/A code. Currently, theL2 channel is modulated
with P-code.
The minimum received signal powers are defined in [US Dept. of Defense, 2000]. The
minimum power levels for L1 C/A code, L1 P code, and L2 P code are -159.6, -162.6, and
-165.2 dBW, respectively [Ward, 1996a]. However, its common to receive GPS signals at
power levels several dB in excess of the minimum levels specified. The received GPS signals
26
are well below the thermal noise floor in normal operating conditions. In a typical receiver,
the C/A signal at its spectral peak is about 15 dB below the noise power spectral density
and the P-code signal is about 28 dB below the thermal noise density [Spilker, Jr., 1996b].
2.4 Gold Code
The PRN sequences, Gi(t) and Pi(t), used by the satellites are called Gold codes. The
Gold codes have a very high bandwidth and are used to spread the spectrum of the data
message over a much wider bandwidth. In the receiver, the spreading effect of the PRN
sequences is removed by using locally generated replicas of the broadcast Gold codes. Each
satellite transmits its own unique Gold code and the user receives multiple satellite signals
at nearly the same frequency. The user can track the individual codes received because the
Gold codes are nearly orthogonal to each other. This means that if the receiver is using
one Gold code to track a specific satellite in one channel of the receiver, the signals received
from the other satellites are effectively nulled in that channel. This aspect of Gold codes
makes the CDMA properties of the GPS system possible, [Misra and Enge, 2001].
Gold codes are formed by modulo-2 addition of two maximal length sequences. Maxi-
mal length sequences are formed by shift register generators (SRG) and repeat themselves
every 2N?1 bits, whereN is the number of stages of the SRG. The C/A Gold codes used by
the satellites are all formed by adding the same two maximal length sequences, labeled as
G1 andG2. However, the Gold codes broadcast by each satellite are different. The different
Gold codes are formed by shifting the G1 and G2 sequences in time with respect to each
other before adding them. Each Gold code has a specific time shift associated with it. All
27
that is needed to produce a specific satellite?s PRN sequence is the delay time defined for
that satellite and the G1 and G2 sequences, [Spilker, Jr., 1996b].
The C/A Gold codes are transmitted at a chipping rate of 1.023 Mbps. The individual
symbols of the codes are referred to as chips, as opposed to the bits of the navigation
message. A code g(t) is originally generated as a binary sequence and is used to modulate
the phase of the carrier signal, (2.4).
S(t) = cos(?1t+?g(t)) (2.4)
S(t) = G(t)cos(?1t) (2.5)
Since the phase of the signal is being shifted by 180?, the Gold code can be equivalently
expressed as (2.5). In Equation (2.5), the original binary sequence g(t) has been mapped to
a sequence of ?1?s, G(t). The form in (2.5) is the typical way the modulation of the Gold
code is represented.
Gold codes have a very narrow time autocorrelation function, as can be seen in fig-
ures 2.1 and 2.2. The autocorrelation function is linear for ? < 1 chip of misalignment.
Beyond ? =1 chip, the autocorrelation function is approximately zero. The autocorrelation
properties of Gold code are used to track the satellite signal and make pseudorange mea-
surements. The cross-correlation properties of Gold code allow the satellites to all transmit
on the same frequency. As was stated before, the different Gold codes are nearly orthogonal
to each other, as shown in Figure 2.3. When a receiver collects RF data, multiple satel-
lite signals are recorded in the same frequency band. The receiver ?picks out? a specific
satellite by multiplying the data by an in-phase replica of the satellite?s Gold code. This
28
?500 ?400 ?300 ?200 ?100 0 100 200 300 400 500
0
0.2
0.4
0.6
0.8
1
R(
?)
? (chips)
Figure 2.1: Autocorrelation Function of Gold Codes
multiplication effectively cancels out all the other satellite signals while removing the PRN
modulation from the signal received from the selected satellite.
2.5 Data Message
The data message transmitted by each satellite contains information about the satel-
lite?s orbit, its health, GPS system time, and almanac data for the other satellites in the
constellation. The data message contains the necessary information for users to synchronize
their clock to system time and determine their position. The rising edge of a data bit is
coincident with the rising edge of the first chip of the Gold code sequence. The rising edge
of each data bit is also synchronized with the transmitting satellite?s clock.
The data message is broadcast at 50 bits per second (bps). The message is arranged
into thirty bit words. Ten words constitute a subframe and five subframes make a frame.
Figure 2.4 shows how the navigation message is arranged. In each frame, the first three
29
?2 ?1.5 ?1 ?0.5 0 0.5 1 1.5 2
0
0.2
0.4
0.6
0.8
1
R(
?)
? (chips)
Figure 2.2: Ideal Autocorrelation Function of Gold Codes
Figure 2.3: Cross-Correlation of Different Gold Codes
30
subframes contain clock and ephemeris information for the transmitting satellite. Subframes
four and five alternately provide support information, such as almanac data and ionospheric
correction data, [US Dept. of Defense, 2000]. The satellite ephemeris data is information
about the satellite?s orbit. Using the ephemeris data, the satellite?s position is calculated.
The almanac data is approximate ephemeris data for the other satellites in the constellation.
It is not as accurate as the ephemeris data in subframes 2 and 3, but is valid for a longer
period of time, [Tsui, 2000].
Figure 2.4: Arrangement of the GPS Navigation Message, [Hamm, 2005]
31
2.6 Conclusion
The basic signals used by the GPS system are explained in this chapter. Currently,
the GPS satellites broadcast civilian and military signals at the L1 center frequency and
military only signals at theL2 frequency. Only the civilian signals atL1 are considered in the
remainder of this dissertation. The following chapters are dedicated to the algorithms that
receivers use to process the received satellite signals. The traditional receiver architecture is
explained and advanced algorithms that enable greater usability of the signals are analyzed.
32
Chapter 3
Position and Velocity Determination
3.1 Introduction
This chapter discusses how GPS receivers use the received satellite signals to calculate
their position and velocity. The system relies on the precise synchronization of the satel-
lite?s clocks and accurate determination of the satellite?s orbital parameters. The satellites
broadcast their data messages synchronously, however they are received at varying times
at the receiver. Using the difference in arrival times and broadcast satellite orbital param-
eters, the receiver calculates its position. The receiver then uses the satellite orbit data
and Doppler effect on the carrier signals to determine its velocity. The details of how these
calculations are performed are given in this chapter.
3.2 Received Signal Model
The civilian GPS signal received by the GPS user, broadcast by the ith satellite, is
modeled as [Sayre, 2003] [Psiaki and Jung, 2002]:
RL1i =
radicalBig
2Pr,iGi(t??i)Di(t??i)cos((?1 ??Dopp,i)t+?) (3.1)
The power of the received signal is denoted by Pr,i. The frequency of the signal is offset
from the broadcast frequency by a Doppler shift ?Dopp,i. A nominal phase ? is also added
to the carrier. The Gold code and data message received by the user are delayed by the
transit time ?i from the satellite to the user.
33
The military components of the signal are omitted from (3.1). This is due to the fact
that access to the P(Y) code was unavailable while performing this research. Henceforth,
the military components are ignored all together.
3.3 Position Determination
GPS receivers determine their position by measuring the time delays ?i in (3.1) from
at least four satellites. To make these measurements, the GPS receiver first approximately
synchronizes its internal clock to GPS time. Then, the receiver simply measures the amount
of time between when all the satellite?s transmit their signals and when the signals from
the different satellite?s are received. Recall that all the satellite?s transmit their signals
synchronously. Since the satellites are different distances away in general, the signals will all
arrive at the user at different times. As shown in (3.2), the receiver generates pseudorange
measurements by multiplying the time delays by the speed of light.
?1 = c??1
... = ... (3.2)
?N = c??N
The pseudorange measurements are related to the position of the receiver by (3.3).
?1 = ||s1 ?u||+ctu +?1
... = ... (3.3)
?N = ||sN ?u||+ctu +?N
34
||sj ?u|| =
radicalBig
(xj ?xu)2 +(yj ?yu)2 +(zj ?zu)2
? = c(?tiono +?ttropo +?tlump)+e
In (3.3), (xu,yu,zu) and (xj,yj,zj) are the coordinates of the receiver and the jth satellite
in the Earth-Centered Earth-Fixed (ECEF) coordinate system. Other coordinate systems
can be used, but the ECEF system is used throughout this dissertation. The satellite?s
position is determined from the ephemeris data contained in the data message. The user?s
clock error is represented by tu. This is the error in the synchronization of the receiver?s
clock to GPS time. The terms ?tiono and ?ttropo represent the signal delay caused by the
ionosphere and troposphere, respectively. The term ?tlump represents satellite clock errors
and other various transmission delays. The effects of thermal noise are represent by the
variable e.
Using the pseudorange measurements from at least four satellites, the receiver can
solve for its position and clock error. This is typically done using iterative least squares or
Kalman filtering [Kaplan et al., 1996]. For both methods, the pseudorange equations are
linearized about some initial estimates of the receiver?s position and clock bias. As shown
in (3.4), the true position and clock bias are equal to the estimates plus corrections.
?i = f(xu,yu,zu,tu)
xu = ?xu +?xu
yu = ?yu +?yu (3.4)
zu = ?zu +?zu
tu = ?tu +?tu
35
The pseudorange equations are then approximated by a first order Taylor series. The
resulting linear system of equations is shown in (3.5).
??i =
radicalBig
(?xi ?xu)2 +(?yi ?yu)2 +(?zi ?zu)2 +c?tu
?i ? ??i ? ax,i?xu +ay,i?yu +az,i?ri?zu ?c?tu
?
??
??
??
?
??1
...
??i
?
??
??
??
?
?
?
??
??
??
?
ax,1 ay,1 az,1 ?1
... ... ... ...
ax,i ay,i az,i ?1
?
??
??
??
?
?
??
??
??
??
??
?
?xu
?yu
?zu
c?tu
?
??
??
??
??
??
?
(3.5)
?? = H ?[u ctu]?
When using iterative least squares, the vector of corrections is calculated and then
added to the estimates (?xu,?yu,?zu,?tu). In the case of four satellites, a matrix inversion can
be used to solve for the vector of corrections in (3.5). Alternately, least squares is employed
when the equations are overdetermined. The iterative least squares technique converges
very rapidly to an estimated position and clock bias.
3.4 Velocity Determination
One method the receiver can use to determine it?s velocity is based on measuring the
Doppler frequency of the received carrier signals. The measured Doppler frequency of the
signal is commonly referred to as thepseudorange?ratemeasurement. This is because it is
a function of the user?s velocity relative to the satellites and the clock drift of the receiver?s
36
oscillator. The received carrier signal?s measured frequency from satellite j given by:
fj = fT1+ ?t
u
bracketleftBig
1? 1c[(vj ? ?u)?aj]
bracketrightBig
(Hz) (3.6)
In (3.6),fT is the frequency at which the signal is broadcast. The received signal?s frequency
is offset from the transmit frequency because of the relative motion of the user and the
satellite and the user?s clock drift. The terms vj and aj are the satellite?s velocity vector
and the line-of-sight unit vector from the user to the satellite, respectively. The satellite?s
velocity is calculated from the broadcast ephemeris parameters in the data message. The
user?s velocity vector is denoted as ?u. The user?s clock drift is represented as ?tu. The clock
drift has units of seconds per second and is the rate at which the user?s clock is diverging
from GPS system time [Kaplan et al., 1996].
A variable dj can be defined by expanding (3.6) [Kaplan et al., 1996]:
dj = c(fj ?fT)f
T
+vx,jax,j +vy,jay,j +vz,jaz,j (3.7)
In (3.7), vxj,vyj,vzj are the individual components of the satellite?s velocity vector. The
variables axj,ayj,azj are the components of the line-of-sight unit vector from the user to
the satellite. In (3.7), the variables are determined from the user?s position and the satellite
ephemeris data. The variable dj is related to the user?s velocity and clock drift by:
dj = ?xuax,j + ?yuay,j + ?zuaz,j ?c?tu (3.8)
37
In (3.8), xu,yu,zu are the user?s velocity vector components. The equations for dj for the
different satellites can be arranged into a set of linear equations:
?
??
??
??
?
d1
...
dj
?
??
??
??
?
?
?
??
??
??
?
ax,1 ay,1 az,1 ?1
... ... ... ...
ax,j ay,j az,j ?1
?
??
??
??
?
?
??
??
??
??
??
?
?xu
?yu
?zu
c?tu
?
??
??
??
??
??
?
(3.9)
D = H ?[?u c?tu]?
The receiver calculates the user?s velocity and clock drift by first forming the vector D
and matrix H. Least squares (j ? 5) or a matrix inversion (j = 4) is then used to solve for
the user?s velocity and clock drift.
As shown in (3.5) and (3.9), the line-of-sight unit vectors are intimately involved in
estimating the receiver?s position, velocity, and clock states. The linearization involved
(3.5) is a very good approximation of the nonlinear pseudorange equation. This is due in
great part to the large distances that typically exist between the receiver and the satellites
[Wendel et al., 2006].
3.5 Conclusion
GPS receivers use pseudorange measurements from at least four satellites to calculate
their position. The pseudorange measurements are basically made by measuring the dif-
ference in the arrival times of the signals from different satellites. The different Doppler
frequencies on the received carrier signals from four or more satellites are then used by the
receiver to determine its velocity. When more than four satellite signals are available, least
38
squares is used to solve the overdetermined system of equations. In general, the position and
velocity estimates of the receiver become better as more satellite signals become available
(provided that the measurements are properly weighted).
The receiver?s ability to determine the time of arrival of the signals and the Doppler
shift associated with them is made possible by tracking loops. The tracking loops use the
properties of the GPS signals to determine their time of arrival and frequency. Tracking
loops serve as an intermediate stage between signal reception and position/velocity estima-
tion. When they cease to function, the receiver can no longer navigate. Because of this,
they are a critical component of the receiver. Their ability to reliably function is a major
limiting factor for GPS receivers. The next chapter discusses the various tracking loops
found inside the receiver and their operation. Subsequent chapters study advanced receiver
architectures that combine the two tasks of signal tracking and position/velocity estimation.
39
Chapter 4
Signal Tracking
4.1 Introduction
The previous chapter explained how a receiver uses the received satellite signals to
determine its position and velocity. It was assumed that PRN code phase measurements
and Doppler frequency measurements were available. It also assumed that the data messages
from the satellite?s had been decoded. This chapter explains how the measurements of the
signals are generated and how the data message is recovered from the received signals.
Tracking loops are the means by which the satellite signals are processed. This chapter
describes how tracking loops operate and common metrics used to asses their performance.
4.2 Conventional Tracking Loops
A GPS receiver maintains replicas of the carrier signal and PRN code for each satellite
being tracked. Two separate versions of the carrier are generated by the receiver?s carrier
Numerically Controlled Oscillator (NCO). They are referred to as the in-phase and quadra-
ture signals. The in-phase signal is created using the receiver?s best estimate of the phase
and frequency of the received carrier. The quadrature signal is identical to the in-phase
signal, but with an additional phase angle of 90o. Three different replicas of the received
PRN code are generally generated by the receiver?s code NCO. The three versions are called
the Early, Prompt, and Late replicas. The Prompt replica is created with the best estimate
of the received PRN signal?s phase. The Early replica is the same as the Prompt, but it
has been advanced by a fraction of the chip period. The Late replica is also the same as
40
the prompt, but it has been delayed by a fraction of the chip period. The fraction of a chip
period that the Early and Late replicas are offset is called the correlator spacing.
The locally generated carrier and PRN signals are correlated with the received signal.
The correlation process yields six correlator outputs. Fig. 4.1 shows the correlation process.
Figure 4.1: Receiver Correlator Structure
As can be seen in Fig. 4.1, the received signal is multiplied by the in-phase and quadra-
ture carrier replicas in separate channels. The resulting signals in each channel are then
multiplied by each replica of the PRN code. The resulting signals are summed over an
interval of time, referred to as the Predetection Integration (PDI) time. At the end of each
41
PDI, a single value is produced. The process of integrating the signals and producing a
single value is referred to as an integrate and dump operation. The value produced by each
integrate and dump operation is referred to as a correlator output. The correlator outputs
are labeled according to the signals used to produce them.
Thecorrelatoroutputs inFig. 4.1arefunctionsofseveraldifferentvariables[Sayre, 2003]
[Dierendonck, 1996]:
IE(k) = AR(?+?)D(k)cos(?ferrT +?err)+?IE(k)
IP(k) = AR(?)D(k)cos(?ferrT +?err)+?IP(k)
IL(k) = AR(???)D(k)cos(?ferrT +?err)+?IL(k) (4.1)
QE(k) = AR(?+?)D(k)sin(?ferrT +?err)+?QE(k)
QP(k) = AR(?)D(k)sin(?ferrT +?err)+?QP(k)
QL(k) = AR(???)D(k)sin(?ferrT +?err)+?QL(k)
A =
radicalBigg
2CTPDI
No ?
sin(?ferrT)
(?ferrT)
? = N(0,1)
In (4.1), the correlator outputs have been normalized so that the noise is unit variance.
The termC/No is the carrier-power to noise-power spectral density ratio. The termTPDI is
the predetection integration interval in seconds. The data bit during the integration period
is assumed to be constant and is represented by the symbolD(k). The variablesferr and?err
are the frequency error (Hertz) and phase error (radians) between the received and locally
generated carrier signals, respectively. The term ? is the phase error between the received
and locally generated PRN codes, measured in fractions of a chip. The function R(?) is the
42
auto-correlation function of the PRN sequences. The symbol ? is the correlator spacing of
the Early and Late PRN replicas, expressed in fractions of a chip. The autocorrelation as
a function of the code phase error is:
R(?) =
?
???
???
1?|?| when ?< 1 chip
0 when ?> 1 chip.
The receiver uses the correlator outputs to maintain its estimates of the received sig-
nal?s PRN code phase, carrier frequency, and carrier phase. Discriminator functions use the
various correlator outputs to generate measurements of the code phase error, carrier fre-
quency error, and carrier phase error. A traditional receiver uses tracking loops to process
the different error signals and maintain signal synchronization. A Delay Lock Loop (DLL)
is used to maintain phase-lock between the locally generated and received PRN sequence.
A separate DLL is used for each satellite being tracked. Figure 4.2 shows a generic block
diagram of a delay lock loop.
Figure 4.2: Delay Lock Loop
In Figure 4.2, a measurement of the code phase error is produced by the code phase
discriminator. A discussion of different code phase discriminators is found in [Ward, 1996b].
43
The output of the code phase discriminator is filtered by the DLL?s loop filter. The output
of the loop filter is used to adjust the frequency of the receiver?s code NCO. The Early,
Prompt, and Late code replicas are generated based on the frequency of the code NCO.
The predetection integration time and loop filter design determine the majority of the DLL?s
performance characteristics.
Most traditional receivers track both the phase and frequency of the received carrier
signals. However, the receiver can track only the frequency of the received carrier. Figure 4.3
shows a block diagram of a generic carrier tracking loop for the GPS carrier signal.
Figure 4.3: Costas Loop
This type of loop is referred to as a Costas loop, [Tsui, 2000]. In Figure 4.3, the
carrier phase discriminator produces estimates of the phase error between the replica and
received carrier signals. As with the delay lock loop, the frequencies of the replica carrier
signals are controlled by the filtered phase error measurements. A discussion of carrier
phase discriminators is also found in [Ward, 1996b].
If the receiver only tracks the carrier frequency, a Frequency Lock Loop (FLL) is
employed. Figure 4.4 shows a block diagram of a frequency lock loop.
44
Figure 4.4: Frequency Lock Loop
A frequency lock loop provides a more coarse estimate of the carrier frequency than
the Costas loop does. However, the FLL can operate in environments with lower C/No
levels and higher dynamics than a Costas loop. Many receivers use a hybrid of Costas loops
and FLLs to track the carrier signals. As with the DLL, a separate Costas loop or FLL is
used to track each individual satellite carrier. The majority of the Costas loop?s and FLL?s
performance characteristics are determined by the predetection integration time and loop
filter design.
4.3 Receiver Noise Performance Metrics
The performance of the DLL, Costas loop, and FLL are dependent on the C/No
ratio of the received signals, dynamic stress, and oscillator phase noise [Ward, 1996b].
The DLL is the most robust in terms of noise performance, followed by the FLL, then
the Costas loop. For an unaided GPS receiver not using Data Wipe-Off (DWO), car-
rier tracking loops cannot reliability operate below about 28 dB-Hz [Soloviev et al., 2008],
[Gebre-Egziabher et al., 2005]. Data wipe-off is a technique which effectively eliminates the
navigation message modulation and thus allows for integrate and dump times beyond 20
45
milliseconds. The tracking threshold for an FLL is about 21 dB-Hz and a DLL cannot
function below about 16 dB-Hz [Ward, 1996b].
RF interference (i.e. jamming) effects the tracking loops by reducing the effectiveC/No
ratio of the received signals. The amount of jamming a receiver can tolerate is calculated
by first determining the unjammed C/No ratio. The lowest effective C/No ratio that can
be tolerated is then determined from the tracking threshold for the specific tracking loop
being analyzed. The difference between the unjammed C/No ratio and the effective C/No
ratio at which the receiver fails is the Jammer-to-Signal (J/S) ratio [Ward, 1996a]. The
equivalent C/No ratio is related to unjammed C/No ratio and the J/S by [Ward, 1996a]:
bracketleftBig
c/no
bracketrightBig
eq =
1
1
c/no +
j/s
QRc
(4.2)
where
c/no = unjammed carrier-to-noise power ratio
j/s = jammer-to-signal power ratio
Rc = PRN chipping rate (chips/s)
= 1.023 M chips/s for C/A code
= 10.23 M chips/s for P(Y) code
Q = spread spectrum processing gain adjustment factor
= 1 for narrowband jammer
= 1.5 for wideband spread spectrum jammer
= 2 for wideband Gaussian noise jammer
46
The above is expressed in dB-Hz as [Ward, 1996a]:
bracketleftBig
C/No
bracketrightBig
eq = ?10log
bracketleftBigg
10?(C/No)/10 + 10
(J/S)/10
QRc
bracketrightBigg
(4.3)
where
C/No = unjammed carrier-to-noise power ratio (dB-Hz)
= 10log(c/no)
J/S = jammer-to-signal power ratio (dB)
= 10log(j/s)
The typical C/No ratio of the received GPS C/A signal is about 43 dB-Hz. Typical
C/No ratio?s of the L1 P(Y) and L2 P(Y) are 40 dB-Hz and 37 dB-Hz, respectively. Using
this nominal C/No ratio and the tracking threshold?s given before, the J/S performance
of a stand alone receiver is calculated. Equation (4.3) is first arranged to solve for J/S
[Ward, 1996a]:
J/S = 10log
bracketleftBigg
QRc
parenleftBigg
1
10[C/No]eq/10 ?
1
10(C/No)/10
parenrightBiggbracketrightBigg
(4.4)
Using the nominal received C/No ratio?s, the J/S ratio versus effective C/No ratio
is shown in Fig. 4.5 for an unaided GPS receiver, assuming a wideband Gaussian noise
jammer.
Using the 28 dB-Hz threshold for carrier phase tracking, the maximum sustainableJ/S
for an unaided C/A code receiver is about 35 dB. Similarly, the maximum J/S for a P(Y)
code receiver is about 45 dB. The additional J/S for a military receiver stems from the
higher chipping rate of the P(Y) code. If the 21 dB-Hz threshold for frequency tracking is
47
Figure 4.5: J/S Performance of an Unaided GPS Receiver for Wideband Jammer
used, the maximum J/S for a civilian receiver is about 42 dB and is around 52 dB for a
military receiver.
The above J/S analysis assumed a carrier phase tracking threshold of 28 dB-Hz and
a carrier frequency tracking threshold of 21 dB-Hz. Several researchers have presented ad-
vanced algorithms for tracking extremely weak GPS signals. In [Psiaki and Jung, 2002],
the authors report carrier phase and code tracking down to 22 dB-Hz, and carrier fre-
quency tracking down to 15 dB-Hz with a TCXO clock. The author of [Ziedan, 2005b],
[Ziedan, 2005a], [Ziedan, 2006b], demonstrates the acquisition and tracking of signals in
the 10-20 dB-Hz range with a TCXO and OXO clock. In [Lin and Tsui, 2002], the authors
report C/A code tracking at 18 dB-Hz. These advanced algorithms replace the traditional
48
tracking loops with extended Kalman filters and employ other optimal estimation tech-
niques. They are significantly more computationally intense than tracking loops and their
ability to reliably operate at such low C/No ratios with significant user dynamics has yet
to be determined.
4.4 Conclusion
The tracking loops described in this chapter form the backbone of a traditional GPS
receiver. The measurements used by the receiver to estimate its position and velocity are
generated by the tracking loops. When the tracking loops fail, the receiver can no longer
navigate. Therefore, maintaining tracking loop operation is critical. The presence of RF
interference or weak signal strength compromise the ability of the loops to maintain lock.
The next chapter describes an alternate receiver architecture, called vector tracking, that
combines the tracking loops and the position/velocity estimation algorithm of the receiver.
The combining of the two tasks results in a GPS receiver that can operate in more adverse
environments than the traditional, tracking loop based architecture.
49
Chapter 5
Vector Tracking Receiver
5.1 Introduction
In this chapter, the differences between the traditional receiver architecture and vector
based architecture are explained. The fundamental difference is the manner in which the
received signals are tracked. The traditional architecture presented in the previous chapter
uses a decentralized approach to signal tracking and position-velocity determination. In
contrast, the tasks of signal tracking and position-velocity determination are handled by
a single central Kalman filter in vector tracking algorithms. Two different formulations of
vector tracking are presented in this chapter. The two manifestations of vector tracking
are the position-state and pseudorange-state formulations. The formulations differ in their
states and the manner in which the channels of the receiver are coupled. In the position-
state formulation, the states of the algorithm are the receiver?s position, position derivatives,
and clock states. In the pseudorange-state formulation, the states of the algorithm are the
pseudoranges and pseudorange derivatives of the various satellites being tracked.
5.2 Traditional Receiver Architecture
Figure 5.1 shows a block diagram of the traditional receiverarchitecture. Tracking loops
in each channel are used to estimate the pseudorange and pseudorange-rate for each satellite
in view of the receiver. The estimated pseudoranges and pseudorange-rates are fed forward
to the navigation processor. The navigation processor uses the estimated pseudoranges and
pseudorange-rates to estimate the receiver?s position, velocity, and clock states.
50
Figure 5.1: Traditional Receiver Architecture
In Figure 5.1, the flow of information is strictly left to right. No information from the
navigation processor is fed back to the tracking loops. Additionally, the tracking loops in
each channel operate independently of each other, therefore no information is exchanged
between them. Each channel of the receiver tracks its respective signal independent of
the other channels. Therefore, the traditional receiver architecture does not exploit the
inherent coupling between the receiver?s dynamics and the dynamics seen by the tracking
loops. Equations (3.5) and (3.9) show that the dynamics in each channel are related to the
dynamics of the receiver through the line-of-sight vectors. A change in the receiver?s velocity
will manifest itself in each of the received signals according to the line-of-sight vectors. This
intimate relationship between signal tracking and position-velocity estimation are exploited
by the vector tracking approach.
51
5.3 Vector Tracking Architecture
Figure 5.2 shows a block diagram of a vector tracking architecture. For the receiver
shown in Figure 5.2, the tasks of signal tracking and navigation state estimation are no
longer separate processes. The single Extended Kalman Filter (EKF) simultaneously tracks
the received signals and estimates the receiver?s position, velocity, etc.
Figure 5.2: Vector Tracking Receiver Architecture
A Vector Delay Lock Loop (VDLL) only tracks the PRN code phases through the
central filter. The task of carrier tracking is still handled by scalar tracking loops in each
channel in the VDLL. A Vector Delay/Frequency Lock Loop (VDFLL) uses the central
52
filter to track the PRN code phases and the carrier frequencies. The focus of the research
in this dissertation is on the VDFLL.
The reason vector tracking is possible relies on the basic nature of the GPS network.
The principle behind GPS is that the receiver?s position and velocity can be determined
based on the phase and frequency of the received signals. Vector tracking algorithms take
this basic idea and reverse it. The phase and frequency of the received signals are predicted
from the receiver?s estimated position and velocity. Residuals are formed in each channel
by taking the difference between the predicted and received signals. The residuals are then
used to update the estimates of the receiver?s position and velocity.
The vector tracking approach exploits the coupling between the receiver?s dynamics and
the dynamics seen by the tracking loops. Instead of every channel of the receiver tracking
the dynamics of the individual signals, the user dynamics that are causing the change in
the signals are tracked.
There are two different ways to design the central Extended Kalman filter in Fig-
ure 5.2. In the most common method, the states of the filter are the receiver?s position,
velocity, and clock states. Higher order position derivative states like acceleration and
jerk can also be used. This configuration is referred to here as the position-state formula-
tion. The position-state formulation of vector tracking is similar to the design presented
in [Spilker, Jr., 1996a]. In the second method, the states of the central filter are the pseu-
doranges and pseudorange-rates of the available satellites. This type of filter design is
referred to here as the pseudorange-state formulation and is similar to the filter used in
[Sennott and Senffner, 1992b]. The details of the filters used in each method are described
in the next two sections.
53
5.3.1 Position-State Formulation
The states of the central Kalman filter in the position-state formulation are the re-
ceiver?s position and clock states. For the VDLL, only the position and clock bias states
are required. The VDFLL requires additional velocity and clock drift states. For the al-
gorithm?s used in this dissertation, the extended Kalman filter used in the position state
VDFLL algorithm tracks the errors in the filter?s states, rather than the states themselves
[Bullock et al., 2006]. This is referred to as an error-state filter. The error states of the
EKF are:
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
?x
??x
?y
??y
?z
??z
?ct
?c?t
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
?
Position Error, X-axis
Velocity Error, X-axis
...
Clock Bias Error
Clock Drift Error
?
??
??
??
??
??
??
??
?
(5.1)
In (5.1), the position and velocity error states are all in the ECEF frame. The clock
bias and drift error states are scaled by the speed of light c, giving them units of meters
and meters/second, respectively. The actual estimates of the user?s states are maintained
outside of the EKF algorithm. At each measurement update, the errors in the states are
estimated using the pseudorange and pseudorange-rate residuals supplied by each channel.
The estimated state errors are then added to the state estimates outside the filter. The
54
state error vector (5.1) is then reset to zeros [Bullock et al., 2006]. Additional states can be
appended to the state vector to model the ionospheric and tropospheric errors present in
the pseudorange equations. Both errors are typically modeled as first-order Gauss-Markov
processes [Brown and Hwang, 1996]. The state dynamics of the filter are shown in (5.2).
?x = Ax+Bpdynwdyn +Bpclkwclk (5.2)
where
A =
?
??
??
??
??
??
?
? 02?2 02?2 02?2
02?2 ? 02?2 02?2
02?2 02?2 ? 02?2
02?2 02?2 02?2 ?
?
??
??
??
??
??
?
? =
?
??
?
0 1
0 0
?
??
?
Bpdyn =
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
0 0 0
1 0 0
0 0 0
0 1 0
0 0 0
0 0 1
0 0 0
0 0 0
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
55
wdyn =
?
??
??
??
?
wx
wy
wz
?
??
??
??
?
Bpclk =
?
??
??
??
??
??
?
02?2
02?2
02?2
I2?2
?
??
??
??
??
??
?
wclk =
?
??
?
wb
wd
?
??
?
As shown in (5.2), the state dynamics of the EKF are kinematic. The process noise in
the system comes from two sources, receiver dynamics and clock noise. The changing dy-
namics of the receiver are modeled by the noise vector wdyn. The noise sources (wx,wy,wz)
drive their respective velocity states. This corresponds to a continuous Wiener process ve-
locity model [Bar-Shalom et al., 2001]. The terms (wb,wd) inwclk represent the clock phase
and frequency error of the user?s local oscillator, expressed in units of meters and meters
per second [Brown and Hwang, 1996], respectively. The statistics for the noise vector wdyn
are:
E{wdyn} =
?
??
??
??
?
0
0
0
?
??
??
??
?
(5.3)
56
E{wdynwTdyn} =
?
??
??
??
?
?2x 0 0
0 ?2y 0
0 0 ?2z
?
??
??
??
?
The values for ?2x, ?2y, and ?2z are chosen based on the expected level of receiver dynamics.
The statistics for the noise vector wdyn are:
E{wclk} =
?
??
?
0
0
?
??
? (5.4)
E{wclkwTclk} =
?
??
?
?2b 0
0 ?2d
?
??
?
The values for?2b and?2d are usually based on rule of thumb numbers for the type of oscillator
(compensated crystal, rubidium, etc.) the receiver uses [Brown and Hwang, 1996].
The states of the filter are updated with the residuals from each channel. The relation-
ship between the states of the filter and the pseudorange and pseudorange-rate residuals is
shown in (5.5).
y = Cx+v (5.5)
57
C =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
In (5.5), the variables ax,N,ay,N,az,N are the components of the line-of-sight unit vector
from the user to the N-th satellite.
The statistics for the measurement noise vector v are shown in (5.6).
E{v} = 0N?1 (5.6)
E{vvT} = Rv
As shown in (5.5), the pseudoranges and pseudorange-rates from the different channels
are related to the states of the filter through the line-of-sight vectors (ax,N,ay,N,az,N).
After processing the residuals, the pseudoranges and pseudorange-rates are predicted for
the next integration interval using the updated state estimates. Equation (5.5) shows that
in the position-state VDFLL formulation the satellite signals are coupled together through
the states of the filter. Errors in the predicted pseudoranges and pseudorange-rates are
corrected by applying corrections to the states of the filter.
5.3.2 Pseudorange-State Formulation
The states of the extended Kalman filter in the pseudorange state formulation are the
pseudoranges and pseudorange-rates for all the available satellites. The error states of the
58
EKF are shown below in (5.7).
?
??
??
??
??
??
??
??
?
??1
???1
...
??N
???N
?
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
?
SV 1 Pseudorange Error
SV 1 Pseudorange-rate Error
...
SV N Pseudorange Error
SV N Pseudorange-rate Error
?
??
??
??
??
??
??
??
?
(5.7)
The state dynamics of the filter are shown in (5.8).
?x = Ax+B?dynwdyn +B?clkwclk (5.8)
where
A =
?
??
??
??
??
??
?
? 02?2 ... 02?2
02?2 ? ... ...
... ... ... 0
2?2
02?2 ... 02?2 ?
?
??
??
??
??
??
?
? =
?
??
?
0 1
0 0
?
??
?
B?dyn =
?
??
??
??
??
??
??
??
?
0 0 0
ax,1 ay,1 az,1
... ... ...
0 0 0
ax,N ay,N az,N
?
??
??
??
??
??
??
??
?
59
wdyn =
?
??
??
??
?
wx
wy
wz
?
??
??
??
?
B?clk =
?
??
??
??
?
I2?2
...
I2?2
?
??
??
??
?
wclk =
?
??
?
wb
wd
?
??
?
The noise terms in (5.8) are the same as those shown in (5.2). The states of the filter
are updated with the residuals from each channel. The relationship between the states of
the filter and the pseudorange and pseudorange-rate residuals is shown in (5.9).
y = I2N?2Nx+v (5.9)
As shown in (5.8) and (5.9), the signals from different satellites are not coupled through
the state transition matrix or the measurement update equations. This would tend to imply
that the Kalman gain computed by the filter is a diagonal matrix. If the Kalman gain were
a diagonal matrix, then a measured pseudorange error for one satellite would not effect
the pseudorange states for the other satellites. This would result in the states of the filter
being completely unconnected. However, the Kalman gain is not a diagonal matrix in the
pseudorange state formulation. This is because the noise processes driving all the states
of the filter are shared. The common noise sources in (5.8) results in the Kalman gain
60
computed by the filter having non-zero off-diagonal elements. Therefore, the signals are
coupled together through the process noise in the pseudorange state formulation.
5.4 Carrier Phase Vector Tracking
The algorithms in the preceding sections are non-coherent, meaning that the carrier
phase of the signals is not tracked. The phase of the PRN codes and the frequency of the
carrier signals can be directly predicted from the receiver?s estimated position, velocity,
clock bias, and clock drift. The receiver?s estimated position using stand alone GPS is not
accurate enough to unambiguously predict the phase of the carrier signals. However, this
does not preclude the possibility of using a Vector Phase Lock Loop (VPLL). A simple way
of incorporating the carrier phase measurements is shown in Figure 5.3.
In Figure 5.3, the tasks of tracking the carrier signals and the PRN codes are handled
separately. One filter tracks the carrier phases and frequencies, while the other only tracks
thePRNcodephases. Thisarchitectureissimilartothatusedin[Sennott and Senffner, 1992a].
The carrier tracking filter is analogous to the pseudorange-state filter formulation in that
its states are the phases and frequencies of the various carrier signals. Phase and frequency
error discriminators are used to transform the correlator outputs into usable residuals for
the filter. The code phase filter only uses pseudorange error discriminators. The states of
the carrier phase filter are used to remove almost all the dynamics in the PRN code phases
(similar to Doppler aiding of a DLL).
It is possible to use a single filter to track the pseudoranges, pseudorange-rates, and the
carrier phases. However, it is more complicated. If the pseudorange-state filter formulation
is used, there would be at least two states per satellite, the two states being the phase and
61
Figure 5.3: Cascaded Vector Phase Lock Loop Architecture
62
frequency of its signals. Two measurements of the phase would be available, one a code
phase measurement and the other a carrier frequency measurement. Issues such as code-
carrier divergence and atmospheric effects would have to be addressed by in the design of
the filter.
It is important to note that the carrier phase is more susceptible to disturbances caused
by foliage and other obstructions than are the carrier frequencies and code phases. Conse-
quently, care is needed in the design of a VPLL. Since the tracking of all the signals is done
in unison, a disturbance in one carrier phase would affect all the other estimated phases and
frequencies. Also, if the only process dynamics that are modeled are the receiver?s motion
and clock error dynamics, a disturbance in the phase of one carrier signal would cause the
filter?s estimate of its frequency to change. Perturbations in the carrier phases could cause
the filter to diverge.
The algorithms investigated in this dissertation are all non-coherent. This is because
of all the issues encountered when attempting to track the carrier phases in a vector-based
architecture. In general, the frequency of the carrier signal is more robust to disturbances
and can also be tracked at lower C/N0 ratios than the carrier phase [Groves et al., 2007].
5.5 Conclusion
Two alternate formulations of vector tracking are presented in this chapter. The
position-state formulation directly tracks the receiver?s position, velocity, and clock states.
The satellite signals are predicted using the estimated navigation states of the receiver.
The pseudorange and pseudorange-rate residuals produced in each channel are then used to
63
correct the filter?s estimates. In contrast, the pseudorange-state formulation tracks the indi-
vidual pseudoranges and pseudorange-rates of the satellites without using the intermediate
position and clock states.
The performance of the two vector tracking algorithms is compared to that of scalar
tracking loops in the following chapters. The pseudorange-state filter becomes particularly
useful in making the comparison. This is because the filter can be operated with or without
information sharing between the different channels. When information is not shared between
the channels of the receiver, the filter reverts back to simply a collection of scalar tracking
loops. The performance of the same filter in scalar and vector tracking modes can then be
analyzed. The performance improvement offered by vector tracking can then be determined
for a specific scenario.
64
Chapter 6
Vector Tracking Loop Performance
6.1 Introduction
In this chapter, the performance of vector tracking algorithms is compared to scalar
tracking loops. The reason for the improved performance of vector tracking over traditional
methods is explained by using a simple weighted least squares example. A more detailed
comparison of the two approaches is then performed by using a covariance analysis. The
pseudorange state formulation is used as a convenient means of making a side by side
comparison. It eliminates the need to try and equate the process noise tunings of a Kalman
filter to the noise bandwidth used by a tracking loop. Therefore the pseudorange state
formulation is used to make a valid comparison between vector and scalar tracking loops.
6.2 Weighted Least Squares Example
In this section, a simple example using instantaneous weighted least squares is used
to explain the improved performance of vector tracking algorithms over scalar tracking
loops. The variance in the pseudorange and pseudorange-rate estimates produced by the
two architectures are used as the performance criteria. The general result is that vector
tracking algorithms are able to exploit an overdetermined system of equations. The number
of unknowns the vector based algorithm attempts to estimate remains constant as more
measurements become available. In general, the estimates made by the vector tracking
algorithm become better as the number of measurements increases. In contrast, a scalar
tracking loop architecture does not exploit the overdetermined system of equations. For the
65
scalar case, the number of unknowns being estimated is equal to the number of available
measurements. No improvement is seen as the number of measurements increases.
The fact that the set of equations a vector based method uses to estimate position and
clock bias is overdetermined does not necessarily mean it performs better. The manner in
which the measurements are related to the receiver?s position and clock bias is essential
to determine how the vector based algorithm will perform. The line-of-sight unit vectors
from the position of the receiver to the available satellite?s position couple the measurements
together. The weighted leastsquaresexample isused todemonstrate how thevectortracking
and scalar tracking methods differ. The weighted least squares example uses a single,
instantaneous set of measurements to illustrate the advantage in performance that vector
tracking offers.
First, it is assumed that a receiver is tracking N satellites and that it is provided N
pseudorange residual measurements, as shown in (6.1).
?
??
??
??
?
???1
...
? ??N
?
??
??
??
?
=
?
??
??
??
?
??1
...
??N
?
??
??
??
?
+
?
??
??
??
?
v1
...
vN
?
??
??
??
?
??? = ??+V (6.1)
V ? N(0,Rv)
Rv = ?2v ?IN?N
In (6.1), the measurements (???) are the difference between the receiver?s locally gener-
ated predictions of the pseudoranges (??) and the actual pseudoranges (?) that are received
from the satellites. The measured pseudorange residuals are equal to the true residuals plus
66
zero-mean Gaussian noise. The variance of the measurement noise is assumed to be the
same for all the satellites.
The first goal of the receiver is to estimate the true pseudorange residuals from the
measured pseudorange residuals in (6.1). Then, the receiver corrects its locally generated
pseudorange predictions with the estimated residuals. Two different approaches of updating
the locally generated pseudorange predictions are considered. The first approach is analo-
gous to using independent, scalar delay lock loops to process the measurements. The fact
that the pseudoranges are all coupled through the receiver?s position and clock bias is not
exploited. The second approach uses the pseudorange residual measurements to estimate
errors in the user?s estimated position and clock bias. The locally generated pseudorange
predictions are then corrected using the updated receiver position and clock bias estimates.
6.2.1 Scalar Tracking Method
The algorithm analogous to scalar tracking loops is considered first. It takes the N
pseudorange residual measurements shown in (6.1) and uses them to estimate theN pseudo-
range errors independently. The measurement equation and weighted least squares solution
for this method are shown in (6.2).
??? = IN?N ???+V
??? = (ITN?N ?R?1v ?IN?N)?1 ?ITN?N ?R?1v ????
??? = ??? (6.2)
As shown in (6.2), the weighted least squares solution reduces down to setting the
estimated pseudorange errors equal to the measurements. The mean and covariance of the
67
weighted least squares solution are shown in (6.3).
E{???} = ??
E{(????E{???})(????E{???})T} = (ITN?N ?R?1v ?IN?N)?1
E{(????E{???})(????E{???})T} = ?2v ?IN?N (6.3)
The mean of the error in the estimated pseudorange residuals is zero and the variance
of the error in the estimated pseudorange is equal to the variance of the noise. The locally
generated pseudorange predictions are then corrected with the estimated residuals.
6.2.2 Vector Tracking Method
The second approach for correcting the estimated pseudoranges is based off the concept
of vector tracking. Using the vector based method, the measurements are first related to
errors in the receiver?s estimated position and clock bias. The receiver?s estimated position
and clock bias are corrected using the set of N pseudorange residual measurements. The
updated estimates are then used to correct the locally generated pseudorange predictions.
The measurements in (6.1) are related to errors in the user?s position and clock bias
by (6.4).
??? ?
?
??
??
??
?
ax,1 ay,1 az,1 ?1
... ... ... ...
ax,N ay,N az,N ?1
?
??
??
??
?
?
??
??
??
??
??
?
?x
?y
?z
c?tu
?
??
??
??
??
??
?
+V
??? ? HN?4?X +V (6.4)
68
Equation (6.4) is obtained by linearizing the pseudorange equations. In (6.4), errors in
the receiver?s estimated position and clock bias are denoted by ?x, ?y, ?z, and ?tu, respec-
tively. The terms ax,j, ay,j, and az,j are the line-of-sight unit vectors from the receiver?s
estimated position to the position of the jth satellite. The weighted least squares estimate
of the vector ?X is given in (6.5).
? ?X = (HTN?4 ?R?1v ?HN?4)?1 ?HTN?4 ?R?1v ???? (6.5)
The expected value and variance of the WLS estimate in (6.5) is given by (6.6).
E{? ?X} = ?X (6.6)
E{(? ?X ?E{? ?X})(? ?X ?E{? ?X})T} = (HTN?4 ?R?1v ?HN?4)?1
E{(? ?X ?E{? ?X})(? ?X ?E{? ?X})T} = ?2v ?(HTN?4 ?HN?4)?1
The locally generated pseudorange predictions are then updated with the results from
(6.6). Errors in the receiver?s estimated position and clock bias are related to errors in the
predicted pseudoranges by (6.7).
?? ? HN?4?X (6.7)
The variance of the corrections to the predicted pseudoranges is given by (6.8).
E{(????E{???})(????E{???})T} = ?2v ?WN?N (6.8)
WN?N = HN?4 ?(HTN?4 ?HN?4)?1 ?HTN?4
69
The variance of the corrections is found by multiplying the measurement noise variance
(?2v) by the diagonal elements of the matrix W. The scalar approach and vector based
approach are compared by examining (6.3) and (6.8). For the scalar algorithm, the variance
of the corrections is always equal to the variance of the measurement noise ?2v. In contrast,
the variance of the corrections for the vector approach depends on the matrix W. The
diagonal elements of W must be less than unity in order for the vector based approach to
yield smaller variances.
If the number of satellites is equal to four, (6.3) and (6.8) both reduce to (6.9), assuming
H has full rank.
E{(????E{???})(????E{???})T} = ?2v ?I4?4 (6.9)
The two approaches yield the same variances in the case of four satellites. In general,
if the number of satellites N exceeds four and the matrix H has four linearly independent
rows, the diagonal elements of W will be less than one. In contrast, the diagonal elements
from the identity matrix in (6.3) are always equal to one. The diagonal elements ofW being
less than unity constitutes a reduction in the variance of the estimated pseudoranges when
processed collectively in the vector tracking approach. In general, the diagonal elements
of the matrix W will also not be equal. Therefore, the decrease in the variance of the
individual pseudoranges will be different. The improvement in tracking brought about by
the vector based approach will depend on which specific diagonal element of the matrix W
is examined.
The weighted least squares example demonstrates that the vector tracking approach
works better than the traditional, scalar tracking method. The improvement offered by
70
vector tracking is contingent on several different variables. Specifically, the number of
satellite signals available and the geometry of the visible satellite constellation determines
the relative advantage of the vector tracking approach. In the case of four satellites, the
two approaches yield the same results. However, it is common for GPS receivers at low
latitudes to have eight to ten visible satellites. In these situations, a significant advantage
is offered by vector tracking.
6.2.3 Performance Gain from Collective Processing
To demonstrate the advantage offered by vector tracking for a typical GPS receiver, the
visible satellite constellation was recorded over an 18 hour period at Auburn University. An
18 hour period provides a sufficiently diverse record of the satellite constellation available
to the receiver. The positions of the visible satellites were recorded every minute during
the data collection interval. The W and H matrices in (6.8) were then computed for all the
various satellite geometries. Recall that the variances of the estimated pseudoranges from
the scalar tracking method are equal to the variance of the measurement noise ?2v. For the
vector tracking method, the variance of the estimated pseudoranges is equal to the variance
of the measurement noise, scaled by corresponding diagonal element of the matrix W.
To determine the improvement offered by vector tracking in terms of the C/N0 ratio,
it is first assumed that the variance of the measurement noise is related to C/N0 by the
formula shown in (6.10) [Crane, 2007].
?2v = ?
2
2(T ?10(C/No)/10)2 +
?2
4T ?10(C/No)/10 (meters
2)
? = 293.3 (meters) (6.10)
71
The formula in (6.10) comes from the code phase discriminator used elsewhere in this
dissertation. In (6.10), the variable T is the predetection integration time used by the
receiver. Using nominal values of 20 ms for the integration time and 45 dB-Hz for the
C/N0 ratio, the variance of the measurement noise is approximately 34 m2. Therefore, the
variance of the estimated pseudoranges from the scalar tracking algorithm is also 34 m2.
For the vector tracking method, it is assumed that all the satellite signals have the same
C/N0 ratio. The variance of the jth pseudorange is then equal to 34 m2 scaled by the
jth diagonal element of the matrix W from (6.8). The pseudorange with the maximum
reduction in variance will have the smallest corresponding diagonal element. Similarly, the
pseudorange with the minimum reduction in variance will have the largest corresponding
diagonal element.
The performance gain from vector tracking is determined using the pseudoranges with
the largest and smallest variances. The maximum performance gain from vector tracking is
calculated using the pseudorange with the smallest variance. The maximum performance
gain is defined as the reduction in C/N0 ratio needed to make the smallest pseudorange
variance equal to 34 m2. Likewise, the minimum performance gain is defined as the reduc-
tion in C/N0 ratio needed to make the largest pseudorange variance equal to 34 m2. Using
these definitions, the maximum and minimum performance gain were calculated for all the
different satellite geometries that occurred over the 18 hour data collection interval. Fig-
ure. 6.1 shows the Position Dilution of Precision (PDOP) and number of available satellites
throughout the 18 hour period. Figure 6.2 shows the maximum and minimum performance
gains versus time for the recorded data.
As shown in Fig. 6.2, the performance gains from vector tracking vary throughout the
data collection period. The average maximum performance gain is 5.2 dB and it varies from
72
Figure 6.1: Position Dilution of Precision and Number of Satellites Throughout Data Col-
lection Period
0 2 4 6 8 10 12 14 16 180
1
2
3
4
5
6
7
8
Time (hours)
Performance Gain in C/N
0 (dB)
Maximum Performance Gain
Minimum Performance Gain
Figure 6.2: Maximum and Minimum Performance Gain in C/N0 from Vector Tracking for
Weighted Least Squares Example
73
3.56 to 6.53 dB. The average minimum performance gain is 1.54 dB and it varies from .26
to 3.23 dB over the data collection period.
The simple weighted least squares example used in this section explains the performance
improvement offered by vector tracking over scalar tracking. The weighted least squares
analysis also reveals several characteristics of vector tracking. For instance, it shows that
the improvement from vector tracking is a function of the number of available satellites
and their geometry. The live-sky GPS data demonstrated the improvement offered by
vector tracking for a typical receiver. Over an 18 hour period, the average maximum and
minimum performance improvements are 5.2 dB and 1.54 dB, respectively. The weighted
least squares example also reveals that the performance improvement is different for the
various satellite signals being tracked. In the next section, a more detailed analysis of
scalar and vector tracking is performed. A covariance analysis of the Kalman filter used in
the pseudorange-state VDFLL formulation is used to make a valid side by side comparison
of the two architectures.
6.3 Coupled and Decoupled Pseudorange State VDFLL
A covariance analysis of the pseudorange-state formulation of vector tracking is per-
formed in this section. The Kalman filter in the pseudorange-state formulation of the
VDFLL is used to study the fundamental differences between scalar and vector tracking.
The architecture of the pseudorange-state filter allows it to function with either the channels
of the receiver coupled together in a vector tracking mode, or uncoupled in a scalar tracking
mode. Using the same process and measurement noise tunings, the performance of the fil-
ter is studied in the coupled and uncoupled modes of operation. This allows the advantage
74
offered solely by the vector tracking architecture to be isolated such that a valid comparison
between scalar and vector tracking loops can be performed. Using the pseudorange-state
VDFLL in the different modes of operation avoids the ambiguities encountered when at-
tempting to make a valid comparison between tracking loops (which are characterized by
noise bandwidths and loop order) and Kalman filters (which are characterized by process
and measurement noise covariance matrices).
Theperformanceimprovement gainedbygoingfromanuncoupled toacoupledpseudorange-
state filter is equivalent to the increased performance garnered by going from an uncoupled
pseudorange-state filter to a position-state filter. This is because the performance of the
position-state and coupled pseudorange-state filters is equivalent. This point is elucidated
in Appendix A.
The continuous time dynamics of the the pseudorange-state VDFLL filter are shown
in (6.11).
?x = Ax+B?dynwdyn +B?clkwclk (6.11)
The terms in (6.11) pertaining to the clock process noise, and the clock process noise
statistics are given in (6.12).
B?clk =
?
??
??
??
?
I2?2
...
I2?2
?
??
??
??
?
wclk =
?
??
?
wb
wd
?
??
? (6.12)
75
E{wclkwTclk} =
?
??
?
?2b 0
0 ?2d
?
??
?
The receiver dynamics process noise terms and statistics are shown in (6.13).
B?dyn =
?
??
??
??
??
??
??
??
?
0 0 0
ax,1 ay,1 az,1
... ... ...
0 0 0
ax,N ay,N az,N
?
??
??
??
??
??
??
??
?
wdyn =
?
??
??
??
?
wx
wy
wz
?
??
??
??
?
(6.13)
E{wdynwTdyn} =
?
??
??
??
?
?2x 0 0
0 ?2y 0
0 0 ?2z
?
??
??
??
?
When the dynamics of the system are converted to discrete time, the following discrete-
time state transition matrix is calculated.
A? =
?
??
??
??
??
??
?
? 02?2 ... 02?2
02?2 ? ...
... ... ...
02?2 ... ... ?
?
??
??
??
??
??
?
2N?2N
(6.14)
76
? =
?
??
?
1 T
0 1
?
??
?
In (6.14), the time between measurement updates is represented by T. The discrete time
process noise covariance matrix for the clock noise is shown in (6.15).
Q?clk =
?
??
??
??
?
Qc ... Qc
... ... ...
Qc ... Qc
?
??
??
??
?
(6.15)
Qc =
?
??
?
?2bT +?2d T33 ?2d T22
?2d T22 ?2dT
?
??
?
The discrete time covariance matrix for the receiver dynamics process noise is given in
(6.16).
Q?dyn =
?
??
??
??
??
??
?
Qd1,1 Qd1,2 ... Qd1,N
Qd2,1 Qd2,2 ... Qd2,N
... ... ... ...
QdN,1 ... ... QdN,N
?
??
??
??
??
??
?
Qdi,j =
?
??
?
?i,j T33 ?i,j T22
?i,j T22 T?i,j
?
??
? (6.16)
?i,j =
bracketleftbigg
?2xax,iax,j +?2yay,iay,j +?2zaz,iaz,j
bracketrightbigg
77
For convenience, the measurement update equations of the filter are repeated below.
y = I2N?2Nx+v (6.17)
As stated before, the channels of the receiver are not coupled through the state tran-
sition matrix or the measurement update equations. The coupling of the channels comes
from the process noise covariance matrices. Mathematically, the coupling comes from the
matrices in (6.15) and (6.16) having off-block diagonal elements. These off-block diago-
nal terms result in a Kalman gain with off-block diagonal terms as well. This means that
a pseudorange or pseudorange-rate residual in one channel will affect the pseudorange or
pseudorange-rate estimates in the other channels.
The physical reason for the coupling of the channels is understood by considering how
a sudden change in position, velocity, clock bias or clock drift effects the pseudoranges and
pseudorange-rates. An abrupt change in clock bias or drift will manifest itself equally in
all the channels of the receiver. Similarly, a shift in the receiver?s position or velocity will
affect all the channels of the receiver. The magnitude of the affect is determined by the
line-of-sight vectors for each satellite. The amount of coupling between channels due to the
receiver dynamics is determined by the term ?i,j in (6.16). The ?i,j term is essentially the
dot product of the line of sight vectors for ith and jth satellites.
The receiver channels can be easily decoupled in the pseudorange-state VDFLL. This
is accomplished by replacing the process noise covariance matrices in (6.15) and (6.16) with
78
those in (6.18).
?Q?clk =
?
??
??
??
??
??
?
Qc 02?2 ... 02?2
02?2 Qc ... ...
... ... ... 0
2?2
02?2 ... 02?2 Qc
?
??
??
??
??
??
?
(6.18)
?Q?dyn =
?
??
??
??
??
??
?
Qd1,1 02?2 ... 02?2
02?2 Qd2,2 ... ...
... ... ... 0
2?2
02?2 ... 02?2 QdN,N
?
??
??
??
??
??
?
The matrices in (6.18) are block diagonal and using them in the VDFLL filter eliminates
the coupling between the channels of the receiver. The Kalman gain matrix resulting
from using the matrices in (6.18) is also block diagonal. Therefore, the pseudorange and
pseudorange-rate residuals from one satellite will not effect the estimated pseudoranges and
pseudorange-rates for the other satellites.
6.3.1 Pseudorange State VDFLL Covariance Analysis
Using the same process noise tunings, the performance of the coupled and uncoupled
filters over a range of C/N0?s can be computed. The improvement in performance brought
about by coupling the channels of the receiver together is ascertained by studying the
performance of the two filters. The steady state, state covariance matrices of the two
filters are used for the comparison. Just like in the weighted least squares analysis, the
performance improvement from vector tracking is dependent on the number of satellites
79
and their geometry. To determine the improvement available to a typical GPS receiver, the
18 hours of satellite constellation data is used again.
To perform the covariance analysis, the measurement noise statistics as a function of
C/N0 are needed. The variance of the pseudorange noise is again related to C/N0 by the
formula shown in (6.10). For the pseudorange-rate measurements, the variance of the noise
is related to C/N0 by (6.19) [Crane, 2007].
?2?? =
parenleftBigg
2
(T ?10(C/No)/10)2 +
2
T ?10(C/No)/10
parenrightBigg
? (m/s)2
? =
parenleftBigg
c
?fL1T
parenrightBigg2
(6.19)
The formula in (6.19) comes from the frequency error discriminator used elsewhere in this
dissertation. The term T in (6.19) is the predetection integration time used by the receiver.
A value of 20 ms is again used for T.
The process noise terms?x, ?y, and?z are all set equal to a value of 10m2/s4. Varying
the magnitude of the process noise from 2 to 50 m2/s4 had a negligible affect on the results
of the covariance analysis.
Two covariance analyses were performed on the GPS live-sky data. The first assumed
that the satellite signals are all received at the same C/N0. Using the process and measure-
ment noise statistics, the steady state, state covariance matrices for the coupled and decou-
pled pseudorange state filters are computed. The variances of the predicted pseudorange-
rates are then compared. For the decoupled filter, the pseudorange-rate variances in the
different channels are equal, given that the process noise terms are equal and the C/N0
ratios are equal. However, as was the case in the weighted least squares analysis, in the
80
coupled filter the pseudorange-rate variances will in general be different for the different
channels. Therefore, the maximum and minimum pseudorange-rate variances are used to
determine the maximum and minimum performance gain from the coupling.
Figure 6.3: Pseudorange-Rate Variance Versus C/N0 for Coupled and Decoupled Filters
Figure 6.3 shows the pseudorange-rate variances for the different satellites calculated
from the coupled and decoupled filters. The performance curves for the different channels all
lie on top of each other for the decoupled filter. For the coupled filter, the different channels
of the receiver have varying pseudorange-rate variances. To determine the improvement
in performance, the pseudorange-rates for the coupled filter are computed at 45 dB-Hz.
The increase in C/N0 needed to make the decoupled pseudorange-rate variances equal to
the largest, coupled filter pseudorange-rate is defined as the minimum gain in performance.
Similarly, the increase in C/N0 needed to make the decoupled pseudorange-rate variances
equal to the smallest, coupled filter pseudorange-rate is defined as the minimum gain in
81
performance. Using these definitions, the maximum and minimum performance gains were
calculated for the live-sky data. Figure 6.4 shows the results of the covariance analysis for
the recorded data. In Figure 6.4, the maximum performance gain ranges from 3.88 to 6.63
dB and has a mean of 5.6 dB. The average minimum performance gain is 3.13 dB and it
varies from 1.23 to 4.9 dB.
0 2 4 6 8 10 12 14 16 180
1
2
3
4
5
6
7
8
9
Time (hours)
Performance Gain in C/N
0 (dB)
Maximum Performance Gain
Minimum Performance Gain
Figure 6.4: Maximum and Minimum Performance Gain in C/N0 from Vector Tracking
Assuming Equal Signal Powers.
The second covariance analysis did not assume that all the C/N0 ratios are equal.
Along with their positions, the C/N0 ratios of the satellites were also recorded over the 18
hour period. With the C/N0 ratios being different, the pseudorange-rate variances will no
longer be equal for the decoupled filter. To determine the maximum and minimum perfor-
mance gains from vector tracking, the pseudorange-rate variances for the coupled filter are
again computed at 45 dB-Hz. The pseudorange-rate variances are then calculated for the
82
decoupled filter. For each channel, the increase in C/N0 needed to make the pseudorange-
rate variance from the decoupled filter equal to the pseudorange-rate variance from the
coupled filter is determined. The largest required increase in C/N0 is defined as the maxi-
mum performance gain. The smallest required increase in C/N0 is defined as the minimum
performance gain. Figure 6.5 shows maximum and minimum performance increases from
vector tracking with the varying C/N0 ratios.
0 2 4 6 8 10 12 14 16 180
2
4
6
8
10
12
14
16
18
20
Time (hours)
Performance Gain in C/N
0 (dB)
Maximum Performance Gain
Minimum Performance Gain
Figure 6.5: Maximum and Minimum Performance Gain in C/N0 for Vector Tracking Using
Actual Signal Powers
In Fig. 6.5 the maximum performance gain has a maximum value of 19.4 dB and a
minimum of 4.21 dB. The average maximum gain is about 8 dB. The minimum gain ranges
from .82 to 4.12 dB, and has a mean value of 2.5 dB. Comparing Fig. 6.4 and 6.5, the
maximum performance gain is higher and the minimum gain is lower when the C/N0 ratios
of the satellite signals are not equal. The disparity in the minimum and maximum gains in
83
Fig. 6.5 comes from the wide range in the received C/N0 ratios. The minimum performance
gain generally corresponds to the signal with the highest C/N0 ratio. Since the signal is
already strong, it gains the least from the inclusion of the weaker signals. On the other hand,
the maximum performance gain is generally associated with the channel with the lowest
C/N0 ratio. The weakest signal stands to gain the most from the inclusion of the other,
stronger satellite signals in the coupled filter. In Fig. 6.5, the maximum performance gain of
19.4 dB occurs when a signal with a C/N0 ratio of 28.8 dB-Hz is received in the presence of
several other signals withC/N0 ratios of in the neighborhood of 47 dB-Hz. In this situation,
the variance of the pseudorange-rate predictions for the 28.8 dB-Hz significantly decreases
when the channels of the receiver are coupled.
6.4 Conclusion
The advantages in performance offered by vector tracking are discussed in this chapter.
A simple example using instantaneous weighted least squares is used to explain the reason
vector tracking works better than scalar tracking loops in most situations. Vector tracking
essentially exploits an overdetermined system of equations. As more satellite signals become
available, the number of unknowns in the vector tracking formulation remains constant. In
contrast, scalar tracking algorithms do not exploit the overdetermined system of equations.
Scalar tracking algorithms do not benefit from increasing the number of available satellite
signals.
The pseudorange-state formulation of vector is used to make a valid comparison be-
tween scalar and vector tracking loops. The filter in the pseudorange-state formulation can
be operated in either the coupled or decoupled modes. Information is shared between the
84
channels of the receiver in the coupled mode. In the decoupled mode the various channels
of the receiver operate independently and do not share information. This property of the
pseudorange-state filter allows the advantage offered by vector tracking to be isolated and
computed for a given situation.
The performance improvement offered by vector tracking is studied by using 18 hours
of satellite constellation data recorded at Auburn University. The performance gain offered
by vector tracking is computed for each recorded satellite configuration in two different
scenarios. In the first scenario, all the satellite signals have the same C/N0 ratio. The
second scenario uses the actual C/N0 ratios that were recorded along with the satellite
data. For the first scenario, the minimum gain from vector tracking has a mean of 3.13 dB
and varies from 1.23 to 4.9 dB. The maximum gain from vector tracking in the first scenario
ranges from 3.88 to 6.63 dB and has a mean of 5.6 dB. In the second scenario, there are
periods where the maximum gain from vector tracking exceeds 19 dB. This occurs when
weak signals are received in the presence of much stronger signals. The weak signals benefit
greatly from the information sharing with the more powerful signals.
85
Chapter 7
Vector Tracking Loss of Lock Performance Analysis
7.1 Introduction
This chapter studies the performance of the Vector Delay/Frequency Lock Loop (VD-
FLL) as a function ofC/N0 ratio and receiver dynamics. The first section discusses analysis
tools for the scalar frequency lock loop and extends them to the vector tracking case. Analy-
sis tools are developed to evaluate the vector delay/frequency lock loop?s frequency tracking
capabilities. Most of the analysis will rely on the results of Kalman filtering. The results
will be approximations, since the residuals supplied to the filter are nonlinear functions of
its states. The noise in the residuals is also non-Gaussian. The analysis is also inherently
scenario dependent since the pseudorange and pseudorange-rate residuals only contain in-
formation in the line-of-sight of the satellites. However, the linearization of the pseudorange
equation is a very good approximation of the nonlinear function. This is due in great part
to the large distances between the receiver and the satellites [Wendel et al., 2006]. Also,
the noise sources both have quasi-Gaussian probability density functions. The minimum
C/N0 ratio at which the VDFLL can reliably operate is predicted analytically from rule of
thumb tracking thresholds. The performance of the VDFLL is then compared to frequency
locked loops of varying bandwidths. Intuitively, the vector tracking architecture should
have advantages in performance over the traditional tracking loop approach. Since all the
signals are tracked in unison, one would expect the signal tracking errors in all channels to
be reduced.
86
The second section of this chapter verifies the results of the primary analysis with
Monte Carlo simulations. The VDFLL is simulated with varying C/N0 ratios, process
noise tunings, and different satellite geometries. Its ability to function in the different
scenarios is compared to the performance predicted by the rule of thumb analysis. The
effects of requiring the algorithms to estimate the C/N0 ratios, versus providing them a
priori knowledge of the C/N0 ratios, are studied with the Monte Carlo simulations. The
position-state and pseudorange-state VDFLL filters are both simulated. Their performance
is compared to that of the decoupled pseudorange-state filter. The comparison is done to
study the gain offered solely by the coupling of the receiver?s channels together.
Finally, the third section of this chapter uses data collected from a GPS constellation
simulator to study the VDFLL?s performance in high dynamics and at low C/N0 ratios.
The analysis tools developed in the second section are applied to the dynamic scenarios.
The predictions from the rule of thumb analysis and the VDFLL?s actual performance are
then compared.
7.2 Rule of Thumb Analysis Techniques
7.2.1 Frequency Lock Loop Analysis
In a GPS receiver, the carrier tracking loops are the most susceptible to losing signal
lock. This is due to the significantly shorter wavelength of the carrier signal [Jwo, 2001].
Since carrier tracking is the major limiting factor of vector tracking, the ability of the
VDFLL to track the carrier signals is analyzed. However, the same type of analysis can
be performed with respect to code tracking for a VDLL [Benson, 2007]. The frequency
tracking performance of the VDFLL is compared to the performance of several scalar FLL?s
87
with different noise bandwidths. The scalar FLL?s are based on the prescribed loop filter
parameters given in [Ward, 1996b]. The metrics for assessing the performance of both the
scalar and vector FLL?s are drawn from [Ward, 1998].
The dominant sources of error in frequency locked loops are thermal noise and dynamic
stress. Thermal noise is the source of the noise terms present in the correlator output
formulas. Dynamic stress is caused by the platform dynamics of the receiver. The rule of
thumb tracking threshold for a FLL is [Ward, 1998]:
3?w +fe ? .25T? Hertz (7.1)
where
?w = 1-sigma frequency jitter from thermal noise
fe = dynamic stress error
In an FLL, the 1-sigma frequency jitter caused by thermal noise is [Ward, 1998]:
?w = 12?T?
radicaltpradicalvertex
radicalvertexradicalbt4FBn
C/No
parenleftBigg
1+ 1T?C/N
o
parenrightBigg
(Hz) (7.2)
where
F = 1 at high C/No
= 2 near threshold
Bn = Noise Bandwidth (Hz)
In (7.1) and (7.2), T? is the integrate and dump time used to generate the correlator
outputs used by the frequency discriminators. For this dissertation, a integration time of
88
10 ms is used for the frequency discriminators and FLL analysis. The 10 ms integrate and
dump period is the longest coherent integration time allowed by the 50 Hz data message.
The term fe in (7.1) is the dynamic stress error in the FLL caused by the line of sight
dynamics between the receiver and the satellite. Given the FLL noise bandwidth and using
the loop filter characteristics in [Ward, 1996b], the termfe is calculated based on the steady
state error present in the FLL.
Using position, velocity, and acceleration states in the VDFLL?s EKF provides it the
ability to track step and ramp changes in velocity with zero steady state error. However, the
VDFLL cannot track a ramp change in acceleration with zero steady state error. Among
scalar FLL?s, only a second-order FLL has comparable capabilities. A second-order FLL
can track step and ramp changes in the line of sight velocity with zero steady state error.
The second-order FLL cannot track a ramp change in line of sight acceleration with zero
steady state error. For these reasons, the performance of the VDFLL algorithm is compared
to that of several different scalar second-order FLL?s. The noise bandwidths of the FLL?s
that are studied represent typical values used for low, moderate and high levels of user
dynamics. Using the loop filter parameters given in [Ward, 1996b], the dynamic stress
error for a second-order FLL with noise bandwidth Bn is calculated as:
fe = FMfL1c
parenleftBigg
.53
Bn
parenrightBigg2
(7.3)
where
FM = Jerk dynamics (m/s3)
For the VDFLL, the value of ?w is calculated from the steady state covariance matrix
of the EKF (P?ss). The superscript ? in P?ss denotes the state covariance prior to the
89
measurement update. This notation will be used throughout this dissertation. A superscript
+ will denote a quantity after a measurement update. The dynamic stress error for the
VDFLL is calculated using state space techniques, as described in the following sections.
7.2.2 Vector Delay/Frequency Lock Loop Analysis
In order to use the steady state covariance matrix of the EKF, it is assumed that the
satellite geometry is fixed, the measurements from all satellites arrive concurrently, and
that the mean of the errors in the states of the EKF are small. The steady state covariance
matrix is a function of the process noise in the system (5.2). The magnitude of the values
used for ?2x, ?2y, and ?2z are determined from an expected level of user dynamics. In order
to isolate the effects of the thermal noise, a two part procedure is used. First, the steady
state Kalman gain (Kss) is determined, using values of ?2x, ?2y, and ?2z for a given level of
dynamics. Second, P?ss is determined using Kss with the only noise sources being the clock
noise, and the thermal noise in the correlator outputs.
The values ofKss andP?ss are calculated by converting the system dynamics to discrete
time and iterating the discrete time Kalman filter equations. A 20 millisecond interval is
assumed for the integrate and dump operations and for the interval between measurement
epochs. Once KSS is determined, the Kalman filter equations are iterated with the process
noise terms ?2x, ?2y, and ?2z set to zero. To do this, the Kalman filter equations must be
augmented. The standard equation for the state covariance matrix after a measurement
update is [Brown and Hwang, 1996]:
P+(k) = (I ?K(k)H(k))P?(k) (7.4)
90
However, this equation is only valid when using the optimal gain K. The general equation
for the state covariance after a measurement update is [Brown and Hwang, 1996]:
P+(k) = (I ?K(k)H(k))P?(k)(I ?K(k)H(k))T +K(k)R(k)R(k)T (7.5)
The diagonal elements of the steady state covariance matrix P?ss are the variances
associated with each element of the error state vector. The variances of the error states are
related to the frequency jitter using the observation matrix H. The error between the true
frequency at time k and the predicted frequency at time k is approximately:
freceived,k ?fpredicted,k ? fL1c H?x?(k) (7.6)
The elements of the matrix H are:
H =
bracketleftbigg
01?3 axj ayj azj 01?4 ?1
bracketrightbigg
(7.7)
The terms axj, ayj, and azj are the elements of the line-of-sight unit vector from
the receiver?s position to the jth satellite. The errors between the received and predicted
frequencies are represented by the vector ?. The covariance of ? is:
? = (freceived,k ?fpredicted,k)
E{??T} ? f
2L1
c2 HP
?(k)HT (7.8)
Once P?ss is calculated, the frequency jitter in each channel is found by inserting P?ss into
(7.8), and examining the corresponding diagonal elements.
91
7.2.3 Vector Delay/Frequency Lock Thermal Noise Performance
The performance of the VDFLL is inherently scenario-dependent. The number of
available satellites, the satellite geometry, and the type of clock used by the receiver vary
widely and all impact the tracking abilities of the VDFLL. Therefore a specific scenario is
used to illustrate the performance of the VDFLL relative to scalar FLL?s. There are a total
of eleven satellites in the scenario. The full eleven satellites are used and two subsets of
the eleven satellites are also considered; one subset uses seven satellites, and the other uses
five. The Dilution Of Precision (DOP) values for the different sets of satellites are shown
in Table 7.1 [Misra and Enge, 2001].
For the receiver clock, a temperature compensated crystal oscillator (TCXO) is as-
sumed. Thepowerspectraldensitycoefficientsusedfortheoscillatorare[Brown and Hwang, 1996]:
h0 = 2?10?19
h?1 = 7?10?21 (7.9)
h?2 = 2?10?20
Table 7.1: Dilution of Precision Values for Different Satellite Configurations
Number of Satellites PDOP HDOP VDOP
Eleven 1.4141 0.7527 1.1971
Seven 1.7503 1.0003 1.4363
Five 2.3602 1.1300 2.0721
92
Discriminator functions are used to process the correlator outputs and produce mea-
surements of the code phase error and frequency error. Two separate discriminator functions
are used in the algorithms in this paper. The first algorithm uses the correlator outputs
accumulated over the entire integrate and dump interval [Crane, 2007]:
YR(k) = IE(k)2 +QE(k)2 ?IL(k)2 ?QL(k)2 (7.10)
YR(k) = A(k)2
parenleftBig2??e(k)
?
parenrightBig
+vR(k)
?e(k) = Line of sight range error (meters)
? = PRN chip length, 293.3 meters for C/A code
A(k) = Signal amplitude
vR(k) = Noise
The mean and mean squared value of the random variable vR are:
E{vR} = 0
E{v2R} = 8?4F +4A2?2Ff(?e) (7.11)
f(?e) = 2?
2e
b2 +
1
2
As a function of C/No :
E{v2R} = ?
2
2(TC/No)2 +
?2
TC/No
parenleftBigg
?2e
?2 +
1
4
parenrightBigg
(meters2)
93
A second discriminator is used to produce measurements of the frequency error ferr(k)
[Crane, 2007]:
YRR(k) = IP2(k)QP1(k)?IP1(k)QP2(k) (7.12)
YRR(k) ? ?AF(k)2R2(?e(k))?ferr(k)T4 +vRR
?e(k) = Line of sight range error (meters)
ferr(k) = Frequency error (Hz)
vRR = Noise
The mean and mean squared value of vRR are:
E{vRR} = 0
E{v2RR}? = ?
4F
2 +
A2
4 R
2(?e(k))?2
F (7.13)
As a function of C/No :
E{v2RR}? =
parenleftBigg
2
(TC/No)2 +
2R2(?e(k))
TC/No
parenrightBiggparenleftBigg
1
?T
parenrightBigg2
(Hz)2
? = assuming |?e(k)| ? ?2
In (7.11) and (7.13) the value of T is the predetection integration interval used to
generated the correlator outputs in (7.10), which is 20 ms in this dissertation. The noise
terms in the discriminator outputs in (7.11) and (7.13) are uncorrelated with each other
[Crane, 2007].
Figure 7.1 shows the 1-? frequency jitter for the VDFLL algorithm with the subset of
five satellites being tracked. In Fig. 7.1 there is no dynamic stress, therefore only the effects
94
of thermal noise are shown. The maximum diagonal entry of the matrix from (7.8) is plotted
for each different C/No ratio. This is the channel of the VDFLL with the largest frequency
jitter. The frequency jitter is calculated with varying magnitudes for the process noise
terms ?2x, ?2y, and ?2z. In each scenario, the magnitudes of the three variables are identical.
The magnitudes used for the process noise are 2, 12, 50, and 125 m2/s4. These values
correspond to increasingly high levels of user dynamics. The 1-? frequency jitter threshold
is 8.333 Hz. The performance of the algorithm degrades with respect to rejecting thermal
noise disturbances as the process noise level is increased. The thermal noise performance of
three different scalar FLL?s is also plotted in Fig. 7.1. The FLL?s have noise bandwidths of 2
Hz, 10 Hz, and 18 Hz. The thermal noise jitter for the FLL?s is calculated from (7.2). Using
the lowest level of process noise, the VDFLL exceeds the 1-? frequency jitter threshold at
13 dB-Hz and the 2 Hz noise bandwidth FLL exceeds the threshold at about 20.5 dB-Hz.
With the highest level of process noise, the VDFLL exceeds the threshold at 16.5 dB-Hz,
while the 18 Hz noise bandwidth FLL exceeds it at 27.8 dB-Hz. Depending upon its tuning,
the VDFLL can function at anywhere from 4 dB-Hz to 14.8 dB-Hz lower than a scalar FLL
for the five satellite scenario. Recall that this improvement in tracking is with respect to
thermal noise only.
Figures 7.2 and 7.3 show the 1-? frequency jitter for the VDFLL algorithm with both
the subset of 7 satellites and the full 11 satellites being tracked, respectively. The perfor-
mance of the scalar 2 Hz, 10 Hz, and 18 Hz noise bandwidth FLL?s is also plotted. It is
apparent from the figures that the ability of the VDFLL algorithm to operate in low C/No
environments is dependent on the number of satellites being tracked. Comparing Fig. 7.1
and Fig. 7.2, the VDFLL?s performance increases about 1 dB-Hz with the addition of 2
95
Figure 7.1: VDFLL Thermal Noise Jitter Versus C/No When Tracking Five Satellites
satellites. Another increase of about 1 dB-Hz in noise performance is seen in Fig. 7.3 with
the further addition of 4 satellites. The VDFLL can function at anywhere from 5 dB-Hz to
15.8 dB-Hz lower than a scalar FLL for the seven satellite scenario, and 6 dB-Hz to 16.8
dB-Hz lower in the eleven satellite scenario.
96
Figure 7.2: VDFLL Thermal Noise Jitter Versus C/No When Tracking Seven Satellites
Figure 7.3: VDFLL Thermal Noise Jitter Versus C/No When Tracking Eleven Satellites
97
7.2.4 Vector Delay/Frequency Lock Loop Dynamic Stress Steady State Per-
formance
Recall that the state vector of the VDFLL EKF contains position, velocity, and ac-
celeration states (5.1). When a change occurs in the receiver?s acceleration states, this is
reflected by modifying the system model with an input vector:
?x = Ax+Bww+Bu
where
B =
?
??
??
??
??
??
?
03?3
03?3
I3?3
02?3
?
??
??
??
??
??
?
(7.14)
when discretized:
Bd =
?
??
??
??
??
??
?
(T36 )I3?3
(T22 )I3?3
(T)I3?3
02?3
?
??
??
??
??
??
?
(7.15)
In order to study the effects of the input, it is useful to consider two separate Kalman
filters. One is the simple Kalman filter which does not include the effects of a change in
receiver acceleration. Its model is shown in (5.1) and its states are denoted as ?x. The
second Kalman filter uses the model in (7.14) with perfect knowledge of the input vector u
at all times. Its states are denoted as ?x. First assume that up to time k, the input vector
u has been all zeros, which means that the states of the two filters are equal. At time k, an
98
input is applied to the system. The state vectors of the two filters prior to the measurement
update at time k+1 are then [Chan et al., 1979]:
?x?(k+1) = Ad?x+(k)?Bdu(k) (7.16)
and
?x?(k+1) = Ad?x+(k)
The difference between the two state vectors prior to and after the measurement update at
time k+1 is:
?x?(k+1)? ?x?(k+1) = M?(k)u(k) (7.17)
?x+(k+1)? ?x+(k+1) = M+(k)u(k)
where
M?(k) = Bd (7.18)
M+(k) = M?(k)?K(k+1)HM?(k)
Assuming the input is constant, the subscript k can be omitted from u and the difference
between the states of the two filters at time k+1 is:
?x?(k+2)? ?x?(k+2) = M?(k+1)u (7.19)
?x+(k+2)? ?x+(k+2) = M+(k+1)u
where
M?(k+1) = Bd +AdM+(k) (7.20)
99
M+(k+1) = M?(k+1)?K(k+2)HM?(k+1)
The matrices M? and M+ can be calculated at each time after the onset of the input
by iterating (7.20). From (7.17) and (7.19) it is obvious that the states of the VDFLL?s
filter are biased if an input occurs to the acceleration states. A constant input causes a
steady state error in the filter?s estimates of acceleration, velocity, and position. The steady
state error of the VDFLL?s predicted velocity is calculated by iterating (7.20) until M?
converges to a steady state matrix. The effect of the steady state error on the VDFLL?s
frequency predictions is then computed from:
? = (freceived ?fpredicted)
E{?ss} ? fL1c E{H?x?ss}
??ss ? fL1c HM?ssU (7.21)
The steady state error ??ss in the VDFLL?s frequency prediction is used as the dynamic
stress error fe used in (7.1). The effects of thermal noise are again calculated from (7.8).
In general, the steady state frequency tracking error is different for all the visible satellites.
This is because the steady state velocity errors caused by the acceleration inputs must be
expressed in the line of sight of each satellite. Since the satellites have different line of sight
vectors, the steady state frequency tracking error is also different for each of the satellites.
The maximum dynamic stress the VDFLL algorithm can tolerate at different C/No
ratios is determined from using (7.1), (7.8), and (7.21). A step jerk input is applied to all
three acceleration states. The magnitude of the step input to each axis is identical. For a
given C/No ratio, the steady state frequency prediction error is calculated for a range of
100
step input magnitudes. The thermal noise frequency jitter is also calculated for the specific
C/No ratio. The largest step input magnitude that does not exceed the tracking threshold
for all satellites is determined to be the maximum dynamics stress. As the magnitude of the
step inputs increase, the tracking threshold is first exceeded by the satellite for which the
dot product of its line of sight vector and the input vector is largest. For this reason, the
jerk stress in the line of sight of the first satellite to cross the tracking threshold is plotted
versus C/No ratio in the following figures. For all three sets of satellites, the dot product
of the line of sight vector for the first satellite to cross the threshold and the input vector
is approximately 1.6.
Figure 7.4 shows the maximum line of sight dynamic stress the VDFLL algorithm can
tolerate at different C/No ratios when tracking the subset of 5 satellites. The maximum
jerk stress is also calculated for varying values of ?2x, ?2y, and ?2z. For comparison, the
maximum line of sight dynamic stress is also plotted for three different FLL?s. The FLL?s
have noise bandwidths of 2 Hz, 10 Hz, and 18 Hz and use the loop filter parameters given in
[Ward, 1996b]. The 2 Hz bandwidth FLL can operate down to about 20.5 dB-Hz but can
only tolerate low dynamics. In contrast, the 18 Hz FLL can accommodate large dynamics,
but cannot function below about 28 dB-Hz. Figure 7.5 gives a more detailed view of the
performance of the VDFLL and FLL?s at the lower C/No ratios. The VDFLL with ?2
equal to 12 m2/s4 can tolerate higher dynamics and can operate at 6 dB-Hz lower than
the 2 Hz FLL . The 18 Hz FLL outperforms the VDFLL with respect to the maximum
tolerable dynamics for the various levels of process noise. However, the VDFLL can operate
anywhere from 11.5 to 15 dB-Hz lower.
101
Figure 7.4: Maximum Jerk Stress Versus C/No When Tracking Five Satellites
Figure 7.5: Maximum Jerk Stress Versus C/No When Tracking Five Satellites
102
Figures 7.6 and 7.7 show the improvements in maximum dynamic stress when the
eleven satellites are tracked. Increasing the number of satellites from five to eleven effectively
shifts the performance curves of the VDFLL only using the five satellites about 2 dB lower.
This is the same result shown in Fig. 7.1 and Fig. 7.3.
Figure 7.6: Maximum Jerk Stress Versus C/No When Tracking Eleven Satellites
103
Figure 7.7: Maximum Jerk Stress Versus C/No When Tracking Eleven Satellites
7.2.5 Scenario Dependent Vector Delay/Frequency Lock Loop Dynamic Stress
Performance
The analysis in the previous section assumed that the user dynamics were constant.
Based on this assumption, the steady state errors caused by changes in the receiver?s ac-
celeration are calculated from the M?ss and M+ss matrices. The frequency tracking errors
caused by time varying inputs can be calculated in a similar manner. Again, assume that
up to time k the input vector u has been all zeros. Then the states of the two filters after
the measurement update at time k are equal to each other. At time k an arbitrary input
is applied to the system. The states of the two filters before and after the measurement
104
update at time k+1 then differ by:
?x?(k+1)? ?x?(k+1) = M?(k)u(k) (7.22)
?x+(k+1)? ?x+(k+1) = M+(k)u(k)
?(k+1) = M+(k)u(k) (7.23)
where
?(k+1) = ?x+(k+1)? ?x+(k+1)
M?(k) = Bd (7.24)
M+(k) = M?(k)?K(k+1)HM?(k)
The previous analysis assumed that the input at time k and all subsequent times were
equal. Given another arbitrary input at time k + 1, the states of the two filters after the
next measurement update differ by:
?(k+2) = M+(k+1)u(k+1)+(Ad ?K(k+2)H)?(k+1)
where
M+(k+1) = Bd ?K(k+2)HBd (7.25)
Similarly, the difference in the two filter states after another arbitrary input at time k+ 2
is:
?(k+3) = M+(k+2)u(k+2)+(Ad ?K(k+3)H)?(k+2)
where
105
M+(k+2) = Bd ?K(k+3)HBd (7.26)
These recursive equations can be carried out to find the errors in the states of the
VDFLL caused by an arbitrary maneuver. They can also be easily rearranged to find the
error between the filter states prior to the measurement update.
7.3 Monte Carlo Simulation Results
In this section Monte Carlo simulations are used to verify the thermal noise analysis
presented in the previous section. Using the tracking threshold in [Ward, 1998] to analyze
the VDFLL implicitly assumes that the scalar tracking loop rule of thumb threshold also
applies to vector tracking loops. The efficacy of using the rule of thumb tracking thresholds
to predict the performance of vector tracking algorithms is studied through Monte Carlo
simulations. The algorithms were simulated over a range C/No ratios. At each C/No
ratio, one hundred simulation runs of 60 second duration were carried out. The fraction
of trials which the algorithms function for the full sixty seconds are plotted versus C/No
ratio. The duration and number of the trials are deliberately chosen to mirror the values
used in [Ward, 1997], where Monte Carlo simulations were similarly used to verify the rule
of thumb tracking thresholds for the FLL.
7.3.1 Simulation Setup
For the Monte Carlo simulations, the received signals were simulated at the correlator
output level. The various correlator outputs are modeled as shown in (7.27) [Sayre, 2003].
IE(k) = AR(?+?)D(k)cos(?ferrT +?err)+?IE(k)
106
IP(k) = AR(?)D(k)cos(?ferrT +?err)+?IP(k)
IL(k) = AR(???)D(k)cos(?ferrT +?err)+?IL(k) (7.27)
QE(k) = AR(?+?)D(k)sin(?ferrT +?err)+?QE(k)
QP(k) = AR(?)D(k)sin(?ferrT +?err)+?QP(k)
QL(k) = AR(???)D(k)sin(?ferrT +?err)+?QL(k)
A =
radicalBigg
2CTPDI
No ?
sin(?ferrT)
(?ferrT)
? = N(0,1)
In (7.27), the correlator outputs have been normalized so that the noise is unit variance.
The variablesferr and?err are the frequency error (Hertz) and phase error (radians) between
the received and locally generated carrier signals, respectively. The sinc (sin(x)/x) term in
(7.27) is an effective loss in signal amplitude due to the frequency error, ferr. The term
? is the phase error between the received and locally generated PRN codes, measured in
fractions of a chip. The functionR(?) is the auto-correlation function of the PRN sequences.
The symbol ? is the correlator spacing of the Early and Late PRN replicas, expressed in
fractions of a chip. A correlator spacing of one half chip is used for all the Monte Carlo
simulation results. The autocorrelation of the Gold code as a function of the code phase
error is:
R(?) =
??
??
???
1?|?| when ?< 1 chip
0 when ?> 1 chip.
The noise terms in (7.27) are all zero-mean and unit variance. The in-phase and
quadrature noise terms are uncorrelated. Using a half chip correlator spacing results in the
107
early and late noise terms being uncorrelated. The early and prompt noise terms, and the
prompt and late noise terms, all have a correlation coefficient of .5.
The pseudorange and pseudorange-rate discriminator functions in (7.11) and (7.13)
are used in the simulations. An integrate and dump time of 20 milliseconds is used for the
correlator outputs in (7.11). Two consecutive integrate and dump times of 10 ms are used
for the correlator outputs used in (7.13).
The three satellite geometries from section 7.2.3 are used in the Monte Carlo sim-
ulations. A temperature compensated crystal oscillator with the power spectral density
coefficients shown in (7.9) is used again.
A second order VDFLL algorithm is tested in the Monte Carlo simulations. Five levels
of process noise are used by the VDFLL for each satellite constellation. The process noise
terms ?2x, ?2y, and ?2z are set equal to each other. The magnitudes of the process noise are
.2, 2, 10, 50, 100, and 300 m2/s2. The VDFLL algorithm is simulated over a range of C/No
ratios in increments of .5 dB-Hz for each satellite geometry and process noise tuning. The
VDFLL does not use a priori information of the C/No ratios of the signals. Instead, the
C/No ratios of the signals is estimated using the techniques in Appendix B.
Before the start of each simulation, the steady state, state covariance matrix is calcu-
lated. The state vector of the VDFLL filter is then initialized using a Gaussian random
vector with a mean vector of zero and a covariance matrix equal to the steady state, state
covariance matrix. These steps are taken to make sure the VDFLL filter?s performance is
being assessed in steady state.
Loss of lock is declared whenever any of the pseudorange errors exceeds a half chip.
The reason for using this criteria is that the linear operating range of the pseudorange
108
discriminator is one half chip. It was observed that a pseudorange error of over a half
chip almost always immediately precedes a catastrophic failure of the algorithm. Using
the pseudorange errors as the loss of lock criteria would seem to contradict the rule of
thumb analysis. The rule of thumb threshold was a pseudorange-rate error of over 1/4T,
which might suggest that the pseudorange-rate errors should be monitored instead of the
pseudorange errors. However, the VDFLL algorithm can tolerate occasionally exceeding
the pseudorange-rate threshold and not lose lock. In the occasions when the algorithm does
lose lock, errors in the position states tend to grow exponentially. The growing errors in
the position states rapidly result in the pseudorange errors exceeding a half chip. In which
case, loss of lock is declared using the pseudorange error threshold.
7.3.2 Simulation Results
Figure 7.8 shows the frequency jitter versusC/No ratio for the 11 satellite geometry and
with a process noise tuning of .2m2/s2. The channels of the VDFLL with the maximum and
minimum frequency jitter are displayed. Depending on whether the maximum or minimum
frequency jitters are used, the rule of thumb analysis predicts that the VDFLL should lose
lock at about 1.7 or 3 dB-Hz.
Figure 7.9 shows the results of the Monte Carlo analysis for the 11 satellite geome-
try and .2 m2/s2 process noise tuning. The percent of trials that the VDFLL functions
throughout the simulation is plotted versus C/No ratio. Vertical lines are plotted at the
C/No ratios corresponding to where the channels with the minimum and maximum fre-
quency jitters cross the rule of thumb tracking threshold. The Monte Carlo simulations
reveal that there is a transition region where the probability of the VDFLL functioning
109
Figure 7.8: VDFLL Thermal Noise Analysis with 11 Satellites and ?2x= .2 m2/s2
goes from basically zero to one. For the simulation setup used to generate Figure 7.9, the
transition region starts at approximately 2 dB-Hz and ends at about 7 dB-Hz. Ideally, the
rule of thumb analysis would predict the point at which the probability of the algorithm
to function is .5 [Ward, 1997]. The predictions from the rule of thumb analysis match the
Monte Carlo results to within 3.3 (using the minimum frequency jitter) to 2 dB-Hz (using
the maximum frequency jitter).
Figure 7.10 shows the results of the Monte Carlo analysis for the 11 satellite geometry
and 2 m2/s2 process noise tuning. The vertical lines indicate the predicted thresholds from
the rule of thumb analysis. The predicted thresholds are within .1 to 1 dB-Hz of the 50
percent probability of tracking crossing. Compared to Figure 7.9, the predicted thresholds
match the results from the Monte Carlo simulations far better with the 2 m2/s2 process
noise tuning.
110
Figure 7.9: VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= .2 m2/s2
Figure 7.10: VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 2 m2/s2
111
Figure 7.11 and Figure 7.12 shows the results of the Monte Carlo analysis for the 11
satellite geometry and the 10 and 50 m2/s2 process noise tunings, respectively. As the
process noise tunings go up, the lowest C/No ratio that the VDFLL can reliably function
at will also increase. When the minimum C/No ratio exceeds about 10 to 11 dB-Hz, the
predictions from the rule of thumb analysis tend to be pessimistic by about 2 dB-Hz for the
lower threshold, and 3.1 db-Hz for the upper threshold. This trend begins in Figure 7.11
and Figure 7.12. The trend continues for the 100 and 300 m2/s2 process noise tunings,
shown in Figure 7.13 and Figure 7.14.
Figure 7.11: VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 10 m2/s2
112
Figure 7.12: VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 50 m2/s2
Figure 7.13: VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 100 m2/s2
113
Figure 7.14: VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= 300 m2/s2
Examining figures 7.9 - 7.14 shows that lowering the process noise tuning increases
the VDFLL?s immunity to noise. When the process noise tuning is decreased from 100 to
10 m2/s2 the VDFLL gains about 5.3 dB in performance. However, when it is lowered
from 2 to .2 m2/s2 only about 1.3 dB is gained. Figure 7.15 shows the results of Monte
Carlo simulations when the process noise is further lowered to .02 m2/s2. Another 1.3 dB
increase in performance is garnered by going from .2 to .02 m2/s2. Figures 7.9 through
7.15 demonstrate that below about 10 dB-Hz a point of diminishing returns is reached with
respect to lowering the process noise tuning of the filter and increasing its noise immunity.
The Monte Carlo simulation results for the five and seven satellite constellations are
similar to those for the eleven satellite scenario. When the minimum C/No ratio that the
algorithms can function at exceeds around 10 or 11 dB-Hz, the rule of thumb analysis is
pessimistic by about 2 dB-Hz for the lower threshold and 3.1 dB-Hz for the upper threshold.
114
Figure 7.15: VDFLL Monte Carlo Simulation Results for 11 Satellites and ?2= .02 m2/s2
Below about 10 dB-Hz, the disparity between the predictions from the rule of thumb analysis
and the actual performance of the VDFLL starts to grow. As the number of satellites
decreases, the performance of the VDFLL degrades. The plots of the Monte Carlo simulation
results for the five and seven satellite constellations are included in Appendix C. The rule
of thumb analysis and simulation results for all the different scenarios are summarized in
Table 7.2.
The difference between the predicted thresholds and the results of the Monte Carlo
simulations for the various scenarios are shown in Table 7.3. The differences between the
lower predicted thresholds and the Monte Carlo results are comparable with the differences
between the analysis and simulation results originally presented in [Ward, 1997]. The va-
lidity of the rule of thumb analysis begins to decline below about 10 dB-Hz. Below 10
115
Table 7.2: Summary of Monte Carlo Simulation Results
Number of ?2 Predicted Thresholds from Analysis Monte Carlo
Satellites (m2/s2) Min. (dB-Hz) Max. (dB-Hz) Results (dB-Hz)
Five .2 3.9 4.5 6.1
2 8.5 9 7.6
10 11.8 12.9 10.2
50 15.7 17.1 14
100 17.5 19 15.6
300 20.1 22 18.7
Seven .2 2.5 4.3 5.5
2 7.5 8.5 7.1
10 11 12.1 9.5
50 14.9 16.3 13.1
100 16.7 18.2 15
300 19.3 21 16.6
Eleven .2 1.7 3 5
2 6.5 7.5 6.4
10 10.1 11 8.6
50 13.9 15 12.1
100 15.7 16.9 13.8
300 18.2 19.5 16.1
116
Table 7.3: Summary of Monte Carlo Simulation Results
Number of ?2 Predicted Thresholds Minus Monte Carlo Result
Satellites (m2/s2) Min. (dB-Hz) Max. (dB-Hz)
Five .2 -2.2 -1.6
2 .9 1.4
10 1.6 2.7
50 1.7 3.1
100 1.9 3.4
300 1.4 3.3
Seven .2 -3 -1.2
2 .4 1.4
10 1.5 2.6
50 1.8 3.2
100 1.7 3.2
300 2.7 4.4
Eleven .2 -3.3 -2
2 .1 1.1
10 1.5 2.4
50 1.8 2.9
100 1.9 3.1
300 2.1 3.4
dB-Hz, the actual performance of the VDFLL begins to degrade sharply with respect to its
predicted performance.
7.3.3 Effect of C/N0 Estimation
TheC/N0 ratio of the signals must be known for the vector tracking algorithms to func-
tion properly. The signal amplitudes are needed to use the pseudorange and pseudorange-
rate discriminator functions in (7.11) and (7.13). In addition to the signal amplitudes, the
noise power is needed by the filter to properly weight the measurements it is provided. In the
previous section, the algorithms did not use any a priori information about the C/N0 ratios
117
of the signals. The signal amplitudes and noise power are estimated using the techniques
described in Appendix B.
Researchers from QinetiQ have reported that the ability to estimate the C/N0 ratio of
thesignalsispossiblyamajorlimitingfactorofdeeplyintegratedalgorithms[Groves et al., 2007].
To test this hypothesis, the vector tracking algorithms used in the previous section are sim-
ulated with perfect knowledge of the signal amplitudes and noise power. The results of
the Monte Carlo simulations are then compared for the same algorithms with and without
knowledge of the C/N0 ratios.
Figure 7.16 shows results of the Monte Carlo simulations for the eleven satellite con-
stellation with the process noise set to 300 m2/s2. The two VDFLL algorithms are identical
except one uses the true signal amplitudes and noise power and the other uses an estimate
of the C/N0 ratios from the correlator outputs. For the scenario in Figure 7.16 the a priori
information of the C/N0 ratios only increases the algorithms? performance by about .25 dB.
Figure 7.17 shows the results of the Monte Carlo simulations with a process noise
tuning of 50 m2/s2. Similar to the 300 m2/s2 tuning scenario, perfect knowledge of the
C/N0 ratios only increases the algorithm?s noise performance by about a .25 dB. Figures 7.18
through 7.21 display the simulation results with process noise tunings of 10, 2, .2, and .02
m2/s2, respectively. The minimumC/N0 ratio that the VDFLL can function decreases with
the decreasing process noise tunings. For the 10, 2, and .2 m2/s2 tunings, the performance
of the VDFLL increases by about .6 to .8 dB when using the trueC/N0 ratios. The VDFLL
simulation results for a process noise tuning of .02 m2/s2 are shown in Figure 7.21. Even
at the lowest process noise tuning, the VDFLL only performs about .5 dB better when it
has perfect knowledge of the C/N0 ratio.
118
Figure 7.16: VDFLL Simulation Results for 11 Satellites and ?2= 300 m2/s2 With and
Without Prior Knowledge of C/No ratio
Figure 7.17: VDFLL Simulation Results for 11 Satellites and ?2= 50 m2/s2 With and
Without Prior Knowledge of C/No ratio
119
Figure 7.18: VDFLL Simulation Results for 11 Satellites and ?2= 10 m2/s2 With and
Without Prior Knowledge of C/No ratio
Figure 7.19: VDFLL Simulation Results for 11 Satellites and ?2= 2 m2/s2 With and
Without Prior Knowledge of C/No ratio
120
Figure 7.20: VDFLL Simulation Results for 11 Satellites and ?2= .2 m2/s2 With and
Without Prior Knowledge of C/No ratio
Figure 7.21: VDFLL Simulation Results for 11 Satellites and ?2= .02 m2/s2 With and
Without Prior Knowledge of C/No ratio
121
The Monte Carlo simulation results shown in Figures 7.16 through 7.21 indicate that
accurately estimating the received signals? C/N0 ratios does impact the performance of the
VDFLL. However, the simulation results do not show a significant improvement when the
algorithm knows the C/N0 ratios perfectly. At C/N0 ratios over 10 dB-Hz the VDFLL only
performs about .25 dB better. At lower C/N0 ratios, a maximum improvement of about .8
dB is experienced. This improvement is significantly less than that reported by the QinetiQ
researchers [Groves et al., 2007], who reported an improvement in their DI algorithm?s code
tracking threshold of 3 dB when it used the true C/N0 ratios instead of estimated C/N0
ratios. Conversely, they reported a 2 dB decrease in the code tracking threshold when a
sub par C/N0 ratio estimation algorithm is used. Without having access to the C/N0 ratio
estimation techniques used by the QinetiQ researchers, it is not possible to explain the
discrepancy between their results and the ones presented here.
7.3.4 Comparison of Scalar and Vector Tracking Algorithms
The previous Monte Carlo simulations all used the position-state formulation of the
vector delay/frequency lock loop. In this section, the position and pseudorange-state for-
mulations of the VDFLL are simulated in the same scenarios. These simulations are carried
out for two reasons. First, the performance of the position-state and pseudorange-state vec-
tor tracking formulations can be shown to be equivalent. Mathematical proof of this claim
is given in Appendix A. Therefore, the Monte Carlo simulations are carried out to show
empirically that the formulations are equivalent. The second reason the simulations are per-
formed is to ascertain the relative advantage offered by vector tracking over scalar tracking.
122
A valid comparison of scalar and vector tracking is allowed by using the pseudorange-state
filter formulation.
Recall from Chapter 6 that the pseudorange-state filter can be operated with or with-
out the channels of the receiver coupled together. With the receiver channels coupled
together, the pseudorange-state filter is equivalent to the position-state filter. With the
channels of the receiver uncoupled, the filter reverts back to scalar tracking. The coupling
of the channels comes from the off-block diagonal elements in the discrete-time process noise
covariance matrices. Setting the off-block diagonal elements to zero effectively decouples
the channels. The signals from the various satellites are then tracked independent of one
another. However, the decoupled filter still uses the same tunings as the coupled filter.
The performance of the filter in the coupled and decoupled configurations can therefore be
studied to ascertain the advantage provided solely by the coupling of the channels.
Three VDFLL algorithms are tested in each Monte Carlo simulation. The first is the
position-state formulation. The second is the pseudorange-state formulation with coupled
channels. The third algorithm is the pseudorange-state filter without coupled channels.
The channels are decoupled by setting the off-block diagonal elements of the process noise
covariance matrix to zero. The same process noise tunings are used for all three filters. The
three satellite geometries from the previous section are used in the Monte Carlo simulations.
A temperature compensated crystal oscillator with the power spectral density coefficients
shown in (7.9) is used again.
Second-order VDFLL algorithms are tested in the Monte Carlo simulations. Three
levels of process noise are used by the filters for each satellite constellation. The process
noise terms ?2x, ?2y, and ?2z are set equal to each other. The magnitudes of the process noise
123
are 10, 50, and 100 m2/s2. The VDFLL algorithms are simulated over a range of C/No
ratios in increments of .5 dB-Hz for each satellite geometry and process noise tuning. At
each C/No ratio, one hundred Monte Carlo simulations are carried out.
The filters use the steady state Kalman gain corresponding to each scenario. TheC/N0
ratio is not estimated by the algorithms. In light of the previous section, the difference in
the performance of the algorithms when having to estimate the C/N0 ratio should not be
significant. The C/N0 ratio is assumed to be known and the steady state Kalman gains are
used in order to reduce the computation times required to run the Monte Carlo simulations.
It is important to note that the Kalman filter equations for the coupled channel
pseudorange-state filter have very poor numerical properties. To determine the steady
state Kalman gain for the pseudorange-state filter, the steady state Kalman gain for the
position-state filter is first determined. Then, relations from Appendix A are used to convert
the steady state Kalman gain for the position-state filter to the steady state Kalman gain
for the pseudorange-state filter. These extra steps are only necessary when the channels of
the receiver are coupled together.
Figure 7.22 shows the results of a thermal noise analysis of the coupled and decoupled
pseudorange-state filter for the eleven satellite scenario. A process noise tuning of 10 m2/s2
is used for the analysis. The same two part analysis from section 7.2.2 is carried out. The
steady state Kalman gain for the specific clock and dynamic process noise levels is computed.
The thermal noise jitter for every channel is then calculated with only measurement noise
and clock noise. For the decoupled pseudorange-state filter, the thermal noise jitter is the
same for all the channels. For the coupled channel filters, the channels of the receiver exhibit
124
different thermal noise jitters. From Figure 7.22, the analysis shows that the channels have
a reduction in frequency jitter ranging from 2.5 to 3.5 dB when coupled together.
Figure 7.22: Thermal Noise Analysis Results for 11 Satellites and ?2= 10 m2/s2
Figure 7.23 shows the results of the Monte Carlo simulations for the eleven satellite
and 10 m2/s2 process noise tuning scenario. The criteria for loss of lock is whenever a
pseudorange error exceeds half a chip of the Gold code. The results for the two different
vector tracking algorithms essentially coincide. At about 8.3 dB-Hz, the probability of
the vector tracking algorithms functioning is 50 percent. In comparison, the decoupled
pseudorange-state filter has a 50 percent probability of tracking at around 13.35 dB-Hz.
Therefore, for the specific scenario being simulated vector tracking yields an increase in
performance of about 5.05 dB over scalar tracking.
125
Figure 7.23: Monte Carlo Simulation Results for 11 Satellites and ?2= 10 m2/s2
Figures 7.24 and 7.25 show the results of the thermal noise analysis and Monte Carlo
simulations for the eleven satellite and 50 m2/s2 process noise tuning scenario, respectively.
The analysis shows that the channels have a reduction in frequency jitter ranging from 3.1
to 4.2 dB when coupled together. At about 12 dB-Hz, the probability of the vector tracking
algorithms functioning is 50 percent. In comparison, the decoupled pseudorange-state filter
has a 50 percent probability of tracking at around 17.9 dB-Hz. Therefore, for the specific
scenario being simulated vector tracking yields an increase in performance of about 5.9 dB
over scalar tracking.
126
Figure 7.24: Thermal Noise Analysis Results for 11 Satellites and ?2= 50 m2/s2
Figure 7.25: Monte Carlo Simulation Results for 11 Satellites and ?2= 50 m2/s2
127
Figures 7.26 and 7.27 show the results of the thermal noise analysis and Monte Carlo
simulations for the eleven satellite and 100m2/s2 process noise tuning scenario, respectively.
The analysis shows that the channels have a reduction in frequency jitter ranging from 3.3 to
4.5 dB when coupled together. At about 13.7 dB-Hz, the probability of the vector tracking
algorithms functioning is 50 percent. In comparison, the decoupled pseudorange-state filter
has a 50 percent probability of tracking at around 19.9 dB-Hz. Therefore, for the specific
scenario being simulated vector tracking yields an increase in performance of about 6.2 dB
over scalar tracking.
Figure 7.26: Thermal Noise Analysis Results for 11 Satellites and ?2= 100 m2/s2
128
Figure 7.27: Monte Carlo Simulation Results for 11 Satellites and ?2= 100 m2/s2
The results of the thermal noise analysis for all the satellite constellations and process
noise tunings are summarized in Table 7.4. The plots of the analysis results for the five and
seven satellite constellations are included in Appendix C. The right most column shows the
thermal noise jitter for the decoupled pseudorange-state filter. The thermal noise jitter for
a given process noise tuning does not change with the number of satellites. This is due to
the fact the channels of the receiver are not coupled. The addition of satellites does not
improve the performance of the filter. In contrast, the thermal noise jitter for the coupled
filters decreases as more satellites are used. Consequently, the greatest reduction in thermal
noise jitter comes for the eleven satellite constellation.
Table 7.5 summarizes the results of the Monte Carlo simulations for the various satellite
constellations and process noise tunings. The plots of the Monte Carlo results for the
five and seven satellite constellations are included in Appendix C. The approximate C/N0
ratio at which the algorithms displayed a 50 percent chance of tracking are given for the
129
Table 7.4: Thermal Noise Analysis Results
Position/Pseudorange- Decoupled Pseudorange-
Number of ?2 State Filter State Filter
Satellites (m2/s2) Maximum Jitter Minimum Jitter Jitter for All Channels
Eleven 10 10.1 11.1 13.6
50 13.9 15 18.1
100 15.7 16.9 20.2
Seven 10 11.1 12.1 13.6
50 14.9 16.3 18.1
100 16.7 18.2 20.2
Five 10 11.8 12.9 13.6
50 15.7 17.1 18.1
100 17.5 19.1 20.2
various scenarios. For a given process noise tuning, the performance of the decoupled
filter is essentially the same for the different numbers of available satellites. The greatest
disparities in performance occur for the eleven satellite scenario. The coupled filters exhibit
an increase in performance of about 5 to 6.2 dB. The increase in performance for the other
two constellations is more modest. For the seven satellite scenario, the increase varies from
approximately 3.65 to 4.8 dB. The coupled filters have the least improvement for the five
satellite constellation. This makes intuitive sense because fewer satellites results in less of
an averaging effect. They show an improvement of around 2.4 to 3.3 dB.
Examining the results in Table 7.5, the 50 percent tracking threshold for the decoupled
pseudorange-state filter increases as the number of satellites increases. This is counterin-
tuitive because the channels of the filter are not coupled together. Changing the number
of satellites should not affect the ability of the decoupled filter to operate. The reason the
tracking threshold increases with the number of satellites is due to the way in which the
performance of the algorithms is assessed. In order for the algorithms to pass a given Monte
130
Table 7.5: Summary of Monte Carlo Simulation Results
C/N0 Ratio Corresponding to 50
Percent Probability of Tracking
Number of ?2 Position/Pseudorange- Decoupled Pseudorange-
Satellites (m2/s2) State Filter State Filter
Five 10 10.1 12.5
50 14.1 17.1
100 15.9 19.2
Seven 10 9.2 12.85
50 13.1 17.45
100 14.9 19.7
Eleven 10 8.3 13.35
50 12 17.9
100 13.7 19.9
Carlo run, the pseudorange errors in all the channels must not exceed half a chip of the Gold
code (approximately 147 meters) for the entire simulation duration. This criteria becomes
more restrictive as the number of satellites increases for the decoupled filter. Since the
channels of the receiver are not coupled, no advantage is offered in going from five to eleven
satellites. However, the number of channels that must successfully operate for each trial
increases. This is why the tracking threshold increases for the decoupled pseudorange-state
filter as the number of satellites increases.
It is important to note that the same criteria is used for all three algorithms. The
criteria for success becomes more restrictive with the inclusion of more satellites for the
coupled channel filters as well. However, the percent of trials passed for a given C/N0 ratio
still increases for the coupled channel filters when more satellites are available.
In the decoupled pseudorange-state filter, all the channels of the receiver operate in-
dependently. A fault in one channel will not effect the other channels of the receiver.
131
Consequently, it can be argued that requiring the pseudorange errors in all the channels
not to exceed the half chip threshold is overly restrictive for the decoupled filter. In order
to make a more fair comparison, the Monte Carlo simulations were performed again with
just a single channel of the pseudorange-state filter. This is done to determine how a single
channel will perform without the added constraint that the other channels perform through-
out the simulation as well. Figure 7.28 shows the results of the Monte Carlo simulations
with the 10, 50, and 100 m2/s2 process noise tunings.
Figure 7.28: Monte Carlo Simulation Results for a Single Channel of the Decoupled Filter
In Figure 7.28, theC/N0 ratios corresponding to a 50 percent probability of tracking for
the 10, 50, and 100 m2/s2 process noise tunings are approximately 10, 15, and 17.5 dB-Hz,
respectively. These C/N0 ratios are about 1.7 to 2.5 dB-Hz lower than the corresponding
thresholds for the decoupled pseudorange-state filter in the five satellite constellation. For
132
the five satellite scenario, the vector tracking algorithms only perform about .1 to 1.6 dB-
Hz better than the single channel filter. For the seven satellite constellation, the vector
tracking algorithms perform about .8 to 2.6 dB-Hz better than the single channel filter.
The vector tracking algorithms only perform about 1.7 to 3.8 dB-Hz better than the single
channel filter for the eleven satellite scenario. Therefore, it is seen that the exact manner
in which scalar and vector tracking are compared has a significant effect on the results of
the comparison.
7.4 High Dynamics Simulation Results
In this section, simulation results are presented that demonstrate the ability of the
Vector Delay/Frequency Lock Loop to operate in high dynamic environments and at low
C/No ratios. The analysis tools presented earlier in the chapter are applied to study the
VDFLL?s performance as a function of receiver dynamics, C/N0 ratio, and satellite constel-
lation. Instead of using software simulations inside MATLAB, a hardware simulator is used
to generate RF data. The RF data is recorded and then post processed in MATLAB. This
data has also been used by the author in [Lashley et al., 2008] [Lashley et al., 2009]. An
FLL is used to process the same data as a comparison for the VDFLL. As will be shown,
the results from using the RF simulator data compare favorably with the results predicted
by using the previous analysis tools and the VDFLL performs significantly better than the
scalar FLL.
133
7.4.1 Simulation Setup
An L-3 Interstate Electronics GPS constellation simulator is used to generate high
fidelity Radio Frequency (RF) data for a high dynamic flight profile. The RF data is
collected with a NordNav RF front-end. The NordNav front-end downconverts RF signals
to an Intermediate Frequency (IF) of 4.1304 MHz. The front-end samples the IF signal at
16.3676 MHz and saves the data for post-processing. The NordNav front-end is capable
of recording 1, 2 and 4 bit samples. For the results presented here, 2 bit samples are
used. The front-end only captures the L1 GPS signal. The VDFLL algorithm only uses
the civilian portion of the recorded L1 signal. The simulator provides the receiver?s true
position, velocity, acceleration, attitude, etc. throughout the flight profile.
The flight profile used in the simulation starts at the coordinates (6378.2, 0, 0) km in
the ECEF coordinate frame. The ECEF x-axis coordinate of the user remains essentially
constant throughout the flight. Significant dynamics only occur in the ECEF y-axis and
z-axis. Figure 7.29 shows the y-axis and z-axis coordinates during the flight profile. The
simulation includes three coordinated turns. The first is a 2 G turn, followed by a 4 G
turn. The last maneuver is an 8 G coordinated turn. The C/No starts at a nominal value
of approximately 43 dB-Hz. After an initial stationary period (about 260 seconds), the user
starts moving in the z-axis direction. After the user?s velocity in the z-axis levels out, the
C/No ratio is lowered and then held constant for the remaining duration of the simulation.
The satellite constellation used in the scenario is identical to the eleven satellite scenario
used in the previous sections. Subsets of five and seven satellites are also used which are
identical to the five and seven satellite constellations used in the previous section.
134
Figure 7.29: ECEF Y and Z Coordinates During Simulation
7.4.2 Simulation Results
Data was collected with the NordNav receiver at incrementally lower C/No ratios. The
lowestC/No that the VDFLL algorithm operated for the whole flight profile is 19 dB-Hz. At
19 dB-Hz, the algorithm can function with five, seven, or eleven satellites through all three
coordinated turns. The analysis tools presented earlier were applied to the VDFLL during
the 4 G and 8 G turns when using five satellites. TheC/No ratio and satellite geometry data
were used to calculate the steady state frequency jitter due to thermal noise. A value of 125
m2/s4 was used for the process noise covariance terms ?2x, ?2y, and ?2z. The dynamic stress
error was then calculated using the reference trajectory. Figure 7.30 shows the cumulative
effects of the 3-? thermal noise jitter and dynamic stress error for the VDFLL during the
4 G and 8 G turns at 19 dB-Hz. The five lines on the graphs correspond to the frequency
135
jitter and dynamic stress error for each individual satellite being tracked. During the 4 G
turn, the 25 Hz threshold is not exceeded by any of the satellites. However, during the 8 G
turn the threshold is slightly exceeded by two satellites for about one second. The 25 Hz
threshold tends to be conservative in this case.
Figure 7.30: VDFLL Thermal Noise Jitter and Dynamic Stress Error at 19 dB-Hz Using 5
Satellites
Using a C/N0 ratio of 16 dB-Hz data, the VDFLL algorithm can successfully operate
through the first two turns with seven and eleven satellites being tracked. The algorithm
however cannot maintain lock through the 8 G maneuver at this C/N0 ratio. The analysis
tools presented earlier were applied to the VDFLL during the 4 G and 8 G turns when using
seven satellites. Figure 7.31 shows the cumulative effects of the 3-? thermal noise jitter and
dynamic stress error for the VDFLL during the 4 G and 8 G turns at 16 dB-Hz with seven
satellites. As the figures show, the 25 Hz threshold is exceeded briefly during the 4 G turn
136
by three of the satellites. However, during the 8 G turn the threshold is exceeded by the
majority of the satellites for prolonged periods of time.
Figure 7.31: VDFLL Thermal Noise Jitter and Dynamic Stress Error at 16 dB-Hz Using 7
Satellites
The velocity errors in the EKF?s estimates in they- andz-axes are shown in Figure 7.32.
The VDFLL?s velocity estimates are very noisy and the errors diverge rapidly during the
last 8 G turn.
137
Figure 7.32: VDFLL Velocity Estimate Errors Using 7 Satellites at 16 dB-Hz
Figure 7.33: VDFLL Y and Z-Axis Acceleration Data Using 11 Satellites at 16 dB-Hz
138
Figure 7.33 shows the true y- and z-axis acceleration of the receiver during the simula-
tion and the VDFLL?s estimates. The VDFLL adequately tracks the changes in acceleration
during the 2 G and 4 G turns. However, the combination of the low C/No ratio and the
magnitude of the change in acceleration during the 8 G maneuver causes the VDFLL to
lose track. As a comparison to the VDFLL, a 2 Hz FLL is also used to track the Doppler
shift on the carrier signal during the flight profile. As before, the FLL uses the loop filter
parameters given in [Ward, 1996b]. Figure 7.34 shows the FLL?s estimates of the carrier
Doppler frequency at 19 dB-Hz. The FLL?s estimates diverge rapidly after the C/No ratio
is lowered. Prior to the C/No being lowered, the user?s velocity in all directions has settled
out. The line of sight dynamics are essentially zero from the period when theC/No drops to
when the FLL?s estimates have diverged. The divergence of the FLL is caused by thermal
noise and not dynamic stress. This is congruent with the analysis results shown in Fig. 7.1.
139
Figure 7.34: 2 Hz FLL and VDFLL Performance at 19 dB-Hz
The results of processing the RF simulator data show that the VDFLL performs sig-
nificantly better than the scalar FLL. The ability of the VDFLL to maintain lock through
the 2, 4, and 8 G turns also matches its predicted performance from the analysis tools.
7.5 Conclusion
Several analysis techniques for assessing the performance of vector tracking algorithms
are introduced in this chapter. The various techniques are adapted from rule of thumb
tracking thresholds originally used for studying scalar tracking loops. The analysis tech-
niques are used to determine the lowest C/N0 ratio at which the vector tracking loops will
operate for a specific scenario. The techniques can also be used to determine the maximum
allowable receiver dynamics for different situations.
140
The analysis tools used in this chapter implicitly assume that the rule of thumb tracking
thresholds for scalar loops apply to vector tracking loops. To test this assumption, Monte
Carlo simulations of different vector tracking loop configurations are carried out. For each
configuration, the minimumC/N0 ratio that the vector tracking algorithms can operate at is
calculated by using the analysis techniques. The results of the Monte Carlo simulations are
then compared to the analysis results. The results of the Monte Carlo simulations matched
the predictions of the analysis to within about 2 dB for the majority of the scenarios. This
level of accuracy for the vector tracking analysis techniques is comparable to the accuracy of
the rule of thumb thresholds when applied to scalar tracking loops. The effect of requiring
the algorithms to estimate the received signal amplitudes and noise power (as opposed to
being supplied with the actual values) is also studied through Monte Carlo simulations. A
maximum improvement of only about .8 dB is observed when the algorithms are supplied
the true signal amplitudes and noise power.
The benefits of vector over scalar tracking architectures are also investigated using
the analysis techniques and Monte Carlo simulations. The pseudorange-state filter is used
in its coupled and decoupled channel modes to allow a valid comparison between the two
architectures. For an eleven satellite constellation, vector tracking displays an improvement
of 6.2 to 3.8 dB, depending upon how the comparison is made.
The analysis techniques are also tested using RF data recorded from a high fidelity
GPS simulator. The recorded data is taken from a high dynamic flight profile containing 2,
4, and 8 G turns. The maximum receiver dynamics predicted by the analysis techniques are
compared to the actual performance of the vector tracking algorithms throughout the flight
141
profile. The maximum allowable dynamics predicted by the analysis tend to be conservative,
but overall they match the results of the simulations reasonably well.
142
Chapter 8
Analysis of Different Vector Tracking Architectures
8.1 Introduction
This chapter investigates three different vector tracking architectures. The goal of
the chapter is to determine the loss in performance caused by using a federated filtering
architecture instead of a single, central Kalman filter. The difference in the performance
of the algorithms is studied through covariance analysis and Monte Carlo simulations. The
performance of the different architectures is studied over a range of C/N0 ratios, process
noise intensities, and for two different satellite constellations. The covariance analysis is
used to compare the variance of the estimates produced by each of the different algorithms
under the same conditions. The results of the analysis allow the difference in performance
of the algorithms to be expressed in decibels. Monte Carlo simulations are then used to
verify the covariance analysis.
8.2 Deep Integration Filter Architectures
The majority of Deeply Integrated (DI) algorithms can be separated into two cate-
gories. The first category of algorithms rely on a single, centralized Kalman filter . The
central filter processes the received GPS signals and Inertial Measurement Unit (IMU)
measurements. The filter processes GPS measurements as they become available from the
integrate and dump functions and it directly controls the Numerically Controlled Oscillators
(NCO?s). The second category of DI algorithms rely on a federated filtering architecture.
In these algorithms, a large master filter processes the IMU measurements and also controls
143
the NCO?s for the GPS replica signals. Unlike the centralized filtering approach however,
the master filter does not process the raw measurements produced by the integrate and
dump operations. Instead, a set of smaller intermediate Kalman filters process the raw
GPS measurements. In [Abbott and Lillo, 2003], these are referred to as prefilters. Each
satellite has a prefilter dedicated to processing its signals. The prefilters take the raw GPS
measurements and estimate the pseudorange and pseudorange-rate for their specific satel-
lite. The state vectors of the prefilters are then periodically used by the master filter as
measurements. The covariance matrices of the prefilters are also used by the master filter
during its measurement update.
There are two main issues involved when using the federated filtering architecture. The
first pertains to the information that is being fed into the master filter. Between measure-
ment updates of the master filter, the prefilters process multiple batches of measurements
from the integrate and dump functions. The master filter does not process the raw mea-
surements, it only receives the states of the prefilters. This raises the question as to whether
there is a loss in optimality when the master filter only uses the prefilters? estimates instead
of the raw measurements themselves.
The second issue relates to the coupled and decoupled pseudorange-state filter discussed
in Section 6.3. When the process noise covariance matrix of the pseudorange-state filter
is block diagonal, no information is shared between the channels of the receiver. In that
situation, the pseudorange-state filter can be broken down into multiple smaller filters that
only process measurements from a single satellite. In other words, the pseudorange-state
filter is no longer performing vector tracking and has reverted back to scalar tracking. The
prefilters used in federated DI architectures do not share information between themselves.
144
The bank of prefilters essentially function as a collection of multiple scalar tracking loops.
The loss in the performance exhibited by the decoupled pseudorange-state filter means that
there should be a similar loss in performance when a bank of prefilters are used to preprocess
the available GPS measurements.
Three different vector tracking architectures are used to investigate the issues related
to using a federated filtering architecture. The first algorithm uses a single centralized
Kalman filter to process the raw GPS measurements. No intermediate tracking loops or
filters are used. This is representative of centralized DI algorithms. The second and third
architectures use a federated filtering scheme. In both algorithms, a master filter tracks
the receivers navigation states and controls its NCOs. A bank of prefilters process the
raw GPS measurements and estimate the pseudorange and pseudorange-rate errors. At 1
Hertz, the master filter in both algorithms is updated using the states of the prefilters.
However, the bank of prefilters differ in the two federated architectures. In one algorithm,
the prefilters are coupled together and information is shared across the different channels.
In the other algorithm, the prefilters are not coupled and no information is shared between
the channels presented previously in Chapter 6. The two different prefilter configurations
are accomplished by using the position-state and decoupled pseudorange-state formulations
of vector tracking. The two formulations use identical process and measurement noise
statistics. This ensures that the only difference between the two prefilter banks is the
coupling of the channels.
The following sections describe in detail the different filtering architectures that are
used followed by a covariance analysis of them. The covariance analysis of the three fil-
ter architectures is performed to study their ability to estimate the receiver?s navigation
145
states. The covariance analysis is performed under several different scenarios. Monte Carlo
simulations of the algorithms are then performed to verify the covariance analysis.
8.3 Single Central Filter
The centralized filtering approach uses a single Kalman filter to process all the infor-
mation provided by the different channels and track the receiver?s position, velocity, and
clock states. The central filter also predicts the pseudoranges and pseudorange-rates for all
the channels. Figure 8.1 shows a block diagram of the centralized filtering approach.
Figure 8.1: Single Centralized Filter Architecture
As shown in Figure 8.1, an integrate and dump time of 20 ms is used by the filter.
Consequently, pseudoranges and pseudorange-rates are predicted by the central filter at 50
Hz. Pseudorange and pseudorange-rate residuals are supplied at the end of each integrate
146
and dump period. These residuals are used by the filter to correct its state estimates. The
updated states are then used to predict the next set of pseudoranges and pseudorange-rates.
The states of the central Kalman filter in the non-federated architecture are the re-
ceiver?s position and clock states. The Earth-Centered Earth-Fixed (ECEF) coordinate
frame is used to track the receiver?s position and velocity. The state vector of the filter is
shown in (8.1).
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
x
?x
y
?y
z
?z
ct
c?t
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
Position, X-axis
Velocity, X-axis
Position, Y-axis
Velocity, Y-axis
Position, Z-axis
Velocity, Z-axis
Clock Bias
Clock Drift
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
(8.1)
The clock bias and drift states are scaled by the speed of light c, giving them units
of meters and meters/second, respectively. The discrete time state dynamics are shown in
(8.2).
x(k+1) = Adx(k)+w(k) (8.2)
where
147
Ad =
?
??
??
??
??
??
?
? 02?2 02?2 02?2
02?2 ? 02?2 02?2
02?2 02?2 ? 02?2
02?2 02?2 02?2 ?
?
??
??
??
??
??
?
? =
?
??
?
1 ?T
0 1
?
??
?
w =
?
??
??
??
??
??
??
??
?
wx
wy
wz
wb
wd
?
??
??
??
??
??
??
??
?
The variable ?T represents the time between measurement updates of the filter. The
process noise w is modeled as white and its statistics are shown in (8.3).
E{w(k)w(k)T} =
?
??
??
??
??
??
?
Qx 02?2 02?2 02?2
02?2 Qy 02?2 02?2
02?2 02?2 Qz 02?2
02?2 02?2 02?2 Qc
?
??
??
??
??
??
?
(8.3)
Qx =
?
??
?
?2x(?T)33 ?2x(?T)22
?2x(?T)22 ?2x(?T)
?
??
?
Qy =
?
??
?
?2y (?T)33 ?2y (?T)22
?2y (?T)22 ?2y(?T)
?
??
?
148
Qz =
?
??
?
?2z (?T)33 ?2z (?T)22
?2z (?T)22 ?2z(?T)
?
??
?
Qc =
?
??
?
?2b(?T) +?2d (?T)33 ?2d (?T)22
?2d (?T)22 ?2d(?T)
?
??
?
The process noise in the system w comes from two sources, receiver dynamics and clock
noise. The noise sources (wx,wy,wz) drive their respective velocity states. The terms
(wb,wd) in w represent the clock phase and frequency error of the user?s local oscillator,
expressed in units of meters and meters per second [Brown and Hwang, 1996], respectively.
The values for ?2b and ?2d are based on rule of thumb numbers for the type of oscillator
(compensated crystal, rubidium, etc.) the receiver uses [Brown and Hwang, 1996].
The states of the filter are updated with the residuals from each channel. Two different
discriminator functions are used to process the correlator outputs and produce measure-
ments of the pseudorange and pseudorange-rate residuals. The relationship between the
states of the filter and the pseudorange and pseudorange-rate residuals is shown in (8.4).
y = Cx+v (8.4)
C =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
149
In (8.4), the variablesax,N,ay,N,az,N are the components of the line-of-sight unit vector
from the user to the N-th satellite.
The statistics for the measurement noise vector v are shown in (8.5).
E{v} = 0N?1 (8.5)
E{vvT} = Rv
The matrix Rv is a diagonal matrix because the noise in the different channels is
uncorrelated and the noise in the pseudorange and pseudorange-rate measurements are
uncorrelated. The individual entries in Rv are determined from the type of discriminators
that is used and the current C/N0.
8.4 Federated Filtering Architectures
The federated filtering architectures use a combination of a master filter and multiple
smaller residual filters. The states of the master filter are used to predict the received pseu-
doranges and pseudorange-rates over a one second period. Pseudorange and pseudorange-
rate residuals are produced in each channel of the receiver every 20 ms. The residual
filter estimates the errors in the predictions of the master filter using the pseudorange and
pseudorange-rate residuals. The estimates of the residual filters are fed back to correct the
errors in the master filter?s predictions. The states of the residual filter are then used as
measurements by the master filter at the end of the one second period. After being used as
measurements, the states of the residual filter are zeroed and the cycle is repeated.
Two different federated architectures are examined in this dissertation. The first uses
a residual filter with coupled channels. This means that information is shared between the
150
different channels of the receiver. The second architecture uses a residual filter without
coupled channels. Without the channels being coupled, no information is shared between
the different receiver channels. The details of the federated architectures are given in the
following sections.
8.4.1 Federated Architecture with Coupled Channel Residual Filter
Figure 8.2 shows a block diagram of the federated architecture when using a coupled
channel residual filter.
Figure 8.2: Federated Filter Architecture with Coupled-Channel Residual Filters
The master filter is updated at 1 Hz and its states are used to predict the pseudoranges
and pseudorange-rates between measurement epochs. Between measurement epochs of the
master filter, the residual filter processes the pseudorange and pseudorange-rate residuals
151
produced by the integrate and dump operations at 50 Hz. The estimates of the residual
filter (in accordance with the Line Of Sight (LOS) geometry) are routed back to the cor-
rect the master filter?s predicted pseudoranges and pseudorange-rates. The feedback of the
residual filter?s estimates is optional, since the general filter architecture in Figure 8.2 can
be operated without feedback. However, the discriminators used to transform the correlator
outputs into pseudorange and pseudorange-rate residuals have a limited operating range.
Therefore, the discriminators will produce erroneous measurements if the true residuals ex-
tend beyond their operating range. The operating point of the discriminators is maintained
at approximately zero when feeding back the states of the residual filter.
The states of the residual filter used in the coupled channel architecture are shown in
(8.6).
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
x
?x
y
?y
z
?z
ct
c?t
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
Position Error, X-axis
Velocity Error, X-axis
Position Error, Y-axis
Velocity Error, Y-axis
Position Error, Z-axis
Velocity Error, Z-axis
Clock Bias Error
Clock Drift Error
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
(8.6)
The residual filter tracks errors in the master filter?s estimates of the receiver?s position,
velocity, and clock states. The position-state formulation of the vector tracking Kalman
152
filter is used due to the numerical issues that are encountered when using the pseudorange-
state formulation with coupled channels. The discrete time state dynamics of the filter are
shown in (8.7).
xR(k+1) = AdxR(k)+w(k) (8.7)
where
Ad =
?
??
??
??
??
??
?
? 02?2 02?2 02?2
02?2 ? 02?2 02?2
02?2 02?2 ? 02?2
02?2 02?2 02?2 ?
?
??
??
??
??
??
?
? =
?
??
?
1 ?T
0 1
?
??
?
In (8.7), the matrix Ad is the discrete time transition matrix for the system. The
subscript R is used to distinguish the states of the residual filter from the states of the
master filter. The vector wk represents the disturbances caused by receiver dynamics and
clock errors. The process noise vector wk is modeled as white, zero mean, and has a
covariance matrix given in (8.8).
E{w(k)w(k)T} =
?
??
??
??
??
??
?
Qx 02?2 02?2 02?2
02?2 Qy 02?2 02?2
02?2 02?2 Qz 02?2
02?2 02?2 02?2 Qc
?
??
??
??
??
??
?
(8.8)
153
Qx =
?
??
?
?2x(?T)33 ?2x(?T)22
?2x(?T)22 ?2x(?T)
?
??
?
Qy =
?
??
?
?2y (?T)33 ?2y (?T)22
?2y (?T)22 ?2y(?T)
?
??
?
Qz =
?
??
?
?2z (?T)33 ?2z (?T)22
?2z (?T)22 ?2z(?T)
?
??
?
Qc =
?
??
?
?2b(?T) +?2d (?T)33 ?2d (?T)22
?2d (?T)22 ?2d(?T)
?
??
?
The terms ?x, ?y, and ?z are the variances of the noise processes driving the velocity
states. The terms ?b and ?d are the variance of the clock phase and frequency jitter noise
processes, respectively.
The relationship between the states of the residual filter and the pseudorange and
pseudorange-rate residuals supplied at time k is shown in (8.9).
?R(k) = CR(xR(k)? ?x?R(k))+v(k) (8.9)
CR =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
The observation matrix CR for the residual filter is identical to the observation matrix
used by the centralized filter in the previous section. The state estimate of the residual
154
filter after the measurement update is given in (8.10).
?x+R(k) = ?x?R(k)+KR(k)(?R(k)) (8.10)
The pseudorange and pseudorange-rate residuals ?R generated by the discriminators is di-
rectly multiplied by the Kalman gainKR. This is a consequence of the states of the residual
filter being fed back to control the code and carrier NCOs. If the estimates of the residual
filter were not fed back, the measurement update equation in (8.10) would be changed to
(8.11).
?x+R(k) = ?x?R(k)+KR(k)(?R(k)?CR?x?R(k)) (8.11)
The master filter is designed to accommodate the residual filter. As a consequence, the
master filter?s state vector is partioned into two segments. The first segment contains states
that correspond to the receiver?s position, velocity, and clock states. The second segment
contains states that represent the errors in the residual filter?s state estimates. Appendix
D explains how the error states are derived. The full state vector is shown in (8.12).
?
??
?
xM
?xR
?
??
? =
?
??
?
Master Filter?s Navigation States
Residual Filter State Errors
?
??
?
where
155
xM =
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
Position, X-axis
Velocity, X-axis
Position, Y-axis
Velocity, Y-axis
Position, Z-axis
Velocity, Z-axis
Clock Bias
Clock Drift
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
(8.12)
?xR =
?
??
??
??
??
??
?
Residual Filter Error, State One
Residual Filter Error, State Two
...
Residual Filter Error, State Eight
?
??
??
??
??
??
?
The pseudoranges and pseudorange-rates are predicted based of the states corresponding to
the receiver?s position, velocity, clock bias, and clock drift. The extra states in the master
filter are appended to model the errors in the states of the residual filter. As shown in
(8.12), each state in the residual filter has a corresponding error state in the master filter.
The error states are defined in (8.13).
?xR(k) = xR(k)? ?x+R(k) (8.13)
156
The error states correspond to the difference between the true residuals and the residual
filter?s estimates. The dynamics of the error states are shown in (8.14).
?xR(k+1) = (Ad ?KR(k)CRAd)?xR(k) +(I ?KR(k)CR)w(k)?KR(k)v(k+1)
?xR(k+1) = A?x?xR(k)+?ww(k)+?vv(k+1)
where (8.14)
A?x = (Ad ?KR(k)CRAd)
?w = (I ?KR(k)CR)
?v = ?KR(k)
In (8.14), the matrix Ad is the same as is given in (8.7). The noise terms w and v are
the same as shown in (8.7) and (8.9). The matrices KR and CR are the Kalman gain and
observation matrix of the residual state filter, respectively.
The state dynamics of the master filter are given in (8.15).
?
??
?
xM(k+1)
?xR(k+1)
?
??
? =
?
??
?
Ad 08?8
08?8 A?x
?
??
?
?
??
?
xM(k)
?xR(k)
?
??
?+
?
??
?
I8?8
?w
?
??
?w(k)+
?
??
?
08?8
?v
?
??
?v(k+1)
(8.15)
The statistics of the noise vector w are the same as given in (8.8).
The states of the residual filter are used as measurements by the master filter. The
states of the residual filter are equal to the true residuals plus the errors in its estimates:
x+R(k) = xM(k)? ?x?M(k)??xR(k) (8.16)
157
In general, the residuals of the filter are related to the states of the filter and the true
states by:
?(k) = C(x(k)? ?x?(k))+v(k) (8.17)
Rearranging (8.16) into the form of (8.17) yields:
x+R(k) = xM(k)? ?x?M(k)??xR(k) (8.18)
?(k) = x+R(k) +?x?R(k)
?(k) = xM(k)??xR(k)? ?x?M(k) +??x?R(k)
The observation matrix for the master filter is therefore given by (8.19).
CM = [I8?8 ?I8?8] (8.19)
After each measurement epoch of the master filter, the state vector of the residual filter
is reset to zeros. This is because the state estimates of the master filter are unbiased and
the residual filter is tracking the errors in the master filter?s states. As a consequence of
this, the errors in the master filter?s states after a measurement update are correlated with
the errors in the residual filter?s states. The covariance matrix of the master filter after a
measurement update is given in (8.20)
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(??x+R(k))T}
E{??x+R(k)(?x+M(k))T} E{??x+R(k)(??x+R(k))T}
?
??
? (8.20)
158
After the measurement update of the master filter and after the states of the residual
filter are reset to zero, the errors in the residual filter?s states are identical to the errors in
the states of the master filter. Consequently, the covariance matrix of the master filter is
therefore set equal to:
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(?x+M(k))T}
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(?x+M(k))T}
?
??
? (8.21)
8.4.2 Federated Architecture with Decoupled Channel Residual Filters
Figure 8.3 shows a block diagram of the federated architecture when using a decoupled
channel residual filter.
Figure 8.3: Federated Filter Architecture with Decoupled-Channel Residual Filters
159
The architectures shown in Figures 8.3 and 8.2 are very similar. The master filter
is updated at 1 Hz and its states are used to predict the pseudoranges and pseudorange-
rates between measurement epochs. The residual filter processes the pseudorange and
pseudorange-rate residuals produced by the integrate and dump operations at 50 Hz and
its estimates are routed back to correct the master filter?s predictions. The main difference
between Figures 8.3 and 8.2 is the design of the residual filter. The channels of the residual
filter in Figure 8.3 are not coupled together. The pseudorange-state formulation of vector
tracking is used to decouple the receiver channels, as described in Chapter 6. Since the
residual filter tracks the pseudorange and pseudorange-rate errors, its estimates can be fed
directly back to correct the master filter?s predictions. The states of the residual filter are
used as measurements by the master filter at 1 Hz. The residual filter states are then reset
and the cycle is repeated.
The states of the residual filter used in the decoupled channel architecture are shown
in (8.22).
?
??
??
??
??
??
??
??
??
??
??
??
?
??1
???1
??2
???2
...
??N
???N
?
??
??
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
??
??
??
??
?
Pseudorange Error, Channel One
Pseudorange-rate Error, Channel One
Pseudorange Error, Channel Two
Pseudorange-rate Error, Channel Two
...
Pseudorange Error, Channel N
Pseudorange-rate Error, Channel N
?
??
??
??
??
??
??
??
??
??
??
??
?
(8.22)
160
The residual filter tracks errors in the master filter?s predictions of the pseudoranges
and pseudorange-rates. The pseudorange-state formulation of the vector tracking Kalman
filter is used so that the channels can be decoupled. The pseudorange-state VDFLL does not
exhibit numerical problems if the channels of the filter are decoupled. The state dynamics
of the filter are shown in (8.23).
xR(k+1) = AdxR(k)+w?(k) (8.23)
where
Ad =
?
??
??
??
??
??
?
? 02?2 ??? 02?2
02?2 ? ...
... ... 0
2?2
02?2 ??? 02?2 ?
?
??
??
??
??
??
?
? =
?
??
?
1 ?T
0 1
?
??
?
In (8.23), the matrix Ad is the discrete time transition matrix for the system. The
subscript R is again used to distinguish the states of the residual filter from the states of
the master filter. The vector w? represents the disturbances caused by receiver dynamics
and clock errors. The process noise vector w? is modeled as white, zero mean, and with the
covariance matrix given in (8.24).
161
E{w?(k)(w?(k))T} =
?
??
??
??
??
??
?
Qc 02?2 ... 02?2
02?2 Qc ... ...
... ... ... 0
2?2
02?2 ... 02?2 Qc
?
??
??
??
??
??
?
+
?
??
??
??
??
??
?
Qd1,1 02?2 ... 02?2
02?2 Qd2,2 ... ...
... ... ... 0
2?2
02?2 ... 02?2 QdN,N
?
??
??
??
??
??
?
where (8.24)
Qdi,j =
?
??
?
?i,j T33 ?i,j T22
?i,j T22 T?i,j
?
??
?
?i,j =
bracketleftbigg
?2xax,iax,j +?2yay,iay,j +?2zaz,iaz,j
bracketrightbigg
Qc =
?
??
?
?2bT +?2d T33 ?2d T22
?2d T22 ?2dT
?
??
?
The terms ?x, ?y, and ?z are the variances of the noise processes driving the velocity
states. The terms ?b and ?d are the variance of the clock phase and frequency jitter noise
processes, respectively. The variables ax,i,ay,i,az,i are the components of the line-of-sight
unit vector from the receiver to the i-th satellite.
The relationship between the states of the residual filter and the pseudorange and
pseudorange-rate residuals supplied at time k is shown in (8.25).
?R(k) = xR(k)? ?x?R(k)+v(k) (8.25)
The observation matrix for the residual filter is an identity matrix, since the states and
measurements are identical. The state estimate of the residual filter after the measurement
162
update is given in (8.26).
?x+R(k) = ?x?R(k)+KR(k)(?R(k)) (8.26)
The master filter is again designed to accommodate the residual filter. The master
filter?s state vector is partioned into two segments. The first segment contains states that
correspondto the receiver?sposition, velocity, and clockstates. The second segment contains
states that represent the error in the residual filter?s state estimates. The full state vector
is shown in (8.27).
?
??
?
xM
?xR
?
??
? =
?
??
?
Master Filter?s Navigation States
Residual Filter State Errors
?
??
?
where
xM =
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
Position, X-axis
Velocity, X-axis
Position, Y-axis
Velocity, Y-axis
Position, Z-axis
Velocity, Z-axis
Clock Bias
Clock Drift
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
(8.27)
163
?xR =
?
??
??
??
??
??
?
Residual Filter Error, State One
Residual Filter Error, State Two
...
Residual Filter Error, State N
?
??
??
??
??
??
?
The pseudoranges and pseudorange-rates are predicted based off the states correspond-
ing to the receiver?s position, velocity, clock bias, and clock drift. The extra states in the
master filter are appended to model the errors in the states of the residual filter. As shown
in (8.27), each state in the residual filter has a corresponding error state in the master filter.
The error states are defined in (8.28).
?xR(k) = xR(k)? ?x+R(k) (8.28)
The error states correspond to the difference between the true residuals and the residual
filter?s estimates. The dynamics of the error states are shown in (8.29).
?xR(k+1) = (Ad ?KR(k)CRAd)?xR(k)+(I ?KR(k)CR)Hw(k)?KR(k)v(k+1)
?xR(k+1) = A?x?xR(k)+?ww(k)+?vv(k+1)
where (8.29)
A?x = (Ad ?KR(k)CRAd)
?w = (I ?KR(k)CR)
?v = ?KR(k)
164
H =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
In (8.29), the matrix Ad is the same as is given in (8.23). The process noise vector w
is identical to that shown in (8.2) and (8.14). The process noise corresponds to stochastic
changes in the receiver?s position, velocity, and clock states. The process noise is multiplied
by the matrix H in order to relate it to the pseudorange and pseudorange-rate prediction
errors. Since the observation matrix for the decoupled pseudorange-state filter is an identity
matrix, equation (8.29) can be simplified to (8.30).
?xR(k+1) = A?x?xR(k) +?wHw(k)+?vv(k+1)
where (8.30)
A?x = (Ad ?KR(k)Ad)
?w = (I ?KR(k))
?v = ?KR(k)
The noise terms w and v are the same shown in (8.7) and (8.9). The matrices KR and
CR are the Kalman gain and observation matrix of the residual state filter, respectively.
165
The state dynamics of the master filter are given in (8.31).
?
??
?
xM(k+1)
?xR(k+1)
?
??
? =
?
??
?
Ad 08?N
0N?8 A?x
?
??
?
?
??
?
xM(k)
?xR(k)
?
??
?+
?
??
?
I8?8
?wH
?
??
?w(k)+
?
??
?
08?8
?v
?
??
?v(k+1)
(8.31)
The states of the residual filter are used as measurements by the master filter. The
observation matrix for the master filter is given by (8.32).
CM = [H ?IN?N] (8.32)
The state vector of the residual filter is reset to zeros after each measurement epoch of
the master filter. This is because the state estimates of the master filter are unbiased and
the residual filter is tracking the errors in the master filter?s states. As a consequence of
this, the errors in the master filter?s states after a measurement update are correlated with
the errors in the residual filter?s states. The covariance matrix of the master filter after a
measurement update is given in (8.33)
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(??x+R(k))T}
E{??x+R(k)(?x+M(k))T} E{??x+R(k)(??x+R(k))T}
?
??
? (8.33)
After the measurement update of the master filter and after the states of the residual
filter are reset to zeros, the errors in the residual filter?s states are related to the errors in
166
the states of the master filter by:
??x+R(k) = H?x+M(k) (8.34)
Consequently, the covariance matrix of the master filter is therefore set equal to:
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(?x+M(k))T}?HT
H ?E{?x+M(k)(?x+M(k))T} H ?E{?x+M(k)(?x+M(k))T}?HT
?
??
? (8.35)
8.5 Covariance Analysis of Vector Tracking Architectures
A covariance analysis of the three filter architectures is performed to study the differ-
ences in their performance. The covariance analysis is performed with two different satellite
constellations. One satellite constellation contains eleven satellites and the other contains
five satellites. The receiver?s motion and clock are modeled using the formula shown in
(8.36).
x(k+1) = Adx(k)+w(k) (8.36)
where
167
x8?1 =
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
Position, X-axis
Velocity, X-axis
Position, Y-axis
Velocity, Y-axis
Position, Z-axis
Velocity, Z-axis
Clock Bias
Clock Drift
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
Ad =
?
??
??
??
??
??
?
? 02?2 02?2 02?2
02?2 ? 02?2 02?2
02?2 02?2 ? 02?2
02?2 02?2 02?2 ?
?
??
??
??
??
??
?
? =
?
??
?
1 ?T
0 1
?
??
?
w =
?
??
??
??
??
??
??
??
?
wx
wy
wz
wb
wd
?
??
??
??
??
??
??
??
?
The variable ?T represents the time between measurement updates of the filter. A
time of 20 ms is used for the covariance analysis and subsequent Monte Carlo simulations.
The model in (8.36) matches the models used by the Kalman filters in the different receiver
168
architectures. The velocity and clock states of the receiver are modeled as being driven by
the noise process w. The process noise w is a Gaussian, white sequence and its statistics
are shown in (8.37).
E{w(k)w(k)T} =
?
??
??
??
??
??
?
Qx 02?2 02?2 02?2
02?2 Qy 02?2 02?2
02?2 02?2 Qz 02?2
02?2 02?2 02?2 Qc
?
??
??
??
??
??
?
(8.37)
Qx =
?
??
?
?2x(?T)33 ?2x(?T)22
?2x(?T)22 ?2x(?T)
?
??
?
Qy =
?
??
?
?2y (?T)33 ?2y (?T)22
?2y (?T)22 ?2y(?T)
?
??
?
Qz =
?
??
?
?2z (?T)33 ?2z (?T)22
?2z (?T)22 ?2z(?T)
?
??
?
Qc =
?
??
?
?2b(?T) +?2d (?T)33 ?2d (?T)22
?2d (?T)22 ?2d(?T)
?
??
?
The individual terms of w represent the noise driving the velocity states (wx,wy,wz)
and the noise driving the clock states (wb,wd). The terms (wb,wd) in w represent the clock
phase and frequency error of the user?s local oscillator, expressed in units of meters and
meters per second [Brown and Hwang, 1996], respectively. The values for ?2b and ?2d are
based on rule of thumb numbers for a temperature compensated crystal oscillator (TCXO).
169
The power spectral density coefficients used for the oscillator are [Brown and Hwang, 1996]:
h0 = 2?10?19
h?1 = 7?10?21 (8.38)
h?2 = 2?10?20
The covariance analysis is performed with differing values of ?2x, ?2y, and ?2z. The
magnitudes of the three terms are always equal to each other in the individual scenarios.
Values of 2, 10, and 50 m2/s2 are used for the process noise variances to represent varying
levels of user dynamics.
The measurement noise statistics are defined by the type of discriminators that are
used and the C/N0 ratio. A pseudorange and pseudorange-rate discriminator are used to
transform the correlator outputs into usable measurements for the filters. The pseudorange
discriminator uses the correlator outputs accumulated over the entire 20 ms integrate and
dump interval [Crane, 2007]:
YR(k) = IE(k)2 +QE(k)2 ?IL(k)2 ?QL(k)2 (8.39)
YR(k) = A(k)2
parenleftBig2??e(k)
?
parenrightBig
+vR(k)
?e(k) = Pseudorange error (meters)
? = PRN chip length, 293.3 meters for C/A code
A(k) = Signal amplitude
vR(k) = Noise
170
The mean and mean squared value of the random variable vR are:
E{vR} = 0 (8.40)
E{v2R} = ?
2
2(TC/No)2 +
?2
TC/No
parenleftBigg
?2e
?2 +
1
4
parenrightBigg
(meters2)
The pseudorange-rate discriminator uses correlator outputs from two adjacent 10 ms inte-
grate and dump operations to generate pseudorange-rate residuals ??err(k) [Crane, 2007]:
YRR(k) = IP2(k)QP1(k)?IP1(k)QP2(k) (8.41)
YRR(k) ? ?AF(k)2R2(?e(k))?ferr(k)Tc4f
L1
+vRR
?e(k) = Pseudorange error error (meters)
??err(k) = Pseudorange-rate error (m/s)
vRR = Noise
The mean and mean squared value of vRR are:
E{vRR} = 0 (8.42)
E{v2RR}? =
parenleftBigg
2
(TC/No)2 +
2R2(?e(k))
TC/No
parenrightBiggparenleftBigg
c
?TfL1
parenrightBigg2
(m/s)2
? = assuming |?e(k)| ? ?2
In (8.40) and (8.42) the value of T is the predetection integration interval used to
generated the correlator outputs in (8.39), which in this work is 20 ms. An early-to-late
correlator spacing of one chip is assumed. The noise terms in the discriminator outputs in
(8.40) and (8.42) are uncorrelated with each other [Crane, 2007].
171
Table 8.1 summarizes the statistical characteristics of the eleven and five satellite ge-
ometries.
Table 8.1: Dilution of Precision Values for Different Satellite Configurations
Number of Satellites PDOP HDOP VDOP
Eleven 1.4141 0.7527 1.1971
Five 2.3602 1.1300 2.0721
The covariance analysis of the different architectures was performed by taking the pro-
cess and measurement noise statistics and then iterating the Kalman filter recursions until
the state covariance matrix reached steady state. For the federated filter architectures, the
state covariance matrix of the master filter was monitored for steady state conditions. The
covariance analysis was performed for each filter architecture with three different process
noise intensities and over a range of C/N0 ratios.
The architecture of the centralized and federated architectures makes performing a valid
comparison complicated. The reason for this is due to the different update rates used by
the centralized filter and the master filters in the two federated algorithms. The centralized
filter is updated with pseudorange and pseudorange-rate residuals at 50 Hz, while the master
filters in the federated architectures receive measurements at 1 Hz. Between measurement
updates, the covariance matrix of the federated filters increases because no measurements
are available. This is an unavoidable consequence of using the federated architectures. The
state covariance matrix only decreases after the 1 Hz measurement update. In the interest
of making a valid comparison, the state covariance matrices of the different algorithms are
compared immediately after the measurement updates of the master filters.
172
8.5.1 Covariance Analysis Results for Eleven Satellite Scenario
The x-axis position results of the covariance analysis for the eleven satellite and 2
m2/s2 process noise intensity scenario are shown in Figure 8.4. The C/N0 ratio ranges
from 45 to 19 dB-Hz in 1 dB increments. For each of the three architectures, the diagonal
element of the covariance matrix corresponding to the receiver?s x-axis position is plotted.
Recall that this is taken from the covariance matrix after the 1 Hz update for the federated
architectures. The variance of the position estimate error is plotted in units of dB-m2. This
is done simply to make the results of the covariance analysis easier to visually inspect. The
C/N0 ratio varies over a wide range of values and so the magnitude of the position estimate
error variance changes drastically.
Figure 8.4: Covariance Analysis Results, X-axis Position Error for the Different Filter
Architectures
173
Figure 8.4 shows that the federated filter with coupled channels and the centralized
filtering architectures yield essentially identical results for every C/N0 ratio. In contrast,
the federated filter with uncoupled channels exhibits a higher variance at every C/N0. The
relative difference between the centralized filter and the federated filter with uncoupled
channels decreases as the C/N0 ratio decreases. The greatest disparity in performance is
seen at 45 dB-Hz.
Figure 8.5 shows the results of the same covariance analysis for the x-axis velocity
estimate. The variance of the x-axis velocity estimate is plotted in dB-m2/s2. Again, the
centralized and coupled channel federated filter architectures produce virtually identical
results. The federated architecture without coupled channels exhibits a higher variance
for the velocity estimate at each C/N0. The disparity also tends to decrease as the C/N0
decreases.
The difference in the performance of the algorithms can be expressed in dB by ex-
amining the horizontal difference between the curves in Figures 8.4 and 8.5. This is done
by taking the variance produced by the federated filter with decoupled channels at a given
C/N0 ratio and then determining theC/N0 ratio at which the centralized and coupled chan-
nel federated filters yield the same variance. The difference inC/N0 ratios is defined here as
the difference in performance of the algorithms as measured in dB. Using this methodology,
the performance difference between the decoupled channel federated filter, the centralized
filter, and coupled channel federated filter for all three position and velocity states is shown
in Figure 8.6. The corresponding differences in performance for the clock states is shown
in Figure 8.7.
174
Figure 8.5: Covariance Analysis Results, X-axis Velocity Error for the Different Filter
Architectures
Figure 8.6: Differences in the Position and Velocity Performance of the Coupled and De-
coupled Channel Filters, ?2=2 m2/s2
175
Figure 8.7: Differences in the Clock Bias and Drift Performance of the Coupled and Decou-
pled Channel Filters, ?2=2 m2/s2
As shown in Figures 8.6 and 8.7, the advantage offered by the centralized and the
coupled channel federated architecture decreases as C/N0 ratio decreases. At 45 dB-Hz,
the federated algorithm with decoupled channels performs about 3 dB worse with respect
to its position state estimates. At 19 dB-Hz, the difference in performance is virtually
zero. The difference in the velocity state estimates has a maximum of about 1.6 dB and
a minimum of less than .5 dB. The performance improvement in the clock state estimates
also decreases as the C/N0 ratio decreases. The difference in the clock drift variances has
a maximum of about 4.8 dB at 45 dB-Hz and decreases to less than .5 dB at 19 dB-Hz.
The improvement in the clock bias variance is more modest. The largest difference in
performance is about 3.8 dB at 45 dB-Hz. At 19 dB-Hz, the difference in performance with
respect to the clock bias variance is essentially zero.
176
The curves in Figures 8.6 and 8.7 show that the difference between the performance
of the algorithms is itself a function of C/N0. This is counter-intuitive and it would seem
that one algorithm should have a constant performance advantage in decibels over the other
algorithms. Furthermore, the difference in performance for the y and z velocity states is
not strictly decreasing with the C/N0. At about 39 dB-Hz, the difference in performance
is greatest for the those two states. These observations raise questions as to the nature of
the curves seen in Figures 8.6 and 8.7.
The shape of the curves in Figures 8.6 and 8.7 is explained by considering the nature
of the Kalman filter. The filter essentially performs a trade-off between the measurement
and process noise present in the system. The results in Figures 8.6 and 8.7 are generated
by holding the process noise constant and varying the magnitude of the measurement noise.
It should also be noted that the nature of the clock noise processes is different than that of
the position and velocity states. This is shown in Equation (8.37), the clock bias is affected
by clock phase and frequency noise. However, the position states are affected by the noise
processes driving the velocity states. This is analogous to the clock frequency noise affecting
the clock bias state. However, there is not a noise term that affects the position states like
the clock phase affects the clock bias.
If the process noise covariance matrix is scaled along with the measurement noise co-
variance matrix, a constant difference in performance between the algorithms is obtained for
each state. For example, consider the noise statistics of the pseudorange and pseudorange-
rate discriminators in (8.40) and (8.42). At 45 dB-Hz the pseudorange and pseudorange-rate
177
variances are approximately 34.1 m2 and .0291 m2/s2, respectively. Assume that the mea-
surement noise statistics are scaled according to (8.43).
?2?(C/N0) = 34.1?245?C/N03 m2
?2??(C/N0) = .0291?245?C/N03 m2/s2 (8.43)
This amounts to doubling the measurement noise variances every time the C/N0 ratio
decreases by 3 dB. Furthermore, assume that the process noise covariance in (8.37) is
similarly scaled according to (8.44).
Q(C/N0) =
?
??
??
??
??
??
?
Qx 02?2 02?2 02?2
02?2 Qy 02?2 02?2
02?2 02?2 Qz 02?2
02?2 02?2 02?2 Qc
?
??
??
??
??
??
?
?245?C/N03 (8.44)
Using the functions in (8.43) and (8.44), the covariance analysis of the three architectures
was repeated. The centralized filter and the federated filter with coupled channels again
yielded virtually identical results. The difference in their performance and the performance
of the federated filter with uncoupled channels for the position and clock states is shown in
Figures 8.8 and 8.9, respectively.
Figures 8.8 and 8.9 demonstrate that the performance improvements for all the different
states are constant as the C/N0 ratio changes. This explains that the varying performance
improvements in Figures 8.6 and 8.7 are caused by increasing the measurement noise while
holding the process noise constant.
178
Figure 8.8: Differences in the Position and Velocity Performance of the Coupled and De-
coupled Channel Filters when Varying the Process and Measurement Noise
Figure 8.9: Differences in the Clock Bias and Drift Performance of the Coupled and Decou-
pled Channel Filters when Varying the Process and Measurement Noise
179
Figures 8.10 and 8.11 show the difference in the performance of the federated filter with
decoupled channels and the centralized filter for the process noise intensity of 10 m2/s2.
Comparing Figures 8.6 and 8.10 shows that the difference in the performance for the position
and velocity states is similar for the 2 and 10m2/s2 process noise intensities. The difference
in performance for the clock bias and drift states is larger with the 10 m2/s2 process noise
variance.
Figure 8.10: Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=10 m2/s2
Figures 8.12 and 8.13 show the difference in the performance of the federated filter with
decoupled channels and the centralized filter for the process noise intensity of 50 m2/s2.
The maximum difference in the performance of the algorithms occurs at about 28 dB-Hz
for the y and z velocity states. The difference in the position state variances again becomes
smaller as the C/N0 decreases. At 19 dB-Hz, the difference is essentially nonextant. The
180
Figure 8.11: Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=10 m2/s2
difference in performance for the clock drift estimate is largest for the 50m2/s2 process noise
intensity. However, the difference in performance for the clock bias state is the smallest.
181
Figure 8.12: Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2
Figure 8.13: Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2
182
8.5.2 Covariance Analysis Results for Five Satellite Scenario
The same covariance analysis presented in the previous section is carried out for the
five satellite constellation. The same three process noise tunings are used for the alternate
constellation. For the sake of brevity, only the results for the 2 and 50 m2/s2 process noise
tuning are included here. Figures 8.14 and 8.15 show the difference in the performance of
the federated filter with decoupled channels and the centralized filter for the process noise
intensity of 2 m2/s2. Compared to Figure 8.6, the difference in performance with respect to
the position states is similar for the five satellite constellation. The performance difference
is less for the y and z velocities, but it is about the same for the x velocity. The difference
in performance for the clock drift is slightly larger for the five satellite constellation and the
performance difference for the clock bias is less.
Figure 8.14: Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=2 m2/s2
183
Figure 8.15: Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=2 m2/s2
Figures 8.16 and 8.17 show the difference in the performance of the federated filter with
decoupled channels and the centralized filter for the process noise intensity of 50 m2/s2.
The performance difference for the velocity states is generally lower than in the eleven
satellite constellation. This is especially true at the lower C/N0 ratios. In Figure 8.17, the
performance difference for the clock drift is greater, while the performance for the clock
bias is less relative to the eleven satellite constellation.
184
Figure 8.16: Differences in the Position and Velocity Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2
Figure 8.17: Differences in the Clock Bias and Drift Performance of the Coupled and
Decoupled Channel Filters, ?2=50 m2/s2
185
8.6 Monte Carlo Test Results of Vector Tracking Architectures
Monte Carlo simulations of the various scenarios in the previous section were carried out
to verify the results of the covariance analysis. For each satellite constellation, simulations
were performed with each of the three process noise variances. For each process noise
variance, Monte Carlo simulations were performed over a range of C/N0 ratios. The range
of values for the C/N0 ratio started at 19 dB-Hz and where performed at 2 dB intervals up
to 45 dB-Hz. At each C/N0 ratio, fifty Monte Carlo simulations were performed and all the
simulations had a duration of one hour. For each individual Monte Carlo simulation number,
all three algorithms used the same seed in the random number generator. Additionally, all
three algorithms were initialized with the same errors at the start of a given Monte Carlo
simulation.
The algorithms did not estimate the C/N0 ratios of the simulated GPS signals. It
was assumed that for all three algorithms the received signal amplitudes were known and
that the variance of the thermal noise was also known. The runtime of the simulations was
significantly decreased by not having the algorithm?s estimate the C/N0 ratios. In light of
the findings presented in Chapter 7, Section 3.2 the difference in the performance of the
algorithms should not be overly influenced by having to estimate the C/N0 ratios.
The trajectory of the receiver in each Monte Carlo simulation was created by using
the motion model in Equation (8.36). The statistics of the process noise terms in (8.36)
were dictated by the receiver oscillator characteristics and the process noise intensity for
the given scenario. As in the covariance analysis, noise statistics commensurate with TCXO
oscillator were used (8.38).
186
The received GPS signals were simulated at the correlator output level. The various
correlator outputs are modeled as shown in (8.45) [Sayre, 2003].
IE(k) = AR(?+?)D(k)cos(?ferrT +?err)+?IE(k)
IP(k) = AR(?)D(k)cos(?ferrT +?err)+?IP(k)
IL(k) = AR(???)D(k)cos(?ferrT +?err)+?IL(k) (8.45)
QE(k) = AR(?+?)D(k)sin(?ferrT +?err)+?QE(k)
QP(k) = AR(?)D(k)sin(?ferrT +?err)+?QP(k)
QL(k) = AR(???)D(k)sin(?ferrT +?err)+?QL(k)
A =
radicalBigg
2CTPDI
No ?
sin(?ferrT)
(?ferrT)
? = N(0,1)
In (8.45), the correlator outputs have been normalized so that the noise is unit variance.
The variablesferr and?err are the frequency error (Hertz) and phase error (radians) between
the received and locally generated carrier signals, respectively. The sinc (sin(x)/x) term in
(8.45) is an effective loss in signal amplitude due to the frequency error, ferr. The term
? is the phase error between the received and locally generated PRN codes, measured in
fractions of a chip. The functionR(?) is the auto-correlation function of the PRN sequences.
The symbol ? is the correlator spacing of the Early and Late PRN replicas, expressed in
fractions of a chip. A correlator spacing of one half chip is used for all the Monte Carlo
simulation results. The autocorrelation of the Gold code as a function of the code phase
187
error is:
R(?) =
?
???
???
1?|?| when ?< 1 chip
0 when ?> 1 chip.
The noise terms in (8.45) are all zero-mean and unit variance. The in-phase and
quadrature noise terms are uncorrelated. Using a half chip correlator spacing results in the
early and late noise terms being uncorrelated. The early and prompt noise terms, and the
prompt and late noise terms, all have a correlation coefficient of 0.5 .
The pseudorange and pseudorange-rate discriminator functions in (8.40) and (8.42)
are used in the simulations. An integrate and dump time of 20 milliseconds is used for the
correlator outputs in (8.40). Two consecutive integrate and dump times of 10 ms are used
for the correlator outputs used in (8.42).
At the start of each simulation, the steady state, state covariance matrix of the master
filter is calculated. The state vector of the master filter for the different architectures is
then initialized using a Gaussian random vector with a mean vector of zero and a covariance
matrix equal to the steady state, state covariance matrix. Throughout the simulations, the
algorithms were monitored for loss of lock. A pseudorange error of over 150 meters in any
channel was used as the criteria for declaring loss of lock.
8.6.1 Monte Carlo Simulation Results for Eleven Satellite Scenario
The results of the Monte Carlo simulations for the eleven satellite geometry and 2
m2/s2 process noise levels are shown in Figures 8.18 through 8.21. A logarithmic scale
is used because the Monte Carlo simulation results vary widely in their magnitudes. In
Figure 8.18, the average of the variances from the Monte Carlo simulations for the x-axis
position errors for all three architectures is shown. The average of the variances is computed
188
from the formula shown in (8.46).
??2x,C/N0 = 150
50summationdisplay
n=1
??2x,C/N0(n) (8.46)
The x-axis position variance from each individual trial at a given C/N0 ratio is denoted by
??2x,C/N0(n) and the average of the variances at that C/N0 ratio is represented by ??2x,C/N0.
Recall that the errors are calculated after the measurement update of the master filters for
the federated algorithms. The errors are computed at the same times for the centralized
filter.
In addition to the mean of the x-axis position errors, the variances predicted from
the covariance analyses are plotted for the centralized filter and the federated filter with
uncoupled channels. The results of the covariance analysis for the federated filter with
coupled residual filters are not shown because they are virtually identical to the results for
the centralized filter. The mean of the variances ??2x,C/N0 plus and minus three times the
empirical standard deviation of the Monte Carlo simulation results is also plotted. This is
done simply to relay a sense of how spread out the Monte Carlo simulation results are. The
empirical standard deviation is calculated for each C/N0 ratio from (8.47).
? =
radicaltpradicalvertex
radicalvertexradicalbt 1
49
50summationdisplay
n=1
(??2x,C/N0(n)? ??2x,C/N0)2 (8.47)
The empirical standard deviation ? is added and subtracted from ??2x,C/N0 to yield the
bounds shown in Figures 8.18 through 8.21. The addition and subtraction is performed
prior to the conversion to the logarithmic scale.
189
Figure 8.18: Monte Carlo Simulation Results for the X-Axis Position with Eleven Satellites
and ?2=2 m2/s2
Examining Figures 8.18 and 8.19, the results of the Monte Carlo simulations for x-
axis position and velocity variances match closely with the predictions from the covariance
analysis. As seen previously, the performance advantage of the centralized filter and coupled
channel federated filter diminishes as the C/N0 ratio declines.
The variance of the clock bias and drift states are shown in Figures 8.20 and 8.21,
respectively. Again, the results of the Monte Carlo simulations closely match the predictions
from the covariance analysis. The relative increase in performance of the centralized filter
and federated filter with coupled channels decreases with the C/N0 ratio.
The results of the Monte Carlo simulations shown in Figures 8.18 through 8.21 are
representative of the simulation results for the other filter states. For the sake of brevity,
they are not shown here. However, they are included in Appendix C. The Monte Carlo
simulation results for process noise intensity of 10 m2/s2 are also included in Appendix C.
190
Figure 8.19: Monte Carlo Simulation Results for the X-Axis Velocity with Eleven Satellites
and ?2=2 m2/s2
Figure 8.20: Monte Carlo Simulation Results for the Clock Bias with Eleven Satellites and
?2=2 m2/s2
191
Figure 8.21: Monte Carlo Simulation Results for the Clock Drift with Eleven Satellites and
?2=2 m2/s2
For the eleven satellite constellation, the simulation results for the 2 and 10 m2/s2
process noise levels are congruent with the predictions from the covariance analysis. How-
ever, the Monte Carlo simulation results for the 50 m2/s2 process noise level do not match
the covariance analysis predictions nearly as well. The simulation results for the 50 m2/s2
process noise level are shown in Figures 8.22 through 8.25. Only the results for C/N0 ratios
above 25 dB-Hz are shown. This is because the algorithms began to fail at C/N0 ratios
below 27 dB-Hz.
The results for the x-axis velocity and clock drift display the largest deviations from
the predictions of the covariance analysis. These deviations are caused predominantly by
nonlinearities in the pseudorange-rate discriminators. The process noise driving the velocity
states is large enough to induce pseudorange-rate errors that exceed the linear operating
range of the pseudorange-rate discriminator. If the pseudorange-rate discriminators are
192
bypassed, and the filter is provided the true pseudorange-rate error plus white noise with
the statistics given in (8.42), the simulation results match the covariance analysis.
Figure 8.22: Monte Carlo Simulation Results for the X-Axis Position with Eleven Satellites
and ?2=50 m2/s2
193
Figure 8.23: Monte Carlo Simulation Results for the X-Axis Velocity with Eleven Satellites
and ?2=50 m2/s2
Figure 8.24: Monte Carlo Simulation Results for the Clock Bias with Eleven Satellites and
?2=50 m2/s2
194
Figure 8.25: Monte Carlo Simulation Results for the Clock Drift with Eleven Satellites and
?2=50 m2/s2
8.6.2 Monte Carlo Simulation Results for Five Satellite Scenario
The x-axis position and velocity Monte Carlo simulation results for the five satellite
scenario with process noise levels of 2m2/s2 are shown in Figures 8.26 and 8.27, respectively.
The results of the simulations match the covariance analysis results. The results for the
other states are included in Appendix C.
The x-axis position and velocity Monte Carlo simulation results for the five satellite
scenario with process noise levels of 50 m2/s2 are shown in Figures 8.28 and 8.29, respec-
tively. Only the results for C/N0 ratios of 31 dB-Hz and above are shown. The algorithms
began to lose lock below 31 dB-Hz. The position results match the covariance analysis far
better than the velocity results. As in the eleven satellite constellation, the linear operating
195
Figure 8.26: Monte Carlo Simulation Results for the X-Axis Position with Five Satellites
and ?2=2 m2/s2
Figure 8.27: Monte Carlo Simulation Results for the X-Axis Velocity with Five Satellites
and ?2=2 m2/s2
196
range of the pseudorange-rate discriminators is exceeded with the 50 m2/s2 process noise
levels. The simulation results for the other states are included in Appendix C.
Figure 8.28: Monte Carlo Simulation Results for the X-Axis Position with Five Satellites
and ?2=50 m2/s2
197
Figure 8.29: Monte Carlo Simulation Results for the X-Axis Velocity with Five Satellites
and ?2=50 m2/s2
198
8.7 Conclusion
The performance of three different vector tracking architectures is studied in this chap-
ter. The differences in the architectures are in how the Kalman filters are designed in each
of them. One algorithm uses a single, central filter to process the received satellite signals
and estimate the receiver?s navigation states. The other two algorithms use a federated
filtering architecture. The two federated architectures use a master filter to estimate the
receiver?s navigation states and a series of residual filters to process the received GPS sig-
nals. The distinction between the two federated architectures is in the design of the residual
filters. One algorithm allows the residual filters to share information between channels and
the other does not. Otherwise, the residual filters are equivalent. The three algorithms are
used to study the effects of using a federated architecture on vector tracking?s performance.
Furthermore, the effect of using independently operating residual filters is also studied.
The covariance of the position, velocity, and clock state estimates from the three algo-
rithms are compared over a range of C/N0 ratios. The covariance analysis reveals that the
centralized filter and the federated filtering architecture with coupled channels exhibt the
same performance. The federated filtering architecture with uncoupled channels performs
worse by comparison. However, the disparity in the performance of the three algorithms
decreases as the C/N0 ratio decreases. At low C/N0 ratios, the three algorithms provide
essentially equivalent performance. Monte Carlo simulations of the algorithms are then
used to verify the covariance analysis.
This chapter focuses on stand-alone GPS vector tracking algorithms. The next chapter
takes the three vector tracking architectures and studies their performance when an IMU
199
is added. The same combination of covariance analysis and Monte Carlo simulation is used
to study the performance of the GPS/INS vector tracking algorithms.
200
Chapter 9
Analysis of Different Deep Integration Architectures
9.1 Introduction
This chapter examines the performance of several different Deeply Integrated (DI)
architectures. The performance of three DI architectures is investigated. The three DI
algorithms are differentiated by how the Kalman filter is implemented. One algorithm
uses a single central filter to process all IMU and GPS measurements. The other two DI
algorithms use a federated Kalman filter. The two federated filters are separated by how
the GPS measurements are processed. One uses vector tracking and the other uses scalar
tracking techniques.
The purpose of this chapter is to determine the difference in the performances of the
three algorithms. The only difference between the algorithms is in the design of the Kalman
filters. This allows the performance degradation caused by using federated filtering and
scalar tracking to be evaluated. Covariance analyses are performed for varying grades of
IMU?s and with varying satellite constellations. Monte Carlo simulations of the different
architectures are performed to verify the covariance analyses.
9.2 Deep Integration Architectures
In Chapter 1, several different deeply integrated architectures were discussed. The
majority of DI algorithms can be divided into two separate categories. The delineation
between the two categories is in the design of the Kalman filter. One group of algorithms
use a single filter to process all the GPS and IMU measurements. No intermediate tracking
201
loops or filtering is applied to the measurements prior to the central filter. In the other cat-
egory are algorithms that use some sort of federated filtering architecture. In the federated
architecture, multiple residual filters process the raw GPS measurements at high update
rates (e.g. 50 Hz). A large master filter is then updated at a much lower rate (e.g. 1 Hz).
The master filter uses the states of the residual filters as measurements and estimates the
position, velocity, and attitude states of the receiver.
Two major issues arise when using the federated architecture. The first issue is the
performance of the master filter in the federated architecture relative to that of the filter
in the centralized approach. The use of a federated architecture might entail a loss in
performance because the master filter does not use the raw measurements. Using the states
of the residual filters as measurements, and not the actual raw data, could possibly result
in a loss of information. Second, if the residual filters function independently then they are
effectively operating as scalar tracking loops. Recall from Chapter 6 that the pseudorange-
state formulation of vector tracking can be converted to scalar tracking by eliminating
the information sharing between channels. When the pseudorange-state filter is reduced
to scalar tracking, there is a loss in its performance. Therefore, when residual filters are
used in a DI architecture and they are not coupled together, there must be some loss in
performance of the overall algorithm. The extent of this loss in performance is studied in
this chapter.
Chapter 1 also includes a discussion about the difference in performance of tight cou-
pling and deep integration. When a federated DI architecture is used the residual filters
function essentially as scalar tracking loops. The distinction between federated deep inte-
gration and tight coupling with Doppler-aiding becomes subjective and unclear.
202
In this chapter, the previously mentioned issues are investigated by studying the per-
formance of three deeply integrated algorithms. The three DI algorithms are used to study
the loss in performance caused by going from a centralized architecture to a federated ar-
chitecture. One of the DI algorithm uses a single centralized filter while the other two use
a federated architecture. Furthermore, the loss in performance in the federated architec-
tures incurred by not sharing information between the residual filters is also investigated.
The two federated DI architectures are separated by how the residual filters operate. One
algorithm uses a residual filter design where information is shared between the different
channels of the receiver. The other algorithm uses a residual filter design where informa-
tion is not shared between channels. Other than the design of the residual filters, the two
federated DI algorithms are identical. The residual filter designs are based off the position
and pseudorange-state formulations of vector tracking described in Chapter 6.
Recall from Chapter 6 that the position and pseudorange-state formulations of vector
tracking are equivalent. However, the pseudorange-state filter can be reverted back to scalar
tracking by decoupling the channels (i.e. eliminating information sharing between channels).
The position-state filter and the decoupled pseudorange-state filter are used to isolate the
effects of information sharing between the channels. The performances of the algorithms
are compared by using covariance analysis. Varying grades of IMU?s and different satellite
constellations are also used. The results of the covariance analyses are then verified by
Monte Carlo simulations.
The rest of this chapter is organized as follows. The next section describes the different
deeply integrated algorithms in detail. Then, the covariance analysis and its results are
203
discussed in the subsequent section. Finally, the results of the Monte Carlo simulations are
presented and compared to the covariance analyses.
9.2.1 Deep Integration with Centralized Filter
As its name implies, the centralized DI filter uses a single central filter to perform all
the tasks of state estimation and signal tracking. Figure 9.1 shows a block diagram of the
centralized DI architecture. As shown in Figure 9.1, an integrate and dump time of 20 ms
is used by the filter. Consequently, pseudoranges and pseudorange-rates are predicted by
the central filter at 50 Hz. Pseudorange and pseudorange-rate residuals are supplied at the
end of each integrate and dump period. These residuals are used by the filter to correct its
state estimates. The updated states are then used to predict the next set of pseudoranges
and pseudorange-rates. Measurements from the IMU arrive at the filter at a rate of 100 Hz.
The states of the Extended Kalman filter (EKF) in the centralized architecture are
the receiver?s position, velocity, attitude, and clock states and the IMU biases. The Earth-
Centered Earth-Fixed (ECEF) coordinate frame is used to track the receiver?s position and
velocity. The state vector of the filter is shown in (9.1).
?
??
??
??
??
??
??
??
??
??
?
P3?1
V3?1
A3?1
Baccel3?1
Bgyro3?1
Bclk2?1
?
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
??
??
?
Position States
Velocity States
Attitude States
Accelerometer Bias States
Gyro Bias States
Clock Bias and Drift States
?
??
??
??
??
??
??
??
??
??
?
(9.1)
204
Figure 9.1: Centralized Deep Integration Filter
205
The stochastic errors in the IMU outputs are modeled as consisting of two terms. One
is a white, Gaussian noise error term and the other is a 1st-order Gauss-Markov process
used to model a slowly moving bias. The intensities of the two processes and the time
constant of the moving bias are determined by the grade of IMU in use. The details of how
the IMU noise sources are modeled are described in detail in Appendix E.
The state dynamics and measurement update of the filter are nonlinear. The dynam-
ics and measurement update equations of the filter are linearized about the current state
estimates of the filter. The true state vector x(k), the estimates of the filter ?x(k), and the
errors in the states of the filter ?x(k) at time k are related to each other through (9.2).
x(k) = ?x(k)+?x(k) (9.2)
In general, the states of the system at time k+1 are related to the state vector, IMU input
vector u(k), and IMU and clock noise terms w(k) at time k by a nonlinear function:
x(k+1) = f(x(k),u(k),w(k)) (9.3)
The details of the nonlinear functionf(x(k),u(k),w(k)) are given in Appendix E. The input
vector u(k) represents the uncorrupted measurements from the IMU and the noise vector
w(k) models the noise processes in the IMU and receiver clock. The state estimates of the
filter are propagated forward by using (9.4).
?x(k+1) = f(?x(k),u(k),0) (9.4)
206
The relationship between the errors in the filter?s estimates at time k, the filter?s estimates,
and noise terms are approximated by (9.5).
x(k+1) = f(?x(k)+?x(k),u(k),w(k)) (9.5)
x(k+1) ? f(?x(k),u(k),0) +A??x(k)+B?w(k)
where
A = ?f(?)?x
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
B = ?f(?)?w
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
The errors in the filter?s estimates at time (k+1) are given in (9.6).
?x(k+1) ? x(k+1)? ?x(k+1) (9.6)
?x(k+1) ? x(k+1)?f(?x(k),u(k),0)
Using the linearization in (9.5), the mean and covariance ofthe state errors are approximated
as shown in (9.7).
E{?x(k+1)} = 0N?1 (9.7)
E{?x(k+1)?xT(k+1)} ? AP(k)AT +BQ(k)BT
In (9.7),P(k) is the covariance matrix of the state errors at timekandQ(k) is the covariance
matrix of the process noise vector w(k). The relations in (9.7) assume that the errors ?x(k)
are zero mean.
207
The states of the filter are updated with the residuals from each channel. Two different
discriminator functions are used to process the correlator outputs and produce measure-
ments of the pseudorange and pseudorange-rate residuals. The relationship between the
states of the filter and the pseudorange and pseudorange-rate residuals is shown in (9.8).
y(k) = C?(x)+v (9.8)
where
C =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 01?9 1 0
0 ax,1 0 ay,1 0 az,1 01?9 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 01?9 1 0
0 ax,N 0 ay,N 0 az,N 01?9 0 1
?
??
??
??
??
??
??
??
?
In (9.8), the variables ax,N,ay,N,az,N are the components of the line-of-sight unit vector
from the receiver to the N-th satellite. The statistics for the measurement noise vector v
are shown in (9.9).
E{v} = 0N?1 (9.9)
E{vvT} = Rv
The matrixRv is a diagonal matrix because the noise in the different channels is uncorrelated
and the noise in the pseudorange and pseudorange-rate measurements are uncorrelated. The
individual entries in Rv are determined from the type of discriminators that are used and
the current C/N0 ratio.
208
9.2.2 Federated Filtering Architectures
The federated filtering architectures use a combination of a master filter and mul-
tiple smaller residual filters. The general architecture is based on the description given
in [Abbott and Lillo, 2003]. The states of the master filter are used to predict the re-
ceived pseudoranges and pseudorange-rates over a one second period. Pseudorange and
pseudorange-rate residuals are produced in each channel of the receiver every 20 ms. The
residual filters estimate the errors in the predictions of the master filter using the pseudo-
range and pseudorange-rate residuals. The estimates of the residual filters are fed back to
correct the errors in the master filter?s predictions. The states of the residual filter are then
used as measurements by the master filter at the end of the one second period. After being
used as measurements, the states of the residual filter are zeroed and the cycle is repeated.
Two different federated architectures are examined in this dissertation. The two algo-
rithms are separated by how the residual filters operate. The first uses a residual filter with
coupled channels. This means that information is shared between the different channels of
the receiver. The second architecture uses a residual filter without coupled channels. With-
out the channels being coupled, no information is shared between the different channels.
The pseudorange and position-state formulations of vector tracking from Chapter 6 are
used to design the residual filters. This is done to ensure that the only difference between
the two federated architectures is the information sharing among the residual filters. The
details of the federated architectures are given in the following sections.
209
9.2.3 Federated Deep Integration Filter with Coupled Channels
Figure 9.2 shows a block diagram of the federated architecture when using a coupled
channel residual filter. The master filter is updated at 1 Hz and its states are used to
predict the pseudoranges and pseudorange-rates between measurement epochs. Between
measurement epochs of the master filter, the residual filter processes the pseudorange and
pseudorange-rate residuals produced by the integrate and dump operations at 50 Hz. The
IMU measurements are produced at a rate of 100 Hz. The master filter processes the
IMU measurements at 100 Hz and uses its current best estimates of the IMU bias states
to correct the measurements. The master filter effectively dead-reckons between measure-
ment updates. The estimates of the residual filter (in accordance with the Line Of Sight
(LOS) geometry) are routed back to correct the master filter?s predicted pseudoranges and
pseudorange-rates. The feedback of the residual filter?s estimates is optional, since the
general filter architecture in Figure 9.2 can be operated without feedback. However, the
discriminators used to transform the correlator outputs into pseudorange and pseudorange-
rate residuals have a limited operating range. Therefore, the discriminators will produce
erroneous measurements if the true residuals extend beyond their operating range. The
operating point of the discriminators is maintained at approximately zero by feeding back
the states of the residual filter.
210
Figure 9.2: Federated Deep Integration Filter with Coupled Channels
211
The states of the residual filter used in the coupled channel architecture are shown in
(9.10).
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
x
?x
y
?y
z
?z
ct
c?t
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
Position Error, X-axis
Velocity Error, X-axis
Position Error, Y-axis
Velocity Error, Y-axis
Position Error, Z-axis
Velocity Error, Z-axis
Clock Bias Error
Clock Drift Error
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
(9.10)
The residual filter tracks errors in the master filter?s estimates of the receiver?s position,
velocity, and clock states. The IMU bias states and attitude states are not included in the
residual filter state vector. The position-state formulation of the vector tracking Kalman
filter is used due to the numerical issues that are encountered when using the pseudorange-
state formulation with coupled channels. The discrete time state dynamics of the filter are
given by the nonlinear function fR:
xR(k+1) = fR(xR(k),x?(k),u(k),w(k)) (9.11)
In (9.11), function fR is the relation between the current states of the residual filter
xR, the errors in the states of the master filter that are not included in the residual filter
x?, the uncorrupted IMU measurements u, and the noise terms w present in the IMU and
receiver clock. This function is very similar to that given in (9.3). The difference is that fR
212
only includes the propagation of the states included in the residual filter state vector (i.e.
the position, velocity, and clock states). The subscript R is used to distinguish the states
of the residual filter from the states of the master filter. The vector wk represents the noise
sources in the IMU measurements and receiver clock. The vector ?x?(k) represents errors
in the states of the master filter, but not those states included in the state vector of the
residual filter. The vector ?x?(k) includes the errors in the master filters estimates of the
receivers attitude and IMU biases. The statistics of the errors in the states of the filter are
propagated by linearizing the nonlinear equation in (9.11):
xR(k+1) = fR(xR(k),x?(k),u(k),w(k))
xR(k+1) ? fR(?xR(k),0,u(k),0)+AR ??xR(k) +GR ?x?(k) +BR ?w(k) (9.12)
where
AR = ?fR(?)?x
R
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
GR = ?fR(?)?x?
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
BR = ?fR(?)?w
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
The states of the residual filter are propagated forward in time using (9.13).
xR(k+1) = fR(xR(k),x?(k),u(k),w(k))
?xR(k+1) = fR(?xR(k),0,u(k),0) (9.13)
213
The errors in the states of the residual filter are defined in (9.14).
?xR(k+1) ? xR(k+1)? ?x?R(k+1) (9.14)
?xR(k+1) ? xR(k+1)?fR(?xR(k),0,u(k),0)
Using (9.12) and (9.14), the statistics of the residual filter?s estimates after the state
propagation are approximated by (9.15).
E{?xR(k+1)} ? 08?1 (9.15)
E{?xR(k+1)?xTR(k+1)} ? ARPR(k)ATR +GRE{?x?(k)?xTR(k)}ATR
+BRQ(k)BTR +ARE{?xR(k)?x?T(k)}GTR
+GRE{?x?(k)?x?T(k)}GTR
Equation (9.15) requires knowledge of the covariance between the residual filter?s state
errors ?xR and the state errors in the master filter filters estimates ?x?. These values are
maintained in the covariance matrix of the master filter and are used in the residual filter
propagation.
The relationship between the states of the residual filter and the pseudorange and
pseudorange-rate residuals supplied at time k is shown in (9.16).
?R(k) = CR(xR(k)? ?x?R(k)) +v(k) (9.16)
where
214
CR =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
The superscripts + and ? are used to denote the filter?s estimates before and after the
measurement update. The observation matrix CR for the residual filter is similar to the
observation matrix used by the centralized filter in the previous section. The state estimate
of the residual filter after the measurement update is given in (9.17).
?x+R(k) = ?x?R(k)+KR(k)(?R(k)) (9.17)
The pseudorange and pseudorange-rate residuals ?R generated by the discriminators are
directly multiplied by the Kalman gain KR. This is a consequence of the states of the
residual filter being fed back to control the code and carrier NCOs. If the estimates of
the residual filter were not fed back, the measurement update equation in (9.17) would be
changed to (9.18).
?x+R(k) = ?x?R(k)+KR(k)(?R(k)?CR?x?R(k)) (9.18)
The master filter in Figure 9.2 combines the IMU measurements and estimates of the
residual filter in order to estimate the navigation states of the receiver. As a consequence,
the master filter?s state vector is partitioned into two segments. The first segment contains
215
states that correspond to the receiver?s position, velocity, attitude, IMU biases, and clock
states. The second segment contains states that represent the errors in the residual filter?s
state estimates. Appendix D explains how the error states are derived. The full state vector
is shown in (9.19).
?
??
?
xM
?xR
?
??
? =
?
??
?
Master Filter?s Navigation States
Residual Filter State Errors
?
??
? (9.19)
where
xM =
?
??
??
??
??
??
??
??
??
??
?
Position States
Velocity States
Attitude States
Accelerometer Bias States
Gyro Bias States
Clock Bias and Drift States
?
??
??
??
??
??
??
??
??
??
?
?xR =
?
??
??
??
??
??
?
Residual Filter Error, State One
Residual Filter Error, State Two
...
Residual Filter Error, State Eight
?
??
??
??
??
??
?
The pseudoranges and pseudorange-rates are predicted based of the states correspond-
ing to the receiver?s position, velocity, clock bias, and clock drift. The extra states in the
master filter are appended to model the errors in the states of the residual filter. As shown
in (9.19), each state in the residual filter has a corresponding error state in the master filter.
216
The error states are defined in (9.20).
?x?R(k) = xR(k)? ?x?R(k)
?x+R(k) = xR(k)? ?x+R(k) (9.20)
The error states correspond to the difference between the true residuals and the residual
filter?s estimates. Two update equations are used for the error states. The reason for this
is that the residual filter is updated at the rate of the IMU. For this dissertation, a 100
Hz IMU measurement rate is used and a 50 Hz GPS measurement rate is used. One set
of update equations are used for when an IMU measurement and a GPS measurement
occur simultaneously. The other state update equations are used whenever only an IMU
measurement is received. The dynamics of the error states for the simultaneous GPS and
IMU measurements are shown in (9.21).
?xR(k+1) = ??x?xR(k)+?ww(k)+??x?(k?1)+?vv(k+1) (9.21)
where
??x = AR ?KR(k)CRAR
?w = BR ?KR(k)CRBR
?? = GR ?KRCRGR
?v = ?KR(k)
217
The state update equations for the error states when only an IMU measurement occurs are
shown in (9.22).
?xR(k+1) = ??x?xR(k)+?ww(k)+??x?(k?1) (9.22)
where
??x = AR
?w = BR
?? = GR
In (9.21), the matrix AR is the same as is given in (9.12). The noise terms w and v are
the same as shown in (9.5) and (9.12). The matrices KR and CR are the Kalman gain and
observation matrix of the residual state filter, respectively.
The master filter also uses two separate state update equations. The state dynamics
of the master filter for simultaneous GPS and IMU measurements are given in (9.23).
?
??
?
xM(k+1)
?xR(k+1)
?
??
? =
?
??
?
A 017?8
?1 ??x
?
??
?
?
??
?
xM(k)
?xR(k)
?
??
?+
?
??
?
B
?2
?
??
?w(k)+
?
??
?
017?2N
?v
?
??
?v(k+1)
where (9.23)
?1 = [08?6 ?? 08?2]
?2 = [?w(1 : 8,1 : 6) 08?6 ?w(1 : 8,7 : 8)]
218
The state update equations of the master filter for an IMU only measurement are given in
(9.24).
?
??
?
xM(k+1)
?xR(k+1)
?
??
? =
?
??
?
A 017?8
?1 AR
?
??
?
?
??
?
xM(k)
?xR(k)
?
??
?+
?
??
?
B
?2
?
??
?w(k) (9.24)
where
?1 = [08?6 GR 08?2]
?2 = [?w(1 : 8,1 : 6) 08?6 ?w(1 : 8,7 : 8)]
The states of the residual filter are used as measurements by the master filter. The
states of the residual filter are equal to the true residuals plus the errors in its estimates:
x+R(k) = x?M(k)? ?x??M (k)??xR(k) (9.25)
The asterisk symbol is used to denote only the position velocity and clock states of the
master filter.
In general, the residuals of the filter are related to the states of the filter and the true
states by:
?(k) = C(x(k)? ?x?(k))+v(k) (9.26)
Rearranging (9.25) into the form of (9.26) yields:
x+R(k) = x?M(k)? ?x??M (k)??xR(k)
?(k) = x+R(k)+?x?R(k)
219
?(k) = x?M(k)??xR(k)? ?x??M (k) +??x?R(k) (9.27)
The observation matrix for the master filter is therefore given by (9.28).
CM =
?
??
?
I6?6 06?11 ?I6?6 06?2
02?15 I2?2 02?6 ?I2?2
?
??
? (9.28)
After each measurement epoch of the master filter, the state vector of the residual filter
is reset to zeros. This is because the state estimates of the master filter are unbiased and
the residual filter is tracking the errors in the master filter?s states. As a consequence of
this, the errors in the master filter?s states after a measurement update are correlated with
the errors in the residual filter?s states. The covariance matrix of the master filter after a
measurement update is given in (9.29)
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(??x+R(k))T}
E{??x+R(k)(?x+M(k))T} E{??x+R(k)(??x+R(k))T}
?
??
? (9.29)
After the measurement update of the master filter and after the states of the residual
filter are reset to zero, the errors in the residual filter?s states are identical to the errors in
the states of the master filter. Consequently, the covariance matrix of the master filter is
therefore set equal to:
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(?x?+M (k))T}
E{?x?+M (k)(?x+M(k))T} E{?x?+M (k)(?x?+M (k))T}
?
??
? (9.30)
220
The covariance matrix of the residual filter is reinitialized to:
P+R (k) =
bracketleftbigg
E{?x+M(k)(?x+M(k))T}
bracketrightbigg
(9.31)
9.2.4 Federated Deep Integration Filter with Decoupled Channels
Figure 9.3 shows a block diagram of the federated Deeply Integrated architecture when
using a decoupled channel residual filter. The architectures shown in Figures 9.2 and 9.3
are very similar. The master filter is updated at 1 Hz and its states are used to predict
the pseudoranges and pseudorange-rates between measurement epochs. The residual filter
processes the pseudorange and pseudorange-rate residuals produced by the integrate and
dump operations at 50 Hz and its estimates are routed back to correct the master filter?s
predictions. The main difference between Figures 9.2 and 9.3 is the design of the residual
filter. The channels of the residual filter in Figure 9.3 are not coupled together. The
pseudorange-state formulation of vector tracking is used to decouple the receiver channels,
as described in Chapter 6. Since the residual filter tracks the pseudorange and pseudorange-
rate errors, its estimates can be fed directly back to correct the master filter?s predictions.
The states of the residual filter are used as measurements by the master filter at 1 Hz. The
residual filter states are then reset and the cycle is repeated.
221
Figure 9.3: Federated Deep Integration Filter with Decoupled Channels
222
The states of the residual filter are shown in (9.32).
?
??
??
??
??
??
??
??
??
??
??
??
?
??1
???1
??2
???2
...
??N
???N
?
??
??
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
??
??
??
??
?
Pseudorange Error, Channel One
Pseudorange-rate Error, Channel One
Pseudorange Error, Channel Two
Pseudorange-rate Error, Channel Two
...
Pseudorange Error, Channel N
Pseudorange-rate Error, Channel N
?
??
??
??
??
??
??
??
??
??
??
??
?
(9.32)
The residual filter tracks errors in the master filter?s predictions of the pseudoranges and
pseudorange-rates. The pseudorange-state formulation of the vector tracking Kalman filter
is used so that the channels can be decoupled. The pseudorange-state VDFLL does not
exhibit numerical problems if the channels of the filter are decoupled. The state dynamics
of the filter are given by the nonlinear function f?R:
xR(k+1) = f?R(xR(k),x?(k),u(k),w(k)) (9.33)
In (9.33), function f?R is the relation between the current states of the residual filter
xR, the errors in the states of the master filter that are not included in the residual filter
x?, the uncorrupted IMU measurements u, and the noise terms w present in the IMU and
receiver clock. The superscript ? is used to delineate it from the function fR used in the
position-state residual filter. The subscriptRis used to distinguish the states of the residual
filter from the states of the master filter. The vector wk represents the noise sources in the
IMU measurements and receiver clock. The vector ?x?(k) represents errors in the states of
223
the master filter, but not those states included in the state vector of the residual filter. The
vector ?x?(k) includes the errors in the master filters estimates of the receivers attitude and
IMU biases. The statistics of the residual filter?s state vector are propagated forward by
linearizing (9.33):
xR(k+1) = f?R(xR(k),x?(k),u(k),w(k))
xR(k+1) ? f?R(?xR(k),0,u(k),0)+A?R ??xR(k) +HGR ?x?(k) +HBR ?w(k)
where (9.34)
H =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
A?R = ?f
?
R(?)
?xR
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
GR = ?fR(?)?x?
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
BR = ?fR(?)?w
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
The states of the residual filter are propagated forward in time using (9.35).
xR(k+1) = f?R(xR(k),x?(k),u(k),w(k))
?x?R(k+1) = f?R(?xR(k),0,u(k),0) (9.35)
224
The covariance of the errors in the estimates of the residual filter are propagated using the
approximation in (9.34).
The errors in the states of the residual filter are defined in (9.36).
?xR(k+1) ? xR(k+1)? ?xR(k+1) (9.36)
?xR(k+1) ? xR(k+1)?f?R(?xR(k),0,u(k),0)
Using (9.34) and (9.36), the covariance of the residual filter?s estimates after the state
propagation are approximated by (9.37).
E{?xR(k+1)} ? 02N?1 (9.37)
E{?xR(k+1)?xTR(k+1)} ? A?RPR(k)A?TR +HGRE{?x?(k)?xTR(k)}A?TR
+HBRQ(k)BTRHT +A?RE{?xR(k)?x?T(k)}GTRHT
+HGRE{?x?(k)?x?T(k)}GTRHT
Equation (9.37) requires taking the covariance between the residual filter?s state errors ?xR
and the state errors in the master filter filters estimates ?x?. These values are maintained
in the covariance matrix of the master filter and are extracted from there.
The relationship between the states of the residual filter and the pseudorange and
pseudorange-rate residuals supplied at time k is shown in (9.38).
?R(k) = xR(k)? ?x?R(k)+v(k) (9.38)
225
Again, the ? and + superscripts are used to represent the state vector before and after a
measurement update, respectively.
The state estimate of the residual filter after the measurement update is given in (9.39).
?x+R(k) = ?x?R(k)+KR(k)(?R(k)) (9.39)
The pseudorange and pseudorange-rate residuals ?R generated by the discriminators is di-
rectly multiplied by the Kalman gainKR. This is a consequence of the states of the residual
filter being fed back to control the code and carrier NCOs. If the estimates of the residual
filter were not fed back, the measurement update equation in (9.39) would be changed to
(9.40).
?x+R(k) = ?x?R(k)+KR(k)(?R(k)? ?x?R(k)) (9.40)
The master filter in Figure 9.3 combines the IMU measurements and estimates of the
residual filter in order to estimate the navigation states of the receiver. Consequently, the
master filter?s state vector is partitioned into two segments. The first segment contains
states that correspond to the receiver?s position, velocity, attitude, IMU biases, and clock
states. The second segment contains states that represent the errors in the residual filter?s
state estimates. The full state vector is shown in (9.41).
?
??
?
xM
?xR
?
??
? =
?
??
?
Master Filter?s Navigation States
Residual Filter State Errors
?
??
? (9.41)
where
226
xM =
?
??
??
??
??
??
??
??
??
??
?
Position States
Velocity States
Attitude States
Accelerometer Bias States
Gyro Bias States
Clock Bias and Drift States
?
??
??
??
??
??
??
??
??
??
?
?xR =
?
??
??
??
??
??
??
??
?
Residual Filter Pseudorange Error, State One
Residual Filter Pseudorange-rate Error, State One
...
Residual Filter Pseudorange Error, State N
Residual Filter Pseudorange-rate Error, State N
?
??
??
??
??
??
??
??
?
The pseudoranges and pseudorange-rates are predicted based of the states correspond-
ing to the receiver?s position, velocity, clock bias, and clock drift. The extra states in the
master filter are appended to model the errors in the states of the residual filter. As shown
in (9.41), each state in the residual filter has a corresponding error state in the master filter.
The error states are defined in (9.42).
?x?R(k) = xR(k)? ?x?R(k)
?x+R(k) = xR(k)? ?x+R(k) (9.42)
The error states correspond to the difference between the true pseudorange residuals and the
residual filter?s estimates. Two update equations are used for the error states. The reason
for this is that the residual filter is updated at the rate of the IMU. For this dissertation,
227
a 100 Hz IMU measurement rate is used and a 50 Hz GPS measurement rate is used. One
set of update equations are used for when an IMU measurement and a GPS measurement
occur simultaneously. The other state update equations are used whenever only an IMU
measurement is received. The dynamics of the error states for the simultaneous GPS and
IMU measurements are shown in (9.43).
?xR(k+1) = ??x?xR(k)+?ww(k)+??x?(k?1)+?vv(k+1) (9.43)
where
??x = A?R ?KR(k)A?R
?w = HBR ?KR(k)HBR
?? = HGR ?KRHGR
?v = ?KR(k)
The state update equations for the error states when only an IMU measurement occurs are
shown in (9.44).
?xR(k+1) = ??x?xR(k)+?ww(k)+??x?(k?1) (9.44)
where
??x = A?R
?w = HBR
?? = HGR
228
?
??
?
xM(k+1)
?xR(k+1)
?
??
? =
?
??
?
A 017?2N
?1 ??x
?
??
?
?
??
?
xM(k)
?xR(k)
?
??
?+
?
??
?
B
?2
?
??
?w(k)+
?
??
?
017?2N
?v
?
??
?v(k+1)
where (9.45)
?1 = [02N?6 ?? 02N?2]
?2 = [?w(1 : 2N,1 : 6) 02N?6 ?w(1 : 2N,7 : 8)]
The state update equations of the master filter for an IMU only measurement are given in
(9.46).
?
??
?
xM(k+1)
?xR(k+1)
?
??
? =
?
??
?
A 017?2N
?1 AR
?
??
?
?
??
?
xM(k)
?xR(k)
?
??
?+
?
??
?
B
?2
?
??
?w(k) (9.46)
where
?1 = [02N?6 HGR 02N?2]
?2 = [?w(1 : 2N,1 : 6) 02N?6 ?w(1 : 2N,7 : 8)]
The states of the residual filter are used as measurements by the master filter. The
observation matrix for the master filter is given by (9.47).
CM = [H(1 : 2N,1 : 6) 02N?9 H(1 : 2N,7 : 8) ?I2N?2N] (9.47)
The state vector of the residual filter is reset to zeros after each measurement epoch of
the master filter. This is because the state estimates of the master filter are unbiased and
the residual filter is tracking the errors in the master filter?s states. As a consequence of
229
this, the errors in the master filter?s states after a measurement update are correlated with
the errors in the residual filter?s states. The covariance matrix of the master filter after a
measurement update is given in (9.48)
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(??x+R(k))T}
E{??x+R(k)(?x+M(k))T} E{??x+R(k)(??x+R(k))T}
?
??
? (9.48)
After the measurement update of the master filter and after the states of the residual
filter are reset to zeros, the errors in the residual filter?s states are related to the errors in
the states of the master filter by:
??x+R(k) = H??x+M(k) (9.49)
Consequently, the covariance matrix of the master filter is therefore set equal to:
P+(k) =
?
??
?
E{?x+M(k)(?x+M(k))T} E{?x+M(k)(?x+M(k))T}?H?T
H? ?E{?x+M(k)(?x+M(k))T} H? ?E{?x+M(k)(?x+M(k))T}?H?T
?
??
? (9.50)
where (9.51)
H? = [H(1 : 2N,1 : 6) 02N?9 H(1 : 2N,7 : 8)] (9.52)
Similarly, after the measurement update the covariance matrix of the residual filter is reini-
tialized to:
P+R (k) = H? ?E{?x+M(k)(?x+M(k))T}?H?T (9.53)
230
9.3 Covariance Analysis of Deeply Integrated Architectures
In this section, a covariance analysis of the three deeply integrated algorithms is per-
formed using several different satellite constellations and IMU grades. The purpose of the
covariance analysis is to determine the performance of the algorithms relative to each other.
The loss in DI?s performance caused by using a federated architecture and by using scalar
residual filters is determined by comparing the three DI algorithms.
Noise specifications corresponding to two IMU grades are used in the covariance anal-
ysis. The noise specifications are for a tactical grade IMU and an automotive grade IMU.
Table 9.1 contains the various values used for the IMU noise processes [Flenniken, IV, 2005].
Appendix E contains an explanation of how the different noise processes are modeled. A
default IMU update time of 100 Hz is used in the covariance analysis.
Table 9.1: IMU Noise Parameters
Parameter Random Walk Bias Time Constant Bias Variation
Units ?/sec/?Hz second ?/hour
Tactical Grade
Gyro .0017 100 .35
Automotive Grade
Gyro .05 300 180
Parameter Random Walk Bias Time Constant Bias Variation
Units g/?Hz second g
Tactical Grade
Accelerometer .0005 60 50?10?5
Automotive Grade
Accelerometer .001 100 1.2?10?3
The measurement noise statistics are defined by the type of discriminators that are
used and the C/N0 ratio. A pseudorange and pseudorange-rate discriminator are used to
transform the correlator outputs into usable measurements for the filters. The pseudorange
231
discriminator uses the correlator outputs accumulated over the entire 20 ms integrate and
dump interval [Crane, 2007]:
YR(k) = IE(k)2 +QE(k)2 ?IL(k)2 ?QL(k)2 (9.54)
YR(k) = A(k)2
parenleftBig2??e(k)
?
parenrightBig
+vR(k)
?e(k) = Pseudorange error (meters)
? = PRN chip length, 293.3 meters for C/A code
A(k) = Signal amplitude
vR(k) = Noise
The mean and mean squared value of the random variable vR are:
E{vR} = 0 (9.55)
E{v2R} = ?
2
2(TC/No)2 +
?2
TC/No
parenleftBigg
?2e
?2 +
1
4
parenrightBigg
(meters2)
The pseudorange-rate discriminator uses correlator outputs from two adjacent 10 ms inte-
grate and dump operations to generate pseudorange-rate residuals ??err(k) [Crane, 2007]:
YRR(k) = IP2(k)QP1(k)?IP1(k)QP2(k) (9.56)
YRR(k) ? ?AF(k)2R2(?e(k))?ferr(k)Tc4f
L1
+vRR
?e(k) = Pseudorange error error (meters)
??err(k) = Pseudorange-rate error (m/s)
vRR = Noise
232
The mean and mean squared value of vRR are:
E{vRR} = 0 (9.57)
E{v2RR}? =
parenleftBigg
2
(TC/No)2 +
2R2(?e(k))
TC/No
parenrightBiggparenleftBigg
c
?TfL1
parenrightBigg2
(m/s)2
? = assuming |?e(k)| ? ?2
In (9.55) and (9.57) the value of T is the predetection integration interval used to
generated the correlator outputs in (9.54), which is 20 ms in this work. An early-to-late
correlator spacing of one chip is assumed. The noise terms in the discriminator outputs in
(9.55) and (9.57) are uncorrelated with each other [Crane, 2007].
The values for the clock phase and frequency noise are based on rule of thumb num-
bers for a temperature compensated crystal oscillator (TCXO). The power spectral density
coefficients used for the oscillator are [Brown and Hwang, 1996]:
h0 = 2?10?19
h?1 = 7?10?21 (9.58)
h?2 = 2?10?20
Two satellite constellations are used for the covariance analyses. One contains eleven
satellites and the other contains five satellites. Table 9.3 summarizes the statistical charac-
teristics of the eleven and five satellite geometries.
A dynamic flight profile is used for the covariance analyses. The flight profile starts
at the coordinates (6378.2, 0, 0) km in the ECEF coordinate frame. The ECEF x-axis
233
Table 9.2: Dilution of Precision Values for Different Satellite Configurations
Number of Satellites PDOP HDOP VDOP
Eleven 1.4141 0.7527 1.1971
Five 2.3602 1.1300 2.0721
coordinate of the user remains essentially constant throughout the flight. Significant dy-
namics only occur in the ECEF y-axis and z-axis. Figure 9.4 shows the y-axis and z-axis
coordinates during the flight profile. The flight profile includes three coordinated turns.
The first is a 2 G turn, followed by a 4 G turn. The last maneuver is an 8 G coordinated
turn.
Figure 9.4: Receiver Trajectory During Flight Profile
The process and measurement noise data are specified by the IMU grade andC/N0 ratio
at which the simulations are being performed. Uncorrupted IMU data is used to propagate
234
the states and covariance matrices of the extended Kalman filters used by the algorithms.
The covariance matrices at the end of the flight profile are used for the comparison.
The architecture of the centralized and federated architectures makes performing a valid
comparison complicated. The reason for this is due to the different update rates used by
the centralized filter and the master filters in the two federated algorithms. The centralized
filter is updated with pseudorange and pseudorange-rate residuals at 50 Hz, while the master
filters in the federated architectures receive measurements at 1 Hz. Between measurement
updates, the covariance matrix of the federated filters increases because no measurements
are available. This is an unavoidable consequence of using the federated architectures. The
state covariance matrix only decreases after the 1 Hz measurement update. In the interest
of making a valid comparison, the state covariance matrices of the different algorithms are
compared immediately after the measurement updates of the master filters.
9.3.1 Tactical Grade IMU, Temperature Controlled Oscillator, and Eleven
Satellite Scenario
Figure 9.5 shows the results ofthe covarianceanalysisforthe ECEF x-axispositionstate
when using the eleven satellite constellation and a tactical grade IMU. The variance of the
state is plotted logarithmically versusC/N0 ratio. The log of the variance is plotted to make
interpreting the analysis results easier. The performance of the centralized DI algorithm and
the federated DI algorithm with coupled channels are identical. The federated DI algorithm
with uncoupled channels performs more poorly than the other two DI algorithms. However,
it is important to recognize that the performance of all three algorithms converge together
as the C/N0 ratio declines.
235
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?15
?10
?5
0
5
10
15
20
25
30
C/N0 (dB-Hz)
10
log
10
?2 x
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.5: Covariance Analysis Results for the X-Axis Position State with Eleven Satellites
and Tactical Grade IMU
The difference in performance of the algorithms can be expressed in dB by examining
the horizontal difference between the curves. The horizontal difference is defined here as
the effective gain in C/N0 ratio. For example, at 45 dB-Hz the effective gain in C/N0 ratio
for the centralized DI algorithm over the decoupled channel DI algorithm is about .5 dB .
Figure 9.6 shows the variance of the x-axis velocity state versus C/N0 ratio for the
eleven satellite and tactical grade IMU scenario. As in Figure 9.5, the performance of all
the architectures that employ vector tracking are identical. Also, the performance of the DI
architecture with uncoupled channels is noticeably poorer by comparison. The difference in
the performance of the algorithms is more distinct in the case of the velocity state. However,
it is again important to note that the performance of all three architectures converge as the
C/N0 ratio decreases.
236
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?35
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?x
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.6: Covariance Analysis Results for the X-Axis Velocity State with Eleven Satellites
and Tactical Grade IMU
The covariance analysis results for the clock bias and drift states for the eleven satellite
and tactical grade IMU are shown in Figures 9.7 and 9.8, respectively. The performance of
the algorithms for the clock states is similar to that previously shown for the position and
velocity states. The difference in the performances of the algorithms is most noticeable in
the clock drift state.
237
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?15
?10
?5
0
5
10
15
20
25
C/N0 (dB-Hz)
10
log
10
?2 c
tu
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.7: Covariance Analysis Results for the Clock Bias State with Eleven Satellites and
Tactical Grade IMU
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?30
?25
?20
?15
?10
?5
C/N0 (dB-Hz)
10
log
10
?2
?ctu
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.8: Covariance Analysis Results for the Clock Drift State with Eleven Satellites and
Tactical Grade IMU
238
Figures 9.5 through 9.8 demonstrate that the performance of the three DI architectures
converge together at low C/N0 ratios. Furthermore, the DI algorithms that use vector
tracking to process the GPS signals exhibt the same performance. The degree to which
they outperform the decoupled channel DI architecture is itself a function of the C/N0
ratio. In Figure 9.5, the coupled channel algorithms display an improvement in effective
C/N0 ratio of 4 to 5 dB at 45 dB-Hz. At 21 dB-Hz, the improvement in effectiveC/N0 ratio
is essentially zero. These results raise the question of why the coupled channel architectures
outperform the decoupled channel architectures only at high C/N0 ratios. To answer this
question, it is useful to recall the results presented in Chapter 8.
The results presented in Figures 9.5 through 9.8 mirror the results presented in Chapter
8 for the different vector tracking architectures. Recall that the performance of two coupled
channel algorithms and one decoupled channel algorithm are compared over a range ofC/N0
ratios. The coupled channel architectures display a significant improvement in performance
at high C/N0 ratios. However, at low C/N0 ratios, the three algorithms perform identically.
The increase in performance offered by the coupled channel architectures is a function of
C/N0 ratio, just as is shown in Figures 9.5 through 9.8.
A consistent improvement in effective C/N0 ratio across all C/N0 ratios is shown to
be possible in Chapter 8. This is accomplished by scaling the process noise with the C/N0
ratio. As the C/N0 ratio declines, the process noise is scaled upward. The measurement
noise is scaled automatically by the C/N0 ratio (as shown in (9.55) and (9.57)). Scaling
both noise sources yields a constant effective gain in C/N0 ratio.
For the DI algorithms, the process noise is fixed by the IMU grade and oscillator type.
Scaling the process noise with the C/N0 therefore lacks verisimilitude. However, instead of
239
attempting to produce a scenario where the effective gain in C/N0 ratio is constant, it is
useful to consider a situation where the performance of all the algorithms is identical.
As shown in Figures 9.5 through 9.8, the two coupled channel DI algorithms perform
better than the decoupled channel DI algorithm. However, the algorithms can be manip-
ulated so that all three DI algorithms perform virtually identical. This is accomplished
by changing the update rate of the master filter in the federated architectures. For the
covariance analysis results presented in Figures 9.5 through 9.8, an update rate of 1 Hz is
used for the federated architectures. When the update rate is increased to 25 Hz, the per-
formance of the decoupled DI algorithm approaches the performance of the coupled channel
DI algorithms. Figures 9.9 and 9.10 show a covariance analysis of the x-axis position and
velocity states at 45 dB-Hz with the tactical grade IMU and eleven satellites. Towards the
end of the flight profile in the covariance analysis, the update rate of the federated filter
is changed from 1 to 25 Hz. After the update rate is altered, the variances of the position
and velocity states for the decoupled channel filter nearly converge to the variances for the
coupled state filters.
The behavior of the decoupled DI algorithm in response to the change in update rates
shown in Figures 9.9 and 9.10 is explained by examining the covariance of the predicted
pseudoranges and pseudorange-rates of the residual filters. The covariances of the estimated
pseudoranges and pseudorange-rates of the residual filters are important because they are
effectively used as measurements by the master filters. The covariance matrix for the
decoupled channel residual filter represents the estimated pseudoranges and pseudorange-
rates. This is because the states of the residual filter are the pseudoranges and pseudorange-
rates themselves. The observation matrix of the coupled channel residual filter is used to
240
740 760 780 800 820 8400.01
0.015
0.02
0.025
0.03
0.035
0.04
Time (sec)
X?Axis Position Variance (m
2 )
Update Rate = 1 Hz Update Rate = 25 Hz
Decoupled
Coupled
Figure 9.9: X-Axis Position Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 45 dB-Hz
750 760 770 780 790 800 810 820 830 840 8500
0.5
1
1.5
2
2.5
3
3.5
4
4.5
x 10?4
Time (sec)
X?Axis Velocity Variance (m
2 /s
2 )
Update Rate = 1 Hz Update Rate = 25 Hz
Decoupled
Coupled
Figure 9.10: X-Axis Velocity Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 45 dB-Hz
241
transform the covariance of the filter?s states (i.e. position, velocity, and clock states) into
the covariance of the predicted pseudoranges and pseudorange-rates. The covariances of
the pseudorange and pseudorange-rate predictions for the two residual filters are shown in
Figures 9.11 and 9.12 for the tactical grade IMU and eleven satellite scenario, respectively.
720 740 760 780 800 820 8400.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0.05
0.055
Time (sec)
Pseudorange Variance ? Channel One (m
2 )
Update Rate = 1 Hz Update Rate = 25 Hz
Decoupled
Coupled
Figure 9.11: Channel One Pseudorange Variance Before and After Update Rate Change
with Eleven Satellites and Tactical Grade IMU at 45 dB-Hz
As shown in Figures 9.11 and 9.12, the covariances of the pseudorange and pseudorange-
rate predictions for the coupled state residual filter don?t change significantly during, or in
between, updates of the master filter. In contrast, the covariances of the pseudorange
and pseudorange-rates predictions for the decoupled state residual filter increase between
updates of the master filter. The covariances decrease after a measurement update of the
master filter, then increase until another master filter measurement update occurs. For
the decoupled federated DI algorithm, the measurement update of the master filter uses
242
750 760 770 780 790 800 810 820 830 840 8500
1
2
3
4
5
6x 10
?3
Time (sec)
Pseudorange?Rate Variance ? Channel One (m
2 /s
2 )
Update Rate = 1 Hz Update Rate = 25 Hz
Decoupled
Coupled
Figure 9.12: Channel One Pseudorange-Rate Variance Before and After Update Rate
Change with Eleven Satellites and Tactical Grade IMU at 45 dB-Hz
measurements from all the channels and effectively serves to correct the loss in optimality
due to the use of scalar tracking by the residual filter. After the measurement update, the
state vector and covariance matrix of the residual filters are reset. The residual filter state
vector is zeroed and the master filter?s covariance matrix is used to reinitialize the residual
filter?s covariance matrix. The covariances of the decoupled residual filter?s pseudorange and
pseudorange-rate estimates then diverge from their reset values. This loss in performance
is caused by the lack of information sharing between channels.
Figures 9.13 and 9.14 show the covariances of the position and velocity states before
and after an update rate change for the tactical grade IMU and eleven satellite scenario at
20 dB-Hz. The same type of behavior observed at 45 dB-Hz is seen at 20 dB-Hz. However,
243
the difference in the covariance of the position and velocity states after the update rate
change at 20 dB-Hz is less pronounced then it is at 45 dB-Hz.
740 760 780 800 820 84015
15.05
15.1
15.15
15.2
15.25
15.3
15.35
15.4
15.45
15.5
Time (sec)
X?Axis Position Variance (m
2 )
Update Rate = 1 Hz Update Rate = 25 Hz
Decoupled
Coupled
Figure 9.13: X-Axis Position Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 20 dB-Hz
Figures 9.11 and 9.12 demonstrate why the federated DI algorithm with decoupled
channels performs more poorly than the DI algorithms using vector tracking. In these
figures, the variance of the pseudoranges and pseudorange-rates between updates of the
master filter for the coupled and decoupled channel DI architectures are compared. Recall
that the residual filters in both federated DI architectures are reset after a measurement
update of the master filter. Their state vectors are zeroed and their covariance matrices are
reinitialized by using the master filter?s covariance matrix. Figures 9.11 and 9.12 show that
the pseudorange and pseudorange-rate variances for the decoupled channel DI filter increase
between master filter measurement updates. At a measurement update of the master filter,
244
750 760 770 780 790 800 810 820 830 840 8500.013
0.0132
0.0134
0.0136
0.0138
0.014
0.0142
0.0144
0.0146
0.0148
0.015
Time (sec)
X?Axis Velocity Variance (m
2 /s
2 )
Update Rate = 1 Hz Update Rate = 25 Hz
Decoupled
Coupled
Figure 9.14: X-Axis Velocity Variance Before and After Update Rate Change with Eleven
Satellites and Tactical Grade IMU at 20 dB-Hz
information is collected from all the channels and used to estimate the navigation states
of the system. The residual filters are then reset using the collective information from all
channels by the master filter.
It is interesting to consider the performance of the federated algorithms when the
residual filters are not reset after a master filter measurement update. In this scenario, the
estimates of the residual filters are not zeroed after being used by the master filter. Likewise,
their covariance matrices are not reset using the master filter?s covariance matrix. When
used in this manner, the residual filters would have to track the receiver?s actual navigation
states, not just the errors in the master filter?s estimates of the navigation states. The
coupled channel residual filter would have to track the receiver?s actual position, velocity,
and clock states. Similarly, the decoupled channel residual filters would need to track the
245
actual received pseudoranges and pseudorange-rates. When the residual filters are operated
in this manner, they will be referred to here as Tightly Coupled (TC) algorithms. The
federated architecture with coupled channels is referred to as tight coupling with vector
tracking. Similarly, the federated architecture with decoupled channels is referred to as
tight coupling with scalar tracking.
Figures 9.15 through 9.16 show the results of the covariance analysis for the x-axis
position and velocity states for the eleven satellite constellation and tactical grade IMU for
the two tightly coupled algorithms. The results for the three DI algorithms are also shown
for comparison.
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?15
?10
?5
0
5
10
15
20
25
30
C/N0 (dB-Hz)
10
log
10
?2 x
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Decoupled Channels)
Figure 9.15: Covariance Analysis Results for the X-Axis Position State with Eleven Satel-
lites and Tactical Grade IMU
246
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?35
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?x
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Decoupled Channels)
Figure 9.16: Covariance Analysis Results for the X-Axis VelocityState with Eleven Satellites
and Tactical Grade IMU
Figures 9.15 and 9.16 show that the tightly coupled algorithm with vector tracking
performs identical to the two coupled channel DI algorithms. This is not surprising when
considering Figures 9.11 and 9.12. The pseudorange and pseudorange-rate variances do not
increase between updates of the master filter for the federated DI algorithm with coupled
channels. Consequently, the algorithm performs the same whether its residual filter is reset
or not. In contrast, the variance of the pseudoranges and pseudorange-rates increase for the
decoupled channel DI filter between master filter updates. When its residual filter is not
reset, the pseudorange and pseudorange-rate variances are free to increase until they reach
steady-state values. Consequently, the tightly coupled algorithm with decoupled channels
performs worse than the decoupled channel DI algorithm. However, it is important to note
that the performance of all five algorithms still converge as the C/N0 ratio declines.
247
9.3.2 Automotive Grade IMU, Temperature Controlled Oscillator, and Five
Satellite Scenario
A covariance analysis of the different architectures is carried out with the five satellite
constellation and an automotive grade IMU. The covariance of the states of the filters are
examined at the end of the flight profile. The results of the covariance analysis for the
ECEF x-axis position and velocity states are shown in Figures 9.17 and 9.18, respectively.
Compared to Figures 9.5 and 9.6, the performance of the filters are all noticeably worse.
However, the performance of all the algorithms again converge as the C/N0 ratio declines.
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45?10
?5
0
5
10
15
20
25
30
35
C/N0 (dB-Hz)
10
log
10
?2 x
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.17: Covariance Analysis Results for the X-Axis Position State with Five Satellites
and Automotive Grade IMU
248
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?30
?25
?20
?15
?10
?5
C/N0 (dB-Hz)
10
log
10
?2 ?x
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.18: Covariance Analysis Results for the X-Axis Velocity State with Five Satellites
and Automotive Grade IMU
Figures 9.19 and 9.20 show the results of the covariance analysis for the clock bias
and clock drift states, respectively. As with the position and velocity states, the perfor-
mance of the algorithms is much poorer with the automotive grade IMU and five satellite
constellation. However, at low C/N0 ratios the algorithms all yield the same performance.
249
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45?15
?10
?5
0
5
10
15
20
25
C/N0 (dB-Hz)
10
log
10
?2 c
tu
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.19: Covariance Analysis Results for the Clock Bias State with Five Satellites and
Automotive Grade IMU
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?25
?20
?15
?10
?5
C/N0 (dB-Hz)
10
log
10
?2
?ctu
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
Figure 9.20: Covariance Analysis Results for the Clock Drift State with Five Satellites and
Automotive Grade IMU
250
9.4 Monte Carlo Test Results of Deep Integration Architectures
In this section Monte Carlo simulations are used to verify the covariance analysis in
the preceding section. Monte Carlo simulations are performed for the eleven satellite and
tactical grade IMU scenario and the five satellite and automotive grade IMU case. The
flight profile shown in Figure 9.4 is used to create uncorrupted IMU data. The stochastic
errors are then added to the uncorrupted data using the noise statistics for the different
IMU grades shown in Table 9.3.
Starting at 45 dB-Hz, a hundred Monte Carlo simulations are performed at decrements
of 2 dB-Hz until the DI algorithms begin to loose lock. A pseudorange error of over 150
meters in any channel is used as the criteria for declaring loss of lock. The one hundred
sets of IMU data used by the algorithms at each C/N0 ratio are identical. The stochastic
errors present in the IMU data for trial one are the same at all C/N0 ratios. However, the
stochastic errors in the IMU data vary from one Monte Carlo run to another. The same
IMU data is used by all three DI algorithms. Furthermore, all three algorithm simulations
use the same seed in the random number generator for a given trail number. All three
algorithms are initialized with the correct state vector for the simulation. The covariance
matrices of all three algorithms are initialized using results obtained from the covariance
analysis.
The received GPS signals were simulated at the correlator output level. The various
correlator outputs are modeled as shown in (9.59) [Sayre, 2003].
IE(k) = AR(?+?)D(k)cos(?ferrT +?err)+?IE(k)
IP(k) = AR(?)D(k)cos(?ferrT +?err)+?IP(k)
251
IL(k) = AR(???)D(k)cos(?ferrT +?err)+?IL(k) (9.59)
QE(k) = AR(?+?)D(k)sin(?ferrT +?err)+?QE(k)
QP(k) = AR(?)D(k)sin(?ferrT +?err)+?QP(k)
QL(k) = AR(???)D(k)sin(?ferrT +?err)+?QL(k)
A =
radicalBigg
2CTPDI
No ?
sin(?ferrT)
(?ferrT)
? = N(0,1)
In (9.59), the correlator outputs have been normalized so that the noise is unit variance.
The variablesferr and?err are the frequency error (Hertz) and phase error (radians) between
the received and locally generated carrier signals, respectively. The sinc (sin(x)/x) term in
(9.59) is an effective loss in signal amplitude due to the frequency error, ferr. The term
? is the phase error between the received and locally generated PRN codes, measured in
fractions of a chip. The functionR(?) is the auto-correlation function of the PRN sequences.
The symbol ? is the correlator spacing of the Early and Late PRN replicas, expressed in
fractions of a chip. A correlator spacing of one half chip is used for all the Monte Carlo
simulation results. The autocorrelation of the Gold code as a function of the code phase
error is:
R(?) =
??
??
???
1?|?| when ?< 1 chip
0 when ?> 1 chip.
The noise terms in (9.59) are all zero-mean and unit variance. The in-phase and
quadrature noise terms are uncorrelated. Using a half chip correlator spacing results in the
early and late noise terms being uncorrelated. The early and prompt noise terms, and the
prompt and late noise terms, all have a correlation coefficient of 0.5 .
252
The pseudorange and pseudorange-rate discriminator functions in (9.55) and (9.57)
are used in the simulations. An integrate and dump time of 20 milliseconds is used for the
correlator outputs in (9.55). Two consecutive integrate and dump times of 10 ms are used
for the correlator outputs in (9.57). The DI algorithms estimated the signal amplitudes and
noise power using the techniques given in Appendix B.
A temperature compensated crystal oscillator is used for all the simulations. The
uncorrupted clock data is generated using an initial clock bias of zero and clock drift of
177 m/s2. The initial clock drift value is chose based off the typical clock drift displayed
by the oscillator in the NordNav receiver that is used in Chapter 10. Stochastic errors are
added to the clock data by using the power spectral density coefficients shown in (9.58)
[Brown and Hwang, 1996].
9.4.1 Eleven Satellite and Tactical Grade IMU Monte Carlo Simulation Re-
sults
The Monte Carlo simulation results for the x-axis position and velocity states are
shown in Figure 9.21 and 9.22 for the eleven satellite and tactical grade IMU scenario. The
empirically calculated position and velocity error variances for all three DI algorithms are
plotted versusC/N0 ratio. The errors are the difference in the true position and velocity and
the estimates of these quantities made by the master filters after a measurement update.
Since a measurement update rate of 1 Hz is used, the errors are computed at 1 Hz. The
predictions from the covariance analysis are also plotted for comparison. Overall the results
from the Monte Carlo simulations match the predictions from the covariance analysis quite
well.
253
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?15
?10
?5
0
5
10
15
20
25
C/N0 (dB-Hz)
10
log
10
?2 x
(d
B-
m2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.21: Monte Carlo Simulation Results for the X-Axis Position State with Eleven
Satellites and Tactical Grade IMU
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?35
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?x
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.22: Monte Carlo Simulation Results for the X-Axis Velocity State with Eleven
Satellites and Tactical Grade IMU
254
Figure 9.23 and 9.24 show the Monte Carlo simulation results for the clock bias and
clock drift states, respectively. The results for the clock bias state match the predictions of
the covariance analysis very closely. The results for the clock drift also match the covariance
analysis for the two federated filters. However, the performance of the centralized filter is
poorer than that predicted by the covariance analysis for the clock drift state. Additional
plots for the Monte Carlo simulation results are included in Appendix C for the eleven
satellite and tactical grade IMU scenario.
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?15
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 c
tu
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.23: Monte Carlo Simulation Results for the Clock Bias State with Eleven Satellites
and Tactical Grade IMU
255
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 c
?tu
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.24: Monte Carlo Simulation Results for the Clock Drift State with Eleven Satellites
and Tactical Grade IMU
9.4.2 Five Satellite and Automotive Grade IMU Monte Carlo Simulation Re-
sults
Figures 9.25 through 9.28 show the results of the Monte Carlo simulations for the
five satellite and automotive grade IMU scenario for the x-axis position and velocity states
and the clock bias and drift states. Overall the results from the Monte Carlo simulations
match the predictions from the covariance analysis. However, the clock drift estimates of
the centralized filter are again poorer than predicted. Additional plots for the Monte Carlo
simulation results are included in Appendix C.
256
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 x
(d
B-
m2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.25: Monte Carlo Simulation Results for the X-Axis Position State with Five Satel-
lites and Automotive Grade IMU
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?x
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.26: Monte Carlo Simulation Results for the X-Axis Velocity State with Five Satel-
lites and Automotive Grade IMU
257
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?10
?5
0
5
10
C/N0 (dB-Hz)
10
log
10
?2 c
tu
(d
B-
m2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.27: Monte Carlo Simulation Results for the Clock Bias State with Five Satellites
and Automotive Grade IMU
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45?28
?26
?24
?22
?20
?18
?16
?14
?12
?10
C/N0 (dB-Hz)
10
log
10
?2 c
?tu
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure 9.28: Monte Carlo Simulation Results for the Clock Drift State with Five Satellites
and Automotive Grade IMU
258
9.5 Conclusion
The performance of three deeply integrated GPS/INS algorithms are analyzed in this
chapter. The DI algorithms are differentiated by how the Kalman filter is implemented
in each of them. One architecture uses a single filter to simultaneously track the GPS
signals and estimate the navigation states of the receiver. The other two algorithms use a
federated filtering architecture that divides the tasks of the central filter. In both federated
architectures, a master filter is used to estimate the full navigation state vector and process
measurements from the IMU. The states of the master filter are used to predict the incoming
GPS signals. A series of smaller residual filters process the pseudorange and pseudorange-
rate residuals that are produced in each channel of the receiver. The residual filters act
to estimate the errors in the predictions made by the master filter. At regular intervals,
the estimates of the residual filters are used as measurements by the master filter. The
master filter in the federated architectures only uses the estimates of the residual filters as
measurements and not the raw GPS pseudorange and pseudorange-rate residuals.
The two federated filtering architectures use identical master filters. However, the
residual filters used by the algorithms differ. One of the federated architectures allows
information to be shared between the channels of the receiver (i.e. vector tracking). In con-
trast, the other federated algorithm does not allow information sharing among the channels
of the receiver. The residual filters are designed using the pseudorange-state and position-
state formulations of vector tracking.
The three DI algorithms are identical except for the different filter architectures. This
allows the effects of using a federated filtering architecture on DI?s performance to be
259
isolated. Furthermore, the effects of using a federated architecture with and without vector
tracking can also be studied.
Covariance analysis of the three architectures is used to compare their performance.
The performance of the algorithms is studied over a range ofC/N0 ratios. Two scenarios are
used in the covariance analysis. An eleven satellite, tactical grade IMU scenario and a five
satellite, automotive grade IMU scenario are considered. A TCXO grade oscillator is used
in both scenarios. The results of the covariance analysis in both situations show the same
characteristics in the performance of the three algorithms. The centralized architecture and
the federated architecture with vector tracking yield essentially identical performance. The
federated architecture without vector tracking performs poorer by comparison. However,
the difference in the performance of the algorithms decreases with decreasingC/N0 ratio. At
low C/N0 ratios, the difference in performance of the three algorithms is indistinguishable.
260
Chapter 10
Live Sky Test Results Using Vector Tracking
10.1 Introduction
This chapter verifies the ability of the vector tracking algorithms to function in adverse
environments. The vector tracking algorithms are tested using data collected from an
environment with dense foliage (having widely fluctuating signal levels) and from an urban
canyon type environment. The data for the vector tracking algorithms is collected and
stored using a software GPS receiver. Data is also collected from the same antenna with
a NovAtel ProPak-V3 receiver for comparison. The performance of the vector tracking
algorithms is then compared to that of the NovAtel receiver in the various scenarios.
10.2 Vector Tracking Test Results in Dense Foliage
The ability of the VDFLL algorithm to track weak GPS signals is demonstrated using
data collected from Auburn University?s Mini Baja racing course. The Mini Baja course is
a narrow race track through an area of dense foliage. It is located adjacent to the National
Center for Asphalt Testing (NCAT) in Opelika, AL. Figure 10.1 shows a bird?s eye view of
the Mini Baja course. The race course itself is outlined in red.
The GPS signals are attenuated by the foliage along the race course and their power
levels fluctuate wildly. The majority of receivers that have been used to navigate about the
course have experienced significant periods of GPS outages. The Mini Baja course presents
a challenging environment for GPS receivers and is chosen for this reason to test the vector
tracking algorithms.
261
Figure 10.1: Mini Baja Course at NCAT (from Google Earth)
The data for the VDFLL was collected using a NordNav receiver. The RF signals from
the satellites were downconverted, sampled, and saved by the NordNav RF front-end. The
NordNav front-end uses an Intermediate Frequency (IF) of 4.1304 MHz and a sampling
frequency of 16.3676 MHz. A two bit sample resolution was used in the IF collection. The
sampled data was post-processed using MATLAB. A NovAtel ProPak-V3 receiver was used
as a comparison to the VDFLL. Both receivers were mounted on an All Terrain Vehicle
(ATV) and driven around the Mini Baja course. Figure 10.2 shows the ATV and setup
used to collect the data. Both the receivers used the same NovAtel antenna, mounted to
the top of the ATV. The NovAtel and VDFLL data were collected on the same runs around
the Mini Baja course. The path taken by the ATV when collecting data for the different
trials is approximately the same.
262
Figure 10.2: ATV and Hardware Used to Collect Data
A third-order VDFLL (as described in Chapter 5.3) was used to process the recorded
IF data. The states of the filter are the receiver?s position, velocity, and acceleration in
the ECEF frame and the receiver?s clock bias and clock drift. The acceleration states are
modeled as being driven by separate white noise processes. A variance of 1 m2/s4 was
used as the variance of the processes. The C/No ratios of the GPS signals were estimated
using the techniques described in Appendix B. The VDFLL used the same pseudorange and
pseudorange-rate discriminators used for the analysis in Chapter 7. An integrate and dump
period of 20 milliseconds was used for the pseudorange discriminator and two consecutive 10
millisecond integrate and dump periods were used for the pseudorange-rate discriminator.
A full chip Early-to-Late correlator spacing is used by the VDFLL.
The first data set from the Mini Baja course was collected on Monday, October 20,
2008 at approximately noon, eastern time. At the time the data was collected there were ten
visible GPS satellites. Figure 10.3 shows the azimuth and elevation of the visible satellites.
263
Figure 10.3: Skyplot of Visible Satellites for the First Data Set (from NordNav Receiver)
The estimated C/No ratios by the VDFLL are shown in Figure 10.4. Examining Fig-
ures 10.3 and 10.4, the lowest C/No ratios belong to the satellites closest to the horizon.
Accordingly, the satellites with the weaker signals vary most throughout the race course.
Since they are closest to the horizon, they tend to pass through more foliage than the
satellites closer to zenith.
Figures 10.5 and 10.6 show the VDFLL?s estimates of the receiver?s velocity and ac-
celeration during the first data collection interval, respectively. The position estimates of
the VDFLL and NovAtel are shown in Figure 10.7. The position estimates have been con-
verted from the ECEF frame into a local East-North-Up (ENU) coordinate frame. The
East and North components are plotted to demonstrate the difference in coverage between
the VDFLL and NovAtel receivers. The ATV started the course at the ENU coordinates (0
m, 0 m) (at the far right side of the figure), traversed the course going counter-clockwise,
and then returned to roughly its starting position. Figures 10.8 and 10.9 show magnified
versions of the position results.
264
Figure 10.4: Estimated C/No Ratios for the First Data Set
Figure 10.5: Estimated Velocities from the VDFLL for the First Data Set
265
Figure 10.6: Estimated Accelerations from the VDFLL for the First Data Set
Figure 10.7: Position Estimates from the VDFLL and NovAtel for the First Data Set
266
Figure 10.8: Position Estimates from the VDFLL and NovAtel for the First Data Set
Figure 10.9: Position Estimates from the VDFLL and NovAtel for the First Data Set
267
ExaminingFigures10.7through 10.9, theVDFLLprovidescontinuous coveragethrough-
out the course and the NovAtel reports a receiver position during the majority of it. How-
ever, the NovAtel receiver reports multiple aberrant position solutions and the figures show
significant jumps in its reported trajectory. This is seen in Figure 10.9 at the start and end
of the course. At the start of the course, the reported position solutions lie essentially on
top of each other. Then, the NovAtel reported position jumps by about 20 meters to the
west of that given by the VDFLL. When the ATV enters the first turn at about (-60 m,
30 m), the NovAtel?s position estimate jumps back, so as to coincide with the VDFLL?s
estimated position. Toward the end of the course, from about (-300 m, -20 m) to (-50 m,
-80 m), the same type of phenomenon is observed. The reported positions differ by over 15
meters, except briefly when the NovAtel?s reported trajectory shifts south to more closely
coincide with the VDFLL?s estimated trajectory.
The second data set from the Mini Baja course was recorded on Monday, October
20, 2008 at approximately 3 o?clock in the afternoon, eastern time. At the time the data
was collected there were six visible GPS satellites. Figure 10.10 shows the azimuth and
elevation of the visible satellites. The estimated C/No ratios by the VDFLL are shown in
Figure 10.11. The weakest signals again correspond to the satellites closest to the horizon.
Unlike the first data set though, only three satellites (SV?s 4, 17, and 28) are in the vicinity
of zenith.
268
Figure 10.10: Skyplot of Visible Satellites for the Second Data Set (from NordNav Receiver)
Figure 10.11: Estimated C/No Ratios for the Second Data Set
269
Figures 10.12 and 10.13 show the VDFLL?s estimates of the receiver?s velocity and
acceleration during the second data collection interval, respectively. The position estimates
of the VDFLL and NovAtel are shown in Figure 10.14 in the local ENU frame. The ATV
traversed approximately the same course for the second data collection period as the first.
Figures 10.15 and 10.16 show magnified versions of the position results.
Figure 10.12: Estimated Velocities from the VDFLL for the Second Data Set
270
Figure 10.13: Estimated Accelerations from the VDFLL for the Second Data Set
Figure 10.14: Position Estimates from the VDFLL and NovAtel for the Second Data Set
271
Figure 10.15: Position Estimates from the VDFLL and NovAtel for the Second Data Set
Figure 10.16: Position Estimates from the VDFLL and NovAtel for the Second Data Set
272
Figures 10.14 through 10.16 show the NovAtel receiver failing to produce position esti-
mates during the majority of the course. In contrast, the VDFLL again provides continuous
coverage throughout the entire course. The difference in coverage can especially be seen in
Figure 10.15. The NovAtel provides very sparse coverage and distances of over 100 meters
are traversed with no position estimates.
The difference in the NovAtel?s performance from the first data set to second is pri-
marily due to the number of visible satellites and their geometry. In the first data set, there
were five satellites close to being overhead. Conversely, only three satellites were close to
zenith in the second data set and a minimum of four satellites are required for the receiver
to calculate its position. The satellites closer to zenith are impacted less by the foliage and
are necessary for the NovAtel to provide continuous coverage.
The lack of truth data makes declaring which algorithm is more accurate very difficult.
However, from examining the results it is clear that the VDFLL is more robust in the face
of dense foliage. It provided continuous coverage in both cases and did not exhibit the
rapid jumps in its estimated positions. At the very least, the VDFLL can provide a coarse
estimate of the receivers position. Its estimates can also be used to fore go the re-acquisition
process when the satellite signals are obstructed, and then reappear.
10.3 Vector Tracking Test Results in an Urban Canyon
The ability of the vector tracking algorithms to function in an urban canyon environ-
ment was also studied. Downtown Atlanta was used as the urban canyon environment.
Data was collected using the NordNav software receiver. A two bit sample resolution was
again used in the IF data collection. A NovAtel ProPak-V3 receiver was also used as a
273
comparison for the VDFLL. Both receivers were mounted in the trunk of an Infiniti G35.
Both the receivers used a NovAtel antenna that was mounted to the top of the automobile.
The NovAtel and VDFLL data were collected on the same runs through downtown Atlanta.
The NordNav IF data was post-processed using MATLAB.
The course taken by the automobile started in a parking lot south of downtown. The
vehicle then drove north on interstate I-75/85 to just north of downtown. The car exited
the interstate and then drove south on Peachtree St. NE. The stretch of Peachtree St. NE
that was traversed contains many urban canyon scenarios. Figure 10.17 shows an example
of the type of environment encountered in downtown Atlanta.
Figure 10.17: Urban Canyon at the Intersection of Peachtree ST. NE and Andrew Young
International Blvd. NE, Looking North (from Google Street View)
274
Buildings on either side of the street obstruct the satellite signals from low and mid
elevation satellites. The sides of the buildings also cause reflections of the GPS signals to
be received by the antenna (i.e. multipath) [Soloviev and van Graas, 2008]. The high-rise
buildings on either side of the street impede the performance of most GPS receivers.
A third-order VDFLL was used to process the recorded IF data. The states of the
filter are the receiver?s position, velocity, and acceleration in the ECEF frame and the
receiver?s clock bias and clock drift. The acceleration states are modeled as being driven
by separate white noise processes. A variance of 1 m2/s4 was used as the variance of
the processes. The C/No ratios of the GPS signals were estimated using the techniques
described in Appendix B. The VDFLL used the same pseudorange and pseudorange-rate
discriminators used for the analysis in Chapter 7. An integrate and dump period of 20
milliseconds was used for the pseudorange discriminator and two consecutive 10 millisecond
integrate and dump periods were used for the pseudorange-rate discriminator. A full chip
Early-to-Late correlator spacing is used by the VDFLL.
The data was collected on Sunday, June 7, 2009 at approximately one o?clock, central
time. At the time the data was collected there were seven visible GPS satellites. Figure 10.18
shows the azimuth and elevation of the visible satellites. The estimated C/No ratios of the
visible satellites are shown in Figure 10.19 for the entire data collection period.
275
Figure 10.18: Skyplot of Visible Satellites for the Atlanta Data (from NordNav Receiver)
Figure 10.19: Estimated C/No Ratios for the Total Atlanta Data Set
276
The position estimates of the VDFLL and NovAtel for the entire data set are shown
in Figure 10.20. The position estimates have been converted from the ECEF frame into a
local East-North-Up (ENU) coordinate frame. The East and North components are plotted
to demonstrate the difference in coverage between the VDFLL and NovAtel receivers. The
vehicle started the course at the ENU coordinates (0 m, 0 m) (at the bottom of the figure)
and then traversed the plotted course counter-clockwise. At the end of the data set, the car
returned to its starting position.
Figure 10.20: Position Estimates of the VDFLL and NovAtel
It is apparent from Figure 10.20 that there is a significant difference in the coverage
offered by the VDFLL and the NovAtel. The areas where the NovAtel does not report a
position correspond to the underpasses and urban canyon environments the vehicle encoun-
tered. The outages of the NovAtel can be correlated to the physical environment the car was
in by overlaying the position results in Figure 10.20 on a map of the terrain. Figure 10.21
277
shows the positions reported by the VDFLL and the NovAtel on a map of downtown At-
lanta. The positions reported by the NovAtel are plotted with red way points and the
position results of the VDFLL are plotted with a green line.
278
Figure 10.21: Position Estimates of the VDFLL and NovAtel Overladed on a Map of Down-
town Atlanta (from Google Earth and GPS Visualizer)
279
Figure 10.21 shows the disparities between the VDFLL?s and NovAtel?s coverage in
relation to the environment were the data was taken. While the vehicle is traveling on
the interstate, the loss in the NovAtel?s coverage is caused by overpasses and by tunnels.
When the vehicle enters a tunnel, the GPS signals are significantly attenuated and the
VDFLL effectively ignores measurements. The VDFLL propagates its states forward until
the vehicle emerges from the tunnel. When the satellite signals return, the VDFLL corrects
the errors in its states that have accumulated over the signal outage.
The disparities in coverage while in downtown are caused by the presence of high-
rise buildings. The satellite signals are blocked and fluctuate as the car travels past the
buildings. Figure 10.22 shows a magnified plot of the position results for the Northern
half of the course. The magnified plot makes connecting the outages of the NovAtel to the
physical features of the highways easier. The outages on the right side of the plot (while
the car is driving north on the interstate) are clearly caused by the vehicle going under
overpasses and into tunnels.
The position results while the car is driving through downtown are shown on the left
side of the plot. This data was collected while the car was driving south on Peachtree St.
NE. A significant outage in the NovAtel is seen in the north-west quadrant of the plot. The
outage lasts for about 80 seconds and a third of a mile. The corridor where the outage
occurred corresponds to the most severe urban canyon that was encountered. The position
estimates reported by the VDFLL during the same stretch drift off the street on which the
car was driving. The largest error between the position reported by the VDFLL and the
street is about 40 meters.
280
Figure 10.22: Position Estimates from the VDFLL and NovAtel for the Second Data Set
(from Google Earth and GPS Visualizer)
281
Figure 10.23 shows a magnified plot of the position results during the extend outage of
the NovAtel. The position results of the VDFLL in blue correspond to the period when the
vehicle is inside the severe urban canyon. The vehicle is inside the urban canyon from about
548 to 628 seconds into the data set. The C/N0 ratios estimated by the VDFLL during this
period are shown in Figure 10.24. During the stretch of severe urban canyon, satellite 31
has a consistently high C/N0 ratio and satellite 16 has the second highest consistent C/N0
ratio. Referring back to Figure 10.18, satellite 31 is close to being overhead and satellite
16 is close to the southern horizon. The satellites on the east and west horizon are blocked
by the buildings on either side of the street. Consequently, the VDFLL?s estimates of the
receiver?s position in the east-west direction are poor. South of the extended outage, there is
a cluster of erroneous position estimates from the NovAtel. Figure 10.25 shows a magnified
plot of this stretch of data.
Figure 10.23: Position Estimates from the VDFLL and NovAtel While Inside Extreme
Urban Canyon
282
Figure 10.24: Estimated C/No Ratios While in Urban Canyon
Figure 10.25: Position Estimates from the VDFLL and NovAtel
283
The errors in the positions reported by the NovAtel are quite large. The positions
reported at about (-340 m, 4000 m) are approximately 140 meters from the street traveled
by the automobile. Examining the VDFLL results, it?s estimates are significantly more
consistent than those of the NovAtel.
Figure 10.26 shows the position results from the VDFLL and the NovAtel for the
southern half of the course. While the vehicle was on the interstate highway, the NovAtel
and VDFLL reported positions are extremely similar. The only times the NovAtel failed
to report a position was in the presence of an overpass. At the southern end of the plot,
the vehicle is shown exiting the interstate and then turning east. As it passes under the
interstate, there is a gap in the position estimates of the NovAtel. At the same time, the
VDFLL?s estimates drift off as the car passes under the highway. However, once the car is
no longer under the interstate, the VDFLL?s estimates converge back to the road.
284
Figure 10.26: Position Estimates of the VDFLL and NovAtel Overladed on a Map of Atlanta
(from Google Earth and GPS Visualizer)
285
10.4 Conclusion
The ability of the vector delay/frequency lock loop to work in challenging environments
is demonstrated in this chapter. The VDFLL is implemented in software and is used to
process data collected by a RF front-end. The RF front-end is used to capture data in two
scenarios with dense foliage and one scenario in an urban canyon. Data is also collected
using a NovAtel ProPak-V3 receiver for comparison.
The VDFLL provided continuous coverage in the two environments with dense foliage.
In contrast, the NovAtel receiver displayed significant periods of GPS outage in the same
scenarios. The position solutions of the NovAtel also contained multiple jumps in reported
position of about 15 to 20 meters. The VDFLL also provided continuous coverage through-
out the urban canyon scenario. However, its reported positions did drift off the path taken
by the receiver during a stretch of particularly extreme urban canyon. During the same
stretch, the NovAtel receiver provide no position solutions. Overall, the NovAtel receiver
failed to provide navigation solutions during significant portions of the data collection pe-
riod. The NovAtel receiver also reported erroneous position solutions in error by about 140
meters.
286
Chapter 11
Conclusion and Future Work
11.1 Conclusion
The research performed in this dissertation investigated the benefits and performance of
vector tracking algorithms. A variety of different analysis tools were used to study the vector
tracking algorithms and compare them to scalar tracking loops. The reason vector tracking
yields superior performance is explained using weighted least squares. Vector tracking
essentially reduces the number of unknowns being estimated. In the case N pseudorange
measurements, scalar algorithms attempt to estimate N independent pseudorange tracking
errors. In contrast, a vector based tracking loop uses the N pseudorange measurements
to estimate four unknowns (three position errors and one clock bias error). When more
than four satellites are available, vector tracking will generally perform better than scalar
tracking. As the number N becomes larger, the number of parameters being estimated by
vector tracking remains at four. This effect is similar to averaging, but is different in that
the pseudorange measurements are related to the unknowns through the line-of-sight unit
vectors. The advantage offered by vector tracking for a typical GPS receiver was calculated
by recording the visible satellite constellation at Auburn University over an 18 hour period.
The general concept of vector tracking is manifested in two separate formulations.
The position-state formulation uses a Kalman filter that directly tracks the receiver?s nav-
igation states (i.e. position, velocity, and clock states). From the estimated navigation
states of the filter, all the received satellite signals are predicted. The differences between
the predicted and received signals are then used as residuals by the filter. In contrast,
287
the pseudorange-state formulation of vector tracking uses a Kalman filter with the pseu-
doranges and pseudorange-rates of the visible satellites as its states. The states of the
filter are coupled together through the process noise covariance matrix of the filter in the
pseudorange-state formulation. In the case of a block diagonal process noise covariance
matrix, the pseudorange-state filter reverts back to a scalar tracking algorithm. The per-
formance of the two filters in steady-state were shown to be equivalent.
Using the pseudorange-state filter, the states corresponding to the different satellites are
easily decoupled. In this case, no information is shared between the channels of the receiver
and the filter is performing scalar tracking. This fact was exploited in order to isolate the
improvement in performance brought about by the coupling of the receiver channels. The
difference in the performance of the pseudorange-state filter in the coupled and decoupled
modes is due solely to the information sharing between the channels.
The loss of lock performance of the Vector Delay/Frequency Lock Loop (VDFLL)
was studied using analytical tools and Monte Carlo simulations. The analytical tools take
thresholds established for scalar Frequency Lock Loops and then extend them to the vector
tracking case. The performance of the VDFLL with different satellite geometries and process
noise tunings was compared to scalar FLL?s of varying noise bandwidths. The predictions
from the rule of thumb analysis were then tested using Monte Carlo simulations. The
accuracy of the loss-of-lock predictions for the VDFLL are comparable to the accuracy of
the rule of thumb thresholds for the scalar FLL. The effects of C/N0 ratio estimation were
also studied using Monte Carlo simulations. The same algorithms were simulated with and
without a priori knowledge of the C/N0 ratios of the satellite signals. The difference in the
performance of the algorithms was altered at most by about .8 dB.
288
The rule of thumb analysis tools and Monte Carlo simulations were used to determine
the improvement in loss-of-lock performance from vector tracking. In various scenarios,
the performance of the VDFLL was compared to the performance of a scalar tracking al-
gorithm. The scalar tracking algorithm was designed by taking a pseudorange-state filter
with identical tunings to the VDFLL and then decoupling its channels. The improvement
brought about by vector tracking ranged from 6.2 to 2.4 dB in various scenarios. The great-
est improvements came with the largest number of satellites and the smallest improvement
from the fewest number of satellites.
Radio Frequency (RF) data collected from a hardware simulator was used to study the
performance of the VDFLL in high dynamic scenarios. The VDFLL was able to maintain
signal lock through 2, 4, and 8 G coordinated turns at 19 dB-Hz with only five satellites.
The VDFLL managed to operate through the 2 and 4 G turns at 16 dB-Hz with seven
satellites, but could not maintain lock through the 8 G turn with eleven satellites at 16
dB-Hz. The rule of thumb analysis tools were applied to the 2, 4, and 8 G turns. The
predictions from the rule of thumb analysis tend to be slightly pessimistic, but overall
matched the simulation results reasonably well.
The performance of different vector tracking architectures was also studied. Three
distinct architectures were investigated. The first uses a single centralized filter to perform
all the tasks of signal tracking and navigation state estimation. The other two algorithms
use federated architectures. Both federated architectures use a master filter in conjunction
with smaller residual filters to track the received signals. The difference in the two feder-
ated architectures is in the design of the residual filters. One uses residual filters that are
289
coupled together and the other uses residual filters that are decoupled and operated inde-
pendently. The performance of the three algorithms was studied using covariance analysis
and Monte Carlo simulations. The covariance analysis shows that the centralized filter and
the federated filter with coupled channels yield the same performance. The federated filter
with decoupled residual filters exhibited a loss in performance relative to the other two
architectures. However, as the C/N0 ratio declined the difference in the performance of the
algorithms diminished. The Monte Carlo simulations verified the results of the covariance
analysis.
The analysis of the vector tracking architectures was then extended to an analysis of
deeply integrated architectures. The three vector tracking algorithms were combined with
an Inertial Measurement Unit (IMU) to produce three deeply integrated GPS/INS systems.
Just like in the case of vector tracking, one algorithm uses a centralized architecture and
the other two use a federated architecture. One of the federated algorithms uses coupled
channel residual filters and the other uses decoupled channel residual filters. The effect
of using a federated architecture with and without coupled channels on DI?s performance
was then studied. The performance of the centralized DI algorithm and the federated
algorithm with coupled channels were essentially identical. The federated algorithm with
decoupled channels performed poorest. However, the difference in the performance of the
architectures decreased as the C/N0 ratio decreased. At low C/N0 ratios the performance
of the algorithms were virtually identical.
The final chapter of the dissertation used live-sky data to study the performance of the
VDFLL in challenging environments. The data was collected using a software GPS receiver
and the VDFLL was implemented in MATLAB. Data was also collected using a NovAtel
290
ProPak-V3 receiver for comparison. Auburn University?s Mini Baja course was used as one
location to test the VDFLL. The Mini Baja course is a challenging environment due to the
dense foliage along the course. Two sets of data were collected from the course. The VDFLL
provided continuous coverage around the course in both data sets. In contrast, the NovAtel
provided more or less continuous position solutions in the first data set, but with aberrant
jumps of 15 to 20 meters. In the second data set, the NovAtel did not report the receiver?s
positions for the majority of the course. Downtown Atlanta was used as the second location
for data collection. The area of downtown Atlanta that was traversed contained an urban
canyon environment. The VDFLL again provided continuous coverage. However, during
a stretch of the course through high-rise buildings the positions reported by the VDFLL
wandered off the highway by up to 40 meters. The NovAtel reported no positions for the
same stretch of highway. Overall the VDFLL exhibited more robust performance than the
NovAtel receiver.
11.2 Future Work
There are a multitude of avenues for future work in the area of vector tracking. All
the algorithms in this dissertation are noncoherent. The phase of the carrier signals is
not tracked, only their frequencies are estimated. Extending vector tracking to include the
carrier phases would be an interesting research topic. There are several issues that have
to be addressed when integrating the carrier phases into the Kalman filter used to track
the pseudoranges and pseudorange-rates. One issue is the fact that the pseudoranges and
pseudorange-rates can be directly predicted from the receiver?s estimated position and ve-
locity, and the broadcast ephemeris data. However, the carrier phases cannot be predicted
291
unambiguously. Other issues to be addressed are the phenomenon of code-carrier divergence
and other atmospheric effects. The carrier phase of the received signals is also more sus-
ceptible to interference, such as from foliage. Since the channels of the receiver are coupled
together, a disturbance in one carrier phase would effect the carrier phase estimates for the
other satellites.
Another topic of future research is integrity monitoring in vector tracking architectures.
Since the tracking of all the satellite signals is done in unison, a fault in one channel of the
receiver will affect all the other channels. The ability to monitor the tracking of the satellite
signals and remove possible faults is very important.
The multipath performance of vector tracking algorithms has yet to be explored. The
tracking of all the satellite signals is accomplished jointly and in a single filter in vector
tracking. Intuitively it would seem that vector tracking should exhibt superior performance
with respect to multipath. The effect that multipath has on tracking the Gold codes and
carrier frequencies in a vector tracking algorithm is not clear. The pseudorange-state filter
operated in the coupled channel and decoupled channel modes of operation could be used
to study the multipath performance of vector tracking. The two modes of operation allow
the same algorithm to be operated with or without information sharing between channels.
The benefits of information sharing can therefore be easily determined.
The analysis of deeply integrated algorithms can be extended to study the performance
of suboptimal GPS/INS systems. The federated DI algorithms that were studied used elab-
orate master filters with large state vectors. The master filter required the same seventeen
states used in the centralized filter plus multiple additional states. The additional states are
292
necessary to properly model the correlation between errors in the master filter and the resid-
ual filters. These additional states add significantly to the complexity and computational
load of the federated algorithms. In practice, the additional states might not be included
in the master filter?s state vector due to processing constraints. Omitting the states would
lead to a degradation in the algorithm?s performance. The amount of degradation caused
by using the reduced-order filter can be be determined through covariance analysis. The
full state vector formulation can be used in conjunction with a suboptimal Kalman gain to
determine the loss in performance. The ability of rule of thumb type techniques to mitigate
the correlation in the errors between the two filters could also be ascertained.
The integration of GPS with other satellite navigation systems in a vector tracking
architecture is another interesting topic for future research. The increase in performance
offered by vector tracking is directly linked to the number of available satellites. Other
satellite based navigation systems (such as GLONASS and Galileo) offer additional satellite
signals for a receiver to track. The principles of operation for the other navigation systems
are different than those used in GPS. However, an overall increase in performance through
the integration of all the systems together might be possible.
293
Bibliography
[Abbott and Lillo, 2003] Abbott, A. S. and Lillo, W. E. (2003). Global positioning systems
and inertial measuring unit ultratight coupling method. U. S. Patent 6,516,021, The
Aerospace Corporation, Segundo, CA.
[Alban et al., 2003] Alban, S., Akos, D. M., Rock, S. M., and Gebre-Egziabher, D. (2003).
Performance analysis and architectures for INS-aided GPS tracking loops. In Proceedings
of the Institute of Navigation National Technical Meeting, pages 611?622, Anaheim, CA.
Institute of Navigation.
[Alban and Dietrich, 2004] Alban, S. and Dietrich, A. (2004). Inertial aiding of phase-
tracking loops for automotive GPS attitude determination. In Proceedings of the 60th
Annual Meeting, Dayton, OH. ION.
[Bar-Shalom et al., 2001] Bar-Shalom, Y., Li, X.-R., and Kirubarajan, T. (2001). Estima-
tion with Applications to Tracking and Navigation. John Wiley & Sons, New York.
[Benson, 2007] Benson, D. (2007). Interference benefits of a vector delay lock loop (VDLL)
GPS receiver. In Proceedings of the 63rd Annual Meeting of the Institute of Navigation,
Cambridge, Massachusetts. Institute of Navigation.
[Besser et al., 2002] Besser, J., Alexander, S., Crane, R., Rounds, S., Wyman, J., and
Baeder, B. (2002). TRUNAV: A low-cost guidance/navigation unit integrating a SAASM-
based GPS and MEMS IMU in a deeply coupled mechanization. In Proceedings of the
Institute of Navigation GPS Conference, pages 545?555. Institute of Navigation, Institute
of Navigation 3975 University Drive Suite 390 Fairfax, VA 22030.
[Bowles, 1980] Bowles, W. M. (1980). Correlation Tracking. PhD thesis, Massachusetts
Institute of Technology.
[Brown and Hwang, 1996] Brown, R. G. and Hwang, P. Y. C. (1996). Introduction to Ran-
dom Signals and Applied Kalman Filtering. Wiley.
[Buck et al., 2006] Buck, T. M., Wilmot, J., and Cook, M. J. (2006). A high G, MEMS
based, deeply integrated, INS/GPS, guidance, navigation and control flight management
unit. In Proceedings of IEEE/ION Position Location and Navigation Symposium Con-
ference, San Diego, CA. IEEE/ION.
[Bullock et al., 2006] Bullock, J. B., Foss, M., Geier, G. J., and King, M. (2006). Integration
of GPS with other sensors and network assistance. In Kaplan, E. D., editor, Understand-
ing GPS: Principles and Applications, Mobile Communication Series, chapter 9, pages
459?558. Artech House Publishers, 2 edition.
294
[Carlson, 1988] Carlson, N. A. (1988). Federated filter for fault-tolerant integrated naviga-
tion systems. In Proceedings of IEEE/ION Position Location and Navigation Symposium
Conference, pages 110?119.
[Chan et al., 1979] Chan, Y. T., Hu, A. G. C., and Plant, J. B. (1979). A Kalman filter
based tracking scheme with input estimation. IEEE Transactions on Aerospace and
Electronic Systems, AES-15:237?244.
[Chatfield, 1997] Chatfield, A. B. (1997). Fundamentals of High Accuracy Inertial Naviga-
tion, volume 174. American Institute of Aeronautics and Astronautics.
[Copps et al., 1980] Copps, E. M., Geier, G. J., Fidler, W. C., and Grundy, P. A. (1980).
Optimal processing of GPS signals. Navigation, 27(3):171 ? 182.
[Cox, 1978] Cox, D. B. (1978). Integration of GPS with inertial navigation systems. Navi-
gation, 25(2):236 ? 245.
[Crane, 2007] Crane, R. N. (2007). A simplified method for deep coupling of GPS and iner-
tial data. In Proceedings of the National Technical Meeting of the Institute of Navigation,
San Diego, California. Institute of Navigation.
[Dierendonck, 1996] Dierendonck, A. J. V. (1996). GPS receivers. In Parkinson, B. W.,
editor, Global Positioning System: Theory and Applications, Volume 1, volume 163 of
Progress in Astronautics and Aeronautics, chapter 8. American Institute of Aeronautics
and Astronautics, Washington, DC.
[Dyrud et al., 2007] Dyrud, L., Woessner, B., Jovancevic, A., and Ganguly, S. (2007). Ultra
tightly coupled GPS/INS receiver for TSPI applications. In Proceedings of the 20th
International Technical Meeting of the Satellite Division of the Institute of Navigation,
Fort Worth, TX. ION.
[Flenniken, IV, 2005] Flenniken, IV, W. S. (2005). Modelinginertial measurement units and
analyzing the effect of their errors in navigation applications. Master?s thesis, Auburn
University.
[Flueckiger et al., 2005] Flueckiger, K., Gustafson, D., and Dowdle, J. (2005). INS/GPS
deep integration navigation hardware testbed. In Institute of Navigation, Annual Tech-
nical Meeting, pages 1171?1178.
[Gautier, 2003] Gautier, J. D. (2003). GPS/INS Generalized Evaluation Tool (GIGET)
For The Design and Testing of Integrated Navigation Systems. PhD thesis, Stanford
University.
[Gebre-Egziabher et al., 2005] Gebre-Egziabher, D., Razavi, A., Enge, P. K., Gautier, J.,
Pullen, S., Pervan, B. S., and Akos, D. M. (2005). Sensitivity and performance analysis
of doppler-aided GPS carrier-tracking loops. Navigation, 52(2):49?60.
295
[Godha, 2004] Godha, S. (2004). Strategies for GPS/INS integration. Presentation.
[Groves and Long, 2003] Groves, P. and Long, D. (2003). Adaptive tightly-coupled, a low
cost alternative anti-jam INS/GPS integration technique. In Proceedings of the 2003
National Technical Meeting of the Institute of Navigation, Anaheim, CA. Institute of
Navigation.
[Groves, 2008] Groves, P. D. (2008). Principles of GNSS, Inertial, and Multisensor Inte-
grated Navigation Systems. Artech House.
[Groves et al., 2007] Groves, P. D., Mather, C. J., and Macaulay, A. A. (2007). Demonstra-
tion of non-coherent deep INS/GPS integration for optimised signal-to-noise performance.
In Proceedings of the 20th International Technical Meeting of the Satellite Division of the
Institute of Navigation, Fort Worth, Texas. Institute of Navigation.
[Gunawardena et al., 2004] Gunawardena, S., Soloviev, A., and van Graas, F. (2004). Real
time implementation of deeply integrated software GPS receiver and low cost IMU for
processing low-CNR GPS signals. In Proceedings of the 60th Annual Meeting, pages 108
? 114, Dayton, OH. ION.
[Gustafson and Dowdle, 2003] Gustafson, D. and Dowdle, J. (2003). Deeply integrated code
tracking: Comparative performance analysis. In Proceedings of Institute of Navigation
GPS/GNSS Conference, pages 2553?2561, Portland, OR. Institute of Navigation.
[Gustafson et al., 2000a] Gustafson, D., Dowdle, J., and Flueckiger, K. (2000a). A deeply
integrated GPS-based navigator with extended range code tracking. In Proceedings of
the IEEE Position, Location, and Navigation Symposium, pages 118?124. IEEE.
[Gustafson et al., 2000b] Gustafson, D., Dowdle, J., and Flueckiger, K. (2000b). A high
anti-jam GPS-based navigator. In Proceedings of the Institute of Navigation National
Technical Meeting, pages 495?503, Anaheim, CA. Institute of Navigation.
[Gustafson et al., 2000c] Gustafson, D., Dowdle, J., and Flueckiger, K. (2000c). A high
anti-jam GPS-based navigator. In Institute of Navigation, Annual Technical Meeting.
[Gustafson et al., 2001] Gustafson, D. E., Dowdle, J. R., and John M. Elwell, J. (2001).
Deeply-integrated adaptive GPS-based navigatior with extended-range code tracking. U.
S. Patent 6,331835, The Charles Stark Draper Laboratory, Inc., Cambridge, MA.
[Hamm, 2005] Hamm, C. R. (2005). Analysis of simulated performance of integrated vector
tracking and navigation loops for GPS. Master?s thesis, Auburn University.
[Horslund and Hooker, 1999] Horslund, J. M. and Hooker, J. R. (1999). Increase jamming
immunity by optimizing processing gain for GPS/INS systems. U. S. Patent 5,983160,
Raytheon Company, Lexington, MA.
296
[Jovancevic and Ganguly, 2005] Jovancevic, A. and Ganguly, S. (2005). Real-time imple-
mentation of a deeply integrated GNSS-INS architecture. In Proceedings of the 18th
International Technical Meeting of the Satellite Division of the Institute of Navigation,
Long Beach, CA. ION.
[Jwo, 2001] Jwo, D. J. (2001). Optimization and sensitivity analysis of GPS receiver
tracking loops in dynamic environments. IEE Proceedings of Radar, Sonar Navigation,
148:241?250.
[Kaplan et al., 1996] Kaplan, E. D., Leva, J. L., and Pavloff, M. S. (1996). Fundamen-
tals of satellite navigation. In Kaplan, E. D., editor, Understanding GPS: Principles
and Applications, Mobile Communication Series, chapter 2, pages 15?58. Artech House
Publishers.
[Kennedy and Rossi, 2008] Kennedy, S. and Rossi, J. (2008). Performance of a deeply
coupled commercial grade GPS/INS system from KVH and NovAtel Inc. In Proceedings
of IEEE/ION Position Location and Navigation Symposium Conference, pages 17 ? 24,
Monterey, CA.
[Kiesel et al., 2007] Kiesel, S., Held, M. M., and Trommer, G. F. (2007). Realization of a
deeply coupled GPS/INS navigation system based on INS-VDLL integration. In Proceed-
ings of the 2007 National Technical Meeting of the Institute of Navigation, San Diego,
California. Institute of Navigation.
[Kim et al., 2003] Kim, H.-S., Bu, S.-C., Jee, G.-I., and Park, C.-G. (2003). An ultra-tightly
coupled GPS/INS integration using federated Kalman filter. In Proceedings of the 16th
International Technical Meeting of the Satellite Division of the Institute of Navigation,
Portland, OR. ION.
[Kreye et al., 2004] Kreye, C., Eissfeller, B., and Ameres, G. (2004). Architectures of
GNSS/INS integrations: Theoretical approach and practical tests. In Symposium on
Gyro Technology, pages 14.0?14.16.
[Landis et al., 2006] Landis, D., Thorvaldsen, T., Fink, B., Sherman, P., and Holmes, S.
(2006). A deep integration estimator for urban ground navigation. In Proceedings of
IEEE/ION Position Location and Navigation Symposium Conference, pages 927 ? 932,
San Diego. IEEE/ION.
[Lashley and Bevly, 2007] Lashley, M. and Bevly, D. M. (2007). Analysis of discriminator
based vector tracking algorithms. In Proceedings of the 2007 National Technical Meeting
of the Institute of Navigation, San Diego, California. Institute of Navigation.
[Lashley and Bevly, 2008] Lashley, M. and Bevly, D. M. (2008). Comparison of traditional
tracking loops and vector based tracking loops for weak GPS signals. In Proceedings of
the 2008 National Technical Meeting of the Institute of Navigation, San Diego, California.
Institute of Navigation.
297
[Lashley et al., 2008] Lashley, M., Bevly, D. M., and Hung, J. Y. (2008). Impact of carrier to
noise power density, platform dynamics, and IMU quality on deeply integrated navigation.
In Proceedings of IEEE/ION Position Location and Navigation Symposium Conference,
Monterey, California. Institute of Navigation/IEEE.
[Lashley et al., 2009] Lashley, M., Bevly, D. M., and Hung, J. Y. (2009). Performance
analysis of vector tracking algorithms for weak GPS signals in high dynamics. To appear
in IEEE Journal of Selected Topics in Signal Processing.
[Levy, 1997] Levy, L. J. (1997). The Kalman filter: Navigations integration workhorse.
GPS World, 8:22.
[Lewis, 2003] Lewis, D. E. (2003). Ultra-tightly coupled GPS/INS tracking performance. In
Annual Aviation Technology, Integration, and Operations (ATIO) Forum, Denver. AIAA.
[Li and Wang, 2006] Li, D. and Wang, J. (2006). Kalman filter design strategies for code
tracking loop in ultra-tight GPS/INS/PL integration. In Proceedings of the 2006 National
Technical Meeting of the Institute of Navigation, Monterey, CA. ION.
[Lin and Tsui, 2002] Lin, D. M. and Tsui, J. B. Y. (2002). A weak signal tracking technique
for a stand-alone software GPS receiver. In Proceedings of the 15th International Technical
Meeting of the Satellite Division of the Institute of Navigation, Portland, OR. ION.
[Maybeck, 1978] Maybeck, P. S. (1978). Stochastic Models, Estimation and Control, volume
141. Academic Press.
[Misra and Enge, 2001] Misra, P. and Enge, P. (2001). Global Positioning System: Signals,
Measurements, and Performance. Ganga-Jamuna Press.
[Negast, 2009] Negast, B. (2009). Personal communication.
[Ohlmeyer, 2006] Ohlmeyer, E. J. (2006). Analysis of an ultra-tightly coupled GPS/INS
system in jamming. In Proceedings of IEEE/ION Position Location and Navigation Sym-
posium Conference, pages 44?53, San Diego. IEEE/ION.
[Pany and Eissfeller, 2006] Pany, T. and Eissfeller, B. (2006). Use of a vector delay lock
loop receiver for GNSS signal power analysis in bad signal conditions. In Proceedings of
IEEE/ION Position Location and Navigation Symposium Conference, San Diego, Cali-
fornia. Institute of Navigation and IEEE.
[Pany et al., 2005] Pany, T., Kaniuth, R., and Eissfeller, B. (2005). Deep integration of
navigation solution and signal processing. In Proceedings of Institute of Navigation
GPS/GNSS Conference, Long Beach, CA. Institute of Navigation.
[Pethel, 2006] Pethel, S. J. (2006). Test and evaluation of high performance micro electro-
mechanical system based inertial measurement units. In Proceedings of IEEE/ION Po-
sition, Location, and Navigation Symposium, pages 405 ? 414, San Diego,. IEEE/ION.
298
[Petovello and Lachapelle, 2006] Petovello, M. and Lachapelle, G. (2006). Comparison of
vector-based software receiver implementations with application to ultra-tight GPS/INS
integration. In Proceedings of Institute of Navigation GPS/GNSS Conference, Fort
Worth, TX. Institute of Navigation.
[Psiaki and Jung, 2002] Psiaki, M. L. and Jung, H. (2002). Extended Kalman filter methods
for tracking weak GPS signals. In Proceedings of the 15th International Technical Meeting
of the Satellite Division of the Institute of Navigation, Portland, Oregon. Institute of
Navigation.
[Quinn et al., 2005] Quinn, P., Lewis, D., Berarducci, M., and Miller, M. (2005). Precise
estimation and compensation of antenna lever arm flexure using auxiliary inertial sensors
to improve ultra-tightly coupled GPS-IMU and ESM performance. In Proceedings of the
2005 National Technical Meeting of the Institute of Navigation, San Diego, CA. ION.
[Quinn et al., 2006] Quinn, P., Lewis, D., Berarducci, M., Miller, M., Campbell, J., and
Howe, P. (2006). Theory and test results of antenna advanced inertial reference for
enhanced sensors (ANTARES) lever arm flexure estimation and compensation for ultra-
tightly coupled GPS-INS and RF emitter geo-location systems using auxiliary antenna-
mounted inertial. In Proceedings of the 19th International Technical Meeting of the Satel-
lite Division of the Institute of Navigation, Fort Worth, TX. ION.
[Sayre, 2003] Sayre, M. M. (2003). Development of a block processing carrier to noise ratio
estimator for the global positioning system. Master?s thesis, Ohio University.
[Sennott and Senffner, 1995] Sennott, J. and Senffner, D. (1995). Comparison of continuity
and integrity characteristics for integrated and decoupled demodulation/navigation re-
ceivers. In Proceedings of the 8th International Technical Meeting of the Satellite Division
of the Institute of Navigation, Palm Springs, CA. ION.
[Sennott and Senffner, 1997] Sennott, J. and Senffner, D. (1997). A GPS carrier phase
processor for real-time high dynamics tracking. In Proceedings of the 53rd Annual Meeting
of the Institute of Navigation, Albuquerque, NM. ION.
[Sennott, 1984] Sennott, J. W. (1984). A flexible GPS software development system and
timing analyzer for present and future microprocessors. Navigation, 31(2):84?95.
[Sennott and Senffner, 1992a] Sennott, J. W. and Senffner, D. (1992a). Navigation receiver
with coupled signal-tracking channels. U. S. Patent 5,343,209, Bloomington, IL.
[Sennott and Senffner, 1992b] Sennott, J. W. and Senffner, D. (1992b). The use of satellite
geometry for prevention of cycle slips in a GPS processor. Navigation, 39(2):217 ? 236.
[Sklar, 2001] Sklar, B. (2001). Digital Communications: Fundamentals and Applications.
Prentice Hall PTR, 2nd edition.
299
[Soloviev et al., 2007] Soloviev, A., Bruckner, D., van Graas, F., and Marti, L. (2007). As-
sessment of GPS signal quality in urban environments using deeply integrated GPS/IMU.
InProceedings of the 2007 National Technical Meeting of the Institute of Navigation, pages
815 ? 828, San Diego, CA. ION.
[Soloviev et al., 2004a] Soloviev, A., Gunawardena, S., and van Graas, F. (2004a). Deeply
integrated GPS/low-cost IMU for low CNR signal processing: Flight test results and real
time implementation. In Proceedings of the 17th International Technical Meeting of the
Satellite Division of the Institute of Navigation, pages 1598 ? 1608, Long Beach, CA.
[Soloviev et al., 2008] Soloviev, A., Gunawardena, S., and van Graas, F. (2008). Deeply
integrated GPS/low-cost IMU for low CNR signal processing: Concept description and
in-flight demonstration. Navigation, 55(1):1?13.
[Soloviev and van Graas, 2008] Soloviev, A. and van Graas, F. (2008). Utilizing multipath
reflections in deeply integrated GPS/INS architecture for navigation in urban environ-
ments. In Proceedings of IEEE/ION Position, Location, and Navigation Symposium,
pages 383 ? 393, Monterey, CA. IEEE/ION.
[Soloviev et al., 2004b] Soloviev, A., van Graas, F., and Gunawardena, S. (2004b). Im-
plementation of deeply integrated GPS/low-cost IMU for reacquisition and tracking of
low CNR GPS signals. In Proceedings of the Institute of Navigation National Technical
Meeting, pages 923?935, San Diego, CA. Institute of Navigation.
[Spilker, Jr., 1996a] Spilker, Jr., J. J. (1996a). Fundamentals of signal tracking theory. In
Parkinson, B. W., editor, Global Positioning System: Theory and Applications, Volume
1, volume 163 of Progress in Astronautics and Aeronautics, chapter 4. American Institute
of Aeronautics and Astronautics, Washington, DC.
[Spilker, Jr., 1996b] Spilker, Jr., J. J. (1996b). GPS signal structure and theoretical perfor-
mance. In Parkinson, B. W., editor, Global Positioning System: Theory and Applications,
Volume 1, volume 163 of Progress in Astronautics and Aeronautics, chapter 3. American
Institute of Aeronautics and Astronautics, Washington, DC.
[Tsui, 2000] Tsui, J. B. Y. (2000). Fundamentals of Global Positioning System Receivers,
A Software Approach. John Wiley & Sons.
[US Dept. of Defense, 2000] US Dept. of Defense (2000). NAVSTAR GPS space seg-
ment/navigation user interfaces. Iterface Control Document No. ICD-GPS-200C, De-
partment of Defense.
[Wall, 2007] Wall, J. H. (2007). A study of the effects of stochastic inertial sensor errors in
dead-reckoning navigation. Master?s thesis, Auburn University, Auburn, AL.
300
[Ward, 1996a] Ward, P. (1996a). Effects of RF interference on GPS satellite signal receiver
tracking. In Kaplan, E. D., editor, Understanding GPS: Principles and Applications,
Mobile Communication Series, chapter 6, pages 209 ? 236. Artech House Publishers.
[Ward, 1996b] Ward, P. (1996b). Satellite signal acquisition and tracking. In Kaplan, E. D.,
editor, Understanding GPS: Principles and Applications, Mobile Communication Series,
chapter 5, pages 119 ? 208. Artech House Publishers.
[Ward, 1997] Ward, P. W. (1997). Using a GPS receiver monte carlo simulator to predict
RF interference performance. In Proceedings of the 10th International Technical Meeting
of the Satellite Division of the Institute of Navigation, Kansas City, MO. ION.
[Ward, 1998] Ward, P. W. (1998). Performance comparisons between FLL, PLL and a novel
FLL-assisted-PLL carrier tracking loop under RF interference conditions. In Proceedings
of the 11th International Technical Meeting of the Satellite Division of the Institute of
Navigation, Nashville, TN. ION.
[Weiss and Kee, 1995] Weiss, J. D. and Kee, D. S. (1995). A direct performance compar-
ison between loosely coupled and tightly coupled GPS/INS integration techniques. In
Proceedings of the 51st Annual Meeting of the Institute of Navigation, Colorado Springs,
CO. ION.
[Wendel et al., 2006] Wendel, J., Metzger, J., Moenikes, R., Maier, A., and Trommer, G. F.
(2006). A performance comparison of tightly coupled GPS/INS navigation systems based
on extended and sigma point Kalman filters. Navigation, 53:21?31.
[Wenger, 2002] Wenger, L. (2002). An INS/GPS integrated navigation system for an au-
tonomous micro air vehicle. Master?s thesis, Swiss Federal Institute of Technology Zurich.
[Woessner et al., 2006] Woessner, W., Noronha, J., Jovancevic, A., and Ganguly, S. (2006).
A software defined real-time ultra-tightly coupled (UTC) GNSS-INS architecture. In
Proceedings of the 19th International Technical Meeting of the Satellite Division of the
Institute of Navigation, Fort Worth, TX. ION.
[Ziedan, 2006a] Ziedan, N. (2006a). Extended Kalman filter-based deeply integrated
GNSS/low-cost INS for reliable navigation under GNSS weak interrupted signal condi-
tions. In Proceedings of the 19th International Technical Meeting of the Satellite Division
of the Institute of Navigation, Fort Worth, TX. ION.
[Ziedan, 2005a] Ziedan, N. I. (2005a). Acquisition and fine acquisition of weak GPS L2C and
L5 signals under high dynamic conditions for limited-resource applications. In Proceedings
of the 18th International Technical Meeting of the Satellite Division of the Institute of
Navigation, Long Beach, CA. Institute of Navigation.
301
[Ziedan, 2005b] Ziedan, N. I. (2005b). Extended Kalman filter tracking and navigation
message decoding of weak GPS L2C and L5 signals. In Proceedings of the 18th Inter-
national Technical Meeting of the Satellite Division of the Institute of Navigation, Long
Beach, CA. Institute of Navigation.
[Ziedan, 2006b] Ziedan, N. I. (2006b). GNSS Receivers for Weak signals. Artech House,
Norwood, MA.
302
Appendices
303
Appendix A
Equivalence of Position-State and Pseudorange-State Vector Tracking
Formulations
A.1 Introduction
This appendix shows that the performance of the second order position-state VDFLL
is identical to the performance of the second order pseudorange-state VDFLL. The metric
used to quantify the performance of the algorithms is the variance of the pseudoranges and
pseudorange-rates predicted by the filter. The steady state, state covariance matrices of the
two filters are compared. It is shown that the steady state pseudorange and pseudorange-
rate variances from the filters are identical. This result for the second order VDFLL is
easily extended to higher order vector tracking loops.
A.2 Covariance Analysis
The error between the predictions and actual quantities is represented by the symbol
? and is defined in (A.1).
? =
?
??
??
??
??
??
??
??
?
?1
??1
...
?N
??N
?
??
??
??
??
??
??
??
?
?
?
??
??
??
??
??
??
??
?
??1
???1
...
??N
???N
?
??
??
??
??
??
??
??
?
(A.1)
304
In (A.1), the pseudorange and pseudorange-rate predictions are are represented as ?? and
???, respectively. The pseudorange and pseudorange-rate errors are the actual states of the
pseudorange-state VDFLL filter. For the position-state VDFLL, the prediction errors are
related to the states of the filter by (A.2).
? = C?x (A.2)
C =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
The mean of the vector ? is zero for both VDFLL filters. This is a result of the Kalman
filter being an unbiased estimator. The covariances of the vector ? for the two filters are
compared. The relation between the covariance of the vector ? and the state covariance
matrix of the pseudorange-state VDFLL filter is shown in (A.3).
E{??T} = ?P? (A.3)
In (A.3), the state covariance matrix of the pseudorange-state VDFLL filter prior to a
measurement update is denoted as ?P?. The covariance matrix of the position state filter is
related to the covariance of the vector ? by (A.4).
E{??T} = CP?CT (A.4)
305
The steady state covariance of the vector ? is shown to be identical for both VDFLL for-
mulations.
A.2.1 Position-State Covariance Analysis
The Kalman filter for the position-state formulation of the VDFLL is first examined.
The continuous time state transition equations for the position-state Kalman filter are
shown in (A.5).
?x = Ax+Bpdynwdyn +Bpclkwclk (A.5)
where
A =
?
??
??
??
??
??
?
? 02?2 02?2 02?2
02?2 ? 02?2 02?2
02?2 02?2 ? 02?2
02?2 02?2 02?2 ?
?
??
??
??
??
??
?
? =
?
??
?
0 1
0 0
?
??
?
306
Bpdyn =
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
0 0 0
1 0 0
0 0 0
0 1 0
0 0 0
0 0 1
0 0 0
0 0 0
?
??
??
??
??
??
??
??
??
??
??
??
??
??
?
wdyn =
?
??
??
??
?
wx
wy
wz
?
??
??
??
?
Bpclk =
?
??
??
??
??
??
?
02?2
02?2
02?2
I2?2
?
??
??
??
??
??
?
wclk =
?
??
?
wb
wd
?
??
?
The noise sources (wx,wy,wz) drive their respective velocity states. The terms (wb,wd)
in wclk represent the clock phase and frequency error of the user?s local oscillator, expressed
in units of meters and meters per second [Brown and Hwang, 1996], respectively. The
307
statistics for the noise vector wdyn are:
E{wdyn} =
?
??
??
??
?
0
0
0
?
??
??
??
?
(A.6)
E{wdynwTdyn} =
?
??
??
??
?
?2x 0 0
0 ?2y 0
0 0 ?2z
?
??
??
??
?
The statistics for the noise vector wdyn are:
E{wclk} =
?
??
?
0
0
?
??
? (A.7)
E{wclkwTclk} =
?
??
?
?2b 0
0 ?2d
?
??
?
It is assumed that measurements are provided at intervals of T seconds. The discrete
time state transition matrix used by the position-state Kalman filter is shown in (A.8).
Ap =
?
??
??
??
??
??
?
? 02?2 ... 02?2
02?2 ? ...
... ... ...
02?2 ... ... ?
?
??
??
??
??
??
?
8?8
(A.8)
? =
?
??
?
1 T
0 1
?
??
?
308
The discrete time process noise covariance matrix for the receiver dynamics process
noise is shown in (A.9).
Qpdyn =
?
??
??
??
??
??
?
Qx 02?2 02?2 02?2
02?2 Qy 02?2 02?2
02?2 02?2 Qz 02?2
02?2 02?2 02?2 02?2
?
??
??
??
??
??
?
(A.9)
Qx =
?
??
?
?2xT33 ?2xT22
?2xT22 ?2xT
?
??
?
Qy =
?
??
?
?2y T33 ?2y T22
?2y T22 ?2yT
?
??
?
Qz =
?
??
?
?2z T33 ?2z T22
?2z T22 ?2zT
?
??
?
The discrete time process noise covariance matrix for the clock process noise is shown
in (A.10).
Qpclk =
?
??
??
??
?
02?2 ... 02?2
... ... ...
02?2 ... Qc
?
??
??
??
?
(A.10)
Qc =
?
??
?
?2bT +?2d T33 ?2d T22
?2d T22 ?2dT
?
??
?
309
The relationship between the states of the position-state filter and the pseudorange
and pseudorange-rate residuals is shown in (A.11).
y = Cx+v (A.11)
C =
?
??
??
??
??
??
??
??
?
ax,1 0 ay,1 0 az,1 0 1 0
0 ax,1 0 ay,1 0 az,1 0 1
... ... ... ... ... ... ... ...
ax,N 0 ay,N 0 az,N 0 1 0
0 ax,N 0 ay,N 0 az,N 0 1
?
??
??
??
??
??
??
??
?
The statistics for the measurement noise are shown in (A.12).
E{v} = 0N?1 (A.12)
E{vvT} = Rv
Equations (A.8) through (A.12) provide the necessary information to perform the state
covariance matrix updates in the Kalman filter recursions for the position-state filter.
A.2.2 Pseudorange-State Covariance Analysis
The pseudorange-state formulation of the VDFLL is know examined. The continuous
time dynamics for the pseudorange-state Kalman filter are shown below in (A.13).
?x = Ax+B?dynwdyn +B?clkwclk (A.13)
where
310
A =
?
??
??
??
??
??
?
? 02?2 ... 02?2
02?2 ? ... ...
... ... ... 0
2?2
02?2 ... 02x2 ?
?
??
??
??
??
??
?
? =
?
??
?
0 1
0 0
?
??
?
B?dyn =
?
??
??
??
??
??
??
??
?
0 0 0
ax,1 ay,1 az,1
... ... ...
0 0 0
ax,N ay,N az,N
?
??
??
??
??
??
??
??
?
wdyn =
?
??
??
??
?
wx
wy
wz
?
??
??
??
?
B?clk =
?
??
??
??
?
I2?2
...
I2?2
?
??
??
??
?
wclk =
?
??
?
wb
wd
?
??
?
The noise terms in (A.13) are identical to those in (A.5).
311
The discrete time state transition matrix for the pseudorange-state Kalman filter is
shown in (A.14).
A? =
?
??
??
??
??
??
?
? 02?2 ... 02?2
02?2 ? ...
... ... ...
02?2 ... ... ?
?
??
??
??
??
??
?
2N?2N
(A.14)
? =
?
??
?
1 T
0 1
?
??
?
The discrete time process noise covariance matrix for the receiver dynamics process
noise is shown in (A.15).
Q?dyn =
?
??
??
??
??
??
?
Qd1,1 Qd1,2 ... Qd1,N
Qd2,1 Qd2,2 ... Qd2,N
... ... ... ...
QdN,1 ... ... QdN,N
?
??
??
??
??
??
?
(A.15)
Qdi,j =
?
??
?
?i,j T33 ?i,j T22
?i,j T22 T?i,j
?
??
?
?i,j =
bracketleftbigg
?2xax,iax,j +?2yay,iay,j +?2zaz,iaz,j
bracketrightbigg
312
The discrete time process noise covariance matrix for the clock process noise is shown
in (A.16).
Q?clk =
?
??
??
??
?
Qc ... Qc
... ... ...
Qc ... Qc
?
??
??
??
?
(A.16)
Qc =
?
??
?
?2bT +?2d T33 ?2d T22
?2d T22 ?2dT
?
??
?
The relationship between the states of the filter and the pseudorange and pseudorange-
rate residuals is shown in (A.17).
y = I2N?2Nx+v (A.17)
The measurement noise in (A.17) is identical to the noise in (A.11). The necessary
information for performing the Kalman filter recursions for the pseudorange-state VDFLL
filter are provided in equations (A.14) through (A.17).
A.2.3 Equivalence in Steady State Prediction Errors
To compare the steady state performance of the two VDFLL algorithms, it is first
assumed that the position-state filter has reached steady state conditions. The steady state
covariance matrices are denoted by the subscript ss. The steady state covariance matrix of
the position-state filter is used to initialize the covariance matrix of the pseudorange-state
313
Kalman filter.
?P+(k) = CP+ssCT (A.18)
The symbolk in (A.18) is the index for the measurement epoch of the filter. The steady
state value that the covariance matrix converges too will not depend on its initialization.
The covariance matrices of the two formulations after propagating them forward to the next
measurement epoch are now compared.
First, the position-state state covariance matrix is propagated forward to the next
measurement updated using (A.19).
P?ss = ApP+ssApT +Qpdyn +Qpclk (A.19)
Likewise, the pseudorange-state state covariance matrix is propagated forward to the next
measurement updated using (A.20).
?P?(k) = A? ?P+(k)A?T +Q?dyn +Q?clk (A.20)
The covariance of the predicted pseudorange and pseudorange-rate errors is now com-
pared for the two VDFLL formulations. The covariance of the prediction errors is related
to the state covariance matrix of the pseudorange-state filter by (A.21).
E{??T} = ?P?(k) (A.21)
314
The position-state state covariance matrix is related to the prediction errors by (A.22).
E{??T} = CP?ssCT
CP?ssCT = CApP+ssApTCT +CQpdynCT...
+CQpclkCT (A.22)
The following relationships are now used:
CQpdynCT = Q?dyn
CQpclkCT = Q?clk
CAp = A?C (A.23)
Using the relations in (A.23), the following equivalences are made:
CP?ssCT = CApP+ssApTCT +CQpdynCT +CQpclkCT
CP?ssCT = A?CP+ssCTA?T +Q?dyn +Q?clk
CP?ssCT = A? ?P?(k)A?T +Q?dyn +Q?clk
CP?ssCT = ?P?(k) (A.24)
Therefore, following the time propagation, the covariance of the pseudorange and
pseudorange-rate prediction errors from the position-state and pseudorange-state filters are
identical. The covariance matrices for the two filters are now examined after the measure-
ment update.
315
The state covariance matrix for the pseudorange-state formulation after the measure-
ment update is given below in (A.25).
?P+(k+1) = ?P?(k)? ?P?(k)bracketleftBig?P?(k)+RvbracketrightBig?1 ?P?(k) (A.25)
The state covariance matrix for the position-state formulation after the measurement
update is shown in (A.26).
P+ss = P?ss ?P?ssCT
bracketleftBig
CP?ssCT +Rv
bracketrightBig?1
CP?ss (A.26)
Multiplying (A.26) by C and CT, and using (A.24) and (A.25), results in (A.27).
CP+ssCT = CP?ssCT...
?CP?ssCT
bracketleftBig
CP?ssCT +Rv
bracketrightBig?1
CP?ssCT
?P?(k) = CP?ssCT
CP+ssCT = ?P?(k)? ?P?(k)
bracketleftBig?
P?(k) +Rv
bracketrightBig?1 ?
P?(k)
CP+ssCT = ?P+(k+1) (A.27)
For the pseudorange-state filter, the state covariance matrix after the measurement
update at time k is equal to the state covariance matrix after the measurement update
at time k + 1. The initialization matrix in (A.18) is therefore the steady state covariance
matrix of the pseudorange-state filter. This result is shown in (A.28).
?P+ss = CP+ssCT (A.28)
316
Using (A.21), the steady state covariance matrix of the prediction errors for both
formulations is shown in (A.29).
E{??T}ss = ?P?ss = CP+ssCT (A.29)
The significance of (A.29) is that the steady state covariance of the prediction errors
for both formulations of the VDFLL are identical. Therefore, the two algorithms yield the
same performance with respect to the pseudorange and pseudorange-rate prediction errors.
The analysis shown here has been performed for the second order VDLL. However, the
same analysis can be performed for higher order VDFLL filters. The same results shown in
(A.29) are obtained.
317
Appendix B
C/N0 Ratio Estimation
B.1 Introduction
This appendix explains how the C/No ratio of the received signals is estimated. It
is based on the method originally presented in [Crane, 2007]. Measurements of the noise
power are generated by using noise correlators. A moving average filter is then used to
smooth the noise power estimates. A single state Kalman filter is used to estimate the
signal amplitude for each satellite signal. Large changes in signal amplitude are detected
by monitoring the ratio of the signal power to noise power spectral density. The tunings
used by the algorithms are included.
B.2 Noise Power Estimation
The variance of the noise is estimated by employing noise correlators. Over each inte-
grate and dump operation, a series of correlator outputs are created which are solely noise
(these are referred to as noise correlators). This is accomplished by taking the predicted
code phase for a given channel, and adding a large offset to it. The large offset is chosen
so that the autocorrelation function of the Gold code is effectively zero. For the algorithms
implemented in this dissertation, 18 samples of pure noise are created every 20 milliseconds
(i.e. at the end of every integrate and dump operation). These samples are used to compute
318
an empirical measurement of the noise variance using the following:
??2?(k) = 1N
?
N?summationdisplay
m=1
(?k(m))2 (B.1)
In (B.1), the variable k is the index of the integrate and dump operation over which
the noise correlators are generated and N? is the number of noise samples generated. The
noise samples created from the k-th integrate and dump operation are denoted as ?k(m),
where m ranges from one to N?. The noise samples ?k(m) are assumed to be zero mean,
jointly Gaussian, and uncorrelated. Under these circumstances, the estimate given by (B.1)
is the maximum likelihood estimate of the noise variance. The estimate is unbiased and has
a variance given by:
?2ML = 2?
4?(k)
N? (B.2)
In (B.2), ??(k) is the true standard deviation of the noise correlators from the k-th
integrate and dump operation. The variance?2ML is equal to the Cramer-Rao bound. Using
18 samples produces a large value for ??2ML. However, the noise in the correlator outputs
is assumed to be thermal noise and its variance changes slowly over time. The empirical
measurements of the noise power are smoothed using a running average filter to produce
accurate estimates of ?2? (B.3) [Crane, 2007].
??2?(k) = (1???)??2?(k?1)+????2?(k) (B.3)
319
In (B.3), the estimated noise variance at timek is denoted as ??2?(k). For the algorithms
implemented in this dissertation, a value of .001 is used for ??. The estimated noise power
is unbiased and the variance of the estimate in steady state is given in (B.4).
E{(??2? ??2?)} = ?
2?
1?(1???)2
2?4?
N? (B.4)
B.3 Signal Amplitude Measurements
Measurements of the signal amplitude are generated using the inphase early (IE),
inphase late (IL), quadraphase early (QE), and quadraphase late (QL) correlator outputs
(B.5).
IE(k) = A(k)R(?(k) +?)D(k)cos(?ferr(k)T +?err(k)) +?IE(k)
IL(k) = A(k)R(?(k)??)D(k)cos(?ferr(k)T +?err(k)) +?IL(k) (B.5)
QE(k) = A(k)R(?(k) +?)D(k)sin(?ferr(k)T +?err(k)) +?QE(k)
QL(k) = A(k)R(?(k)??)D(k)sin(?ferr(k)T +?err(k)) +?QL(k)
?(k) ? N(0,?2?(k))
In (B.5), the variable A(k) represents the effective amplitude of the signal over the
k-th integrate and dump operation. It includes the correlation loss from Doppler frequency
errors. The variables ferr(k) and ?err(k) are the frequency error (Hertz) and phase error
(radians) between the received and locally generated carrier signals over the k-th integrate
and dump operation, respectively. The sign of the navigation data bit over the integrate and
320
dump operation is denoted as D(k). The variable T is the period of the integrate and dump
operation. The term?(k) is the phase error between the received and locally generated PRN
codes, measured in fractions of a chip. The function R(?) is the auto-correlation function
of the PRN sequences. The symbol ? is the correlator spacing of the Early and Late PRN
replicas, expressed in fractions of a chip. A correlator spacing of one half chip is used for all
algorithms implemented in this dissertation. The autocorrelation as a function of the code
phase error is approximately given by:
R(?) =
??
??
???
1?|?| when ?< 1 chip
0 when ?> 1 chip.
The correlator outputs are not normalized in (B.5) and the variance of the noise terms
is represented by ?2?(k). The subscripts IE, IL, QE, and QL represent the inphase early,
inphase late, quadraphase early, and quadraphase late noise terms, respectively. The in-
phase and quadraphase noise sources are uncorrelated and the early and late noise terms
are also uncorrelated. Measurements of the signal amplitude are generated by using the
discriminator in (B.6).
?A(k) = (IE(k) +IL(k))2 +(QE(k) +QL(k))2 (B.6)
In (B.6), the variable k is the index of the integrate and dump operation used to
generate the correlator outputs. The mean of the measurement ?A(k) is shown in (B.7).
321
E{ ?A(k)} = A2(k)+4?2?(k) (B.7)
The variable ?2?(k) is the variance of the noise terms from (B.5). The variance of
amplitude measurement is given in (B.8).
E{( ?A(k)?E{ ?A(k)})2} = 8?2?(k)(2?2?(k)+A2(k)) (B.8)
B.4 Amplitude Kalman Filter
The amplitude measurements generated from (B.6) are smoothed using a one state
Kalman filter. The state, discrete time dynamics, and measurement update equation of the
filter are shown in (B.9).
x(k) = A2(k) +4?2?(k)
x(k+1) = x(k)+q(k) (B.9)
y(k) = x(k)+?(k)
The states of the filter are represented by x(k) and the process noise is represent by
q(k). Measurements of the filter?s state are denoted as y(k) and the measurement noise is
represented by ?(k). The filter intentionally tracks a biased estimate of the squared ampli-
tude. If the term 4?2? is subtracted from the amplitude measurement in (B.6), an unbiased
322
measurement of the amplitude squared can be produced. However, at low C/No ratios the
subtraction will produce negative measurements of the amplitude squared. Including the
negative measurements is quixotic, since the amplitude is a real non-negative number. Ig-
noring the negative measurements will result in biased estimates of the amplitude squared.
To avoid these issues, the biased amplitude squared is processed.
The C/No ratio of the received signal is calculated by using the state of the Kalman
filter and the empirically determined noise power (B.10).
?C/ ?N0 = 10log10
parenleftBigg?x(k)?4??2
?(k)
2T??2?(k)
parenrightBigg
in dB-Hz (B.10)
?c/?no =
parenleftBigg?x(k)?4??2
?(k)
2T??2?(k)
parenrightBigg
in dB-Hz (B.11)
The formula in (B.10) is used only when the numerator is greater than zero.
The statistics of the noise term ?(k) are given in (B.8). The current state of the filter
and empirical noise power estimate are used at each measurement update in (B.8). The
process noise in (B.9) is scaled based upon the current C/No ratio estimate. The process
noise is determined from (B.12).
Q = 11000 ?10[?3(28? ?C/ ?N0)?u(28? ?C/ ?N0)]/10 ??(k) (B.12)
In (B.12), u(x) is the unit step function.
323
B.5 Adaptive Measures
For the algorithms used in this dissertation, the noise present in the correlator outputs
is assumed to be thermal noise. The variance of the noise therefore changes relatively
slowly over time. Rapid changes in the C/No ratio are therefore caused by fluctuations in
the signal amplitude. Adaptive techniques are used by the amplitude Kalman filter to track
rapid increases or decreases of the signal amplitude. The ratio of the signal power to noise
power density is monitored to detect fluctuations in the amplitude of the received signal.
The power ratio is given in (B.13).
?c/?no(k) =
parenleftBigg ?A
s(k)?4??2?,s(k)
2T??2?,s(k)
parenrightBigg
(B.13)
The values for ?As(k) are computed by averaging over the past Ns measurements from
(B.6).
?As(k) = 1
Ns
Ns?1summationdisplay
m=0
?A(k?m) (B.14)
The term ??2?,s(k) is similarly calculated by averaging over the past Ns estimates of the noise
power yielded from the formula in (B.3).
??2?,s(k) = 1N
s
Ns?1summationdisplay
m=0
??2?(k?m) (B.15)
324
The expected value of (B.13) is approximately equal to (B.16).
E{?c/?no} ? A
2(k)
2T?2?(k) (B.16)
The variance of the signal power to noise power density ratio is approximately equal
to (B.17).
E(E{?c/?no(k)}? ?c/?no(k)) = ?2?c/?no
?2?c/?no(k) ? 8?
2?(k)(2?2?(k) +A2(k))
Ns(2T?2?(k))2 +
(A2(k) +4?2?(k))2
(2T)2 ??8?(k)
?2?
1?(1???)2
2?4?(k)
N? ?Ns
(B.17)
The mean and variance of the power ratio is predicted using the current state of the
amplitude Kalman filter and current estimate of the noise power from (B.4). The deviation
of the calculated power ratio from the predicted mean is monitored. If the difference in
the two quantities exceeds an upper threshold or drops below a lower threshold, then a
significant change in the signal amplitude is declared. If a significant change in amplitude
is declared at time k, the covariance of the amplitude filter is set to (B.18) and then the
current amplitude measurement is processed by the filter.
P?(k) = .35?8??2?(k)(?x?(k)?2??2?(k)) (B.18)
325
Table B.1: Thresholds Used to Detect Large Amplitude Fluctuations
C/N0 (dB-Hz) Lower Threshold Upper Threshold
100 4.0???c/?no 4.29???c/?no
45 4.0???c/?no 4.29???c/?no
40 3.9???c/?no 4.29???c/?no
35 3.5???c/?no 4.51???c/?no
30 3.5???c/?no 4.84???c/?no
25 3.4???c/?no 5.06???c/?no
20 3.1???c/?no 5.17???c/?no
15 3.0???c/?no 5.28???c/?no
10 3.0???c/?no 5.45???c/?no
0 3.0???c/?no 5.50???c/?no
A period of 1.2 seconds is always allowed to elapse between resets of the covariance
matrix. The thresholds used to detect fluctuations vary based on the estimatedC/N0 ratios.
This due to the fact that the distribution of the linear power ratio becomes skewed as the
C/N0 ratio declines. The thresholds used in this dissertation are shown in Table B.1. A
value of 15 is used for Ns. Figure B.1 shows the algorithms describe in this appendix being
used to estimated the C/N0 ratio of a signal with a fluctuating amplitude.
326
Figure B.1: C/N0 Estimated Using Adaptive Filtering Techniques
327
Appendix C
Additional Plots
This appendix includes additional plots from the different chapters of the dissertation.
The plots are collected according to the chapter and section from which they come.
C.1 Additional Plots From Chapter 7 Section 3.2
Figure C.1: VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= .2 m2/s2
328
Figure C.2: VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 2 m2/s2
Figure C.3: VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 10 m2/s2
329
Figure C.4: VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 50 m2/s2
Figure C.5: VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 100 m2/s2
330
Figure C.6: VDFLL Monte Carlo Simulation Results for 5 Satellites and ?2= 300 m2/s2
Figure C.7: VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= .2 m2/s2
331
Figure C.8: VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 2 m2/s2
Figure C.9: VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 10 m2/s2
332
Figure C.10: VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 50 m2/s2
Figure C.11: VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 100 m2/s2
333
Figure C.12: VDFLL Monte Carlo Simulation Results for 7 Satellites and ?2= 300 m2/s2
334
C.2 Additional Plots From Chapter 7 Section 3.4
Figure C.13: Thermal Noise Analysis Results for 7 Satellites and ?2= 10 m2/s2
335
Figure C.14: Monte Carlo Simulation Results for 7 Satellites and ?2= 10 m2/s2
Figure C.15: Thermal Noise Analysis Results for 7 Satellites and ?2= 50 m2/s2
336
Figure C.16: Monte Carlo Simulation Results for 7 Satellites and ?2= 50 m2/s2
Figure C.17: Thermal Noise Analysis Results for 7 Satellites and ?2= 100 m2/s2
337
Figure C.18: 4.5Monte Carlo Simulation Results for 7 Satellites and ?2= 100 m2/s2
Figure C.19: Thermal Noise Analysis Results for 5 Satellites and ?2= 10 m2/s2
338
Figure C.20: Monte Carlo Simulation Results for 5 Satellites and ?2= 10 m2/s2
Figure C.21: Thermal Noise Analysis Results for 5 Satellites and ?2= 50 m2/s2
339
Figure C.22: Monte Carlo Simulation Results for 5 Satellites and ?2= 50 m2/s2
Figure C.23: Thermal Noise Analysis Results for 5 Satellites and ?2= 100 m2/s2
340
Figure C.24: Monte Carlo Simulation Results for 5 Satellites and ?2= 100 m2/s2
341
C.3 Additional Plots From Chapter 8 Section 6.1
Figure C.25: Monte Carlo Simulation Results for the Y-Axis Position with Eleven Satellites
and ?2=2 m2/s2
342
Figure C.26: Monte Carlo Simulation Results for the Y-Axis Velocity with Eleven Satellites
and ?2=2 m2/s2
Figure C.27: Monte Carlo Simulation Results for the Z-Axis Position with Eleven Satellites
and ?2=2 m2/s2
343
Figure C.28: Monte Carlo Simulation Results for the Z-Axis Velocity with Eleven Satellites
and ?2=2 m2/s2
Figure C.29: Monte Carlo Simulation Results for the X-Axis Position with Eleven Satellites
and ?2=10 m2/s2
344
Figure C.30: Monte Carlo Simulation Results for the X-Axis Velocity with Eleven Satellites
and ?2=10 m2/s2
Figure C.31: Monte Carlo Simulation Results for the Y-Axis Position with Eleven Satellites
and ?2=10 m2/s2
345
Figure C.32: Monte Carlo Simulation Results for the Y-Axis Velocity with Eleven Satellites
and ?2=10 m2/s2
Figure C.33: Monte Carlo Simulation Results for the Z-Axis Position with Eleven Satellites
and ?2=10 m2/s2
346
Figure C.34: Monte Carlo Simulation Results for the Z-Axis Velocity with Eleven Satellites
and ?2=10 m2/s2
Figure C.35: Monte Carlo Simulation Results for the Clock Bias with Eleven Satellites and
?2=10 m2/s2
347
Figure C.36: Monte Carlo Simulation Results for the Clock Drift with Eleven Satellites and
?2=10 m2/s2
Figure C.37: Monte Carlo Simulation Results for the Y-Axis Position with Eleven Satellites
and ?2=50 m2/s2
348
Figure C.38: Monte Carlo Simulation Results for the Y-Axis Velocity with Eleven Satellites
and ?2=50 m2/s2
Figure C.39: Monte Carlo Simulation Results for the Z-Axis Position with Eleven Satellites
and ?2=50 m2/s2
349
Figure C.40: Monte Carlo Simulation Results for the Z-Axis Velocity with Eleven Satellites
and ?2=50 m2/s2
C.4 Additional Plots From Chapter 8 Section 6.2
350
Figure C.41: Monte Carlo Simulation Results for the Y-Axis Position with Five Satellites
and ?2=2 m2/s2
Figure C.42: Monte Carlo Simulation Results for the Y-Axis Velocity with Five Satellites
and ?2=2 m2/s2
351
Figure C.43: Monte Carlo Simulation Results for the Z-Axis Position with Five Satellites
and ?2=2 m2/s2
Figure C.44: Monte Carlo Simulation Results for the Z-Axis Velocity with Five Satellites
and ?2=2 m2/s2
352
Figure C.45: Monte Carlo Simulation Results for the Clock Bias with Five Satellites and
?2=2 m2/s2
Figure C.46: Monte Carlo Simulation Results for the Clock Drift with Five Satellites and
?2=2 m2/s2
353
Figure C.47: Monte Carlo Simulation Results for the X-Axis Position with Five Satellites
and ?2=10 m2/s2
Figure C.48: Monte Carlo Simulation Results for the X-Axis Velocity with Five Satellites
and ?2=10 m2/s2
354
Figure C.49: Monte Carlo Simulation Results for the Y-Axis Position with Five Satellites
and ?2=10 m2/s2
Figure C.50: Monte Carlo Simulation Results for the Y-Axis Velocity with Five Satellites
and ?2=10 m2/s2
355
Figure C.51: Monte Carlo Simulation Results for the Z-Axis Position with Five Satellites
and ?2=10 m2/s2
Figure C.52: Monte Carlo Simulation Results for the Z-Axis Velocity with Five Satellites
and ?2=10 m2/s2
356
Figure C.53: Monte Carlo Simulation Results for the Clock Bias with Five Satellites and
?2=10 m2/s2
357
Figure C.54: Monte Carlo Simulation Results for the Clock Drift with Five Satellites and
?2=10 m2/s2
358
Figure C.55: Monte Carlo Simulation Results for the Y-Axis Position with Five Satellites
and ?2=50 m2/s2
Figure C.56: Monte Carlo Simulation Results for the Y-Axis Velocity with Five Satellites
and ?2=50 m2/s2
359
Figure C.57: Monte Carlo Simulation Results for the Z-Axis Position with Five Satellites
and ?2=50 m2/s2
Figure C.58: Monte Carlo Simulation Results for the Z-Axis Velocity with Five Satellites
and ?2=50 m2/s2
360
Figure C.59: Monte Carlo Simulation Results for the Clock Bias with Five Satellites and
?2=50 m2/s2
Figure C.60: Monte Carlo Simulation Results for the Clock Drift with Five Satellites and
?2=50 m2/s2
361
C.5 Additional Plots From Chapter 9 Section 3.1
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?20
?15
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 y
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Decoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Decoupled Channels)
Figure C.61: Covariance Analysis Results for the Y-Axis Position State with Eleven Satel-
lites and Tactical Grade IMU
362
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?40
?35
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?y
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Uncoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Uncoupled Channels)
Figure C.62: Covariance Analysis Results for the Y-Axis Velocity State with Eleven Satel-
lites and Tactical Grade IMU
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?20
?15
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 z
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Uncoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Uncoupled Channels)
Figure C.63: Covariance Analysis Results for the Z-Axis Position State with Eleven Satel-
lites and Tactical Grade IMU
363
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?40
?35
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?z
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Uncoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Uncoupled Channels)
Figure C.64: Covariance Analysis Results for the Z-Axis Velocity State with Eleven Satel-
lites and Tactical Grade IMU
364
C.6 Additional Plots From Chapter 9 Section 3.2
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?20
?15
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 y
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Uncoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Uncoupled Channels)
Figure C.65: Covariance Analysis Results for the Y-Axis Position State with Five Satellites
and Automotive Grade IMU
365
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?35
?30
?25
?20
?15
?10
?5
C/N0 (dB-Hz)
10
log
10
?2 ?y
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Uncoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Uncoupled Channels)
Figure C.66: Covariance Analysis Results for the Y-Axis Velocity State with Five Satellites
and Automotive Grade IMU
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?20
?15
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 z
(d
B-
m2
)
DI?Centralized Filter
DI?Federated Filter (Uncoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Uncoupled Channels)
Figure C.67: Covariance Analysis Results for the Z-Axis Position State with Five Satellites
and Automotive Grade IMU
366
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?35
?30
?25
?20
?15
?10
?5
C/N0 (dB-Hz)
10
log
10
?2 ?z
(d
B-
m2
/s2
)
DI?Centralized Filter
DI?Federated Filter (Uncoupled Channels)
DI?Federated Filter (Coupled Channels)
TC?(Coupled Channels)
TC?(Uncoupled Channels)
Figure C.68: Covariance Analysis Results for the Z-Axis Velocity State with Five Satellites
and Automotive Grade IMU
367
C.7 Additional Plots From Chapter 9 Section 4.1
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?20
?15
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 y
(d
B-
m2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.69: Monte Carlo Simulation Results for the Y-Axis Position State with Eleven
Satellites and Tactical Grade IMU
368
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?40
?35
?30
?25
?20
?15
C/N0 (dB-Hz)
10
log
10
?2 ?y
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.70: Monte Carlo Simulation Results for the Y-Axis Velocity State with Eleven
Satellites and Tactical Grade IMU
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?20
?15
?10
?5
0
5
10
15
20
C/N0 (dB-Hz)
10
log
10
?2 z
(d
B-
m2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.71: Monte Carlo Simulation Results for the Z-Axis Position State with Eleven
Satellites and Tactical Grade IMU
369
11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?40
?35
?30
?25
?20
?15
C/N0 (dB-Hz)
10
log
10
?2 ?z
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.72: Monte Carlo Simulation Results for the Z-Axis Velocity State with Eleven
Satellites and Tactical Grade IMU
370
C.8 Additional Plots From Chapter 9 Section 4.2
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45?20
?15
?10
?5
0
5
10
C/N0 (dB-Hz)
10
log
10
?2 y
(d
B-
m2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.73: Monte Carlo Simulation Results for the Y-Axis Position State with Five
Satellites and Automotive Grade IMU
371
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45?35
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?y
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.74: Monte Carlo Simulation Results for the Y-Axis Velocity State with Five
Satellites and Automotive Grade IMU
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45?20
?15
?10
?5
0
5
10
C/N0 (dB-Hz)
10
log
10
?2 z
(d
B-
m2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.75: Monte Carlo Simulation Results for the Z-Axis Position State with Five Satel-
lites and Automotive Grade IMU
372
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
?30
?25
?20
?15
?10
C/N0 (dB-Hz)
10
log
10
?2 ?z
(d
B-
m2
/s2
)
Covariance Analysis, Uncoupled Federated Filter
Covariance Analysis, Centralized Filter
MC Results, Uncoupled Federated Filter
MC Results, Coupled Federated Filter
MC Results, Centralized Filter
Figure C.76: Monte Carlo Simulation Results for the Z-Axis Velocity State with Five Satel-
lites and Automotive Grade IMU
373
Appendix D
Error State Recursions
D.1 Introduction
This appendix discusses the error state recursions that are used in Chapters 8 and 9.
The error state recursions provide a useful means of modeling how errors in the states of
the filter propagate from one period to another. In this appendix, the error state recursions
are defined and derived. The motivation for using the error state recursions in the federated
filtering architectures is also explained.
D.2 Motivation
The motivation for using the error state recursions comes from the federated filtering
architectures in Chapters 8 and 9. The federated filtering architectures all use a combina-
tion of a master filter and residual filters. The master filter estimates the full navigation
states of the receiver and its state vector is used to predict the received pseudoranges and
pseudorange-rates. The residual filters process the pseudorange and pseudorange-rate resid-
uals and estimate the errors in the states of the master filter. Figure D.1 shows a block
diagram of one of the federated vector tracking architectures.
374
Figure D.1: Federated Filter Architecture with Decoupled-Channel Residual Filters
For the federated filtering architectures, the master filter never has access to the raw
pseudorange and pseudorange-rate residuals. The estimates of the residual filters are used
as measurements by the master filter. The states of the residual filters are cleared after they
are used as measurements. The state vector of the residual filter is reset to zeros. This is
because the residual filter is estimating the errors in the states of the master filter. After
the measurement update, the mean of the errors in the states of the master filter is zero
(this follows from the Kalman filter being an unbiased estimator). The covariance matrix of
the residual filters is also reset. The covariance matrix of the residual filter is reinitialized
using the covariance matrix of the master filter after the measurement update. This is done
because the errors in the reset residual filter state vector are directly related to the errors
in the master filter?s states.
375
An important issue arises when carrying out the measurement update of the master
filter. The Kalman filter requires knowledge of the covariance matrix of the errors present in
the measurements. It is tempting to simply use the covariance matrix of the residual filter
as the measurement noise covariance matrix. However, this is incorrect and can easily lead
to filter divergence. This is because the errors in the state vector of the residual filters are
correlated with errors in the state vector of the master filter. The Kalman filter equations
are derived using the assumption that the measurement noise is white and uncorrelated with
the errors in the state vector. These assumptions are violated by using the state covariance
matrix of the residual filters as the measurement noise covariance matrix in the master filter
update equations.
The problem with using the state covariance matrix of the residual filters as the mea-
surement noise covariance matrix for the master filter can intuitively be understood by
considering the case of tracking an extremely weak satellite signal. Assume that the master
filter?s states are used to predict the pseudorange and pseudorange-rate for the satellite. A
residual filter is then used to process the pseudorange and pseudorange-rate residuals that
are produced. The residual filter?s state vector is initialized to zeros. Its state covariance
matrix is initialized using the state covariance matrix of the master filter.
The residual filter processes multiple sets of pseudorange and pseudorange-rate resid-
uals. Since the satellite signal is extremely weak, the residual filter essentially ignores the
measurements and propagates its initial state vector forward. The state covariance matrix
of the residual filter is also propagated forward accordingly.
After some period of time, the state vector of the residual filter is used by the master
filter as a measurement. The residual filter state vector has changed little from the values
376
it was initialized to (because the satellite signal is very weak). The covariance matrix of the
residual filter is used as the measurement noise covariance matrix. From the perspective
of the master filter, a new set of measurements have been supplied and the noise in the
measurements is uncorrelated with its own state vector. In actuality, the errors present
in the state vector of the residual filter are nearly identical to the errors present in the
master filter. Because the satellite signal is extremely weak, the residual filter ignored the
its measurements. Consequently, no new information has been added to the residual filter
state vector.
The errors caused by operating the master and residual filters as described in the
previous paragraph become particularly noticeable at low C/N0 ratios. The filter rapidly
diverges if the satellite signals start at nominal C/N0 ratios and are then drastically low-
ered. The reason the algorithm diverges is that the covariance matrix of the residual filter
is continually reinitialized with the covariance matrix of the master filter. Because the sig-
nals start at nominal C/N0 ratios, the values in the master filter?s covariance matrix are
relatively small. When the signal levels are lowered, the residual filter?s covariance matrix is
reinitialized with the values from the master filter. At measurement updates of the master
filter, the residual filter?s covariance matrix is used as the measurement noise covariance
matrix. Since the C/N0 ratios are low, the residual filters basically ignore measurements
and the values in it?s covariance matrix remain relatively small. From the perspective of
the master filter, it is continuing to receive high quality measurements. Consequently, the
master filter covariance matrix does not properly increase when the C/N0 ratios decrease.
The error state recursions are used in Chapters 8 and 9 to avoid the problems asso-
ciated with the federated filtering architectures. The state vector of the master filter is
377
appended with states that model the errors in the residual filter. At measurement updates
of the master filter, the errors in the states of the master filter are observed along with the
appended states. The draw back to this method is that no measurement noise is present
in the measurements provided to the master filter. Consequently, the measurement noise
covariance matrix is all zeros. This can cause numerical problems when calculating the
Kalman gain. Equation (D.1) shows the equation typically used to calculate the Kalman
gain.
K(k) = P?(k)HT{HP?(k)HT +R}?1 (D.1)
When the measurement noise covariance matrix R is absent, the matrix resulting from
the product HP?(k)HT may not have full rank and the matrix inside the braces will not
be invertible. Techniques exist for dealing with situations where there is no measurement
noise and the matrix HP?(k)HT does not have full rank [Maybeck, 1978]. Luckily, an
ill conditioned matrix resulting from the product HP?(k)HT was not encounter in the
architectures used in Chapters 8 and 9. However, the federated filtering architecture with a
coupled channel pseudorange-state residual filter does introduce ill conditioned matrices and
numerical problems. The coupled channel pseudorange-state filter was generally avoided for
these reasons throughout the dissertation.
The error states appended to the master filter state vector are modeled on the error
state recursions. The recursions are derived in the following section.
378
D.3 Error State Recursions
The state update equation of the Kalman filter can be arranged into the form shown
in (D.2).
?x+(k) = A?x+(k?1)+K(k)?(k) (D.2)
In (D.2), the states of the filter are denoted by ?x and the superscripts + and - are used to
represent the states of the filter before and after measurement updates, respectively. The
discrete-time state transition matrix of the filter is denoted by A and the Kalman gain by
K. The residuals of the filter are represented by ? and are defined in (D.3).
?(k) = Hx(k)?H?x?(k)+v(k)
?(k) = Hx(k)?H{A?x+(k)}+v(k) (D.3)
?(k) = Hx(k)?HA?x+(k)+v(k)
Equation (D.3) expresses the filter residuals in terms of the true state vector x(k) and
the measurement noise vector v(k). Equations (D.2) and (D.3) are combined to form the
equations in (D.4).
?x+(k) = A?x+(k?1)+K(k)?(k)
?x+(k) = A?x+(k?1)+K(k){Hx(k)?HA?x+(k)+v(k)}
x(k) = Ax(k?1)+Bw(k?1) (D.4)
?x+(k) = A?x+(k?1)+K(k){HAx(k?1)+HBw(k?1)?HA?x+(k)+v(k)}
379
?x+(k) = A?x+(k?1)+K(k)HAx(k?1)+K(k)HBw(k?1)?K(k)HA?x+(k)...
+K(k)v(k)
In (D.4), the process noise vector is denoted by w(k). The error states of the filter
prior to and after the measurement update are defined in (D.5) and are expressed in terms
of the estimated states of the filter ?x+(k) and ?x?(k).
x(k)? ?x+(k) = ?x+(k) (D.5)
x(k)? ?x?(k) = ?x?(k)
?x+(k) = x(k)?A?x+(k?1)?K(k)HAx(k?1)?K(k)HBw(k?1)...
+K(k)HA?x+(k?1)?K(k)v(k)
?x+(k) = Ax(k?1)+Bw(k?1)?A?x+(k?1)?K(k)HAx(k?1)...
?K(k)HBw(k?1)+K(k)HA?x+(k?1)?K(k)v(k)
Using the definition of the error states ?x+(k?1), the propagation of the error states
after the measurement from time k?1 to time k is given in (D.6).
x(k?1)? ?x+(k?1) = ?x+(k?1)
?x+(k) = {A?K(k)HA}{x(k?1)? ?x+(k?1)}...
+{B?K(k)HB}w(k?1)?K(k)v(K) (D.6)
?x+(k) = {A?K(k)HA}?x+(k?1)+{B?K(k)HB}w(k?1)...
?K(k)v(k)
380
Similarly, using the definition of the error states ?x?(k ? 1), the propagation of the
error states before the measurement from time k?1 to time k is given in (D.7).
?x?(k) = A{I ?K(k?1)H}?x?(k?1)+w(k?1)... (D.7)
?AK(k?1)v(k?1)
The error state recursions can also be used to derive the autocorrelation sequence of the
Kalman filter. The autocorrelation of the error states prior to and after the measurement
update in steady state are given in (D.8).
E{[x(k+n)? ?x?(k+n)][x(k)? ?x?(k)]T} = [A?AKssH]nP?ss
E{[x(k+n)? ?x+(k+n)][x(k)? ?x+(k)]T} = [A?KssHA]nP+ss (D.8)
The steady state Kalman gain is denoted by Kss and the steady state covariance matrices
are represented by Pss.
The autocorrelation sequence of the Kalman filter can be particularly useful when
using suboptimal federated filtering architectures. If the error states are not appended to
the master filter?s state vector (a likely situation due to processing constraints), enough
time can be allowed to lapse between measurement updates of the master filter such that
the errors in the measurements appear to be white. The amount of time needed for the
errors in the residual filter to become sufficiently decorrelated for different situations can
be determined from the autocorrelation sequence.
381
Appendix E
Inertial Sensor Integration and Error Modeling
E.1 Introduction
This appendix describes how inertial measurement units (IMU?s) are integrated with
the GPS system in this dissertation. The measurements provided by IMU?s and how they
correspond to a receiver?s navigation states are explained. How the errors in the IMU?s
measurements are modeled are described. The basic Extended Kalman Filter (EKF) used
to blend the GPS and IMU measurements is also explained.
E.2 Strap down Inertial Measurement Units
Strapdown inertial measurements units are used in this dissertation. Strapdown IMU?s
provide specific force and angular rate measurements of the body upon which they are
fixed. Six degree of freedom IMU?s are used throughout the dissertation. A six degree of
freedom IMU provides measurements from three orthogonally mounted accelerometers and
from three orthogonally mounted gyros. The three accelerometers each measure the specific
force along their sensitive axes. Similarly, the three gyros each measure the angular rotation
rate about the three orthogonal axes [Chatfield, 1997]. The three orthogonal axes of the
IMU are referred to here as the body frame coordinate system.
The specific force measurements of the IMU are made in reference to the body frame
coordinate system. To process the these measurements, they are first converted into the
navigation frame. The navigation frame is the coordinate frame being used to track the
382
receiver?s navigation states. The coordinate frame rotation used to go from the body frame
to the navigation frame is shown in (E.1) [Wenger, 2002].
xn = Cnb xb (E.1)
where
Cnb =
?
??
??
??
?
c? ?s? 0
s? c? 0
0 0 1
?
??
??
??
?
?
??
??
??
?
c? 0 s?
0 1 0
?s? 0 c?
?
??
??
??
?
?
??
??
??
?
1 0 0
0 c? ?s?
0 s? c?
?
??
??
??
?
(E.2)
In (E.1), the matrix Cnb is referred to as the direction cosine matrix. The vectors
xb and xn represent the accelerometer measurements in the body and navigation frames,
respectively. The angles ?, ?, and ? are Euler angles and are generally referred to as roll,
pitch, and yaw when referenced to a local-level frame [Negast, 2009], respectively. The
Euler angles define the orientation of the body frame relative to the navigation frame.
Throughout this dissertation, the Earth-Centered Earth-Fixed (ECEF) coordinate
frame is used as the navigation frame. The ideal, noise-free specific force measurements
of the accelerometers in the navigation frame are related to the receiver?s acceleration by
(E.3) [Chatfield, 1997] .
?Pe +2?eie ? ?Pe +?eie ??eie ?Pe = ge +Se
where (E.3)
383
?eie =
?
??
??
??
?
0
0
?ie
?
??
??
??
?
In (E.3), the position of the receiver is denoted by Pe. The variable ?ie is the rotation
rate of the Earth in radians per second and ge represents the effects of gravity. The variable
Se represents the output of the accelerometer cluster after it has been rotated into the ECEF
frame [Chatfield, 1997]. Once expressed in the ECEF frame, the specific force measurements
of the IMU are easily integrated to compute the receiver?s change in velocity ( ?Pe) and
position (Pe).
In order to perform the coordinate frame rotation in (E.1), the attitude of the IMU
relative to the navigation frame must be known. After being initialized with the attitude
of the IMU, the change in the IMU?s orientation is calculated by using the angular rate
measurements of the three gyros. The ideal, noise-free angular rate measurements of the
gyro are related to changes in the Euler angles by (E.4) [Wenger, 2002].
?
??
??
??
?
??
??
??
?
??
??
??
?
=
?
??
??
??
?
1 sin?sin?cos? cos?sin?cos?
0 cos? ?sin?
0 sin?cos? cos?cos?
?
??
??
??
?
?
??
??
??
?
p
q
r
?
??
??
??
?
(E.4)
T? =
?
??
??
??
?
1 sin?sin?cos? cos?sin?cos?
0 cos? ?sin?
0 sin?cos? cos?cos?
?
??
??
??
?
(E.5)
384
The angular rate measurements of the IMU are denoted by p, q, and r. The change in
the IMU?s orientation is computed by integrating the equations in (E.4). It is important to
note that a singularity occurs in the equations in (E.4) when a pitch angle of ?/2 radians
is encountered.
E.3 Inertial Measurement Unit Error Modeling
The formulas relating the IMU measurements to the receiver?s acceleration (E.3) and
change in orientation (E.4) are ideal. In reality, the IMU?s measurements contain a multi-
tude of errors. In this dissertation, deterministic and stochastic IMU errors are modeled.
The deterministic errors are scale factor and cross-coupling errors. The stochastic errors
are white and time-correlated noise processes.
Scale factor errors are deviations of the input to output gradient of the instrument
from unity [Groves, 2008]. Cross-coupling errors are caused by misalignment of the three
axes in which the sensors are mounted. The scale factor and cross-coupling errors can be
expressed by the following matrices [Groves, 2008]:
M =
?
??
??
??
?
sx mxy mxz
myx sy myz
mzx mzy sz
?
??
??
??
?
(E.6)
The matrix M is different for the accelerometer and gyro outputs. The corrupted
output of the sensor is related to the actual measured quantities by [Groves, 2008]:
?f = (I3?3 +M)?f (E.7)
385
In (E.7), the true measured value is represented byf and the sensor output is denoted by ?f.
The symbol I3?3 represents a three by three identity matrix. The magnitude of the values
for the scale factor and cross coupling terms in (E.6) are determined by the grade of the
sensor in question.
Two types of noise process are modeled in the IMU outputs. A white noise process
and a 1st?order Gauss?Markov process are included in the IMU measurements. The
white noise process models errors in the measurements that are uncorrelated from one
measurement to another. The 1st-order Gauss-Markov process is used to model a slowly
wandering error in the IMU output [Wall, 2007]. The total error ? at time k is modeled as :
?(k) = b(k) +w(k) (E.8)
The white noise component of the error is denoted by w and the Gauss-Markov process
in represented by b. The statistical properties of the white noise term are given in (E.9).
w(k) ? N(0,?2w) (E.9)
E{w(i)w(j)} = ?2w?(i?j)
TheGauss-Markov sequenceisgeneratedfromthedifferenceequationin(E.10)[Wall, 2007].
b(k) = e??T? ?b(k?1)+v(k) (E.10)
386
v(k) ? N(0,?2v)
E{v(i)v(j)} = ?2v?(i?j)
In (E.10), the variable ? is referred to as the time constant of the process. The values
for ?2w, ?2v, and ? are dependent on the grade of IMU that is used.
E.4 Extended Kalman Filter for Tight and Deeply Integrated Architectures
An extended Kalman filter is used to estimate the navigation states of the receiver in
the GPS/INS systems studied in this dissertation. The states of the basic filter are shown
in (E.11).
?
??
??
??
??
??
??
??
??
??
?
P3?1
V3?1
A3?1
Baccel3?1
Bgyro3?1
Bclk2?1
?
??
??
??
??
??
??
??
??
??
?
=
?
??
??
??
??
??
??
??
??
??
?
Position States
Velocity States
Attitude States
Accelerometer Bias States
Gyro Bias States
Clock Bias and Drift States
?
??
??
??
??
??
??
??
??
??
?
(E.11)
In general, the dynamics of the states are nonlinear. The state propagation equations
for the position, velocity, attitude, bias, and clock states are given below.
x(k+1) = f(x(k),u(k),w(k))
387
P(k+1) = P(k) +?T ?V(k)+ ?T
2
2 ?C
n
b ? ?f
accel(k)? ?T2
2 ?C
n
b ?B
accel(k)...
+?T
2
2 ?C
n
b ?w
accel(k)+ ?T
2
2 ?G(P(k))??T
2 ??e
ie ?V(k)...
??T
2
2 ??
e
ie ??
e
ie ?P(k)
V(k+1) = V(k)+?T ?Cnb ? ?faccel(k)??T ?Cnb ?Baccel +?T ?Cnb ?waccel(k)...
??T ?G(P(k))?2?T ??eie ?V(k)??T ??eie ??eie ?P(k)
A(k+1) = A(k) +?T ?T? ? ?fgyro(k)+?T ?T? ?wgyro(k)??T ?T? ?Bgyro(k)
Baccel(k+1) = e? ?T?accel ?I3?3 ?Baccel(k) +vaccel(k) (E.12)
Bgyro(k+1) = e? ?T?gyro ?I3?3 ?Bgyro(k)+vgyro(k)
Bclk(k+1) = ??Bclk(k)+vclock2?1 (k)
? =
?
??
?
1 ?T
0 1
?
??
?
In (E.12), the function G(P(k)) is an Earth gravity model and is a function of the
receiver?s estimated position. The time between state updates is represented by ?T. The
symbol ?eie denotes the rotation rate of the Earth. The measurements of the accelerometer
and gyro cluster are denoted by the symbols ?faccel and ?fgyro, respectively. The variables
?gyro and ?accel are the time constants associated with the gyro and accelerometer biases,
respectively. The symbol I3?3 represents a 3 by 3 identity matrix. The wideband noise
present in the accelerometer and gyro measurements is denoted by waccel and wgyro, respec-
tively. Similarly, the noise driving the accelerometer and gyro bias states is represented by
vaccel and vgyro. The process noise driving the clock states is denoted by vclock
An error state extended Kalman filter is used to estimate errors in the propagated
states. The true states of the receiver x(k), the estimates of the filter ?x(k), and the errors
388
in the states of the filter ?x(k) at time k are related to each other through (E.13).
x(k) ? ?x(k)+?x(k) (E.13)
In general, the states of the system at the next time k + 1 are equal to a nonlinear
function of the states at time k, input vector u(k), and noise vector w(k) (E.14).
x(k+1) = f(x(k),u(k),w(k)) (E.14)
For the specific system in question here, the input vector u(k) represents the uncor-
rupted measurements from the IMU and the noise vector w(k) models the noise processes
in the IMU and receiver clock. Equation (E.14) is linearized about the current estimates of
the filter to produce (E.15).
x(k+1) = f(?x(k)+?x(k),u(k),w(k)) (E.15)
x(k+1) ? f(?x(k),u(k),0) +A??x(k)+B?w(k)
where
A = ?f(?)?x
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
B = ?f(?)?w
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
The vectors ?x(k) and w(k) are random variables and are assumed to be zero mean.
The state vector of the system is propagated forward in time by using (E.16).
?x(k+1) = f(?x(k),u(k),0) (E.16)
389
The errors in the propagated state vector at time (k+1) are therefore given in (E.17).
?x(k+1) ? x(k+1)? ?x(k+1) (E.17)
?x(k+1) ? x(k+1)?f(?x(k),u(k),0)
Using the linearization in (E.15), the mean and covariance of the state vector errors
are shown in (E.18).
E{?x(k+1)} ? 0N?1 (E.18)
E{?x(k+1)?xT(k+1)} ? AP(k)AT +BQ(k)BT
In (E.18), P(k) is the covariance matrix of the state errors at time k and Q(k) is the
covariance matrix of the process noise vector w(k).
In general, the measurements available to the filter are nonlinear functions of the states.
The measurements are subtracted by the nonlinear measurement function evaluated at the
propagated state vector ?x(k). The difference of the two quantities is approximately equal
to the state error vector multiplied by the partial of the measurement function with respect
to the state vector (E.19).
y(k) = g(x(k)) +v(k) (E.19)
y(k)?g(?x(k)) ? H ??x(k)+v(k)
where
H = ?g(?)?x
vextendsinglevextendsingle
vextendsinglevextendsingle
x=?x(k)
390
In (E.19), the measurement noise is denoted as v(k). The state vector errors are then
estimated using the standard Kalman filter measurement update equations by using the
matrix H as the observation matrix. The estimated state vector errors are then added to
the propagated states ?x(k). The updated state vector is then propagated forward in time
to the next measurement update time.
391