Waveform Development Using Software Defined Radio
Total Page:16
File Type:pdf, Size:1020Kb
Examensarbete LITH-ITN-ED-EX--06/005--SE Waveform Development using Software Defined Radio Thomas Sundquist 2006-04-25 Department of Science and Technology Institutionen för teknik och naturvetenskap Linköpings Universitet Linköpings Universitet SE-601 74 Norrköping, Sweden 601 74 Norrköping LITH-ITN-ED-EX--06/005--SE Waveform Development using Software Defined Radio Examensarbete utfört i Elektronikdesign vid Linköpings Tekniska Högskola, Campus Norrköping Thomas Sundquist Handledare Annica Söderlund Examinator Ole Pedersen Norrköping 2006-04-25 Datum Avdelning, Institution Date Division, Department Institutionen för teknik och naturvetenskap 2006-04-25 Department of Science and Technology Språk Rapporttyp ISBN Language Report category _____________________________________________________ Svenska/Swedish Examensarbete ISRN LITH-ITN-ED-EX--06/005--SE x Engelska/English B-uppsats _________________________________________________________________ C-uppsats Serietitel och serienummer ISSN x D-uppsats Title of series, numbering ___________________________________ _ ________________ _ ________________ URL för elektronisk version Titel Title Waveform Development using Software Defined Radio Författare Author Thomas Sundquist Sammanfattning Abstract Software Defined Radio (SDR) is a conception of implementing radio functions in computer software, instead of having electronics performing the functions. This thesis aims to compare two different ways of implementing these functions, or waveforms. The Software Communications Architecture (SCA) is an open standard developed by the United States Department of Defense. It uses a CORBA interface environment to make waveform applications interoperable and platform independent. This method of developing SDR is compared to an open-source initiative going by the name GNU Radio. Two waveform applications are developed, one transmitter using SCA, and one receiver using GNU Radio. The analog radio interface is simulated using the sound cards of two regular PCs. The development is done using the C++ and Python programming languages. This thesis examines pros and cons of the two SDR methods, as well as performing studies of Software Defined Radio in general. Nyckelord Keyword SDR, SCA, GNU Radio, CORBA, IDL, XML Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra- ordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ © Thomas Sundquist i Abstract Software Defined Radio (SDR) is a conception of implementing radio functions in computer software, instead of having electronics performing the functions. This thesis aims to compare two different ways of implementing these functions, or waveforms. The Software Communications Architecture (SCA) is an open standard developed by the United States Department of Defense. It uses a CORBA interface environment to make wave- form applications interoperable and platform independent. This method of developing SDR is compared to an open-source initiative going by the name GNU Radio. Two waveform applications are developed, one transmitter using SCA, and one receiver using GNU Radio. The analog radio interface is simulated using the sound cards of two regular PCs. The development is done using the C++ and Python programming languages. This thesis examines pros and cons of the two SDR methods, as well as performing studies of Software Defined Radio in general. Keywords: SDR, SCA, GNU Radio, CORBA, IDL, XML ii iii Preface This is a masters thesis on Waveform Development using Software Defined Radio written by Thomas Sundquist and Mansour Fanni. The thesis and development work were performed during the summer and autumn of 2005 at Ericsson Microwave Systems in Gothenburg, Swe- den. Thesis outline This thesis is split into 7 chapters: Chapter 1 is an introduction to the thesis. Chapter 2 deals with Software Defined Radio (SDR) in general. Chapter 3 is all about CORBA. Chapter 4 examines the SCA on a deeper level. Chapter 5 looks into GNU Radio. Chapter 6 introduces the MATH waveform. Chapter 7 reflects our conclusions. There are also several appendixes. Besides the complete source code to our applications, there is an installation guide and a document that deals with platform-specific problems that occurred during our development time. The latter might come in handy when trying to compile and use our applications. Acknowledgement This thesis wouldn’t have made it this far without the support of several people to whom we would like to offer our thanks. Our supervisors at Ericsson Microwave Systems, Annica Soderlund,¨ Daniel Guldbrand and Hakan˚ Berggren, for helping us and guiding us through the thesis work. Ole Pedersen, our examiner at Linkoping¨ University, who has read and criticized our report and given us useful tips and pointers. And last but definitely not least, we would like to thank our families and friends, who have supported us in many ways throughout the project. iv v Contents Abstract i Preface and Acknowledgement iii 1 Introduction 1 1.1 Background................................... 1 1.2 Objectives.................................... 1 1.3 Methods..................................... 1 2 Software Defined Radio 3 2.1 Introduction................................... 3 2.1.1 Waveforms ............................... 3 2.1.2 SoftwareDefinedRadio ........................ 3 2.2 GNURadio................................... 4 2.3 Software Communications Architecture . ..... 5 3 CORBA 7 3.1 CORBAingeneral ............................... 7 3.1.1 IDL................................... 7 3.1.2 PortableObjectAdapter . 9 3.1.3 NamingService............................. 9 4 Software Communications Architecture 11 4.1 Introductionandabstract . 11 4.2 CoreFramework ................................ 12 4.2.1 Base Application Interfaces . 12 4.2.2 Framework Control Interfaces . 13 4.2.2.1 DomainManager . 14 4.2.2.2 Application . 14 4.2.2.3 ApplicationFactory . 14 4.2.2.4 Devices and DeviceManager . 14 4.3 eXtensibleMarkupLanguage. 15 4.4 DomainProfile ................................. 15 4.5 SCAandCORBA................................ 17 4.6 SCAwaveformdevelopment . 18 4.6.1 Development tools . 18 4.6.2 TheAPIofSCA ............................ 18 vi 5 GNU Radio 21 5.1 Overview .................................... 21 5.2 SDR Construction using GNU Radio . 21 5.3 Creating your own building block . 22 5.3.1 SWIG.................................. 22 5.3.2 Boost .................................. 22 5.3.3 Naming Conventions . 22 5.3.4 Muchmoretoknow .......................... 23 5.3.5 TheC++Class ............................. 23 5.4 Asimpleexample................................ 24 6 Implementation of the MATH Waveform 27 6.1 Introduction................................... 27 6.2 SCAimplementation .............................. 28 6.2.1 The beginning steps . 28 6.2.2 The MATH implementation . 29 6.2.3 Functionality .............................. 30 6.2.4 Signalingsystem ............................ 31 6.3 GNURadioimplementation .......................... 32 6.3.1 Firstattempt .............................. 32 6.3.2 Two signal-flow-graphs . 33 6.3.3 The actual implementation . 33 6.3.3.1 TheC++code ........................ 34 6.3.3.2 The Python code . 34 7 Conclusions 35 7.1 Developing waveforms using SCA . 35 7.1.1 Benefitsandadvantages . 35 7.1.2 DisadvantagesofSCA . 36 7.1.3 Conclusions about the SCA . 37 7.2 Developing waveforms using GNU Radio . 37 7.2.1 Advantages of GNU Radio . 37 7.2.2 Disadvantages and drawbacks . 38 7.3 Comparison