SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio
An introduction
Jesper M. Kristensen
Department of Electronic Systems
jmk@es.aau.dk

Programmerbare digitale enheder
Tuesday 6/3 2007

Programmerbare digitale enheder

GNU Radio

1 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

2 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

3 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

A Framework
An open source software toolkit
Supports, Linux, Mac OS and Windows
Creating signal processing applications
Defining waveforms in software
Processing waveforms in software

A hardware platform
USRP, universal software radio peripheral, low cost HW platform for
preprocessing
ADC &DAC
FPGA
USB 2.0 Interface to Host PC

A framework for building software radio transceivers

Programmerbare digitale enheder

GNU Radio

4 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Prerequisites

Using the GNU radio is cross disciplinary
Requiring know-how in the fields of
Computer programming
Communications systems
Digital signal processing
Analog as well as digital hardware
Hardware is also open source
Schematics are available

Programmerbare digitale enheder

GNU Radio

5 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

6 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Software Radio
An implementation technology
A technique for moving digital signal processing as close as
possible to the antenna
Replacing rigid Hardware...
with flexible software based solutions

Software Radio defintion
A software (defined) radio is a radio that includes a transmitter in which
the operating parameters of the transmitter, including the frequency
range, modulation type or maximum radiated or conducted output
power can be altered by making a change in software without making
any hardware changes.

Programmerbare digitale enheder

GNU Radio

7 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Alternative definitions
Quoting the SDR forum:
Software Defined Radio (SDR) is a collection of hardware and software
technologies that enable reconfigurable system architectures for wireless
networks and user terminals. SDR provides an efficient and comparatively
inexpensive solution to the problem of building multi-mode, multi-band,
multi-functional wireless devices that can be enhanced using software
upgrades. As such, SDR can really be considered an enabling technology
that is applicable across a wide range of areas within the wireless industry.
SDR-enabled devices... can be dynamically programmed in software to
reconfigure the characteristics of equipment. In other words, the same piece
of "hardware" can be modified to perform different functions at different
times...

Programmerbare digitale enheder

GNU Radio

8 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Defining software radio using tiers...
The SDR Forum has defined the following tiers, describing evolving
capabilities in terms of flexibility
Tier 0
The Hardware Radio: The radio is implemented using hardware
components only and cannot be modified except through physical
intervention.
Tier 1
Software Controlled Radio (SCR): Only the control functions of an
SCR are implemented in software - thus only limited functions are
changeable using software. Typically this extends to inter-connects,
power levels etc. but not to frequency bands and/or modulation types
etc.

Programmerbare digitale enheder

GNU Radio

9 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Defining software radio using tiers...
Tier 2
Software Defined Radio (SDR): SDRs provide software control of a
variety of modulation techniques, wide-band or narrow-band operation,
communications security functions (such as hopping), and waveform
requirements of current and evolving standards over a broad frequency
range. The frequency bands covered may still be constrained at the
front-end requiring a switch in the antenna system.
Tier 3
Ideal Software Radio (ISR): ISRs provide dramatic improvement over
an SDR by eliminating the analog amplification or heterodyne mixing
prior to digital-analog conversion. Programmability extends to the entire
system with analog conversion only at the antenna, speaker and
microphones.

Programmerbare digitale enheder

GNU Radio

10 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

Defining software radio using tiers...
Tier 4
Ultimate Software Radio (USR): USRs are defined for comparison
purposes only. It accepts fully programmable traffic and control
information and supports a broad range of frequencies, air-interfaces &
applications software. It can switch from one air interface format to
another in milliseconds, use GPS to track the users location, store
money using smartcard technology, or provide video so that the user can
watch a local broadcast station or receive a satellite transmission.
Cognitive radio (CR) is a form of wireless communication in which a
transceiver can intelligently detect which communication channels are in
use and which are not, and instantly move into vacant channels while
avoiding occupied ones. This optimizes the use of available
radio-frequency (RF) spectrum while minimizing interference to other
users.
Programmerbare digitale enheder

GNU Radio

11 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

S(D)R and Transceiver architetures
Two basic transceiver architectures
The heterodyne
The zero IF

Programmerbare digitale enheder

GNU Radio

12 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

What is GNU Radio
Software Radio

S(D)R and Transceiver architetures
Two basic transceiver architectures
The heterodyne
The zero IF

Programmerbare digitale enheder

GNU Radio

12 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

13 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

GNU Radio block schematic
"

#

" $% &

!

Programmerbare digitale enheder

GNU Radio

14 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

GNU Radio block schematic in more detail

!

Programmerbare digitale enheder

GNU Radio

"

15 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

