the gnu in radio

77
The GNU in RADIO Shravan Rayanchu

Upload: lolita

Post on 15-Jan-2016

41 views

Category:

Documents


2 download

DESCRIPTION

The GNU in RADIO. Shravan Rayanchu. SDR. Getting the code close to the antenna Software defines the waveform Replace analog signal processing with Digital signal processing Why? Flexibility, time to market, reliable Its all about the stack : GPRS/ WiFi / WiMax. SDR. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The  GNU  in  RADIO

The GNU in RADIO

Shravan Rayanchu

Page 2: The  GNU  in  RADIO

SDR

• Getting the code close to the antenna– Software defines the waveform – Replace analog signal processing with Digital

signal processing

• Why?– Flexibility, time to market, reliable– Its all about the stack : GPRS/ WiFi / WiMax

Page 3: The  GNU  in  RADIO

SDR

• Possibilities …?– TX/RX on multiple channels simultaneously– Better spectrum usage– “Cognitive radios”

• Disadvantages– Higher power consumption (GPU vs ASIC)– More MIPS!– Higher cost (as of today)

Page 4: The  GNU  in  RADIO

GNU RADIO

• Platform for – Experimenting with digital communications– Signal processing using commodity hardware

• Free software!

• http://www.gnu.org/software/gnuradio/

Page 5: The  GNU  in  RADIO

A TYPICAL SDR

Page 6: The  GNU  in  RADIO

ADC

• Sampling Rate– Rate at which you sample the analog signal– Determines what frequency can be handled

• Dynamic range – Number of signal levels– Quantization error

• SNR = 6.02N + 1.76dB

Page 7: The  GNU  in  RADIO

Sum of sinusoids: Sigma ai Sin (2 pi fit)

Sampling

Page 8: The  GNU  in  RADIO

Sin (2 pi fc nts) = Sin (2 pi fc nts+ 2 pi m) = Sin (2 pi nts (fc + m/n fs))

fc + k fs

Sampling

We need a LOW PASS FILTER !

Page 9: The  GNU  in  RADIO

Sampling

Page 10: The  GNU  in  RADIO

Nyquist Criteria

Sampling freq > Twice the max. frequency component in the signal of interest

Page 11: The  GNU  in  RADIO

ALIASING

ADCs in USRP:64 Msps 32 Mhz

How to receive 2.4 Ghz ?RF Front end

Page 12: The  GNU  in  RADIO

RF Front End: Down conversion

LPF

VCO

LPF ADC

Mixer: sinusoid of (RF-IF)

Intermediate Frequency (IF)

Page 13: The  GNU  in  RADIO

RF Front Ends

• 50 - 860 Mhz RX

• 400 – 500 Mhz Transceiver

• 400 – 500 Mhz Transceiver

• 400 – 500 Mhz Transceiver

• 2300 – 2900 Mhz Transceiver – Bandpass filter (2.4 to 2.483 Ghz)

Page 14: The  GNU  in  RADIO

USRP

Page 15: The  GNU  in  RADIO

USRP

• Universal Software Radio Peripheral– To rapidly design powerful, flexible software

radio platforms

• What does it have?– FPGA (ALTERA Cyclone)– Mixed signal processor (AD 9862)– Slots for 4 daughter boards (2 TX, 2 RX)

Page 16: The  GNU  in  RADIO

Boot sequence: two programmable components

• USB Controller (Cypress FX2): 8051 code

• FPGA (ALTERA Cyclone): Verilog

Page 17: The  GNU  in  RADIO

USRP

• Four 12-bit ADC, 64 Msps – Sub-multiples are also possible: 42.66 Msps, 32 Msps, 25.6

Msps and 21.33 Msps– Decimation helps– IF has to be < 32 MHz

• Four 14-bit DAC 128 Msps – Max. output 50 Mhz

• Four I/Os simultaneously if we use real sampling, Two I/Os for complex sampling; synchronized clocks

• Each daughter board has access to 2 DACs and 2 ADCs• Why Different boards ?

– different RFs same IF

Page 18: The  GNU  in  RADIO

USRP

• Four Digital Downconverters (DDCs)– FPGA with CIC Filters– Programmable decimation rate– Low pass filter

• Two Digital Upconverters (DUCs)– AD 9862– Programmable interpolation rate

• USB 2.0 (480 Mbps, peak)

Page 19: The  GNU  in  RADIO

RX PATH

Page 20: The  GNU  in  RADIO

DDC : IF Complex Baseband

Page 21: The  GNU  in  RADIO

AD 9862

Block D: The "Fine Modulator" -- this is a digital up-converter

Block C: Interpolation filter (we interpolate by 4 in the AD9862)

Block B: The "Coarse Modulator"

Block A: The actual DACs.

TX PATH

Page 22: The  GNU  in  RADIO

GNU Radio Software Architecture

• Library of signal processing blocks (C++)– Ex: sources, sinks, others

• Input, output ports, types, ‘work function’

• Create a ‘flow graph’ : vertices are blocks and edges represent the data flow (Python)

• SWIG, FFTW, Boost …

