Software Defined Radio
A Gentle Introduction to GNU Radio and Related Hardware

Bdale Garbee

bdale@gag.com

Based heavily on presentations given previously by

Eric Blossom and Matt Ettus

Agenda

Software Radio in General

GNU Radio

Interesting Hardware

USRP and SSRP

Some GNU Radio examples and demos

The Politics of Open Source Software Radio

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...

Exploring!

Typical Data Transceiver

S/W Radio Block Diagram

What can I do with it?

Conventional radio stuff

Spectrum monitoring

Multi channel

Multi mode

Morph on the fly

Better spectrum utilization

Cognitive radio

Architecture / Implementation

Data flow abstraction

Signal processing blocks and connections between them

Hybrid C++ / Python system

Stitching blocks together to prototype new “radios” in Python is pretty easy, and the body of available examples keeps growing

Creating new blocks is more involved

Hello World

#/usr/bin/env python

from gnuradio import gr

from gnuradio import audio

def build_graph ():

sampling_freq = 32000

ampl = 0.1

fg = gr.flow_graph ()

src0 = gr.sig_source_f (sampling_freq, gr.GR_SIN_WAVE, 350, ampl)

src1 = gr.sig_source_f (sampling_freq, gr.GR_SIN_WAVE, 440, ampl)

dst = audio.sink (sampling_freq)

fg.connect (src0, (dst, 0))

fg.connect (src1, (dst, 1))

return fg

if __name__ == '__main__':

fg = build_graph ()

fg.start ()

raw_input ('Press Enter to quit: ')

fg.stop ()

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

Interface to Real World

How to get samples in / out?

Analog to Digital and Digital to Analog

Getting RF up and down converted to IF

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

PSK-31

Narrow band HF (SDR 1000)

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

USB 2.0 Interfaces

SSRP kit from David Carr

SR design by Vladimir Dergachev

USRP by Matt Ettus

USRP Block Diagram

USRP

Partial FPGA Contents

Code & Demos!

FM Receiver

Multi Channel FM Receiver

Multi Channel FM Transmitter

HDTV

Future Directions

Tight Tx/Rx sync (sub-microsecond)

Transparent utilization of SMP

Event-based overlay

State charts

Control plane / protocols

What do you need?

Political Layer

“Broadcast Flag”

MPAA vs the rest of us

Though shalt not copy broadcast TV!

Restrictions on HDTV receivers

No provision for “Fair use”

FCC / regulatory situation

SDR Good: Soln to spectrum utilization problem

SDR Bad: How to control / type certify / rogue radios

Encumbents vs the innovators

Questions?

2004-12-15T12:37:03