GNU Radio Gpredict Doppler shift correction block
Branch: master
Clone or download
Pull request Compare This branch is 5 commits ahead of wnagele:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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.