Implementation of a Software-based GPS Receiver by pdl20154

VIEWS: 84 PAGES: 23

									Implementation of a Software-
based GPS Receiver


   Anthony J. Corbin
   Dr. In Soo Ahn

   Thursday, May 20, 2010
Overview
 Progress
 Flowcharts
   Acquisition
   Tracking
   Position Calculation
 Software Organization
 Changes to Project Objectives
 Results
   DLL/PLL Tracking
   Position
 Updated Schedule
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.
Coarse Acquisition
 Coarse acquisition searches around the
  intermediate frequency in the range +/- 10
  KHz with a step of 500 Hz
 Frequency Domain Correlation

   L1 C/A Code
                          FFT   conj
    Generator


                                       IFFT   SNR   > Threshold?   No



                  +/- 10 KHz                            Yes
                                FFT
                 500 Hz Step

                                                     Acquired
                                                     Satellite
Fine Acquisition
 Uses the frequency estimate from Coarse
  Acquisition to obtain a better estimate
 The overall functionality is very similar to
  Coarse Acquisition


                                                                              FFT


                                                                                           IFFT         MAX Index
10 L1 C/A Code Samples   Length          2^(n+1)           FFT Size
                                                                                                                         Carrier Estimate


                                                                                           Sampling Frequency/FFT Size


                                  L1 C/A Code Generator   Zero Append   FFT         conj
Tracking
                                                           Signal

                                         Phase Remainder




  Carrier Frequency                  I




                                     Q

                                                                                       Carrier
                                                                              I_P
                                                                                    Discriminator

                                                                    P
                                                                        Q_P




                                            L1 Code
         Chipping Length Generator                                            I_E
                                           Remainder
                                                                    E


                                                                        Q_E
                                                                                                        Code
                                                                                                    Discriminator



                                                                              I_L
                                                                    L


                                                                        Q_L
Delay-Locked Loop [1]
Position Calculation
                                                      Ephemeris Data




                                                     Satellite Positions




                X RCV  X SAT 1   YRCV  YSAT 1   Z RCV  Z SAT 1     
                                                                     1 X   1   RCV   SAT 1  ct 1 
                       1               1               1
                                                                       .                 .                
Pseudoranges           .                .                .           .                                   
                                                                         .                .                
                        .                .                .           .                                    
                                                                       ct               .                
               
                       .                .                .           .
                                                                       



                                                      Solve using QR              Update Receiver
                                                       Factorization                 Position
Functional Software Diagram
                                  Timestamp

            010101                  Size

                                   Sample

                          .
                          .
                          .
                          .
                                       Samples                                          Timestamp

                                                                                         Position

                                                                                         Position

                                                                                    .
                                                                                    .
                                     Acquire                                        .
                                      Track                                         .
                                                           Position Vectorization           Positioning
                                      Satellite
                              .
                              .
                              .
                              .


            Acquisition                       Satellites


        Pseudoranging

        Ephemeris Data
          Collection
                                   Acquired Satellites
  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.




16368 Samples * 2 arms * 3alignments
                                      98.2 Million Multiplies/ s
                ms
USB GPS Dongle
 USB 2.0 Interface
 Simple software
  interface
C/A Code Tracking
 The graphs to the
                        5


                        0
                             0   200   400   600   800   1000   1200   1400   1600   1800   2000




  right show the
                        -5


                       -10


                       -15




  code error output    -20


                       -25




  from the delay-      -30


                       -35




  locked loop.
                       -40


                       -45




 The parameters        5




  have been selected
                        0
                             0   20    40    60    80    100     120    140    160    180    200

                        -5



                       -10




  in such a way that   -15



                       -20




  the loop converges
                       -25


                       -30




  very quickly.
                       -35


                       -40



                       -45
Carrier Tracking
 Carrier error is shown
  on the right with
  respect.
 In this example, the
                            30


                            20




  frequency of the          10




  carrier appears to be
                             0
                                  0   5000   10000   15000   20000   25000   30000

                            -10




  drifting further below
                            -20


                            -30




  the intermediate          -40




  frequency.
                            -50


                            -60




 This is an illustration
  of the Doppler Effect.
Navigation Data
 The figures to the
                        6000




                        4000




  right show resolved   2000




  50 Hz navigation         0
                                0   5000   10000    15000      20000          25000          30000




  data.
                        -2000




                        -4000




 The top graph         -6000




  shows 32s of data,    6000




  while the bottom
                        4000




  graph shows 3s.
                        2000




                           0
                                0    500     1000       1500           2000           2500           3000


                        -2000




                        -4000




                        -6000
Position Results



                   51.81 m
Position Results




                   104.4 m
Current Display
 The display
  currently uses a
  console window.
 A GUI could be
  written in any
  language.
Speed
 Currently the C++
  code requires
  under a minute                         7




  (per satellite) to                     6




  read a full 36 s of                    5




  satellite data.

                        Time (Minutes)
                                         4

                                                            Tracking

                                         3



 Compare this with                      2



  the Matlab code                        1




  which takes 6                          0
                                             C++   Matlab



  minutes per
  satellite.
Intel Threading Building Blocks
 Intel’s TBB is a library for creating
  threaded programs
 Platform independent
 Relatively easy to use
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.
Real-time Functionality
                                                                   Estimate Position




                                                    Estimate new
                                                   satellite position
                                                                                      Estimate
                                                       given the
                                                                                   pseudoranges.
                                                   difference in the
                                                     time stamps.




                                                                               Use the current carrier
                            Extract ephemeris       Collect a small             estimate to perform a
      Collect 36s of data
                            data and calculate    data sample with a             frequency domain
      with a timestamp.
                              initial position.       timestamp.               correlation with 1 ms of
                                                                                  the small sample




                                                                               Using the entire small
                                                                                sample estimate the
                                                                                   current carrier
                                                                               frequency and save it.
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
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.

								
To top