SDR and GNU Radio Companion for Amateur Radio What are they and why should you care?
Introduction • Derek Kozel, AG6PO – Masters in ECE at CMU – SpaceX, Range Networks, Amateur enthusiast
• Current research is on Software Defined Radios applied to cellular networks – OpenBTS
SDR Defined • “Radio in which some or all of the physical layer functions are software defined” • Demodulation is done in software rather than analog hardware – AM demodulation in hardware and software:
Outline • • • •
What are signals really? What happens to them in a computer? What does a radio do really? What does an SDR do? – And how do I get started?
• What is GNU Radio? • How do I make a Flow Graph? – Where do I go to actually learn about this?
Signals • Analog (Continuous signal) – Defined for all possible times
• Discrete Time Signal – Only defined for certain, usually regular, times
Sampling • Measure the voltage of the signal at regular intervals – Sampling Frequency: Number of samples per second
– Sample Resolution: Number of different values which can be stored
Quantization • Computers have limited precision – Analog to Digital Converters output values of a certain number of bits – There are 2k – 1 values for a k-bit number • For example: 255 values for an 8 bit number
Connect the Dots
Connect the Dots
Connect the Dots
Connect the Dots
Super Heterodyne Design • Uses frequency mixing to convert a received signal to an intermediate frequency before demodulation
• Invented 1918 to improve allied radio direction finding systems
Ideal SDR • Signals from the antenna are directly sampled • All processing happens on the digital signal
Soundcard SDR • Signals from the antenna are mixed to make I&Q then sent to a PC microphone/line in port
Aliasing • You must sample twice as fast as the highest frequency you expect – Nyquist Rate
• Usually dealt with using low pass filters just before sampling • Sometimes used as a feature – Can detect much higher frequency signals using passband filters
Properties of SDRs • Receiver Architecture – Some are superheterodyne based
– Others are direct conversion
Properties of SDRs • Bandwidth – How much spectrum can you view at once
– Here is 2.4 MHz centered at 105.5 MHz
Bandwidth of Common Modes Modulation
Bandwidth
FM Broadcast
48 kHz
Narrow FM
5 or 2.5 kHz
AM
4.7 kHz
Single Side Band
2.4 to 3 kHz
RTTY
250 Hz
PSK31
60 Hz
Morse Code
50 Hz
RTL SDR • Designed as a TV tuner • Can receive 53 – 2200 MHz • Relatively poor performance – 8 bit samples
• Software allows decoding – FM, AM, GPS, Pagers, ADS-B, AIS, LTE, Weather balloons, satellite data
• 2.4 MHz bandwidth • Superheterodyne design • $20
USRP • Generic Receiver – Daughterboards support DC – 4.4GHz
• Connects via Ethernet or USB – 8/16 MSPS over USB 2.0 – 61.44 MSPS over USB 3.0 – 50/100 MSPS over Ethernet
• Direct Conversion – 64/100/ MSPS 12/14 bit sampling
• $650 - $2000+
Soundcard Interface • Send spectrum via soundcard interface – Soundcard might be inside your radio!
• Generally very narrow bandwidth – Internal filters
Software • Wide range of free software – SDR Console – SDR# – HDSDR – GNU Radio – Many others!
• Frequent updates and new programs add new modes and better decoding
GNU Radio • “a free software development toolkit that provides the signal processing runtime and processing blocks to implement software radios using readily-available, low-cost external RF hardware and commodity processors.” – http://gnuradio.org/
GNU Radio Companion • A graphical interface for creating flow graphs
Installation • Linux: Pre built binaries or source – sudo apt-get install gnuradio – build-gnuradio script
• Mac: Install via MacPorts – sudo port install gnuradio +full
• Windows: Pre built binary from Ettus Research – http://files.ettus.com/binaries/gnuradio/latest_stable/
Flow Graphs • The path of data flow • Made of blocks, wires, and variables – Sources, sinks, signal processing, user interface
Narrow Band FM Receiver
Sources • Defines an input for samples – Can be a file, radio, or mathematical function
Types • Data is passed around in untyped buffers – Each block defines input and output types
Converting Types • Simple blocks allow for conversions
• Ensure your output type matches your data
Converting Types • Simple blocks allow for conversions
• Ensure your output type matches your data
Stream Processors • Modulation, filtering, decoders, math operations
User Interface Blocks • Display signal information – FFT, waterfall, constellations, plots
• Create controls – Sliders, dropdown menus, buttons, text boxes
User Interface Blocks • Display signal information – FFT, waterfall, constellations, plots
• Create controls – Sliders, dropdown menus, buttons, text boxes
Resources • Youtube Videos – Tom Rondeau at ARRL/TAPR 2012 DCC • “Episode 51 Part 1: Intro to GNU Radio”
– Balint Seeber • http://www.youtube.com/user/balint256/
• GNU Radio – http://gnuradio.org/redmine/projects/gnuradio/wiki/Tutorials
• Alexandru Csete, OZ9AEC – http://www.oz9aec.net/index.php/gnu-radio
Resources • More websites – http://complextoreal.com/tutorials/ – http://www.dspguru.com/
• Books – The Scientist and Engineer’s Guide to DSP • http://www.dspguide.com/
– Understanding Digital Signal Processing • By Richard Lyons