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.
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:
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!