/gps

A software GPS correlater

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

GPS Experiments

This is a software correlator for GPS. Our primary reference for FFT-based correlation was Andrew Holme's homebrew GPS receiver documentation, which we highly recommend for background.

This project is currently the focus of the 2017 ECE capstone team. The Python prototype developed will be used in conjunction with the data generator to develop revised hardware, and higher performance algorithms. Once the hardware and software perform adequately, they will be implemented into launch hardware for the rocket and OreSat.

Progress

  • Python Protoype
    • Acquisition
      • Generate C/A Codes
      • Acquire satellite
      • Acquire satellites with Doppler shifts
      • Acquire all satellites in launch data
    • Tracking
      • Lock on to plain carrier signal
      • Lock on to plain code signal
      • Lock on to plain carrier + code signal
      • Lock on to generated GPS satellite data
      • Lock on to satellite signal from launch data
    • Navigation
      • Interpret almanac data
      • Use TOW to calculate coarse location
      • Get precise location using code phase
      • Track position changes (velocity)
      • Kalman filter PVT data

Documentation

To learn more about the theory about how GPS and the software works, you can browse the Jupyter notebooks located in the /notebooks folder.

Reading List

These are books about GPS theory that we found helpful while working on the code: