gnu radio an introductionwhat is a gnu radio gnu radio architecture hardware architecture software...
TRANSCRIPT
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