Raw GPS signal samples data set for testing GPS receivers

9-Oct-2016

Fellow New Zealander Mike Field has been developing his own GPS processing software using this data set as input. He sent us a calculated position and some NAV frame data.
Thanks Mike!

Time parameters for Space Vehicle 1
This may be helpful for verifying that you are decoding NAV frame 1 messages correctly

Week No    1608 (note - 1023 has been added)
Accuracy   0
Health     63
IDOC       29
T_gd       = -1.909211277961731e-008;
T_oc       = 468000;
a_f2       =  0;
a_f1       = -3.637978807091713e-012;
a_f0       = -0.00018144771456718445;

Orbit parameters for Space Vehicle 1
This may be helpful for verifying that you are decoding NAV frame 2 and 3 messages correctly
iode      0x1D
M0        = 0.62771227171855348;
delta_n   = 4.5551897419368644e-009;
e         = 0.0044012551661580801;
sqrt_A    = 5153.5262393951416;
omega_0   = 0.54383810776010433;
i_0       = 0.96682775824546008;
w         = 0.94870461852108878;
omega_dot = -8.1653401191908879e-009;
idot      = -5.7502395205569635e-011;
Cuc       = -3.6451965570449829e-006;
Cus       = 6.5993517637252808e-006;
Crc       = 254.875;
Crs       = -73.15625;
Cic       = 1.3038516044616699e-008;
Cis       = 1.3038516044616699e-008;
Toe       = 468000;
(note - this may still have some minor errors in the correction factors)


Calculated position of Space Vehicle 1
This may be helpful for verifying your orbit calculations.
T (raw)       :        466728.880214
T (corrected) :        466728.880396
X             :      10716730.587792
Y             :     -11197225.083927
Z             :      21436792.054187

Where the samples were taken:
It was at approximately 52.934N, 1.165W:



An FFT-based acquisition correlator:
SearchFFT.cpp
Makefile


3-Sep-2013

Raw GPS signal sample data can be a little hard to find on the net. Here is a 56 MB file containing about 77 seconds of data: gps.samples.1bit.I.fs5456.if4092.bin
It was copied and re-formatted from Michele Bavaro's excellent GPS blog, although the file is not there now: michelebavaro.blogspot.com

The parameters of the file are: 1-bit sign I-only data (not I&Q, not 2 or 3-bit sign & magnitude), bit-packed Little Endian (i.e. start with bit 0 of byte 0), sample rate fs = 5.456 MHz, IF = 4.092 MHz (i.e. not a zero-IF signal -- you have to mix (xor) with 4.092 MHz in addition to the C/A code). As Michele's post mentions if your decoding works you should get a lat/lon position in Nottingham, UK.

I used this file as input to a software simulation I wrote of the FPGA tracking parts of Andrew Holme's wonderful homemade GPS receiver documented here: aholme.co.uk/GPS

Just using Andrew's FFT-based C++ search code alone immediately finds five signals:

SV-0 PRN-1 lo_shift 6 ca_shift 1465 snr 108.7
SV-20 PRN-21 lo_shift 8 ca_shift 686 snr 121.7
SV-28 PRN-29 lo_shift -9 ca_shift 3868 snr 167.2
SV-29 PRN-30 lo_shift -9 ca_shift 2998 snr 145.2
SV-30 PRN-31 lo_shift -8 ca_shift 2337 snr 121.3