Software radio
Software radio Software program What is software? 09/05/15 Slide 2
Software radio Software program What is software? Machine readable instructions that direct processor to do specific operations Used when some operations will be changing or when all the required operations are not known beforehand System functionality can evolve, software is easier to change than HW 09/05/15 Slide 3
Software defined radio Software defined radio https://en.wikipedia.org/wiki/software-defined_radio SDR A radio system where components that are traditionally implemented in hardware are implemented in software Ideal system would be AD/DA converter is attached to general purpose processor based processing unit (PC) In practice in a SDR receiver AD converter precedes low noise amplifier and mixer LNA needed since AD converter does not have enough dynamic range Mixer needed since AD converter does not have enough bandwidth
BB processing: close to radio Source coding FEC Mapping Modul. DA + RF Source decod FEC Demap sym/bits Symbol recovery AD + RF Data Channel recovery 09/05/15 Slide 5
BB processing: in PC Source coding FEC Mapping Modul. AD + RF Source decod FEC Demap sym/bits Symbol recovery DA + RF Data Channel recovery 09/05/15 Slide 6
A! Base band processing in radio head Benefits Processing done in ASIC or FPGA Close to transmission can have quick switch from Tx to Rx Drawbacks Slow to develop. If PC controlling multiple frontends difficult to process together 09/05/15 Slide 7
A! Base band processing in PC Benefits Can programmed in common programming languages Can process multiple radio heads together Drawbacks Slow loop to frontend Responses times from Tx to Rx (or vice versa) have to go over PC radio frontend connection IQ samples between PC and radio frontends high data rates 09/05/15 Slide 8
Software radio case study: LTE BS Implementation a network of software radios Research project in Comnet Baseband functionality implemented in C++ and runs in PCs Physical layer follows TD-LTE specification RF front ends through USRP units 09/05/15 Slide 9
Transceiver Transmitter Baseband PC RF USRP Air interface Receiver Baseband PC RF USRP
Our System
PC based software radio
RF front end RF TRx + AD/DA USRP High performance RTL-SDR RTL2832 TV tuner 10-20Eur HackRF/LimeRF Special SDR chip + Software platform Baseband processing GNU radio SDR-radio.com Matlab Labview Old attempts IRIS Asgard 09/05/15 Slide 14
RF front ends https://www.rtl-sdr.com/roundup-software-defined-radios/ 09/05/15 Slide 16
Hardware USRP
USRP
USRP Info ETTUS research http://www.ettus.com/ Units are separated based how they connect to PC Ethernet USB bus Embedded RF frontend + PC RF daughterboards https://www.ettus.com/product/category/daughterboards 20
RF daughterboard xcvr2450 2.4-2.5 GHz and 4.9-5.9 GHz Half Duplex Only TX output power 100 mw Single synthesizer shared between Rx and Tx RSSI measurement that can be read from software SBX 400 MHz to 4.4 GHz TX output power 16 to 20 dbm, with 32dB of power control range Dual synthesizers for independent Tx and Rx NF < 3GHz: 5-7 db 3 4 GHz: 7-10 db 4 4.4 GHz: 10 13 db
Spectrum with TX level ~ 0 dbm USRP2 + xcvr2450 2009 N200 + SBX 2011
Software
Radio link I Source coding FEC Mapping Modul. Base band Source decoding FEC Demap sym/bits Symbol recovery Channel recovery 09/05/15 Slide 25
Radio Link in a system (II) Resource control Source coding FEC Mapping Modul. Data transmission done as dataflow One operation follows the other Control is a state based Runs in different timescale 09/05/15 Slide 26
Radio processing time scales Internet Internet packets time Outside network State machine time Scheduler time L3/L2 Packet time L2 Samples time PHY In different layers we have different procesing timescales. Code handling these layers should be written differently. 09/05/15 Slide 27
GNU radio: software radio framework In this course we use GNU radio software Introduction to GNU radio https://wiki.gnuradio.org/index.php/guided_tutorial_introduction Guided tutorial of graphical interface GRC https://wiki.gnuradio.org/index.php/guided_tutorial_grc Tutorial of how to write a new block In Python https://wiki.gnuradio.org/index.php/guided_tutorial_gnu_radio_in_python In C++ https://wiki.gnuradio.org/index.php/guided_tutorial_gnu_radio_in_c%2b%2b 09/05/15 Slide 30
GNU radio GNU radio is an open source software development kit Hierarchical structure High level blocks in Python Signal processing in C++ Primary a simulation tool Dataflow centric Lately added new properties events that allow to control the dataflow
Gnu radio Software defined radio https://en.wikipedia.org/wiki/software-defined_radio Core concept of GNUradio http://gnuradio.org/redmine/projects/gnuradio/wiki/tutorialscoreconcepts Beginners guide http://gnuradio.org/redmine/projects/gnuradio/wiki/howtouse Tutorial of how to write a new block http://gnuradio.org/redmine/projects/gnuradio/wiki/outoftreemodules
GNUradio-companion
GNUradio-companion RX (I)
GNUradio-companion TX (II)
Layered approach GNU radio companion Python script Python C++ library C++ code
Two subsequent blocks Two subsequent blocks One producer Other consumer GNU radio scheduler takes care of data flow between the blocks Items in the interface
Code structure Used software packages Python The block are wrapped and made available to python Python takes care of dataflow between the blocks C++ Signal processing operation are written in C++ Swig C++ wrapper for Python VOLK Vector processing library Uses Intel processors vector units: SSE, AVX
Block diagram Source UHD (USRP) Files Audio (Mic) Other programs Sink USRP Files Audio (speaker) GUI Other programs
Sampling
Nyquist sampling and aliasing Sampling fs should be greater than twice the max signal freq. For a sampling period T we are not able to differentiate between the signals that differ by 1/T http://www.ni.com/white-paper/2709/en/
Aliasing II The spectrum is shown in interval 0 fs/2 The components that are outside into this interval are presented by the corresponding component that We say that the components are aliased. If we do not want these components they should be filtered out before sampling. Note: Undersampling can be used for signal down conversion.