GNU Radio An introductionWhat is a GNU Radio GNU Radio Architecture Hardware Architecture Software...

Preview:

Citation preview

GNU Radio An introduction

GNU Radio

Maryam Taghizadeh Dehkordi

By

9/9/2007

Introduction What is a GNU Radio?

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

Introduction What is a GNU Radio

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

An open source software toolkitSupports, Linux, Mac OS and Windows

Creating signal processing applicationsDefining waveforms in softwareProcessing waveforms in software

A hardware platform

A Framework

A hardware platformUSRP, universal software radio peripheral, low cost HW platform for preprocessing

ADC &DACFPGAUSB 2.0 Interface to Host PC

GNU Radio

A framework for building software radio transceivers

9/9/2007

Using the GNU radio is cross disciplinaryRequiring know-how in the fields of

Computer programmingC

Prerequisites

Communications systemsDigital signal processingAnalog as well as digital hardware

Hardware is also open sourceSchematics are available

GNU Radio9/9/2007

Introduction What is a GNU Radio

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

GNU Radio block schematic

GNU Radio9/9/2007

GNU Radio block schematic in more detail

GNU Radio9/9/2007

The Universal Software Radio Peripheral

The Universal Software Radio Peripheral

The Universal Software Radio Peripheral (USRP) enablesengineers to rapidly design and implement powerful, flexiblesoftware radio systems.

GNU Radio9/9/2007

The Universal Software Radio Peripheral

The Universal Software Radio Peripheral

GNU Radio9/9/2007

The Universal Software Radio Peripheral

GNU Radio9/9/2007

The Universal Software Radio Peripheral

GNU Radio9/9/2007

The Universal Software Radio Peripheral

• $75.001 MHz to 250 MHz

GNU Radio

• $75.00DC-30 MHz

9/9/2007

The Universal Software Radio Peripheral

GNU Radio9/9/2007

The Universal Software Radio Peripheral

RFX400• Frequency Range: 400 to 500 MHz• Transmit Power: 100mW (20dBm)

RFX900• Frequency Range: 750 to 1050 MHz• Transmit Power: 200mW (23dBm)

RFX1200 RFX1800

$275.00

GNU Radio

RFX1200• Frequency Range: 1150 to 1450 MHz• Transmit Power: 200mW (23dBm)

RFX1800• Frequency Range: 1.5 to 2.1 GHz• Transmit Power: 100mW (20dBm)

RFX2400• Frequency Range: 2.3 to 2.9 GHz• Transmit Power: 50mW (17dBm)

9/9/2007

ADC&DAC frontend, AD9862

GNU Radio9/9/2007

The FPGA

GNU Radio9/9/2007

The FPGA

GNU Radio9/9/2007

The FPGA

GNU Radio9/9/2007

The USB interface supports (ideally) 32Mbyte/sthis limits the achievable datarates

The USB interface

GNU Radio9/9/2007

The USB interface

GNU Radio9/9/2007

The USB interface

GNU Radio9/9/2007

Hardware architecture in conclusion

GNU Radio9/9/2007

The Universal Software Radio Peripheral

Application

Commercial Defense SecurityWireless research

d

GNU Radio

Radio astronomyWildlife tracking RFIDs...

9/9/2007

Introduction What is a GNU Radio

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

A 3 tier architecture

GNU Radio9/9/2007

Introduction What is a GNU Radio

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

� 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)

GNU Radio ‘Hello World’ application

� 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 ()

GNU Radio9/9/2007

Introduction What is a GNU Radio

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

Listening to FM radio

GNU Radio9/9/2007

FM receiver block schematic

GNU Radio9/9/2007

Introduction What is a GNU Radio

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

Software development on GNU Radio

GNU Radio9/9/2007

Signal processing blocks in C++

GNU Radio9/9/2007

Components needed in writing a C++ block

.h and .cc file for class definition

GNU Radio9/9/2007

Introduction What is a GNU Radio

GNU Radio ArchitectureHardware ArchitectureSoftware Architecture

Outline

GNU Radio

Programming the GNU RadioGNU Radio "‘Hello World"’FM radioSoftware development

References

9/9/2007

References

GNU Radio9/9/2007

Recommended