GNU Radio An introduction By Maryam Taghizadeh Dehkordi 9/9/2007 GNU Radio Outline Introduction What is a GNU Radio? GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU Radio
Outline Introduction What is a GNU Radio GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU 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 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 9/9/2007 GNU Radio
Prerequisites Using the GNU radio is cross disciplinary Requiring know-how in the fields of Computer programming C Communications systems Digital signal processing Analog as well as digital hardware Hardware is also open source Schematics are available 9/9/2007 GNU Radio Outline Introduction What is a GNU Radio GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU Radio
GNU Radio block schematic 9/9/2007 GNU Radio GNU Radio block schematic in more detail 9/9/2007 GNU Radio
The Universal Software Radio Peripheral The Universal Software Radio Peripheral The Universal Software Radio Peripheral (USRP) enables engineers to rapidly design and implement powerful, flexible software radio systems . 9/9/2007 GNU Radio The Universal Software Radio Peripheral The Universal Software Radio Peripheral 9/9/2007 GNU Radio
The Universal Software Radio Peripheral 9/9/2007 GNU Radio The Universal Software Radio Peripheral 9/9/2007 GNU Radio
The Universal Software Radio Peripheral •$75.00 1 MHz to 250 MHz •$75.00 DC-30 MHz 9/9/2007 GNU Radio The Universal Software Radio Peripheral 9/9/2007 GNU Radio
The Universal Software Radio Peripheral $275.00 RFX400 RFX900 • Frequency Range: 400 • Frequency Range: 750 to 500 MHz to 1050 MHz • Transmit Power: • Transmit Power: 100mW (20dBm) 200mW (23dBm) RFX1200 RFX1200 RFX1800 RFX1800 • Frequency Range: 1150 • Frequency Range: 1.5 to to 1450 MHz 2.1 GHz • Transmit Power: • Transmit Power: 200mW (23dBm) 100mW (20dBm) RFX2400 • Frequency Range: 2.3 to 2.9 GHz • Transmit Power: 50mW (17dBm) 9/9/2007 GNU Radio ADC&DAC frontend, AD9862 9/9/2007 GNU Radio
The FPGA 9/9/2007 GNU Radio The FPGA 9/9/2007 GNU Radio
The FPGA 9/9/2007 GNU Radio The USB interface The USB interface supports (ideally) 32Mbyte/s this limits the achievable datarates 9/9/2007 GNU Radio
The USB interface 9/9/2007 GNU Radio The USB interface 9/9/2007 GNU Radio
Hardware architecture in conclusion 9/9/2007 GNU Radio The Universal Software Radio Peripheral Application Commercial Defense Security Wireless research Radio astronomy d Wildlife tracking RFIDs ... 9/9/2007 GNU Radio
Outline Introduction What is a GNU Radio GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU Radio A 3 tier architecture 9/9/2007 GNU Radio
Outline Introduction What is a GNU Radio GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU Radio 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) 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 () � 9/9/2007 GNU Radio
Outline Introduction What is a GNU Radio GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU Radio Listening to FM radio 9/9/2007 GNU Radio
FM receiver block schematic 9/9/2007 GNU Radio Outline Introduction What is a GNU Radio GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU Radio
Software development on GNU Radio 9/9/2007 GNU Radio Signal processing blocks in C++ 9/9/2007 GNU Radio
Components needed in writing a C++ block .h and .cc file for class definition 9/9/2007 GNU Radio Outline Introduction What is a GNU Radio GNU Radio Architecture Hardware Architecture Software Architecture Programming the GNU Radio GNU Radio "‘Hello World"’ FM radio Software development References 9/9/2007 GNU Radio
References 9/9/2007 GNU Radio
Recommend
More recommend