Ask Eric Blossom about Software-Defined Radio
Eric Blossom is an electrical engineer with a history of working with radio and communications security. He gave a presentation at the recent H2K2 conference about his work with GNU Radio, which is, bar none, the single most exciting software project in existence today. (Imagine computing devices that communicate seamlessly across the entire electromagnetic spectrum.) As usual, we'll forward some of the best questions to Eric and post his responses when we receive them.
I realize this might be complex, and that the answer might be of the form
But as both a ham and one who designs SDRs, I'd like to know where this resides on the Home Hacking Scale....
www.eFax.com are spammers
Are there parallels to this technology? and if so, how will GNU Radio avoid those pitfalls?
I read through the GNU Radio website, and even though I found it informative in terms of the basic idea and examples, I couldn't find anything relating to what extra hardware is needed. (Maybe I just didn't look long enough?)
:o)
What extra hardware is needed in addition to a computer? Are we talking DSP chips and boards, or something a little more exotic?
Thank you for a potentially exciting project, though. This makes me want to renew my ham radio license.
-----
"You spilled my egg... I needed that egg."
I'm thought something along the same lines... used to be that any RF that came into a person's airspace was fair game... now that's not true. It can be illegal just to 'listen in' (esp. if it involves decrypting the signal).
It seems to me we're moving the complexity away from expense to duplicate hardware into 'free' to duplicate software. With the increase in power and decrease in cost of general purpose (programable) electronics (i.e. CPU, radio recievers, ADCs, etc), one person can write complex software that can then be used to utilize the (relativiely) inexpensive hardware.
Once you have the hardware setup, you can change the software and:
Isn't the Slashdot blurb.. how shall I put this.. completely and totally incorrect?
The Slashdot story implies this project will bring: computing devices that communicate seamlessly across the entire electromagnetic spectrum.
Surely this is an exaggeration.
It is possible to imagine real-time processing of kHz, and possibly MHz signals in software.
There are issues with getting and antenna with decent response over a very wide range, but we can sidestep that. The point is, the ADC and actual processing of the waveform with the CPU is not unreasonable with x86 hardware.
But if you're looking at microwave communications... that just isn't plausible to me at all.
The ADC time resolution would surely require dedicated equipment. You could put this on a PCI card, but the PCI bus obviously does not have bandwidth for a GHz signal.
I would think the point of this is not to cover a wide range of the spectrum at all, but instead to process a range such as 1 kHz - 10 kHz in new and unusual ways.
And of course the applications are not limited to wireless devices! This could be just as useful with transmission down coax.
It allows you to encode/decode different signals on the airwaves...
For example, they have demonstrated it decoding two FM radio broadcasts at the same time using their ADC and a cable modem tuner.
It replaces the hardware components involved in decoding signals... you could built a cell phone that only needs a tuner and and ADC, the rest in software. Depending on the tuning range of the tuner you use, your computer could become MANY different kinds of radios.
That is the cool thing about SDR... when a new fancy modulation technique comes along, you only have to upgrade the software... cell companies love this. I would assume those base stations can get pricey...
I want a feature list containing all the geeky details
Radio design is about trading features against each other, eg. if you want a large frequency range, you will usually end up with noisy oscillators giving you poor large signal handling, and low selectivity (ability to listen to weak stations close (in frequency) to a strong one. If you want good sensitivity, you loose large signal handling. If you want narrow filters, you get lower sensitivity (ok, this is a software radio, so you can do extra filtering in software, so this might not apply). You get the idea. Always compromises.
RFC1925
After reading some posts, some people seem to be a bit confused as to what this is and how it can be used. Well, for the /. crowd, here's a specific example which will put all this into perspective:
Now that generating waves becomes a software problem, it means that theoretically anything that before needed hardware to modulate/demodulate (or encode/decode, depending how you look at it) signals can now be done in software. Practially, this means that you can transform your machine into a WiFi or Bluetooth system by simply installing the right software. It also means that as new future wireless technologies emerge, your hardware can support them by a simple software install.
Similarly, anything that uses radio waves can be "emulated", like a good old FM/AM radio (the website has sample code for this), a Walky-Talkie, a home wireless phone, or even a cell phone!!!
So now you see why there's a lot of exitement around this. If the project could only get more funding (Intel? AMD? IBM? Sun? Motorolla? Sony?) to speed this up...
This technology sounds like the kind of thing which could greatly add to the convergence of devices that clutter the electronic life. You could extend convergence not only as a Smartphone but have in one device (though perhaps not simultaneously):
1. Cell phone
2. Computing power (PDA)
3. FRS radio device
4. 802.11x network device
5. Police scanner
6. Television reciever
7. etc.
Have you been approached by police departments, FedEx, etc. to develop devices to allow their people to do more stuff in fewer packages?
It has always been possible to generate waves in software. What's novel here is that it's being done in real time in the IF range of frequencies. Computers are still not quite fast enough to do this in the frequency range of the carrier signal.
When you tune your FM radio, your receiver accepts a signal centered at around 90-100 MHz and downshifts it to 10.7 MHz. The 90-100 MHz is called "radio frequency", the 10.7 MHz is called "intermediate frequency". No matter what station you listen to, it gets shifted down to the same intermediate frequency, so that once it's there, it can go thru exactly the same frequency.
The conversion from RF to IF is a pretty simple process that ignores the actual audio content of the signal. Once it's in IF, an FM demodulator picks off the audio that was modulated onto the carrier at the transmitter. AM radio also uses an intermediate frequency, but it's 455 kHz instead of 10.7 MHz.
GNU Radio depends upon commodity computers to sample and process the signal in real time. The Nyquist sampling theorem says you must sample at twice the frequency of interest as a theoretical minimum; in practice you'd like to sample more like threee or four times the frequency. So when you run GNU Radio, samples are whipping through your computer at 30 or 40 megasamples per second, at least for the IF processing. The audio processing can be done at a much more leisurely pace.
Since the computer can't hope to keep up with the 90-100 MHz raw carrier (yet, anyway) there must still be some external circuitry to perform the RF->IF downshift. But that's the relatively simple circuitry - by specifying everything else in software you get a hugely flexible radio. I've drooled with envy watching people use all-mode radios to talk to satellites in orbit, but those suckers are expensive! You need to be able to do AM modulation on the 2 meter band (144-148 MHz). Now maybe I can try it one of these days.
WWJD for a Klondike Bar?
If I'm interested in doing research in this field someday, and I'm currently a computer engineering major, what are some good electives that I might take? Aside from general programming necessities, what sort of signal processing courses are necessary to understand the underlying aspects of software-defined radio?
"I may be quite wrong." - Socrates