Software Radio for Satellite TV on your Computer

Look at your TV today. It receives analog free-to-air TV signals using some built-in receiver circuitry. If your TV is capable of receiving digital channels, great – but did you know that it actually uses a separate set of receiver circuitry to make it happen? That’s why for those with an older TV set, they need to get a set-top box to get the digital channels. Wouldn’t it be great if we can use the one set of hardware to receive every channel out there, be it analog TV, digital terrestrial TV, satellite TV and even the TV standards yet to be developed? Well that’s what software radio here for.

Test setup connection

Throughout this year, I was busily working on my undergraduate thesis project, with the goal of developing a software based transmission system for satellite TV. In particular, I wanted to implement the European standard DVB-S using a general purpose computer and the free software radio framework called GNU Radio and a generic radio device called the USRP from Ettus Research.

How did I go? It worked! I was able to correctly decode the captured signal from the satellite and recover the MPEG-2 transport stream that can be played using MPlayer, but unfortunately that’s not the end of the story. Ideally we’d like to receive the satellite signal and decode it in real-time, but our processing speed hasn’t quite got there yet. The performance can be summarised in the figure below:

Results: normalised throughput

In this chart, we’ve taken the throughput of each component signal processing block in the receive chain and normalised it to a value of 1 meaning that it’s just able to run in real-time assuming that each block can be run in parallel. A value of lower than 1 means that it’s slower than real-time while values greater than 1 mean it’s more than fast enough for real-time processing. Looking at the proportion of CPU time spent in decoding, there are only three blocks taking up most of the time: the Viterbi decoder, the M-PSK receiver for symbol timing recovery and the frequency correcting frequency locked loop:


So what we need to do now is improve the efficiency and throughput of each of those blocks, then we should be well on our way to real-time, satellite TV decoding on completely generic and reconfigurable software radio on the computer!

More details can be found in my treatise, which can be found under my blog’s Sydney Uni page.

  • Amrita Senthil


    I am studying ur thesis work and its really amazing..i have some doubts in receiver system.. Set-top-box itself contains hardware for MPEG decoding and it will give analog signal to TV…But in thesis u said that decoding done in software after usrp (Figure 3.1)…it means decoding of data not done in set-top-box…why are u using set-top-box here?.. Could u please explain the working of set-top-box in general and its role in this project?..

    It will also be helpful if u send me links for downloading DVB python module..

  • Hi, thanks for your interest.

    If you’re referring to the diagram above about how the system is connected, the DVB-S set-top box was only used to provide DC power to the Satellite LNB. It was not used to perform any decoding of the media stream other than a verification of locking onto the satellite signal.

    MPEG decoding something that’s already been done. Even Windows Media Player can play MPEG encoded media files without any problem.

    After decoding of the modulation and channel coding, we recover the MPEG transport stream (TS) that’s made up of possibly multiple MPEG streams multiplexed together. We can use existing software such as VLC Player or MPlayer to play these files very efficiently.

    The parts which are computationally costly are still to do with the decoding of the channel coding and modulation.

    At the moment, I am still working on revamping the Viterbi module and I’m in the process of replacing it with an optimised version made by Phil Karn. So, even though it works at the moment, I’d like to get it to the stage where it has more decent throughput before making a release.

    • Amrita Senthil

      Hi Edmund,

      Thanks for ur reply.. Your work is really good and i am thought of experimenting ur work once u release ur DVB module..

      Currently, i am also concentrating on ordinary TV signal reception system (trying to improve the code given in gnuradio example by adding synchronization and color decoding).. If u have any idea on this regard, kindly help me..

      Waiting for DVB module release,

      Happy Newyear 🙂

  • Amrita Senthil

    TV signal reception (which i am working) : Transmitted signal video is AM modulated and audio is FM modulated.. I decoded these things and i am trying to synchronize ( vertical and horizontal sync) for playing as video.. Also working on color decoding… Could u have any idea on this work? If yes, do help me..

  • Amrita Senthil

    Hi Edmund,

    I am going to buy set-up box with dish antenna to try DVB implementation..I am having usrp-1.. Is that enough for implementation??

    It will be nice if u give me DVB module to try ur work.. i know u not yet finished this work, but its ok even if its not stable version..

  • Make sure that the set-top box has an RF output connection, you’ll also need cables and adapter to make the connection between the box and the DBSRX daughterboard.

  • Mleads188

    I find this interesting. Haven’t tried connecting satellite tv to my pc before. This would help me learn something and might as well try it with my parents’ DIRECTV connection.