The Universal Software Radio Peripheral
Basic USRP facts
4*ADC, 12 bit @ 64MSPS
4*DAC, 14 bit @ 128MSPS
Altera EP1C12 FPGA for
preprocessing tasks
Analog and Digital I/O for auxilliary
I/O
Supporting
Two Receive daughter boards
Two Transmit daughter boards

USB 2.0 interface to host PC
Programmerbare digitale enheder

GNU Radio

16 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

More photos of the USRP

Programmerbare digitale enheder

GNU Radio

17 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

ADC&DAC frontend, AD9862

Some more ADC specs
Sampling signals up 32 MHz
(Nyquist sampling)
IF sampling up to 100MHz
If internal buffers bypassed,
up to 250MHz

full range of ADC is 2Vpp
(optimized SNR)

Programmerbare digitale enheder

GNU Radio

18 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

The FPGA

RX/TX paths implemented in
the FPGA
Connections controlled via
software
RX path
TX path

Programmerbare digitale enheder

GNU Radio

19 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

The FPGA

RX/TX paths implemented in
the FPGA
Connections controlled via
software

! "

#

$

%& '
)

(
* +

RX path
TX path

Programmerbare digitale enheder

GNU Radio

19 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

The FPGA

RX/TX paths implemented in
the FPGA
Connections controlled via
software
RX path
TX path

Programmerbare digitale enheder

GNU Radio

19 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

The USB interface
The USB interface supports (ideally) 32Mbyte/s
this limits the achievable datarates
Examples of datarates
Complex samples are interleaved across the USB interface
Having one channel with complex samples gives 8Mbit/s
Having multiple channels (up to 4) reduces the rate per channel
accordingly
Finally adding TX channels again reduces achievable rates as combined
rates is limited by 32Mbyte/s.

Programmerbare digitale enheder

GNU Radio

20 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

The USB interface
The USB interface supports (ideally) 32Mbyte/s
this limits the achievable datarates
Examples of datarates
Complex samples are interleaved across the USB interface
Having one channel with complex samples gives 8Mbit/s
Having multiple channels (up to 4) reduces the rate per channel
accordingly
Finally adding TX channels again reduces achievable rates as combined
rates is limited by 32Mbyte/s.

Programmerbare digitale enheder

GNU Radio

20 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

The USB interface
The USB interface supports (ideally) 32Mbyte/s
this limits the achievable datarates
Examples of datarates
Complex samples are interleaved across the USB interface
Having one channel with complex samples gives 8Mbit/s
Having multiple channels (up to 4) reduces the rate per channel
accordingly
Finally adding TX channels again reduces achievable rates as combined
rates is limited by 32Mbyte/s.

Programmerbare digitale enheder

GNU Radio

20 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

Hardware architecture in conclusion

GNU radio supports up to 4 independent real sampling channels
or 2 independent complex sampling channels
2 independent TX channels are supported
Achievable rates are limited by the USB 32Mbyte/s.

Programmerbare digitale enheder

GNU Radio

21 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

22 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

Hardware Architecture
Software Architecture

A 3 tier architecture
GNU Radio Software architecture

Python scripting language used for
creating "‘signal flow graphs"’

Python

Application development,
creating flow graphs

C++ used for creating signal processing
blocks
An already existing library of
signalling blocks
OFDM functionality is currently
being added tested and will be
added to the library.

C++

Signal processing
modules

Scheduler
Controlling flow
graphs

The scheduler is using Python’s built-in
module threading, to control the ‘starting’,
‘stopping’ or ‘waiting’ operations of the
signal flow graph.
Programmerbare digitale enheder

GNU Radio

23 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

24 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

GNU Radio ‘Hello World’ application
Hello World Example: Dial Tone Output
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
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, 0), (dst, 0))
fg.connect ((src1, 0), (dst, 1))
return fg
if __name__ == ’__main__’:
fg = build_graph ()
fg.start ()
raw_input (’Press Enter to quit: ’)
fg.stop ()

Programmerbare digitale enheder

GNU Radio

25 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
Makes the python code
executable by executing $
chmod +x
"‘filename.py"’

#!/usr/bin/env python

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
Importing nessecary modules
modules from GNU radio library
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
setting up signal flow graph
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
Sampling frequency and
amplitude on soundcard
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
ampl = 0.1

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
Instantiating a flow graph object
from flow graph class
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
ampl = 0.1
fg = gr.flow_graph ()

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
Setting up sinewaves at 350
and 440 Hz
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
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)

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
defining destination to be
soundcard
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
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)

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
connecting source and
destinations, left and right
channel

