Reverse satellite tracking experiments

Posted 2025-06-10.

Curious about the topic of satellites, in 2023 I performed some experiments using a directional antenna and Software Defined Radio (SDR) program to measure the GPS signal power of various NAVSTAR GPS satellites. My objective was to demonstrate that the NAVSTAR GPS signal originates from the orbiting satellite's location, and not from nearby cell-towers or other land-based transmitter sites.

Normal GPS antennas are omni-directional patch antennas. For this experiment I needed a directional antenna, so a commercial 7-element Yagi antenna was purchased from AliExpress. It was tuned to 1.5 GHz. This is close to the centre frequency of the NAVSTAR L1 frequency, which is 1.575420 GHz.

A SDR program was written to measure the Signal-to-Noise Ratio (SNR) of the incoming GPS L1 coarse acquisition signal. The program has two modes. In the first mode, the program listens for a specific satellite vehicle Pseduorandom Noise (PRN) code. It continuously outputs the received SNR to the screen, and produces a tone proportional to SNR. In the second mode, the program produces an SNR report of all 32 satellite vehicle PRNs.

To run an experiment, I would first use the Look4Sat Android app to find the location of a nearby GPS satellite. Look4Sat was configured with Two-Line-Entries (TLEs) for each GPS satellite in the NAVSTAR GPS constellation. Using the TLE orbit parameters, Look4Sat would provide a real-time predicted location of the satellite in the form of azimuth, elevation (and range) from my current location. I would then run my program to monitor the satellite of interest, point the antenna in the direction of it, and observe the SNR vary as I moved the antenna around.

Results? Pointing the Yagi antenna in the direction of the satellite's predicted location ("up in the sky") always gave the best SNR. These experiments demonstrate that GPS signals do originate from their TLE predicted location.

For anyone interested in reproducing these experiments, source code and instructions can be found at https://github.com/rouseabout/gps-rssi.