an introduction to software radio
TRANSCRIPT
![Page 1: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/1.jpg)
An Introduction toSoftware Radio
(and a bit about GNU Radio & the USRP)
Eric Blossom [email protected]
www.gnu.org/software/gnuradiocomsec.com/wiki
USENIX / Boston / June 3, 2006
![Page 2: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/2.jpg)
What's Software Radio?
● It's a technique for building wireless communication systems.
● Get the software as close to the antenna as you can.
● No modulation specific h/w● Software defines the signals transmitted,
sample by sample.● Software demodulates/decodes the samples
received.
![Page 3: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/3.jpg)
S/W Radio Block Diagram
![Page 4: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/4.jpg)
Pros...
● Extreme flexibility● On the fly reconfiguration● Can do multiple (different) things
simultaneously● Much quicker development cycle● In-field upgrades are possible● No soldering irons required...
It's a simple matter of programming!
![Page 5: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/5.jpg)
Cons...
● Relatively high power consumption relative to fixed function ASICs.
● Higher cost if flexibility not important● High symbol rate systems require FPGA or
ASIC to support data rates● A/D performance is limiting factor
![Page 6: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/6.jpg)
Why now?
● Low cost of compute cycles & memory– General Purpose Processor (GPP)– Digital Signal Processor (DSP)– Field Programmable Gate Array (FPGA)
● A/D's and D/A's are now “good enough”
![Page 7: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/7.jpg)
Where is it used today?
● Military● Research: Academic & Industry● Cellular basestations● SIGINT
![Page 8: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/8.jpg)
Expected uses
● Public Safety interoperability● Handsets (enabled by new DSPs)● New personal communicators● New kinds of networks
![Page 9: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/9.jpg)
Wireless networking
● Life beyond WLAN and broadcast● Software radio provides flexibility● All parts of the stack are hackable● Take advantage of multicast nature of the
medium● Lots of research opportunities
![Page 10: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/10.jpg)
Still need some h/w
● Getting from RF to samples● Getting from samples to RF
![Page 11: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/11.jpg)
RF / IF / samples
● Usually two steps:– RF to IF (downconversion)– Sample at IF
● Either direct conversion or superheterodyne● Can sample at baseband or passband
– Nyquist: need > 2 * bandwidth of interest
![Page 12: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/12.jpg)
A/D performance
● Sample rate– kHz to GHz
● Resolution– 8 to 24 bits
● Spurious free dynamic range (SFDR)– maxes out at about 110 dB SFDR
![Page 13: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/13.jpg)
Analog vs Digital Processing
● Analog: – Tremendous dynamic range– Non-ideal behavior– Variation from part to part– Variation over temp & time
● Digital:– Perfectly reproducible behavior– Complex operations are easy
![Page 14: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/14.jpg)
Cognitive Radio
● S/W Radio + “AI”● Observe the environment (RF, regulatory...)● Evolve operating configuration
– E.g., frequency, modulation, channel coding...● Optimize what?
![Page 15: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/15.jpg)
S/W Radio Tools & Frameworks
● C / C++● MATLAB / SIMULINK ● Software Communications Architecture (SCA)
– Used in Joint Tactical Radio System (JTRS)– CORBA is the answer, what was the question?
● GNU Radio (Python and C++)
![Page 16: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/16.jpg)
Regulatory issues
● FCC: politicians, lawyers, economists, engineers
– s/w radio is an enabling technology– Helps with “spectrum scarcity”– How to control / regulate?
● Some argue justification for FCC is gone– What is “interference”?
● Property vs Commons– What if each cow brought its own grass?
![Page 17: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/17.jpg)
And on to GNU Radio...
![Page 18: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/18.jpg)
What's GNU Radio?
● Free software toolkit for:– Building and deploying software radios
– Learning about DSP and communication systems
– Creating new kinds of radios, modulations, protocols, development environments...
● Licensed under GPL● A community effort
![Page 19: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/19.jpg)
GNU Radio Architecture / Impl
● Data flow abstraction– Signal processing blocks and connections
between them● Event based overlay
– Message Queues and Messages● Hybrid C++ / Python system● Typically run on general purpose processor● “Hello World” example
![Page 20: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/20.jpg)
Hello World
#!/usr/bin/env python
from gnuradio import grfrom gnuradio import audio
class my_graph(gr.flow_graph):
def __init__(self): gr.flow_graph.__init__(self)
sample_rate = 48000 ampl = 0.1
src0 = gr.sig_source_f(sample_rate, gr.GR_SIN_WAVE, 350, ampl) src1 = gr.sig_source_f(sample_rate, gr.GR_SIN_WAVE, 440, ampl) dst = audio.sink(sample_rate) self.connect(src0, (dst, 0)) self.connect(src1, (dst, 1))
if __name__ == '__main__': try: my_graph().run() except KeyboardInterrupt: pass
![Page 21: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/21.jpg)
Signal Processing Blocks
● Input streams and output streams● I/O signature
– Type of each stream is specified– Blocks specifies constraints on # of streams
● Relative i/o rates– Fixed 1:1, Fixed interp 1:N, Fixed decim N:1– Variable
![Page 22: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/22.jpg)
Who's using GNU Radio?
● Academic researchers● Industry / DARPA researchers● Various government research groups● Hackers● Hams● Radio Astronomers● Scanning Probe Microscopists
![Page 23: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/23.jpg)
Applications● Transceivers
● Research in wireless networking
● Ad-hoc networks
● MIMO
● STAP / Adaptive beam forming
● Cognitive Radio
● Passive Radar (PCL)
● Geolocation
● SIGINT
● Conventional Amateur stuff
● Radio Astronomy
![Page 24: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/24.jpg)
Cognitive Radio
● Many efforts using GNU Radio– DARPA ACERT (BBN)– Virginia Tech– CMU– Rutgers WINLAB
● Often in combination with Click Modular Router
![Page 25: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/25.jpg)
Waveforms
● Now:– AM, FM, SSB– ATSC VSB-8– FSK, GMSK, PSK
● Coming:– OFDM– Fast Freq Hopper– Direct Sequence
![Page 26: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/26.jpg)
Coming attractions...
![Page 27: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/27.jpg)
“Message Blocks”
● More natural support for packetized data● Leverage existing code base● Abstractions:
– Blocks / Messages / Protocol classes / Ports– Connections between end points
● Data + metadata (packet annotation)● Support for precise timing● Hierarchical composition● Nest “classic” GNU Radio within m-block
![Page 28: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/28.jpg)
“Message Blocks” (2)
![Page 29: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/29.jpg)
Passive Radar (PCL)
● Use existing transmitters (e.g., TV, Radio)● Very high dynamic range front end● 2 x 2 phased array● TDOA, doppler, angle of arrival● ESPRIT● output: position, velocity, object class● Superresolution techniques
![Page 30: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/30.jpg)
Existence proof!
![Page 31: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/31.jpg)
The USRP
● Why?
![Page 32: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/32.jpg)
Sound Cards, etc
● Relatively low sampling rate– 48 kHz or 96 kHz, 16 or 24 bits
● Good for audio input and output● Can be used with narrow and low IF● Examples
– Narrow band HF (SDR 1000)– “Digital Radio Mundial”
![Page 33: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/33.jpg)
Wide Band I/O
● PCI A/D and D/A Cards– Good Bus Bandwidth– Expensive to Very Expensive ($1k - $10k)– Still need RF Front End
![Page 34: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/34.jpg)
VXI / cPCI / ...
● Card cages full of cards– RF Front Ends– Digital Receiver / Transmitter
● Typically A/D, D/A + FPGA or ASIC
– FPGA / DSP / GPP● High speed interconnect● Lots of choices● Typically very expensive.
![Page 35: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/35.jpg)
USRP
● 80% solution at 10% of the cost● Low cost● Small / portable● Design is completely open● Multiple coherent channels
![Page 36: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/36.jpg)
USRP
![Page 37: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/37.jpg)
USRP Block Diagram
![Page 38: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/38.jpg)
Available RF Daughterboards
● 400 MHz – 500 MHz transceiver● 800 MHz – 1 GHz transceiver● 2.4 – 2.5 GHz transceiver● 50 MHz – 800 MHz receive only● 800 MHz – 2.4 GHz receive only● Basic Tx and Rx (baseband i/o)
Available RF Daughterboards
![Page 39: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/39.jpg)
emulab.net
● University of Utah networking testbed● Expect 20 nodes around campus by end of
year. Uses USRP hardware with:– 2.4 GHz transceivers (?)– 400 MHz – 500 MHz transceivers (?)– 50 MHz – 800 MHz receive only
![Page 40: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/40.jpg)
Resources
● GNU Radio:– http://www.gnu.org/software/gnuradio– discuss-gnuradio mailing list– http://comsec.com/wiki
● USRP:– http://www.ettus.com
Resources
![Page 41: An Introduction to Software Radio](https://reader031.vdocuments.mx/reader031/viewer/2022011908/61d7384f05ca5b5dad6d1cd1/html5/thumbnails/41.jpg)
Questions?