#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
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, 0), (dst, 0))
fg.connect ((src1, 0), (dst, 1))

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
returning created flow graph
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
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, 0), (dst, 0))
fg.connect ((src1, 0), (dst, 1))
return fg

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Hello world step-by-step
Create code to execute the
flowgraph
#!/usr/bin/env python
from gnuradio import gr
from gnuradio import audio
def build_graph ():
sampling_freq = 48000
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, 0), (dst, 0))
fg.connect ((src1, 0), (dst, 1))
return fg
if __name__ == ’__main__’:
fg = build_graph ()
fg.start ()
raw_input (’Press Enter to quit: ’)
fg.stop ()

Programmerbare digitale enheder

GNU Radio

26 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

27 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Listening to FM radio

Listening to FM Radio on the GNU radio involves
Setting up the USRP
Selecting RX channel
Setting up decimation factor
Setting up possible gain factor

defining channel seletion filter
implementing demodulator
defining audio filter
sending demodulated output to soundcard.

Programmerbare digitale enheder

GNU Radio

28 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

FM receiver block schematic

Programmerbare digitale enheder

GNU Radio

29 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Outline
1

Introduction
What is GNU Radio
Software Radio

2

GNU Radio Architecture
Hardware Architecture
Software Architecture

3

Programming the GNU Radio
GNU Radio "‘Hello World"’
FM radio
Software development

4

References
Programmerbare digitale enheder

GNU Radio

30 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Software development on GNU Radio

The application of Python
Using Python for creating flow graphs
Also used for creating GUI’s
and other non performance critical appplications

The application of C++
Performance critical applications
Signal processing blocks
like the FM demodulator

Programmerbare digitale enheder

GNU Radio

31 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Signal processing blocks in C++
Built as shared libaries
dynamically loaded using python
’import’ feature
SWIG "‘Simplified Wrapper and
Interface Generator"’ used for glue code
allowing python import.
C++ class "‘gr_block"’ is base for all
signal processing blocks
Derived classes gr_sync_block,
gr_sync_decimator and
gr_interpolator can also be used
depending on input/output rate
relations
Programmerbare digitale enheder

GNU Radio

32 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Components needed in writing a C++ block

.h file for class declaration
.cc file for class definition
.i file defining how SWIG generate glue code binding the C++
class into Python

Programmerbare digitale enheder

GNU Radio

33 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

Building a test framework

Using gr_unittest an extension to python unittest
enabling checking for aproximate equality tuples of float and
complex type
enabling automated test run’s
assuming block to be verified is "‘howto_square_ff"’
assuming input and output specifications known

Programmerbare digitale enheder

GNU Radio

34 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

GNU Radio "‘Hello World"’
FM radio
Software development

qa_howto.py
from gnuradio import gr, gr_unittest
import howto
class qa_howto (gr_unittest.TestCase):
def setUp (self):
self.fg = gr.flow_graph ()
def tearDown (self):
self.fg = None
def test_001_square_ff (self):
src_data = (-3, 4, -5.5, 2, 3)
expected_result = (9, 16, 30.25, 4, 9)
src = gr.vector_source_f (src_data)
sqr = howto.square_ff ()
dst = gr.vector_sink_f ()
self.fg.connect (src, sqr)
self.fg.connect (sqr, dst)
self.fg.run ()
result_data = dst.data ()
self.assertFloatTuplesAlmostEqual (expected_result, result_data, 6)
if __name__ == ’__main__’:
gr_unittest.main ()

Programmerbare digitale enheder

GNU Radio

35 / 36
Introduction
GNU Radio Architecture
Programming the GNU Radio
References

For Further Reading

GNU Radio website
http://www.gnu.org/software/gnuradio/
GNU Radio tutorials
http://www.nd.edu/ jnl/sdr/
How to Write a Signal Processing Block
http://www.gnu.org/software/gnuradio/doc/howto-write-a-block.html
Exploring GNU Radio
http://www.gnu.org/software/gnuradio/doc/exploring-gnuradio.html

Programmerbare digitale enheder

GNU Radio

36 / 36

Weitere ähnliche Inhalte

Was ist angesagt?

Digital signal processing
Digital signal processingDigital signal processing
Digital signal processing
Living Online
 
Active Phased Array Radar Systems
Active Phased Array Radar SystemsActive Phased Array Radar Systems
Active Phased Array Radar Systems
Reza Taryghat
 
WE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMS
WE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMSWE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMS
WE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMS
grssieee
 
Fading and Large Scale Fading
 Fading and Large Scale Fading Fading and Large Scale Fading
Fading and Large Scale Fading
vickydone
 
Software defined radio....
Software defined radio....Software defined radio....
Software defined radio....
Bise Mond
 

Was ist angesagt? (20)

