Up one level (Information for the Electronics Hobbyist)
GNU Radio and USRP
GNU Radio is a toolkit where digital signal processing blocks are written in C++, and where these are connected to each other with Python.
This makes it easy to develop more sophisticated signal processing systems, because you can use blocks already written by others and quickly put them together to a complete system.
Here I will try to put together some guides on what you can do with the toolkit, and how you do it. For a general introduction to GNU Radio and a hello world example look at Exploring GNU Radio.
The USRP (Universal Software Radio Peripheral) is a device for getting radio waves into the computer for software processing. The USRP is directly supported by the GNU Radio toolkit. This means that you can write real-world signal processing systems capable of handling radio frequencies easily in real time.
But you do not need to own a USRP to have fun with GNU Radio. You can for example use other's radio wave captures. At the radio amateur KD7LMO's homepage you can find several captures. You can also find some captures here.
A photo of my USRP
Some useful python scripts:
GNURadio Control GUI (Unfortunately not updated to use the new gnuradio code yet) - A graphical user interface for watching what a radio capture file contains, and has the abilitiy to demodulate WFM, FM, AM and SSB by pointing at the signal. It can also control the USRP and demodulate what's coming straight from the air.