Raw GPS signal samples data set for testing GPS receivers


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:


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