Sdr the future of radio
Sdr the future of radioSdr the future of radio
Sdr the future of radio
 
Software defined radio
Software defined radioSoftware defined radio
Software defined radio
 
Radar Systems- Unit- I : Basics of Radar
Radar Systems- Unit- I : Basics of Radar Radar Systems- Unit- I : Basics of Radar
Radar Systems- Unit- I : Basics of Radar
 
synthetic aperture radar
synthetic aperture radarsynthetic aperture radar
synthetic aperture radar
 
Satellite Communication Notes Unit (1 to 3).pdf
Satellite Communication Notes Unit (1 to 3).pdfSatellite Communication Notes Unit (1 to 3).pdf
Satellite Communication Notes Unit (1 to 3).pdf
 
Digital signal processing
Digital signal processingDigital signal processing
Digital signal processing
 
Small scale fading and multipath measurements
Small scale fading and multipath measurementsSmall scale fading and multipath measurements
Small scale fading and multipath measurements
 
Active Phased Array Radar Systems
Active Phased Array Radar SystemsActive Phased Array Radar Systems
Active Phased Array Radar Systems
 
Cw and fm cw radar
Cw and fm cw radarCw and fm cw radar
Cw and fm cw radar
 
Principle of FMCW radar
Principle of FMCW radarPrinciple of FMCW radar
Principle of FMCW radar
 
Fundamentals of Array Antenna
Fundamentals of Array AntennaFundamentals of Array Antenna
Fundamentals of Array Antenna
 
[HES2014] HackRF A Low Cost Software Defined Radio Platform by Benjamin Vernoux
[HES2014] HackRF A Low Cost Software Defined Radio Platform by Benjamin Vernoux[HES2014] HackRF A Low Cost Software Defined Radio Platform by Benjamin Vernoux
[HES2014] HackRF A Low Cost Software Defined Radio Platform by Benjamin Vernoux
 
Phase shift keying Presentation
Phase shift keying PresentationPhase shift keying Presentation
Phase shift keying Presentation
 
Unit 1 introduction to software defined radios
Unit 1   introduction to software defined radiosUnit 1   introduction to software defined radios
Unit 1 introduction to software defined radios
 
Satellite link design unit iii
Satellite link design unit  iiiSatellite link design unit  iii
Satellite link design unit iii
 
WE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMS
WE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMSWE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMS
WE3.L10.2: COMMUNICATION CODING OF PULSED RADAR SYSTEMS
 
Fading and Large Scale Fading
 Fading and Large Scale Fading Fading and Large Scale Fading
Fading and Large Scale Fading
 
Software defined radio....
Software defined radio....Software defined radio....
Software defined radio....
 
International Telecommunication Union for Radio Communication (ITU-R)
International Telecommunication Union for Radio Communication (ITU-R)International Telecommunication Union for Radio Communication (ITU-R)
International Telecommunication Union for Radio Communication (ITU-R)
 
Software Defined Radio (SDR)
Software Defined Radio (SDR)Software Defined Radio (SDR)
Software Defined Radio (SDR)
 

Andere mochten auch

Pycontw2013x
Pycontw2013xPycontw2013x
Pycontw2013x
weijr
 
Fairwaves UmTRX - GNU Radio Conference 2013 presentation
Fairwaves UmTRX - GNU Radio Conference 2013 presentationFairwaves UmTRX - GNU Radio Conference 2013 presentation
Fairwaves UmTRX - GNU Radio Conference 2013 presentation
Alexander Chemeris
 
USRP Project Final Report
USRP Project Final ReportUSRP Project Final Report
USRP Project Final Report
Arjan Gupta
 

Andere mochten auch (12)

CLG - GNURadio et USRP
CLG - GNURadio et USRPCLG - GNURadio et USRP
CLG - GNURadio et USRP
 
Software Defined Radios for VHF, UHF and SHF
Software Defined Radios for VHF, UHF and SHFSoftware Defined Radios for VHF, UHF and SHF
Software Defined Radios for VHF, UHF and SHF
 
VHF/UHF Uplink Solutions for Remote Wireless Sensor Networks - Bifrost Meeting
VHF/UHF Uplink Solutions for Remote Wireless Sensor Networks - Bifrost MeetingVHF/UHF Uplink Solutions for Remote Wireless Sensor Networks - Bifrost Meeting
VHF/UHF Uplink Solutions for Remote Wireless Sensor Networks - Bifrost Meeting
 
Pysx presentation at Pycontw
Pysx presentation at PycontwPysx presentation at Pycontw
Pysx presentation at Pycontw
 