Page 23: The  GNU  in  RADIO

Lets look into some code!

Page 24: The  GNU  in  RADIO

GENERATE DIAL TONE

Page 25: The  GNU  in  RADIO
Page 26: The  GNU  in  RADIO
Page 27: The  GNU  in  RADIO
Page 28: The  GNU  in  RADIO
Page 29: The  GNU  in  RADIO
Page 30: The  GNU  in  RADIO

Frequency Modulation

Page 31: The  GNU  in  RADIO
Page 32: The  GNU  in  RADIO
Page 33: The  GNU  in  RADIO
Page 34: The  GNU  in  RADIO
Page 35: The  GNU  in  RADIO
Page 36: The  GNU  in  RADIO
Page 37: The  GNU  in  RADIO

Spectrum Sensing

Page 38: The  GNU  in  RADIO

Spectrum Sensing

Page 39: The  GNU  in  RADIO

Spectrum Sensing

Page 40: The  GNU  in  RADIO

Spectrum Sensing

Page 41: The  GNU  in  RADIO

Spectrum Sensing

Page 42: The  GNU  in  RADIO

Spectrum Sensing

Page 43: The  GNU  in  RADIO

6 Mhz Limit

• USB 2.0 limit 32 MBytes/sec

• ADC 64 Msps 32 Mhz chunk

• 8 Msps w/ 16 bit I/Q samples– 8 * 2 * 2 = 32 Mbytes/sec– 4 Mhz * 2 = 8 Mhz (Quadrature sampling)– Discard 1/4 of bins ~ 6 Mhz

• Decimation (8, 256)

• Interpolation (16,256)

Page 44: The  GNU  in  RADIO

Spectrum Mask

Page 45: The  GNU  in  RADIO

Spectrum Sensing

Tune : 0.001 sec , Dwell : 0.1 sec , Step: 0.5 Mhz , FFT : 1 Mhz wide

Page 46: The  GNU  in  RADIO

Spectrum Sensing

Tune : 0.001 sec , Dwell : 0.1 sec , Step: 1 Mhz , FFT : 1 Mhz wide

Page 47: The  GNU  in  RADIO

Spectrum Sensing

Page 48: The  GNU  in  RADIO

Spectrum Sensing

Tune : 0.001 sec , Dwell : 0.01 sec , Step: 1 Mhz , FFT : 1 Mhz wide

Page 49: The  GNU  in  RADIO

Spectrum Sensing

Tune : 0.001 sec , Dwell : 0.01 sec , Step: 1 Mhz , FFT : 1 Mhz wide

Page 50: The  GNU  in  RADIO

CSMA

Page 51: The  GNU  in  RADIO
Page 52: The  GNU  in  RADIO

CSMA

Page 53: The  GNU  in  RADIO

CSMA

Page 54: The  GNU  in  RADIO

CSMA

Page 55: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Page 56: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Page 57: The  GNU  in  RADIO

Spectrum

Page 58: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Page 59: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Page 60: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Page 61: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Page 62: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Demodulate to get ones and zeroes

Page 63: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Demodulate to get ones and zeroes

Page 64: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Demodulate to get

Get the SYNC Vector

ones and zeroes

Page 65: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Demodulate to get

Get the SYNC Vector

ones and zeroes

Page 66: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Demodulate to get

Get the SYNC Vector

ones and zeroes

We have the pkt now

Page 67: The  GNU  in  RADIO

CSMA

Complex samples from USRP

Filter to get the actual channel we want

Demodulate to get

Get the SYNC Vector

ones and zeroes

We have the pkt now

Carrier Sense

RX CALLBACK

Page 68: The  GNU  in  RADIO

Some numbers ..

• Time to switch freq ~ 0.001 sec (Have to verify)

• Modulation:– GMSK, [ DBPSK, DQPSK didn’t work ]– Bit rate = 500k [ CPU Maxed out ]

• Throughputs:– UDP: 520 kbps ! (PHY: 500 kbps) : Error in

Netperf ?– TCP: 20 ~ 80 Kbps

Page 69: The  GNU  in  RADIO

Channel 1, less tries

2.412 (Channel 1) , 3.8% pkts in error

Page 70: The  GNU  in  RADIO

Channel 1, Ping flood, More tries

Page 71: The  GNU  in  RADIO

Channel 1, Ping source, More tries

4% error (throughput very less)

Page 72: The  GNU  in  RADIO

Channel 6

2.3% pkts in error

Page 73: The  GNU  in  RADIO

2.423 Ghz

~ 1.6% pkts in error

Page 74: The  GNU  in  RADIO

2.562 Ghz

0% pkts in error

Page 75: The  GNU  in  RADIO

Channel 1, Ping sourceCS_Thresh = 70 , 50

Error was ~ 4 % !!

Page 76: The  GNU  in  RADIO
Page 77: The  GNU  in  RADIO

What do we have?

• Multiple modulations: – BPSK, QPSK, GMSK, QAM (soon)

• Symbol rates / bandwidth• Pulse shape filtering (?)• Carrier Frequency• Power• Payload size• CRC ..