logo资料库

A Software-Defined GPS and Galileo Receiver.pdf

第1页 / 共185页
第2页 / 共185页
第3页 / 共185页
第4页 / 共185页
第5页 / 共185页
第6页 / 共185页
第7页 / 共185页
第8页 / 共185页
资料共185页,剩余部分请下载后查看
Cover
Contents
01 Signals and Systems
02 GPS Signal
03 Galileo Signal
04 GNSS Antennas and Front Ends
05 GNSS Receiver Operation Overview
06 Acquisition
07 Carrier and Code Tracking
08 Data Processing for Positioning
Problems
Appendix
MATLAB Code
GNSS Signal Simulation
Bibliography
Index
Kai Borre Dennis M. Akos Nicolaj Bertelsen Peter Rinder Søren Holdt Jensen A Software-Defined GPS and Galileo Receiver A Single-Frequency Approach Birkh¨auser Boston • Basel • Berlin
Contents Preface List of Figures List of Tables Abbreviations 1 Signals and Systems . . . . . . . 1.1 Characterization of Signals . . . . . . . . 1.1.1 Continuous-Time Deterministic Signals . . . . 1.1.2 Discrete-Time Deterministic Signals . . . . . . . . . . . . . . . . . 1.1.3 Unit Impulse . . . . . . . . . . . . . . 1.1.4 Rectangular Pulse . . . . . . . . . 1.1.5 Random Signals . . . . 1.1.6 Random Sequence of Pulses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Sampling . . . . . 1.3 Characterization of Systems . . . 1.4 Linear Time-Invariant Systems . . 1.5 Representation of Bandpass Signals . . . . . . . . . . . . . . . . ix xiii xvii xix 1 1 . . 2 . . 3 . . 3 . . 4 . . 6 . . 7 . . 8 . . . . 9 . . 12 . . 14 17 . . 17 . . 18 . . 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 GPS Signal 2.1 Signals and Data . . . . 2.2 GPS Signal Scheme . . . . 2.3 C/A Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi Contents . . . . . . . . . . . 2.3.1 Gold Sequence . . . . . 2.3.2 Gold Sequence Generation—Overview . . . 2.3.3 Gold Sequence Generation—Details . . . . . . . . . . . . . 2.3.4 Correlation Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Telemetry and Handover Words . . . 2.6.2 Data in Navigation Message . . . . . . . . . 2.4 Doppler Frequency Shift . . . . 2.5 Code Tracking . . 2.6 Navigation Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Galileo Signal . . . . . . . . . . . . . . . . . . . . 3.3 Message Structure . . . . 3.1 Signal Theoretical Considerations 3.2 Galileo L1 OS Signal . . . . . . Signal Generation . . . . . . . . Frames and Pages . . . . . . . . . . . . 3.2.1 . . . . 3.2.2 Coherent Adaptive Subcarrier Modulation . . 3.2.3 Binary Offset Carrier Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Forward Error Correction and Block Interleaving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Time and Clock Correction Parameters . . . 3.4.2 Conversion of GST to UTC and GPST . . . . 3.4.3 . . . . . . . . . . . 3.3.1 . . . 3.3.2 Cyclic Redundancy Check . . 3.3.3 Service Parameters . . . 3.5 The Received L1 OS Signal . . . 3.4 Message Contents . . . . . . . . . . . . . . . . . . . . . . . . . 4 GNSS Antennas and Front Ends Filter . . . . . . . . . . . 4.1 Background . . . . . 4.2 GNSS L1 Front-End Components . . . . . . . 4.2.1 GNSS Antenna . . . . . . . . 4.2.2 . . . . . . . . . . . 4.2.3 Amplifier . . . . 4.2.4 Mixer/Local Oscillator . . . . 4.2.5 Analog-to-Digital Converter . . . . . . . 4.3 Resulting Sampled Data 4.4 GNSS Front-End ASIC . . . . . . . . . . . 5.1 Receiver Channels 5 GNSS Receiver Operation Overview . . . . . . . . . . . . . . . . . . . . . 5.1.1 Acquisition . . . . . . 5.1.2 Tracking . . . . 5.1.3 Navigation Data Extraction . . . . . 5.2 Computation of Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Acquisition 6.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 . . . 21 . . . 22 . . . 25 . . . 26 . . . 27 . . . 28 . . . 29 . . . 30 31 . . . 31 . . . 33 . . . 34 . . . 35 . . . 37 . . . 42 . . . 42 . . . 42 . . . 43 . . . 45 . . . 46 . . . 48 . . . 49 . . . 50 53 . . . 53 . . . 55 . . . 55 . . . 57 . . . 59 . . . 59 . . . 61 . . . 64 . . . 66 69 . . . 69 . . . 70 . . . 71 . . . 72 . . . 73 75 . . . 75
Contents vii . . . . 6.2 Serial Search Acquisition . 6.2.1 6.2.2 Carrier Generation . . . . Integration and Squaring . 6.2.3 . . . PRN Sequence Generation . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Parallel Frequency Space Search Acquisition . 6.4 Parallel Code Phase Search Acquisition . . . . . . . . 6.5 Data Size . . . . . . . . . . . . . 6.6 Execution Time . . . . . . 6.7 Parameter Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Carrier and Code Tracking . . . . . . . . 7.1 Motivation . . . . . . . . . 7.2 Demodulation . . . . . . . . . . . 7.3 Second-Order PLL . . . . . . . . 7.3.1 Damping Ratio . . . . . . 7.3.2 Noise Bandwidth . . . . . . . . . 7.4 Carrier Tracking . . . . . . . . . . 7.5 Code Tracking . . . . . . . . . . . 7.6 Multipath . . . . . 7.7 Complete Tracking Block . . . . . 7.8 Pseudorange Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Data Processing for Positioning 8.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 Navigation Data Recovery . . . . 8.3 Computation of Satellite Position . 8.4 Pseudorange Estimation . . . . . . . . . . Finding the Bit Transition Time and the Bit Values . . . . . . . . . . . . . 8.2 Navigation Data Decoding . . . . . . . . . . . . 8.2.1 Location of Preamble . . . . . . . . . . . . . . 8.2.2 Extracting the Navigation Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.1 The Initial Set of Pseudoranges . . . . . . . . 8.4.2 Estimation of Subsequent Pseudoranges . . . . . . . . . . . . . . . . 8.5.1 Time . . . . . . . . 8.5.2 Linearization of the Observation Equation . . . . . . . 8.5.3 Using the Least-Squares Method . . . . . . . . . . . . . . . . 8.5.4 Real-Time Positioning Accuracy . . . . . . . . . . . . . . . . 8.6 Time Systems Relevant for GPS . . . . . . . . . 8.7 Coordinate Transformations . . . . . . . . . . . 8.8 Universal Transverse Mercator Mapping . . . . . . . . . . . . . . . . . . . . 8.9 Dilution of Precision . . . . . . . 8.10 World Geodetic System 1984 . . . . . . . . . . . . . . . 8.11 Time and Coordinate Reference Frames for GPS and Galileo . 8.5 Computation of Receiver Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Problems . . 76 . . 77 . . 77 . . 78 . . 78 . . 81 . . 84 . . 85 . . 86 87 . . 87 . . 87 . . 89 . . 92 . . 92 . . 93 . . 96 . . 101 . . 106 . . 107 109 . . 109 . . 109 . . 110 . . 110 . . 111 . . 114 . . 119 . . 119 . . 120 . . 121 . . 121 . . 122 . . 123 . . 125 . . 125 . . 127 . . 129 . . 130 . . 133 . . 134 137
viii Contents A MATLAB Code . . . . A.1 Structure of the Code . . A.2 The settings Structure . . . . . . . . . . A.3 Acquisition Function . . A.4 Tracking Function . . . . . . . . A.5 Function postNavigation . . . . . . . . . . . . . . . . . . . A.5.1 Pseudorange Computation . . . . . A.5.2 Position Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B GNSS Signal Simulation . . . . . . . B.1 GPS Signal Simulation . . . . B.2 Simulink Implementation . . . . B.2.1 C/A Code Generation . . . . . B.2.2 Navigation Data Generation . B.2.3 P Code Generation . . . . . . B.2.4 Combining the Signal Components B.2.5 Upper-Level Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3 Galileo Signal Generator . . . . B.4 Differences in Processing GPS and Galileo Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.4.1 Signal Differences . . . B.5 Differences in Signal Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliography Index 143 . . . 143 . . . 144 . . . 145 . . . 147 . . . 148 . . . 149 . . . 150 153 . . . 153 . . . 154 . . . 155 . . . 157 . . . 158 . . . 158 . . . 158 . . . 159 . . . 161 . . . 162 . . . 164 167 171
Preface Software-defined radios (SDRs) have been around for more than a decade. The first complete Global Positioning System (GPS) implementation was described by Dennis Akos in 1997. Since then several research groups have presented their contributions. We therefore find it timely to publish an up-to-date text on the sub- ject and at the same time include Galileo, the forthcoming European satellite- based navigation system. Both GPS and Galileo belong to the category of Global Navigation Satellite Systems (GNSS). SDR is a rapidly evolving technology that is getting enormous recognition and is generating widespread interest in the receiver industry. SDR technology aims at a flexible open-architecture receiver, which helps in building reconfigurable SDRs where dynamic selection of parameters for individual modules is possible. The receiver employs a wideband analog-to-digital (A/D) converter that captures all channels of the software radio node. The receiver then extracts, downconverts, and demodulates the channel waveform using software on a general-purpose pro- cessor. The idea is to position a wideband A/D converter as close to an antenna as is convenient, transfer those samples into a programmable element, and apply digital signal processing techniques to obtain the desired result. An SDR is an ideal platform for development, testing of algorithms, and possible integration of other devices. We have chosen MATLAB® (version 7.x) as our coding language because MATLAB is the de facto programming environment at technical univer- sities, it is a flexible language, and it is easy to learn. Additionally, it provides excellent facility for the presentation of graphical results. The concepts of the present project crystallized nearly 10 years ago. At that time the technology was not mature enough to be fully realized. Today the various elements of this interactive book and companion DVD work, and work together:
x Preface – The main text, which describes a GNSS software-defined radio; – A complete GPS software receiver implemented using MATLAB as well as sample data sets—available on the companion cross-platform DVD— allowing readers to change various parameters and immediately see their effects; – A supplementary, optional USB GNSS front-end module, which eventually converts analog signals to digital signals on a Windows or Linux system (ordering instructions for this hardware can be found on the bundled DVD). The signals are imported into MATLAB via the USB 2.0 port. With all three elements, readers may construct their own GNSS receivers and will be able to compute a position. Is this not exciting? A GNSS software receiver is by no means a simple device. The one presented in this book is a single-frequency receiver using the C/A code on L1 for GPS. This choice has been made for various reasons. First, it keeps the receiver architecture fairly simple. Second, with the orbital, clock and ionospheric corrections, as well as the integrity provided by satellite-based augmentation systems (SBAS) such as the European Geostationary Navigation Overlay System (EGNOS) and Wide Area Augmentation System (WAAS), L1 accuracies rival that of dual frequency GNSS receivers. Only future GNSS wideband signals or additional power will offer performance improvements over the L1 band. Lastly, the forthcoming Euro- pean Galileo system will offer an L1 component that will provide greater avail- ability with its additional full constellation of satellites. We include a description of the binary offset carrier (BOC) modulation, which is to be used in Galileo, to allow readers to get acquainted with the new signal type. The book considers the design of the front-end module, explaining how it is possible to split the enormous amount of information contained in the antenna sig- nal into parts related to the individually tracked satellites. Details on purchasing the front-end module designed for this text can be found at: http://ccar.colorado. edu/gnss. A complete GPS software receiver was implemented in MATLAB. The receiver is able to perform acquisition, code and carrier tracking, navigation bit extraction, navigation data decoding, pseudorange estimation, and position computations. We were told that nowadays a textbook comes with overheads prepared for the class- room so that the lecturer’s job is minimized. Actually we have used most of the present text for various courses during 2004 and 2005, and we are happy to make this material readily available; it can be downloaded from: gps.aau.dk/softgps. What follows here is a brief overview of the book’s contents and coverage of top- ics. Chapter 1 contains a short introduction to deterministic and random signals. All GNSS codes build on an elementary pulse signal. We investigate its amplitude spectrum, autocorrelation function, and its Fourier transform, viz. the power spec- trum. The important sampling process is described. Next, systems and especially
分享到:
收藏