Introduction Discrete-Event Simulation Using SimPy
Introduction Discrete-Event Simulation Using SimPyIntroduction Discrete-Event Simulation Using SimPy
Introduction Discrete-Event Simulation Using SimPy
 
Pycontw2013x
Pycontw2013xPycontw2013x
Pycontw2013x
 
Rapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypythonRapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypython
 
GNU Radio for space research
GNU Radio for space researchGNU Radio for space research
GNU Radio for space research
 
Fairwaves UmTRX - GNU Radio Conference 2013 presentation
Fairwaves UmTRX - GNU Radio Conference 2013 presentationFairwaves UmTRX - GNU Radio Conference 2013 presentation
Fairwaves UmTRX - GNU Radio Conference 2013 presentation
 
Mimo and sync_with_usrp
Mimo and sync_with_usrpMimo and sync_with_usrp
Mimo and sync_with_usrp
 
Usrp family-09-open
Usrp family-09-openUsrp family-09-open
Usrp family-09-open
 
USRP Project Final Report
USRP Project Final ReportUSRP Project Final Report
USRP Project Final Report
 

Ähnlich wie Gnu radio lecture

Final Report of Project A Low
Final Report of Project A LowFinal Report of Project A Low
Final Report of Project A Low
Jan Salomon
 
UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...
UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...
UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...
Sameer Murthy
 

Ähnlich wie Gnu radio lecture (20)

Final Report of Project A Low
Final Report of Project A LowFinal Report of Project A Low
Final Report of Project A Low
 
PRLSAMP PP Presentation
PRLSAMP PP PresentationPRLSAMP PP Presentation
PRLSAMP PP Presentation
 
SOFTWARE DEFINED RADIO
SOFTWARE DEFINED RADIOSOFTWARE DEFINED RADIO
SOFTWARE DEFINED RADIO
 
final presentation
final presentationfinal presentation
final presentation
 
Lab based ppt pluto-sdr_final
Lab based ppt pluto-sdr_finalLab based ppt pluto-sdr_final
Lab based ppt pluto-sdr_final
 
UMKC Dynamics of BER smaller
UMKC Dynamics of BER smallerUMKC Dynamics of BER smaller
UMKC Dynamics of BER smaller
 
Lab based report
Lab based reportLab based report
Lab based report
 
Multiband Transceivers - [Chapter 5] Software-Defined Radios
Multiband Transceivers - [Chapter 5]  Software-Defined RadiosMultiband Transceivers - [Chapter 5]  Software-Defined Radios
Multiband Transceivers - [Chapter 5] Software-Defined Radios
 
Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...
Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...
Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...
 
UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...
UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...
UWA M.E Project Report - Implementation of a Software FM Receiver using GNU R...
 
robotics and embedded system ppt
robotics and embedded system pptrobotics and embedded system ppt
robotics and embedded system ppt
 
Final2
Final2Final2
Final2
 
Implementation of Algorithms For Multi-Channel Digital Monitoring Receiver
Implementation of Algorithms For Multi-Channel Digital Monitoring ReceiverImplementation of Algorithms For Multi-Channel Digital Monitoring Receiver
Implementation of Algorithms For Multi-Channel Digital Monitoring Receiver
 
IRJET- Implementation of FSK Transceiver using Software Defined Radio (SDR)
IRJET- Implementation of FSK Transceiver using Software Defined Radio (SDR)IRJET- Implementation of FSK Transceiver using Software Defined Radio (SDR)
IRJET- Implementation of FSK Transceiver using Software Defined Radio (SDR)
 
HACKING THE WIRELESS WORD WITH SOFTWARE DEFINED RADIO
HACKING THE WIRELESS WORD WITH SOFTWARE DEFINED RADIOHACKING THE WIRELESS WORD WITH SOFTWARE DEFINED RADIO
HACKING THE WIRELESS WORD WITH SOFTWARE DEFINED RADIO
 
GNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spottenGNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spotten
 
ClubHack Magazine – December 2011
ClubHack Magazine – December 2011ClubHack Magazine – December 2011
ClubHack Magazine – December 2011
 
Universal software defined radio development platform
Universal software defined radio development platformUniversal software defined radio development platform
Universal software defined radio development platform
 
A review on various types of software defined radios (sdrs) in radio communic...
A review on various types of software defined radios (sdrs) in radio communic...A review on various types of software defined radios (sdrs) in radio communic...
A review on various types of software defined radios (sdrs) in radio communic...
 
