Upload
melvin-cannon
View
220
Download
0
Tags:
Embed Size (px)
Citation preview
DSP Techniques for Software Radio
A System Example
Dr. Jamil Ahmad
2
SDR System
GNU Radio SDR Hardware Support SDR Software Development SDR Demo
3
Why GNU Radio?
Open source Knowledge Sharing Growing Applications Open Hardware Architecture PC Interface – General Purpose
DSP
4
GNU Radio Hardware
Universal Software Radio Peripheral (USRP) Multi-Channel Multi-Band Flexible
Hardware Wideband system USB 2.0 Interface Developed for Linux Analog RF and Digital Front End
Processing
5
USRP Board
6
USRP
Daughter Cards Flexible Analog RF Front Ends
0-5GHz Support MIMO System
High Speed Data Conversion Mother Board
High Speed FPGA for Front-End Processing
USB 2.0 Interface with PC
7
USRP FPGA Processing
8
USRP ADCs 4 – 12bit A/D Converters 64M samples/sec each (theoretically a
32MHz wide band) 42.66M samples/s, 32M samples/s ... also
possible. 2V Peak-to-Peak input PGA to increase gain up to 20db before
A/D for weak signals.
9
USRP DACs
4 - 14bit D/A Converters 128M samples/s each Theoretical 64 MHz bandwidth Tx
signal but should not attempt more than 50 MHz
10
USRP Data Conversion Effectively 4 input and 4 ouput channels Usually use a complex signal input/output
so 2 complex inputs and 2 complex outputs There is also onboard interpolation in the
FPGA (DDC) for both TX and RX All samples sent across the USB are 16-bit
signed integer values USB can only handle 32Megabytes/s or less
11
GNU Radio Software
SDR Blocks Basic DSP blocks in C++
SDR System Python to connect DSP processing
blocks Example Code
12
GNU Radio SoftwareHello 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 ()
13
SDR System Demo
64-QAM OFDM System No RF PC-to-PC analog wire connection
using sound cards Both Tx and RX
14
GNU Radio
GNU Software Radio
http://www.gnu.org/software/gnuradio/
USRP http://www.ettus.com