Download presentation
Presentation is loading. Please wait.
1
Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015
2
Overview Progress Flowcharts Acquisition Tracking Position Calculation Software Organization Changes to Project Objectives Results DLL/PLL Tracking Position Updated Schedule
3
Progress MATLAB GPS software [1] has been ported to C++ This includes: Coordinate conversion Tracking loop Acquisition algorithms DSP design approach was abandoned due to technical issues which will be discussed later. C++ code can accurately find a position from stored sample data.
4
Coarse Acquisition Coarse acquisition searches around the intermediate frequency in the range +/- 10 KHz with a step of 500 Hz Frequency Domain Correlation
5
Fine Acquisition Uses the frequency estimate from Coarse Acquisition to obtain a better estimate The overall functionality is very similar to Coarse Acquisition
6
Tracking
7
Delay-Locked Loop [1]
8
Position Calculation
9
Functional Software Diagram
10
Changes to Project Objectives 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.
11
USB GPS Dongle USB 2.0 Interface Simple software interface
12
C/A Code Tracking The graphs to the right show the code error output from the delay- locked loop. The parameters have been selected in such a way that the loop converges very quickly.
13
Carrier Tracking Carrier error is shown on the right with respect. In this example, the frequency of the carrier appears to be drifting further below the intermediate frequency. This is an illustration of the Doppler Effect.
14
Navigation Data The figures to the right show resolved 50 Hz navigation data. The top graph shows 32s of data, while the bottom graph shows 3s.
15
Position Results 51.81 m
16
Position Results 104.4 m
17
Current Display The display currently uses a console window. A GUI could be written in any language.
18
Speed 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.
19
Intel Threading Building Blocks Intel’s TBB is a library for creating threaded programs Platform independent Relatively easy to use
20
Real-time Functionality Taking a direct approach to implementing real-time functionality appears to be extremely difficult (possibly impossible) given current hardware limitations. However, a possibility exists, which may feasibly yield results.
21
Real-time Functionality
22
Updated Schedule
23
References [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] SiGe, SE4110L-EK1 Evaluation Board User Guide. [3] SiGe, SE4110L Datasheet.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.