GNU Radio Gpredict Doppler shift correction block
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
grc Initial release Aug 1, 2015
python Initial release Aug 1, 2015
CMakeLists.txt Initial release Aug 1, 2015


Python block that updates a GNU Radio variable with the absolute frequency as provided by Gpredict. This allows for Doppler shift corrected reception of satellite signals.


mkdir build
cd build
cmake ../
sudo make install

Note: If you are running MacPorts you might need to change the installation path. Use something like this: cmake -DCMAKE_INSTALL_PREFIX=/opt/local ../


Apache License, Version 2.0


The Gpredict Doppler block updates a variable that you define with the absolute center frequency including the current Doppler shift. This information is provided from Gpredict according to your ground station settings.

Setting up Gpredict

We are not covering the set up of Ground Stations, etc. in Gpredict but only the dummy Radio we use to provide the frequency and doppler data to GNU Radio. For information on setting up Gpredict and general use please read their manual.

  1. Open the Preferences dialog (Edit -> Preferences)
  2. Switch to the Interfaces section
  3. Add a new Radio and enter the following settings:
  4. Finish setting up your satellite and ground station according to the Gpredict manual


  1. To send Doppler frequency data to your flowgraph open the Radio Control panel
  2. Make sure your target satellite is selected and then enable the Track feature
  3. When you hit the Engage button Gpredict will connect to your flowgraph and send frequency data
  4. To debug the block set it into Verbose mode in GNU Radio Companion


The provided flowgraph uses a Cosine wave mixed with the signal to correct the Doppler shift in software. You could update the center frequency straight in your hardware source. Depending on your hardware this could cause undesired spurious signals during the re-tuning and acquiring the PLL. It is better to capture the whole bandwidth within which the signal will shift and then mix it in software. This prevents excessive re-tuning of your hardware.