https://github.com/williamyang98/gps_correlation
Displays correlation data for GPS signal
https://github.com/williamyang98/gps_correlation
dsp gps gps-receiver rtlsdr sdr
Last synced: about 1 year ago
JSON representation
Displays correlation data for GPS signal
- Host: GitHub
- URL: https://github.com/williamyang98/gps_correlation
- Owner: williamyang98
- License: mit
- Created: 2023-01-28T10:11:04.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-02-13T06:58:39.000Z (over 2 years ago)
- Last Synced: 2025-04-01T19:19:06.756Z (about 1 year ago)
- Topics: dsp, gps, gps-receiver, rtlsdr, sdr
- Language: C
- Homepage:
- Size: 709 KB
- Stars: 5
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Introduction
[](https://github.com/williamyang98/GPS_Correlation/actions/workflows/x86-windows.yml)
Displays the correlation peaks when attempting to acquire a GPS signal.
Useful to debug in realtime whether a gps signal is present allowing for quick adjustments to location or orientation of antenna.
This is quite useful when using software like [GNSS-SDRLIB](https://github.com/taroz/GNSS-SDRLIB) which doesn't expose this data in realtime. Instead limited information is only shown in a text window which only updates every few seconds.
This is not GPS decoding software, it is only used for testing whether or not your gps receiver has a valid signal.
# Gallery

# Useful links
1. How GPS PRN codes are generated [link](https://natronics.github.io/blag/2014/gps-prn)
2. How GPS spread codes work [link](https://natronics.github.io/blag/2014/gps-spreading/)
3. Instructions for running SDR software for decoding GPS signals [youtube-link](https://www.youtube.com/watch?v=YG2fJRTAoHA)
4. Website for determining which satellites are visible from your location [gnss-radar](http://taroz.net/GNSS-Radar.html)
# Build instructions
1. Use windows with C++ Visual Studio development tools and vcpkg installed.
2. Clone repository with submodules.
3. Open up the x64 C++ developer environment for Visual Studio.
4. Configure cmake: ```cmake . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=C:\tools\vcpkg\scripts\buildsystems\vcpkg.cmake```
5. Build: ```cmake --build build --config Release```
# Run instructions
Refer to ```./build/Release/gps_corr.exe -h``` for instructions.
Check each PRN code from 1 to 32 and see if there are any correlation peaks. If there is a stable and prominent peak then a satellite is visible. You can then adjust your antenna's position for the best receptin in realtime.
| Usage | Command |
| --- | --- |
| Running from RTLSDR v3 dongle | ```./get_live_samples.sh \| ./gps_corr.exe -F u8``` |
| Generating synthetic GPS data | ```./generate_gps_data.sh``` |
| Running on synthetic GPS data | ```./gps_corr.exe -i data/gpssim_s8.bin -A -F s8``` |
**NOTE**: Synthetic GPS data has satellites with PRNs of ```[2,5,12,13,14,15,18,21,22,24,25,26,29]```
**NOTE**: Use [gnss-radar](http://taroz.net/GNSS-Radar.html) to quickly skip to the most likely satellites in your location when reading from your RTLSDR v3 blog dongle.