0% found this document useful (0 votes)
79 views

Entering The World of GNU Software Radio: Thanh Le and Lanchao Liu

This document provides an introduction to software defined radio and the GNU Radio software framework. It discusses the Universal Software Radio Peripheral (USRP) hardware used for radio frequency signal processing. It covers installing and using GNU Radio, including common blocks, data types, and examples of software defined radio applications like an FM receiver. It also introduces the GNU Radio Companion graphical tool for designing signal flow graphs and generating code. Communication demos discussed include FM transmission, AM transmission, and spectrum sensing.

Uploaded by

mohamed elkasseh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views

Entering The World of GNU Software Radio: Thanh Le and Lanchao Liu

This document provides an introduction to software defined radio and the GNU Radio software framework. It discusses the Universal Software Radio Peripheral (USRP) hardware used for radio frequency signal processing. It covers installing and using GNU Radio, including common blocks, data types, and examples of software defined radio applications like an FM receiver. It also introduces the GNU Radio Companion graphical tool for designing signal flow graphs and generating code. Communication demos discussed include FM transmission, AM transmission, and spectrum sensing.

Uploaded by

mohamed elkasseh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 43

Entering the World of GNU Software Radio

Thanh Le and Lanchao Liu


Outline
• Introduction
• Hardware
• Software
• GNU Companion
• Communication Demos
PART I - Introduction
Software Defined Radio

RF/IF conversion circuit FPGA User App

http://www.da.isy.liu.se/research/bp/
USRP: Universal Radio Peripheral
The hardware solution for GNU SDR

USRP

USRP2
PART II – Hardware
Universal Software Radio
 Peripheral (USRP)
• 4 ADC 64MS/s (12-bit)
• 4 DAC 128MS/s (14-bit)
• USB 2.0 interface¹
• Small FPGA²
• MIMO capable
$700
1. Highest speed 480Mb/s
2. Capable of processing signals up to 16 MHz wide
Universal Software Radio 
Peripheral (USRP2) ¹
• 2 ADC 100MS/s (14-bit)
• 2 DAC 400MS/s (16-bit)
• Gigabit Ethernet Interface
• Larger FPGA²
• On-board SRAM
• MIMO capable
$1400
1. 2 Gbps high-speed serial interface for expansion
2. Capable of processing signals up to 100 MHz wide
Available daughter-boards
Basic TX/RX: 1MHz – 250MHz
LFTX/LFRX: DC – 30MHz
TVRX: 50MHz-860Mhz
DBSRX: 800MHz – 2.4GHz
WBX0510: 50MHz – 1GHz(20dBm)
XCVR2450: 2.4GHz – 2.5GHz & 4.9GHz -5.9GHz(20dBm)

RFX400: 400MHz – 500MHz (20dBm)


RFX900: 750MHz – 1050MHz(23dBm)
RFX1200: 1150MHz – 1450MHz(23dBm)
RFX1800: 1.5GHz – 2.1GHz(20dBm)
RFX2400: 2.3GHz – 2.9GHz(17dBm)
• Software Defined Radio Block Diagram
• RF Front End
Mixer

Low Noise Low Pass Low Pass


ADC
Amplifier Filter Filter
Antenna

Local
Oscillator
• FPGA – MUX
• FPGA – DDC
• Example 2-1: Simple transmission

A simple sinusoidal wave is transmitted. We


can view it at the receiver in spectrum domain.
PART III – Software
• GNU radio
― GNU radio is an open source, Python-based architecture
for building SDR projects
― C++ written signal processing blocks and python written
connectors
― Available on Linux, Mac OS and Windows

APP1 APP2 Python

Signal
Generator
FFT Filter Modulation C++
• A thumb of rule
For any application, what you need to do at
Python level is nothing but drawing a diagram to
show the signal flow form the source to the sink
using the Python, sometimes with the graphical
user interface(GUI) support
• GNU Radio Installation
Step-by-step instruction available on
https://wiki.gnuradio.org/index.php/InstallingGR
⮚ Install the pre-requisites
⮚ Get the GNU Radio source code
⮚ Configure, compile and install GNU Radio

All the following demos are built in: Ubuntu-10.10 + gnuradio-3.32


Example 3-1:
FFT

Src0
(440Hz) Adder

Oscilloscope

Src1
(640Hz)
Data Type
• Signal blocks communicate with each other via data
stream
• GNU Radio requires that input and output data types
match exactly

Byte – 1 byte of data(8-bit) Short – 2 bytes integer


Int – 4 bytes integer Float – 4 bytes floating integer
Complex – 8 bytes(a pair of floats)
• Tips: the name of the signal block indicates the
input/output data type
⮚ _f : input/output a float
⮚_fc: input a float and output a complex
⮚_vff: input and output a vector of floats
⮚_b: input/output a byte
⮚_i: input/output a integer
⮚_s: input/output for short
• USRP Source/Sink
⮚ Initialize variable represents the signal block
u = usrp2.source_32fc(options.interface, options.mac_addr)
u = usrp2.sink_32fc(options.interface, options.mac_addr)

⮚ For the USRP source: self.connect(u, other_block)


For the USRP sink: self.connect(other_block,u)
Receive: USRP Source Transmit: USRP Sink
Create the USRP source

Set the decimation /Interpolation rate

Set the gain

Set the center frequency

Connect to another block


Some useful blocks
FFT Vector
Sinusoidal Noise
File Audio
Null Vector
USRPn
File Audio
USRPn
Sink
Type
Source Conversion

Adding a constant Low pass/High


Adder Subtracter pass/Band
Multiplying a constant pass/Hilbert/Rais
Multiplier Divier Log ed Cosine
Simple operators
Filters
• Example 3-2: Codes reading - FM Receiver
Explain the codes for FM receiver line by line.
• Useful tools
‘Spectrum analyzer’: usrp2_fft.py
‘Signal generator’: usrp2_siggen_gui.py & usrp2_siggen.py
‘Recorder’: usrp2_rx_cfile.py

Offline analyzer: gr_plot_fft.py & gr_plot_psd.py


Example 3-3 : ‘Spectrum analyzer’
Example 3-4 : ‘Signal generator’
Example 3-5 : ‘Recorder’
PART IV GRC
• GNU Radio Companion
A graphical tool that Create signal flow graphs
& Generate flow-graph source code
Adding proper blocks to the diagram and setting it parameters
Connect proper blocks with each other, saving the file. Generating
the flow graph, the system will save your design with a .grc file.
Executing the flow graph and receive the signal by using USRP2
receiver that we designed before.
• Example 4-1: View signal in time/spectrum
domain
• Example 4-2: View the constellation diagram
of a signal
PART IV Communication Demos
• FM Transmitter

gr.wavefile_source() gr.multiply_const_cc()

Usrp2.sink_32fc() gr.multiply_const_cc()
• AM transmitter

Source Gr.interp_fir_filter_fff() gr.multiply_const_ff

Usrp2.sink_32fc am_mod=gr.float_to_complex()
• Benchmark_tx.py
source usrp_transmit_path USRP

self.packet_transmitter Self.amp

Modulator
• Benchmark_rx.py
source usrp_receive_path file

Low_pass_filter Self.packet_reveiver

source
• Connection
• Spectrum sensing

source window fft

threshold log10 c2mag


• Reference
http://www.snowymtn.ca/gnuradio/gnuradiodoc-1.pdf
(Totally ten parts, just change the number to get it)
http://gnuradio.org/redmine/projects/gnuradio/wiki

Thanks to Ruolin Zhou @ Wright State University


Questions/Comments

You might also like