Sdr
SdrSdr
Sdr
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Gnu radio lecture

  • 1. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio An introduction Jesper M. Kristensen Department of Electronic Systems jmk@es.aau.dk Programmerbare digitale enheder Tuesday 6/3 2007 Programmerbare digitale enheder GNU Radio 1 / 36
  • 2. Introduction GNU Radio Architecture Programming the GNU Radio References Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 2 / 36
  • 3. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 3 / 36
  • 4. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio A Framework An open source software toolkit Supports, Linux, Mac OS and Windows Creating signal processing applications Defining waveforms in software Processing waveforms in software A hardware platform USRP, universal software radio peripheral, low cost HW platform for preprocessing ADC &DAC FPGA USB 2.0 Interface to Host PC A framework for building software radio transceivers Programmerbare digitale enheder GNU Radio 4 / 36
  • 5. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Prerequisites Using the GNU radio is cross disciplinary Requiring know-how in the fields of Computer programming Communications systems Digital signal processing Analog as well as digital hardware Hardware is also open source Schematics are available Programmerbare digitale enheder GNU Radio 5 / 36
  • 6. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 6 / 36
  • 7. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Software Radio An implementation technology A technique for moving digital signal processing as close as possible to the antenna Replacing rigid Hardware... with flexible software based solutions Software Radio defintion A software (defined) radio is a radio that includes a transmitter in which the operating parameters of the transmitter, including the frequency range, modulation type or maximum radiated or conducted output power can be altered by making a change in software without making any hardware changes. Programmerbare digitale enheder GNU Radio 7 / 36
  • 8. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Alternative definitions Quoting the SDR forum: Software Defined Radio (SDR) is a collection of hardware and software technologies that enable reconfigurable system architectures for wireless networks and user terminals. SDR provides an efficient and comparatively inexpensive solution to the problem of building multi-mode, multi-band, multi-functional wireless devices that can be enhanced using software upgrades. As such, SDR can really be considered an enabling technology that is applicable across a wide range of areas within the wireless industry. SDR-enabled devices... can be dynamically programmed in software to reconfigure the characteristics of equipment. In other words, the same piece of "hardware" can be modified to perform different functions at different times... Programmerbare digitale enheder GNU Radio 8 / 36
  • 9. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Defining software radio using tiers... The SDR Forum has defined the following tiers, describing evolving capabilities in terms of flexibility Tier 0 The Hardware Radio: The radio is implemented using hardware components only and cannot be modified except through physical intervention. Tier 1 Software Controlled Radio (SCR): Only the control functions of an SCR are implemented in software - thus only limited functions are changeable using software. Typically this extends to inter-connects, power levels etc. but not to frequency bands and/or modulation types etc. Programmerbare digitale enheder GNU Radio 9 / 36
  • 10. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Defining software radio using tiers... Tier 2 Software Defined Radio (SDR): SDRs provide software control of a variety of modulation techniques, wide-band or narrow-band operation, communications security functions (such as hopping), and waveform requirements of current and evolving standards over a broad frequency range. The frequency bands covered may still be constrained at the front-end requiring a switch in the antenna system. Tier 3 Ideal Software Radio (ISR): ISRs provide dramatic improvement over an SDR by eliminating the analog amplification or heterodyne mixing prior to digital-analog conversion. Programmability extends to the entire system with analog conversion only at the antenna, speaker and microphones. Programmerbare digitale enheder GNU Radio 10 / 36
  • 11. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio Defining software radio using tiers... Tier 4 Ultimate Software Radio (USR): USRs are defined for comparison purposes only. It accepts fully programmable traffic and control information and supports a broad range of frequencies, air-interfaces & applications software. It can switch from one air interface format to another in milliseconds, use GPS to track the users location, store money using smartcard technology, or provide video so that the user can watch a local broadcast station or receive a satellite transmission. Cognitive radio (CR) is a form of wireless communication in which a transceiver can intelligently detect which communication channels are in use and which are not, and instantly move into vacant channels while avoiding occupied ones. This optimizes the use of available radio-frequency (RF) spectrum while minimizing interference to other users. Programmerbare digitale enheder GNU Radio 11 / 36
  • 12. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio S(D)R and Transceiver architetures Two basic transceiver architectures The heterodyne The zero IF Programmerbare digitale enheder GNU Radio 12 / 36
  • 13. Introduction GNU Radio Architecture Programming the GNU Radio References What is GNU Radio Software Radio S(D)R and Transceiver architetures Two basic transceiver architectures The heterodyne The zero IF Programmerbare digitale enheder GNU Radio 12 / 36
  • 14. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 13 / 36
  • 15. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture GNU Radio block schematic " # " $% & ! Programmerbare digitale enheder GNU Radio 14 / 36
  • 16. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture GNU Radio block schematic in more detail ! Programmerbare digitale enheder GNU Radio " 15 / 36
  • 17. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture The Universal Software Radio Peripheral Basic USRP facts 4*ADC, 12 bit @ 64MSPS 4*DAC, 14 bit @ 128MSPS Altera EP1C12 FPGA for preprocessing tasks Analog and Digital I/O for auxilliary I/O Supporting Two Receive daughter boards Two Transmit daughter boards USB 2.0 interface to host PC Programmerbare digitale enheder GNU Radio 16 / 36
  • 18. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture More photos of the USRP Programmerbare digitale enheder GNU Radio 17 / 36
  • 19. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture ADC&DAC frontend, AD9862 Some more ADC specs Sampling signals up 32 MHz (Nyquist sampling) IF sampling up to 100MHz If internal buffers bypassed, up to 250MHz full range of ADC is 2Vpp (optimized SNR) Programmerbare digitale enheder GNU Radio 18 / 36
  • 20. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture The FPGA RX/TX paths implemented in the FPGA Connections controlled via software RX path TX path Programmerbare digitale enheder GNU Radio 19 / 36
  • 21. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture The FPGA RX/TX paths implemented in the FPGA Connections controlled via software ! " # $ %& ' ) ( * + RX path TX path Programmerbare digitale enheder GNU Radio 19 / 36
  • 22. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture The FPGA RX/TX paths implemented in the FPGA Connections controlled via software RX path TX path Programmerbare digitale enheder GNU Radio 19 / 36
  • 23. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture The USB interface The USB interface supports (ideally) 32Mbyte/s this limits the achievable datarates Examples of datarates Complex samples are interleaved across the USB interface Having one channel with complex samples gives 8Mbit/s Having multiple channels (up to 4) reduces the rate per channel accordingly Finally adding TX channels again reduces achievable rates as combined rates is limited by 32Mbyte/s. Programmerbare digitale enheder GNU Radio 20 / 36
  • 24. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture The USB interface The USB interface supports (ideally) 32Mbyte/s this limits the achievable datarates Examples of datarates Complex samples are interleaved across the USB interface Having one channel with complex samples gives 8Mbit/s Having multiple channels (up to 4) reduces the rate per channel accordingly Finally adding TX channels again reduces achievable rates as combined rates is limited by 32Mbyte/s. Programmerbare digitale enheder GNU Radio 20 / 36
  • 25. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture The USB interface The USB interface supports (ideally) 32Mbyte/s this limits the achievable datarates Examples of datarates Complex samples are interleaved across the USB interface Having one channel with complex samples gives 8Mbit/s Having multiple channels (up to 4) reduces the rate per channel accordingly Finally adding TX channels again reduces achievable rates as combined rates is limited by 32Mbyte/s. Programmerbare digitale enheder GNU Radio 20 / 36
  • 26. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture Hardware architecture in conclusion GNU radio supports up to 4 independent real sampling channels or 2 independent complex sampling channels 2 independent TX channels are supported Achievable rates are limited by the USB 32Mbyte/s. Programmerbare digitale enheder GNU Radio 21 / 36
  • 27. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 22 / 36
  • 28. Introduction GNU Radio Architecture Programming the GNU Radio References Hardware Architecture Software Architecture A 3 tier architecture GNU Radio Software architecture Python scripting language used for creating "‘signal flow graphs"’ Python Application development, creating flow graphs C++ used for creating signal processing blocks An already existing library of signalling blocks OFDM functionality is currently being added tested and will be added to the library. C++ Signal processing modules Scheduler Controlling flow graphs The scheduler is using Python’s built-in module threading, to control the ‘starting’, ‘stopping’ or ‘waiting’ operations of the signal flow graph. Programmerbare digitale enheder GNU Radio 23 / 36
  • 29. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 24 / 36
  • 30. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development GNU Radio ‘Hello World’ application Hello World Example: Dial Tone Output #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 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, 0), (dst, 0)) fg.connect ((src1, 0), (dst, 1)) return fg if __name__ == ’__main__’: fg = build_graph () fg.start () raw_input (’Press Enter to quit: ’) fg.stop () Programmerbare digitale enheder GNU Radio 25 / 36
  • 31. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step Makes the python code executable by executing $ chmod +x "‘filename.py"’ #!/usr/bin/env python Programmerbare digitale enheder GNU Radio 26 / 36
  • 32. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step Importing nessecary modules modules from GNU radio library #!/usr/bin/env python from gnuradio import gr from gnuradio import audio Programmerbare digitale enheder GNU Radio 26 / 36
  • 33. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step setting up signal flow graph #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): Programmerbare digitale enheder GNU Radio 26 / 36
  • 34. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step Sampling frequency and amplitude on soundcard #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 ampl = 0.1 Programmerbare digitale enheder GNU Radio 26 / 36
  • 35. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step Instantiating a flow graph object from flow graph class #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 ampl = 0.1 fg = gr.flow_graph () Programmerbare digitale enheder GNU Radio 26 / 36
  • 36. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step Setting up sinewaves at 350 and 440 Hz #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 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) Programmerbare digitale enheder GNU Radio 26 / 36
  • 37. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step defining destination to be soundcard #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 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) Programmerbare digitale enheder GNU Radio 26 / 36
  • 38. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step connecting source and destinations, left and right channel #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 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, 0), (dst, 0)) fg.connect ((src1, 0), (dst, 1)) Programmerbare digitale enheder GNU Radio 26 / 36
  • 39. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step returning created flow graph #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 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, 0), (dst, 0)) fg.connect ((src1, 0), (dst, 1)) return fg Programmerbare digitale enheder GNU Radio 26 / 36
  • 40. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Hello world step-by-step Create code to execute the flowgraph #!/usr/bin/env python from gnuradio import gr from gnuradio import audio def build_graph (): sampling_freq = 48000 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, 0), (dst, 0)) fg.connect ((src1, 0), (dst, 1)) return fg if __name__ == ’__main__’: fg = build_graph () fg.start () raw_input (’Press Enter to quit: ’) fg.stop () Programmerbare digitale enheder GNU Radio 26 / 36
  • 41. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 27 / 36
  • 42. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Listening to FM radio Listening to FM Radio on the GNU radio involves Setting up the USRP Selecting RX channel Setting up decimation factor Setting up possible gain factor defining channel seletion filter implementing demodulator defining audio filter sending demodulated output to soundcard. Programmerbare digitale enheder GNU Radio 28 / 36
  • 43. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development FM receiver block schematic Programmerbare digitale enheder GNU Radio 29 / 36
  • 44. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Outline 1 Introduction What is GNU Radio Software Radio 2 GNU Radio Architecture Hardware Architecture Software Architecture 3 Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development 4 References Programmerbare digitale enheder GNU Radio 30 / 36
  • 45. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Software development on GNU Radio The application of Python Using Python for creating flow graphs Also used for creating GUI’s and other non performance critical appplications The application of C++ Performance critical applications Signal processing blocks like the FM demodulator Programmerbare digitale enheder GNU Radio 31 / 36
  • 46. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Signal processing blocks in C++ Built as shared libaries dynamically loaded using python ’import’ feature SWIG "‘Simplified Wrapper and Interface Generator"’ used for glue code allowing python import. C++ class "‘gr_block"’ is base for all signal processing blocks Derived classes gr_sync_block, gr_sync_decimator and gr_interpolator can also be used depending on input/output rate relations Programmerbare digitale enheder GNU Radio 32 / 36
  • 47. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Components needed in writing a C++ block .h file for class declaration .cc file for class definition .i file defining how SWIG generate glue code binding the C++ class into Python Programmerbare digitale enheder GNU Radio 33 / 36
  • 48. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development Building a test framework Using gr_unittest an extension to python unittest enabling checking for aproximate equality tuples of float and complex type enabling automated test run’s assuming block to be verified is "‘howto_square_ff"’ assuming input and output specifications known Programmerbare digitale enheder GNU Radio 34 / 36
  • 49. Introduction GNU Radio Architecture Programming the GNU Radio References GNU Radio "‘Hello World"’ FM radio Software development qa_howto.py from gnuradio import gr, gr_unittest import howto class qa_howto (gr_unittest.TestCase): def setUp (self): self.fg = gr.flow_graph () def tearDown (self): self.fg = None def test_001_square_ff (self): src_data = (-3, 4, -5.5, 2, 3) expected_result = (9, 16, 30.25, 4, 9) src = gr.vector_source_f (src_data) sqr = howto.square_ff () dst = gr.vector_sink_f () self.fg.connect (src, sqr) self.fg.connect (sqr, dst) self.fg.run () result_data = dst.data () self.assertFloatTuplesAlmostEqual (expected_result, result_data, 6) if __name__ == ’__main__’: gr_unittest.main () Programmerbare digitale enheder GNU Radio 35 / 36
  • 50. Introduction GNU Radio Architecture Programming the GNU Radio References For Further Reading GNU Radio website http://www.gnu.org/software/gnuradio/ GNU Radio tutorials http://www.nd.edu/ jnl/sdr/ How to Write a Signal Processing Block http://www.gnu.org/software/gnuradio/doc/howto-write-a-block.html Exploring GNU Radio http://www.gnu.org/software/gnuradio/doc/exploring-gnuradio.html Programmerbare digitale enheder GNU Radio 36 / 36