GNU Software Radio: A Comprehensive Overview

 
Entering the World of GNU Software Radio
Thanh Le and Lanchao Liu
Introduction
Hardware
Software
GNU Companion
Communication Demos
Outline
Outline
PART I - Introduction
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
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
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
USRP
n
FFT             Vector
File              Audio
USRP
n
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
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
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
Slide Note
Embed
Share

Delve into the world of GNU Software Radio with Thanh Le and Lanchao Liu as they discuss the hardware, software, and communication aspects of this technology. Learn about USRP solutions, hardware capabilities, available daughter-boards, and explore the software-defined radio user applications. The block diagram showcases the RF front end, FPGA MUX, and more, providing a detailed insight into this innovative field.

  • GNU Software Radio
  • USRP
  • Software-Defined Radio
  • Hardware
  • Communication

Uploaded on Apr 17, 2024 | 4 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Entering the World of GNU Software Radio Thanh Le and Lanchao Liu

  2. Outline Introduction Hardware Software GNU Companion Communication Demos

  3. PART I - Introduction

  4. Software Defined Radio User App RF/IF conversion circuit FPGA http://www.da.isy.liu.se/research/bp/

  5. USRP: Universal Radio Peripheral The hardware solution for GNU SDR USRP USRP2

  6. PART II Hardware

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

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

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

  10. Software Defined Radio Block Diagram

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

  12. FPGA MUX

  13. FPGA DDC

  14. Example 2-1: Simple transmission A simple sinusoidal wave is transmitted. We can view it at the receiver in spectrum domain.

  15. PART III Software

  16. 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 Python APP2 APP1 Signal Generator C++ FFT Filter Modulation

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

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

  19. Example 3-1: FFT Src0 (440Hz) Adder Oscilloscope Src1 (640Hz)

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

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

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

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

  24. Some useful blocks FFT Vector File Audio USRPn Sinusoidal Noise Null Vector File Audio USRPn Sink Type Conversion Source Adding a constant Adder Subtracter Multiplying a constant Multiplier Divier Log Low pass/High pass/Band pass/Hilbert/Rais ed Cosine Simple operators Filters

  25. Example 3-2: Codes reading - FM Receiver Explain the codes for FM receiver line by line.

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

  27. Example 3-3 : Spectrum analyzer Example 3-4 : Signal generator Example 3-5 : Recorder

  28. PART IV GRC

  29. GNU Radio Companion A graphical tool that Create signal flow graphs & Generate flow-graph source code

  30. Adding proper blocks to the diagram and setting it parameters

  31. Connect proper blocks with each other, saving the file. Generating the flow graph, the system will save your design with a .grc file.

  32. Executing the flow graph and receive the signal by using USRP2 receiver that we designed before.

  33. Example 4-1: View signal in time/spectrum domain

  34. Example 4-2: View the constellation diagram of a signal

  35. PART IV Communication Demos

  36. FM Transmitter gr.wavefile_source() gr.multiply_const_cc() Usrp2.sink_32fc() gr.multiply_const_cc()

  37. AM transmitter Source Gr.interp_fir_filter_fff() gr.multiply_const_ff Usrp2.sink_32fc am_mod=gr.float_to_complex()

  38. Benchmark_tx.py source usrp_transmit_path USRP self.packet_transmitter Self.amp Modulator

  39. Benchmark_rx.py source usrp_receive_path file Low_pass_filter Self.packet_reveiver source

  40. Connection

  41. Spectrum sensing source window fft threshold log10 c2mag

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

  43. Questions/Comments

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#