implementation of a software- based gps receiver anthony j. corbin dr. in soo ahn thursday, june 25,...

23
Implementation of a Software-based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Monday, June 27, 2022

Post on 15-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Implementation of a Software-based GPS Receiver

Anthony J. CorbinDr. In Soo Ahn

Friday, April 21, 2023

Page 2: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Overview Progress Flowcharts

Acquisition Tracking Position Calculation

Software Organization Changes to Project Objectives Results

DLL/PLL Tracking Position

Updated Schedule

Page 3: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

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.

Page 4: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Coarse Acquisition Coarse acquisition searches around the

intermediate frequency in the range +/- 10 KHz with a step of 500 Hz

Frequency Domain Correlation

FFTL1 C/A Code

Generator

+/- 10 KHz500 Hz Step

FFT

conj

IFFT SNR > Threshold?

Acquired Satellite

Yes

No

Page 5: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Fine Acquisition Uses the frequency estimate from Coarse

Acquisition to obtain a better estimate The overall functionality is very similar to

Coarse Acquisition

10 L1 C/A Code Samples 2^(n+1)Length FFT Size

Zero AppendL1 C/A Code Generator

FFT

FFT conj

IFFT MAX Index

Sampling Frequency/FFT Size

Carrier Estimate

Page 6: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Tracking

I

Q

Carrier Frequency

Phase Remainder

L1 Code Remainder

Chipping Length Generator

P

E

L

Signal

I_P

I_L

I_E

Q_P

Q_L

Q_E

Code Discriminator

Carrier Discriminator

Page 7: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Delay-Locked Loop [1]

Page 8: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Position Calculation

Ephemeris Data

Pseudoranges

Satellite Positions

.

.

.

.

.

....

....

....

1 111

1

1

1

1

1

1 tc

tc

XZZYYXXSATRCV

SATRCVSATRCVSATRCV

Solve using QR Factorization

Update Receiver Position

Page 9: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Functional Software Diagram

Acquire

Track

Satellite

Satellites

.

.

.

.

Timestamp

Size

Sample

Samples

.

.

.

.

010101

Timestamp

Position

Position

Positioning

.

.

.

.

Acquired Satellites

Pseudoranging

Acquisition

Ephemeris Data Collection

Position Vectorization

Page 10: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

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.

sMultipliesMillionms

alignmentsarmsSamples/2.98

3*2*16368

Page 11: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

USB GPS Dongle USB 2.0 Interface Simple software

interface

Page 12: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

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.

-45

-40

-35

-30

-25

-20

-15

-10

-5

0

5

0 20 40 60 80 100 120 140 160 180 200

-45

-40

-35

-30

-25

-20

-15

-10

-5

0

5

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Page 13: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

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.

-60

-50

-40

-30

-20

-10

0

10

20

30

0 5000 10000 15000 20000 25000 30000

Page 14: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Navigation Data

-6000

-4000

-2000

0

2000

4000

6000

0 5000 10000 15000 20000 25000 30000

The figures to the right show resolved 50 Hz navigation data.

The top graph shows 32s of data, while the bottom graph shows 3s.

-6000

-4000

-2000

0

2000

4000

6000

0 500 1000 1500 2000 2500 3000

Page 15: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Position Results

51.81 m

Page 16: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Position Results

104.4 m

Page 17: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Current Display The display

currently uses a console window.

A GUI could be written in any language.

Page 18: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

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.

0

1

2

3

4

5

6

7

C++ Matlab

Tim

e (M

inu

tes)

Tracking

Page 19: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Intel Threading Building Blocks

Intel’s TBB is a library for creating threaded programs

Platform independent Relatively easy to use

Page 20: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

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.

Page 21: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Real-time Functionality

Collect 36s of data with a timestamp.

Extract ephemeris data and calculate

initial position.

Collect a small data sample with a

timestamp.

Use the current carrier estimate to perform a

frequency domain correlation with 1 ms of

the small sample

Using the entire small sample estimate the

current carrier frequency and save it.

Estimate pseudoranges.

Estimate new satellite position

given the difference in the

time stamps.

Estimate Position

Page 22: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

Updated Schedule

Week Activity 1/23-1/26 GPS Acquisition Software 1/27-2/2 Develop C++ Tracking Algorithm 2/3-2/9 Develop C++ Tracking Algorithm 2/10-2/16 Develop software to calculate position 2/17-2/23 Documentation and software design 2/24-3/1 Redevelop software with updated design using lessons

learned from initial development 3/2-3/8 Continue redevelopment 3/9-3/15 Debug and document redesign 3/16-3/22 Continue debugging and documenting 3/23-3/29 Design display 3/30-4/5 Develop and test display 4/6-4/12 Develop and test display 4/13-4/19 System debugging and documentation 4/20-4/26 System debugging and documentation 4/27-5/3 System debugging and documentation

Page 23: Implementation of a Software- based GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Thursday, June 25, 2015

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.