Tutorial presented at the 2025 IEEE International Frequency Control Symposium (IFCS).
Slides at http://jmfriedt.free.fr/jmfriedt_tuto...
Datasets and flowcharts at http://jmfriedt.free.fr/jmfriedt_tuto...
The flowcharts provided in the archive appear in the following order:
aliasing_complex.grc (illustrates discrete time sampled complex signal periodic spectra)
aliasing_real.grc (illustrates discrete time sampled real signal aliasing)
aliasing_real_LPF.grc (on the need to low-pass filter to prevent aliasing BEFORE decimating)
2104_xcorr_38single.grc (single target cross correlation in the Fourier domain)
2504_xcorr38.grc (cross correlation linearity for detecting multiple targets whose contribution is detected as a sum in the surveillance channel)
2504_prn38.grc (replace noise source with Galois Linear Feedback Register GLFSR for determinisitic pseudo-random sequence)
2504_prn38_10bits.grc (same as before but extend repetition interval by extending PRN length)
demo_galileo1.grc (reading record and analyzing the format with the SigMF meta file, check BPSK signal presence by squaring)
demo_galileo2.grc (same as 1, adding autocorrelation)
demo_galileo3.grc (same as 2, adding cross-correlation with a single resampled GPS L1 code)
demo_galileo4.grc (same as 3, adding cross-correlation with multiple resampled GPS L1 codes)
demo_galileo.grc (same as 4, adding cross-correlation with Galileo BOC signal)
Timeline:
0:00:00: Introduction and outline
0:03:27: introduction to Software Defined Radio (SDR)
0:12:30: why SDR handles complex numbers (real + jximaginary), solving the IQ imbalance issue with a superheterodyne strategy implemented in the digital domain (demonstration with Sentinel1 and NanoVNA)
0:22:15: becoming familar with GNU Radio by analyzing properties of discrete time samples signals (spectrum periodicity, aliasing, decimation)
0:40:30: SDR for time transfer, need for spectrum spreading for introducing timing over the periodic sine wave, spectrum v.s autocorrelation of the spectrum spread signal
0:48:50: cross-correlation in the Fourier domain using the FFT, demonstration for a single delay/target and linearity of the correlation for detecting multiple targets in the surveillance channel
0:57:00: Pulse Compression Ratio as bandwidth x duration or random pattern number of items as signal to noise ratio improvement brought by correlation
1:01:50: replacing the noise source with a Galois Linear Feedback Shift Register (GLFSR) pseudo-random source, demonstration with GNU Radio
1:08:15: application to GPS L1 C/A, reading the file whose format is documented with SigMF meta file, verification that BPSK signals are present by squaring
1:18:40: autocorrelation of the GNSS signal for pulse repetition rate identification (irrelevant of Doppler shift induced by each satellite motion)
1:23:30: cross-correlating the recorded signal with the re-sampled GPS L1 signal frequency shifted to compensate for Doppler shift
1:35:15: application to multiple GPS satellites whose correlations are detected for different Doppler shifts
1:38:00: Galileo E1 BOC demodulation (adding the resampled square wave multiplication to the code)
1:42:30: controlling the ADC SDR clock with the output of the GNSS decoding (gnss-sdr controlled GPSDO)
1:45:20: use of SDR for Very Low Frequency (VLF) time transfer signals
1:48:35: sub-sampling period timing resolution with correlation peak fitting
1:50:50: limitations of SDR (floating point arithmetic and pi representation)
1:52:50: some hardware for collecting samples for SDR, conclusion