06 June 2006

The future of radio is software

In Wired News, Quinn Norton has an article on software radio. He interviews Matt Ettus, creator of the Universal Software Radio Peripheral (USRP). This is the hardware companion to GnuRadio, free software that lets users build and tweak complete RF receiver out of software components, and most importantly, without having to know anything about electronics.

If you can detect a signal with the USRP, you can decode that signal, whether it's audio on AM or FM, or HDTV video. There are even projects to turn the USRP into a WiFi card and a GPS receiver.

The USRP is fully software configurable, using C++ for low-level processing and Python for scripting. How much can you do with just scripting? Here's a complete FM receiver in Python.

To the computer, USRP is a normal USB peripheral. The USRP samples a given chunk of RF spectrum and sends the digitized signal to the computer for further processing. While the USRP isn't a cheap peripheral - a basic setup including daughterboards is $700, the capabilities it provides would otherwise require much more expensive lab equipment or significant RF electronics skill and a lot of solder.

However, there are some limits to what you can do. Even with the USRP doing the sampling, a computer can only do so much signal processing in real time. Want to watch an HDTV broadcast as it's being received? Not yet, you'll have to save the digitized signal to disk first and then let your computer grind over it.

But I have an idea.

If the GnuRadio community harnesses graphics cards for their compute power, I think they could eliminate the PC as the processing bottleneck. Graphics cards are well suited
for high-speed signal processing, and there are some projects taking advantage of this compute power right now: GPGPU: General-Purpose computation on GPUs, FFT on a GPU, and the GPU-FFTlib.

I'd love to see what comes of this.

Update: There is work on making GnuRadio work with GPUs. FIR on GPU:

"The goal of this project is to implement a finite impulse response (FIR) filter on a GPU. A FIR filter is often used in audio processing applications .... We added our implementation of FIR filter to GNU Software Radio and evaluated its performance using a Pentium 4-HT 3.2 GHz processor and a Geforce 6600 video card. The results ... indicate that the GPU implementation has better performance then the CPU implementation for a large number of taps."

No comments: