Implementation of a Softwaredefined GPS Receiver Anthony J
- Slides: 45
Implementation of a Software-defined GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Wednesday, November 25, 2020
Overview o o o Rationale System Description Software Architecture n Coarse Acquisition n Fine Acquisition n Tracking n Positioning Progress/Results Conclusion/Achievements
Rationale o Reduce Cost n o Eliminates ASICs or other custom ICs More Upgradeable n n GPS Block III Galileo
Cost o o Cost is driving the mass-adoption of GPS devices Currently, a GPS chipset in volume costs around $5 8 The software GPS chipset, which is currently being produced in low volume, costs around $4 2 In high-volume, the cost of a software GPS chipset would likely become negligible
Upgradeable o o China and the European Union are developing their own systems 7 Russia already has its own system, but is working on making it more compatible with other systems 6 The U. S. is beginning work on Block III GPS satellites For a software-defined receiver, a simple software patch would be, in many cases, sufficient to use these systems
Equipment List
High-Level Block Diagram
USB GPS Dongle o o USB 2. 0 Interface Simple software interface
Subsystem Requirements
Position Error o o Estimated position is based on the sampling rate being 4 times the chipping rate. ¼ of the distance represented by a chip is therefore the approximate error.
Time to First Fix o o A position fix requires that the ephemeris data is completely received. This requires a complete frame of data, which takes 30 s to transmit. However, it is unlikely that the receiver shall begin collecting data at the beginning of a subframe indicating that an extra subframe lasting 6 s must be received. If the ephemeris data has already been received, the fix time is minimal. [1]
Functional Software Diagram
Satellite Object
Software Architecture
Coarse/Acquisition Code Generation o o A generated C/A code sample is shown to the right. The signal generated is based on the pseudorandom sequence generation shown on the next slide.
C/A Code Generation [1]
Coarse Acquisition o o Coarse acquisition searches around the intermediate frequency in the range +/- 10 KHz with a step of 500 Hz Frequency Domain Correlation
Frequency Domain Correlation o o o The correlation value must be checked at every code alignment. To perform this quickly, the operation is performed in the frequency domain. As shown in the right, cross-correlation is equivalent to the product of X*(w) and Y(w) in the frequency domain.
C/A Code Characteristics o o o Repeats every 1023 chips Cross-correlation between two satellites’ C/A codes is minimal Correlation value is only large when the code is perfectly aligned with itself.
Cross-Correlation o o The first 3 D graph shows the crosscorrelation between C/A codes for different satellites for the perfectly aligned case, while the second shows a misaligned case. The crest in the first graph shows correlation values for the same satellite in the perfectly aligned case.
Correlation Result o o The graph to the right shows the results of a correlation between sample data and a known C/A code The large peak indicates the proper code alignment
Coarse Acquisition – Satellite Search
Coarse Acquisition – IF Search
Fine Acquisition o Uses the frequency estimate from Coarse Acquisition to obtain a more accurate estimate
Tracking o o o Tracking occurs in the time domain A Delay-Locked Loop tracks the Code Frequency A Phase-Locked Loop tracks the Carrier Frequency
Delay-Locked Loop [1] o o o The DLL tracks the Code Frequency by generating two extra C/A code sequences The extra sequences are shifted slightly early and slightly late with respect to the prompt sequence The differences in the correlation values, as shown below, indicates the direction in which the prompt sequence must be shifted
C/A Code Tracking o o The graphs to the right show the code error output from the delay-locked loop. The loop parameters have been refined through testing to allow for fast convergence.
Carrier Tracking o o o A carrier error signal is shown on the right. In this example, the frequency of the carrier appears to be drifting further below the intermediate frequency. This is due to the Doppler Effect.
Navigation Data o o The figures to the right show resolved 50 Hz navigation data after coarse acquisition, fine acquisition, tracking, and post-processing has occurred. The top graph shows 32 s of data, while the bottom graph shows 3 s.
Position Calculation
Progress o MATLAB GPS software [1] has been ported to C++ n This includes: o o o Coordinate conversion Tracking loop Acquisition algorithms DSP design approach was abandoned due to technical issues at a very early stage of the project. C++ code can accurately find a position from stored sample data. Developed code has been restructured to run in parallel.
Position Results 51. 81 m
Position Results 104. 4 m
Position Results
Speed o o Currently the C++ code requires under a minute (per satellite) to read a full 36 s of satellite data. Compare this with the Matlab code which takes 6 minutes per satellite.
Intel Threading Building Blocks o o o Intel’s TBB is a library for creating threaded programs Platform independent Relatively easy to use
Changes to Project Objectives o o o Finding the satellite positions requires an accurate time…requiring collection of at least subframes 1 -3 of the ephemeris data The equation below shows the number of multiplications per second required to track one satellite. This does not include C/A code generation, carrier demodulation, or the overhead involved with sampling. The DSP considered is clocked at 225 MHz which is simply not fast enough.
Scheduling o o Telemetry and Handover words contain a Time-of. Week value that can be used to update the position of the satellites The TLM/HOW words are sent at the beginning of each subframe which occurs every 6 seconds
Scheduling o o Scheduling allows a minimal set of data to be used for position computation Orbital data is typically valid for several hours
Conclusions o o Results show that implementation is practical on modern PCs However, application in low cost embedded systems is several years out
Achievements o o o Successful determination of position Real-time satellite availability determination Working C++ based receiver code n n o o o Stored data Received data using USB sampler Wrapped the driver code for the USB device in C++ Multi-threaded object-oriented design Google Earth C++ class wrapper
Recommendations for Future Work o o Continue enhancing code for further improvements. Research neural network approaches.
References o o o o [1] Kai Borre, Dennis M. Akos, Nicolaj Bertelsen, Peter Rinder, and Soren Holdt Jensent, Software-Defined GPS and Galileo Receiver : A Single-Frequency Approach. Birkhauser: Boston, 2007, pp. 29, 83, 105. [2] Si. Ge, SE 4110 L-EK 1 Evaluation Board User Guide. [3] Si. Ge, SE 4110 L Datasheet. [4] U. S. Do. D, Navstar GPS Space Segment/Navigation User Interfaces. IS-GPS-200 Rev. D. [5] U. S. Do. D, World Geodetic System 1984 : Its Definition and Relationships with Local Geodetic Systems [6] Wikipedia, GLONASS. <http: //en. wikipedia. org/wiki/GLONASS> [7] Wikipedia, GALILEO. <http: //en. wikipedia. org/wiki/Galileo_gps> [8] EDACafe. com. Atmel Introduces $5 GPS Baseband IC With 3 Meter Accuracy. <http: //www 10. edacafe. com/nbc/articles/view_article. php? articlei d=177910&page_no=2>
Real-time Functionality
Updated Schedule
- How does gps work
- Gps gps gps
- Gps receiver
- "defense advanced gps receiver"
- "defense advanced gps receiver"
- "defense advanced gps receiver"
- "defense advanced gps receiver"
- An/psn-13 defense advanced gps receiver
- Visual descent point
- "defense advanced gps receiver"
- "defense advanced gps receiver"
- "defense advanced gps receiver"
- Persuasion matrix example
- Vectron
- Default media receiver chromecast
- Multimedia message from 4735
- Satellite tv receiver
- Sensitivity of receiver formula
- Diy sdr receiver
- Rao
- Sherwood transceiver ratings
- Dbs tv receiver block diagram
- Dts rx1 wiring diagram
- Iportal.umh.edu
- Elf receiver
- Transmitter to receiver
- Pcm advantages and disadvantages
- With mixing
- Direct conversion receiver
- Permit receiver roles and responsibilities
- Rdt3.0 receiver
- Cell broadcast receiver
- Sender and receiver
- Optimal receiver
- Wide receiver positions x y z
- Forwarder receiver design pattern
- Meaning of cell broadcast
- Cell broadcast receiver
- Cell broadcast receiver android
- Baseband receiver in digital communication
- Chromecast custom receiver
- Dbs tv receiver block diagram explanation
- Wireless network capacity
- Information source transmitter channel receiver destination
- Bw contest
- Sender, receiver, occasion and tasks are: