Usrp

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 43

Entering the World of GNU Software Radio

Thanh Le and Lanchao Liu


Introduction
Hardware
Software
GNU Companion
Communication Demos



Outline
PART I - Introduction
Software Defined Radio
User App
FPGA RF/IF conversion circuit
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
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

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)





RFX400: 400MHz 500MHz (20dBm)
RFX900: 750MHz 1050MHz(23dBm)
RFX1200: 1150MHz 1450MHz(23dBm)
RFX1800: 1.5GHz 2.1GHz(20dBm)
RFX2400: 2.3GHz 2.9GHz(17dBm)





XCVR2450: 2.4GHz 2.5GHz & 4.9GHz -5.9GHz(20dBm)
Software Defined Radio Block Diagram

Low Noise
Amplifier
Low Pass
Filter
Low Pass
Filter
Local
Oscillator
ADC
Antenna
Mixer
RF Front End

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

Signal
Generator
FFT Filter Modulation
APP1 APP2
Python
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
http://gnuradio.org/redmine/projects/gnuradio/wiki/GettingStarted
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:
Src0
(440Hz)
Src1
(640Hz)
FFT
Oscilloscope
Adder
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
Connect to another block
Set the gain
Set the center frequency
Some useful blocks

Sinusoidal Noise
Null Vector
File Audio
USRPn
FFT Vector
File Audio
USRPn
Adding a constant
Adder Subtracter
Multiplying a constant
Multiplier Divier Log
Type
Conversion
Low pass/High
pass/Band
pass/Hilbert/Rais
ed Cosine
Source
Sink
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
Gr.interp_fir_filter_fff() gr.multiply_const_ff Source
am_mod=gr.float_to_complex() Usrp2.sink_32fc
Benchmark_tx.py

source
self.packet_transmitter Self.amp
Modulator
USRP usrp_transmit_path
Benchmark_rx.py

source usrp_receive_path
Low_pass_filter
source
file
Self.packet_reveiver
Connection

Spectrum sensing


source window fft
c2mag log10 threshold
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