SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Linux Device Tree
Linux Device TreeLinux Device Tree
Linux Device Tree
 
Overview 5G NR Radio Protocols by Intel
Overview 5G NR Radio Protocols by Intel Overview 5G NR Radio Protocols by Intel
Overview 5G NR Radio Protocols by Intel
 
Overview of Nios II Embedded Processor
Overview of Nios II Embedded ProcessorOverview of Nios II Embedded Processor
Overview of Nios II Embedded Processor
 
FPGA Configuration
FPGA ConfigurationFPGA Configuration
FPGA Configuration
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
LTE Evolution: From Release 8 to Release 10
LTE Evolution: From Release 8 to Release 10LTE Evolution: From Release 8 to Release 10
LTE Evolution: From Release 8 to Release 10
 
I2C Drivers
I2C DriversI2C Drivers
I2C Drivers
 
LPWAN Technology ~ What is Weightless-P?
LPWAN Technology ~ What is Weightless-P? LPWAN Technology ~ What is Weightless-P?
LPWAN Technology ~ What is Weightless-P?
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
ASIC vs SOC vs FPGA
ASIC  vs SOC  vs FPGAASIC  vs SOC  vs FPGA
ASIC vs SOC vs FPGA
 
Introduction to Embedded System
Introduction to Embedded SystemIntroduction to Embedded System
Introduction to Embedded System
 
Final2
Final2Final2
Final2
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
5G Call flow.pdf
5G Call flow.pdf5G Call flow.pdf
5G Call flow.pdf
 
Introduction to Linux Drivers
Introduction to Linux DriversIntroduction to Linux Drivers
Introduction to Linux Drivers
 
Embedded System
Embedded SystemEmbedded System
Embedded System
 
Dsp ajal
Dsp  ajalDsp  ajal
Dsp ajal
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
2 g case analsyis handover training-20060901-a-2.0
2 g case analsyis handover training-20060901-a-2.02 g case analsyis handover training-20060901-a-2.0
2 g case analsyis handover training-20060901-a-2.0
 
Asic vs fpga
Asic vs fpgaAsic vs fpga
Asic vs fpga
 

Destacado

Gnu Radio and the Universal Software Radio Peripheral
Gnu Radio and the Universal Software Radio PeripheralGnu Radio and the Universal Software Radio Peripheral
Gnu Radio and the Universal Software Radio PeripheralAlexandru Csete
 
CLG - GNURadio et USRP
CLG - GNURadio et USRPCLG - GNURadio et USRP
CLG - GNURadio et USRPPascal Charest
 
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 SHFAlexandru Csete
 
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 MeetingAlp Sayin
 
Pysx presentation at Pycontw
Pysx presentation at PycontwPysx presentation at Pycontw
Pysx presentation at Pycontwweijr
 
Introduction Discrete-Event Simulation Using SimPy
Introduction Discrete-Event Simulation Using SimPyIntroduction Discrete-Event Simulation Using SimPy
Introduction Discrete-Event Simulation Using SimPyAlbert Huang
 
Pycontw2013x
Pycontw2013xPycontw2013x
Pycontw2013xweijr
 
Rapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypythonRapid prototypingembeddedsystemsbypython
Rapid prototypingembeddedsystemsbypythonAlbert Huang
 
GNU Radio for space research
GNU Radio for space researchGNU Radio for space research
GNU Radio for space researchRustam Akhtyamov
 
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 presentationAlexander Chemeris
 
USRP Project Final Report
USRP Project Final ReportUSRP Project Final Report
USRP Project Final ReportArjan Gupta
 
Software defined radio
Software defined radioSoftware defined radio
Software defined radioDevesh Samaiya
 

Destacado (14)

Gnu Radio and the Universal Software Radio Peripheral
Gnu Radio and the Universal Software Radio PeripheralGnu Radio and the Universal Software Radio Peripheral
Gnu Radio and the Universal Software Radio Peripheral
 
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
 
Software defined radio
Software defined radioSoftware defined radio
Software defined radio
 

Similar a Gnu radio lecture

Software defined radio....
Software defined radio....Software defined radio....
Software defined radio....Bise Mond
 
Final Report of Project A Low
Final Report of Project A LowFinal Report of Project A Low
Final Report of Project A LowJan Salomon
 
PRLSAMP PP Presentation
PRLSAMP PP PresentationPRLSAMP PP Presentation
PRLSAMP PP Presentationkotorr
 
Lab based ppt pluto-sdr_final
Lab based ppt pluto-sdr_finalLab based ppt pluto-sdr_final
Lab based ppt pluto-sdr_finalBhavna Singh
 
Sdr the future of radio
Sdr the future of radioSdr the future of radio
Sdr the future of radioJauwadSyed
 
Software Defined Radio
Software Defined RadioSoftware Defined Radio
Software Defined RadioKumar Vimal
 
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 RadiosSimen Li
 
Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...
Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...
Analysis resultsofasoftwaregns srevieverusingusrpandcustomlnawithopensourceal...nishit nathwani
 
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
 
robotics and embedded system ppt
robotics and embedded system pptrobotics and embedded system ppt
robotics and embedded system pptNilgiri publicity
 
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 ReceiverIOSR Journals
 
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)IRJET Journal
 
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 RADIOchandanpatelvns1947
 
GNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spottenGNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spottenPeter Martin
 
ClubHack Magazine – December 2011
ClubHack Magazine – December 2011ClubHack Magazine – December 2011
ClubHack Magazine – December 2011ClubHack
 
Universal software defined radio development platform
Universal software defined radio development platformUniversal software defined radio development platform
Universal software defined radio development platformBertalan EGED
 
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...eSAT Journals
 

Similar a Gnu radio lecture (20)

Software defined radio....
Software defined radio....Software defined radio....
Software defined radio....
 
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
 
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
 
Sdr the future of radio
Sdr the future of radioSdr the future of radio
Sdr the future of radio
 
UMKC Dynamics of BER smaller
UMKC Dynamics of BER smallerUMKC Dynamics of BER smaller
UMKC Dynamics of BER smaller
 
Software Defined Radio
Software Defined RadioSoftware Defined Radio
Software Defined Radio
 
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
 
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...
 

Último

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Último (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

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