GPSDO Simulation



A quick and cheap way to experiment with algorithms and performance of GPSDO (GPS Disciplined Oscillators) is to simulate one in software. A real world GPSDO, such as a HP Z3801A or Trimble Thunderbolt, compares time pulses delivered by GPS receiver board with time pulses derived from a 10 MHz OCXO and slowly adjusts the frequency of the OCXO to minimize the phase difference.

Simulating GPS averaging algorithms, 1PPS phase detector, tuning algorithms, EFC and DAC are all possible. Note that to test these functions one does not also need to simulate a GPS engine or a OCXO. Instead, real GPS and real OCXO data can be used for this purpose.

So here are two large data files to use in a GPSDO simulation. Each contains 400,000 1 Hz samples (more than 4 days long), which allows one to compute ADEV out to tau 1 day if desired.

File gps.dat.gz (550 KB) is the raw 1PPS output of a GPS receiver as compared to a stable reference. Units are seconds. I suggest removing the arbitrary phase offset (about 4.74 µs) and frequency offset (about -4.77 × 10-13) before using the data for simulation. This is a particularly nice GPS 1PPS source (the raw output a Motorola M12+T with hardware sawtooth correction) and so makes a good input to a GPSDO simulation program.

File ocxo.dat.gz (2714 KB) is a series of 1 Hz phase measurements of the output of a 10 MHz OCXO as compared to a stable reference. Units are seconds. You will notice that the average frequency offset is about -1.56 × 10-10 and the frequency drift rate is about -5.5 × 10-11 / day. This is a good quality OCXO with short-term stability between 2 to 4 × 10-12 all the way out to tau 1000 s.

This is enough data to thoroughly experiment with discipline algorithms and time constants from minutes to hours. Note that noise could be added to simulate a less well-performing GPS engine or a less stable OCXO.

GPSDO simulation program

See gpsim1.c (source code) and gpsim1.exe (Windows EXE).

Live GPS 1PPS data files

File gps-em406a.txt.gz -- Sparkfun EM-406A (SiRF III) 1PPS

File gps-mg1613s.txt.gz -- Skylab SKG16B (MG1613S) 1PPS

File gps-mtk3339.txt.gz -- Adafruit "Ultimate GPS" (MTK3339 chipset) 1PPS

File gps-m12m.txt.gz -- iLotus M12M (Motorola M12+T) 1PPS

File gps-m12cns2.txt.gz -- Motorola M12+T 1PPS (CNS-II, sawtooth corrected)

Live LO (local oscillator) data files

File ocxo.dat.gz -- OCXO (see above)

more added shortly...

Notes to Self

Return to LeapSecond.com home page.
Comments/questions to tvb.