Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A Glimpse into Developing Software-Defined Radio by Python

9,366 views

Published on

Software-defined radio~(SDR) has been emerging for many years in
various fields, including military, commercial communication
systems, and scientific research, e.g. space exploration. GNU Radio
is an open source SDR framework written in Python. This talk will introduce from basic concept of software-defined radio and various
front-end hardware, and then illustrate how to use Python to develop
SDR.

Published in: Technology
  • Be the first to comment

A Glimpse into Developing Software-Defined Radio by Python

  1. 1. A Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh Huang A Glimpse intoIntroduction toSoftware- Developing Software-Defined Radio by PythonDefinedRadioGNU Radio Albert Chun-Chieh HuangSDR withNT$900 DongleDevelopingSDR by GNURadio andPython December 17, 2012ConcludingRemarksReferences
  2. 2. About the AuthorA Glimpse into Developing Software-Defined Radio by Python He is both a programmer and a communication engineer. He Albert learned Python in 2000 and has used it extensively on Chun-Chieh Huang improving his workflow ever since. He has been working in communication IC industry for more than eight years. HisIntroduction toSoftware- interests include communication engineering and engineeringDefinedRadio communication, which consists of fields from physical layer toGNU Radio MAC layer as well as typesetting.SDR withNT$900 Dongle Blog: Random Notes,Developing http://alberthuang314.blogspot.com/SDR by GNURadio and LinkedIn:PythonConcluding http://www.linkedin.com/in/alberthuang314Remarks Email address: alberthuang314 AT gmail DOT comReferences
  3. 3. OutlineA Glimpse into Developing Software-Defined Radio by Python Albert 1 Introduction to Software-Defined Radio Chun-Chieh HuangIntroduction to 2 GNU RadioSoftware-DefinedRadio 3 SDR with NT$900 DongleGNU RadioSDR withNT$900 Dongle 4 Developing SDR by GNU Radio and PythonDevelopingSDR by GNURadio andPython 5 Concluding RemarksConcludingRemarksReferences
  4. 4. Introduction to Software-Defined RadioA Glimpse into Developing Software-Defined Radio by Python Software-Defined Radio (SDR) is a radio communication Albert Chun-Chieh system implemented (mostly) in software. HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  5. 5. Introduction to Software-Defined RadioA Glimpse into Developing Software-Defined Radio by Python Software-Defined Radio (SDR) is a radio communication Albert Chun-Chieh system implemented (mostly) in software. Huang “Software radio” [6] was coined by Joseph Mitola, III in 1992.Introduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  6. 6. Introduction to Software-Defined RadioA Glimpse into Developing Software-Defined Radio by Python Software-Defined Radio (SDR) is a radio communication Albert Chun-Chieh system implemented (mostly) in software. Huang “Software radio” [6] was coined by Joseph Mitola, III in 1992.Introduction toSoftware- Application areasDefinedRadio Military systems, space exploration, base stations, femtocells,GNU Radio etc.SDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  7. 7. Introduction to Software-Defined RadioA Glimpse into Developing Software-Defined Radio by Python Software-Defined Radio (SDR) is a radio communication Albert Chun-Chieh system implemented (mostly) in software. Huang “Software radio” [6] was coined by Joseph Mitola, III in 1992.Introduction toSoftware- Application areasDefinedRadio Military systems, space exploration, base stations, femtocells,GNU Radio etc.SDR with Background knowledge required for SDR programmerNT$900 DongleDeveloping ProgrammingSDR by GNU Digital Signal ProcessingRadio andPython Probability and StatisticsConcluding Communication SystemRemarksReferences
  8. 8. What Can SDR Do?A Glimpse into Developing Software-Defined Radio by Python Rapid prototype for Albert Chun-Chieh algorithm development Huang channel measurementIntroduction to systems because field trials are vital to commercialSoftware- communication systemsDefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  9. 9. What Can SDR Do?A Glimpse into Developing Software-Defined Radio by Python Rapid prototype for Albert Chun-Chieh algorithm development Huang channel measurementIntroduction to systems because field trials are vital to commercialSoftware- communication systemsDefinedRadio Reconfigurable radioGNU Radio one device for many communication standardsSDR withNT$900 Dongle military or aviation communication systems instrumentsDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  10. 10. What Can SDR Do?A Glimpse into Developing Software-Defined Radio by Python Rapid prototype for Albert Chun-Chieh algorithm development Huang channel measurementIntroduction to systems because field trials are vital to commercialSoftware- communication systemsDefinedRadio Reconfigurable radioGNU Radio one device for many communication standardsSDR withNT$900 Dongle military or aviation communication systems instrumentsDevelopingSDR by GNURadio and Small volume deploymentPython implemented by DSP’s and FPGA’s without producing IC’sConcluding base stationsRemarksReferences
  11. 11. Radio Communication System ComponentsA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh Huang Source Channel Digital Up Up Source Modulator D/A Encoder Encoder Converter ConverterIntroduction toSoftware-DefinedRadioGNU RadioSDR with Source Channel Demodula Digital Dn Down Sink A/DNT$900 Dongle Decoder Decoder tor Converter ConverterDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  12. 12. Software-Defined Radio ComponentsA Glimpse into Developing Software-Defined Radio by Python Albert Software Hardware Chun-Chieh Huang Source Channel Digital Up Up Source Modulator D/A Encoder Encoder Converter ConverterIntroduction toSoftware-DefinedRadioGNU RadioSDR with Source Channel Demodula Digital Dn Down Sink A/DNT$900 Dongle Decoder Decoder tor Converter ConverterDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  13. 13. Software-Defined Modem ComponentsA Glimpse into Developing Software-Defined Radio by Python Albert Software Hardware Chun-Chieh Huang Source Channel Source Modulator D/A Encoder EncoderIntroduction toSoftware-DefinedRadioGNU RadioSDR with Source Channel Demodula Sink A/DNT$900 Dongle Decoder Decoder torDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  14. 14. Software-Defined Modem Example: CourierA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  15. 15. Software-Defined Modem Example: SporsterA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  16. 16. Software-Defined Modem ExampleA Glimpse into Developing Software-Defined Radio by Python U.S. Robotics had more than 50% market share in North Albert Chun-Chieh America at the apex of it! (mid ’90s) HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  17. 17. Software-Defined Modem ExampleA Glimpse into Developing Software-Defined Radio by Python U.S. Robotics had more than 50% market share in North Albert Chun-Chieh America at the apex of it! (mid ’90s) Huang They were well known for stability and upgrade-ability.Introduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  18. 18. Software-Defined Modem ExampleA Glimpse into Developing Software-Defined Radio by Python U.S. Robotics had more than 50% market share in North Albert Chun-Chieh America at the apex of it! (mid ’90s) Huang They were well known for stability and upgrade-ability.Introduction toSoftware- Those were really good old days that we can doDefinedRadio software-defined radio/modem in a product.GNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  19. 19. Software-Defined Modem ExampleA Glimpse into Developing Software-Defined Radio by Python U.S. Robotics had more than 50% market share in North Albert Chun-Chieh America at the apex of it! (mid ’90s) Huang They were well known for stability and upgrade-ability.Introduction toSoftware- Those were really good old days that we can doDefinedRadio software-defined radio/modem in a product.GNU Radio And sell it at USD$400!SDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  20. 20. Software-Defined Modem ExampleA Glimpse into Developing Software-Defined Radio by Python U.S. Robotics had more than 50% market share in North Albert Chun-Chieh America at the apex of it! (mid ’90s) Huang They were well known for stability and upgrade-ability.Introduction toSoftware- Those were really good old days that we can doDefinedRadio software-defined radio/modem in a product.GNU Radio And sell it at USD$400!SDR with SDR approach is not possible anymore for end-user modems,NT$900 Dongle incl. radio modems.DevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  21. 21. Software-Defined Modem ExampleA Glimpse into Developing Software-Defined Radio by Python U.S. Robotics had more than 50% market share in North Albert Chun-Chieh America at the apex of it! (mid ’90s) Huang They were well known for stability and upgrade-ability.Introduction toSoftware- Those were really good old days that we can doDefinedRadio software-defined radio/modem in a product.GNU Radio And sell it at USD$400!SDR with SDR approach is not possible anymore for end-user modems,NT$900 Dongle incl. radio modems.DevelopingSDR by GNU Developing communication system is not so fun anymoreRadio and because it takes longer to start playing in the field!PythonConcludingRemarksReferences
  22. 22. Software-Defined Modem ExampleA Glimpse into Developing Software-Defined Radio by Python U.S. Robotics had more than 50% market share in North Albert Chun-Chieh America at the apex of it! (mid ’90s) Huang They were well known for stability and upgrade-ability.Introduction toSoftware- Those were really good old days that we can doDefinedRadio software-defined radio/modem in a product.GNU Radio And sell it at USD$400!SDR with SDR approach is not possible anymore for end-user modems,NT$900 Dongle incl. radio modems.DevelopingSDR by GNU Developing communication system is not so fun anymoreRadio and because it takes longer to start playing in the field!PythonConcluding It’s great to have GNU Radio now!RemarksReferences
  23. 23. GNU Radio: Open Source SDRA Glimpse into Developing Software-Defined Radio by Python GNU Radio is a free & open-source software development Albert Chun-Chieh toolkit that provides signal processing blocks to implement Huang software radios.Introduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  24. 24. GNU Radio: Open Source SDRA Glimpse into Developing Software-Defined Radio by Python GNU Radio is a free & open-source software development Albert Chun-Chieh toolkit that provides signal processing blocks to implement Huang software radios.Introduction toSoftware- Primarily written in Python with performance-critical signalDefinedRadio processing components written in C++ [2].GNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  25. 25. GNU Radio: Open Source SDRA Glimpse into Developing Software-Defined Radio by Python GNU Radio is a free & open-source software development Albert Chun-Chieh toolkit that provides signal processing blocks to implement Huang software radios.Introduction toSoftware- Primarily written in Python with performance-critical signalDefinedRadio processing components written in C++ [2].GNU Radio C++ classes are wrapped by SWIG [4].SDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  26. 26. GNU Radio: Open Source SDRA Glimpse into Developing Software-Defined Radio by Python GNU Radio is a free & open-source software development Albert Chun-Chieh toolkit that provides signal processing blocks to implement Huang software radios.Introduction toSoftware- Primarily written in Python with performance-critical signalDefinedRadio processing components written in C++ [2].GNU Radio C++ classes are wrapped by SWIG [4].SDR withNT$900 Dongle Python can be used to develop rapid prototype for SDR in anDeveloping elegant and fast way.SDR by GNURadio andPythonConcludingRemarksReferences
  27. 27. GNU Radio: Open Source SDRA Glimpse into Developing Software-Defined Radio by Python GNU Radio is a free & open-source software development Albert Chun-Chieh toolkit that provides signal processing blocks to implement Huang software radios.Introduction toSoftware- Primarily written in Python with performance-critical signalDefinedRadio processing components written in C++ [2].GNU Radio C++ classes are wrapped by SWIG [4].SDR withNT$900 Dongle Python can be used to develop rapid prototype for SDR in anDeveloping elegant and fast way.SDR by GNURadio andPython “Install GNU Radio 3.6.2 on MacOSX 10.8.2”Concluding http://goo.gl/mJQmARemarksReferences
  28. 28. SDR HardwareA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh With software-defined radio frameworks like GNU Radio, we Huang still need RF front-end hardware to process signals in the air,Introduction toSoftware- or in the water. :-)DefinedRadio Ettus Research provides cheap RF front-end hardwareGNU Radio ranges from USD$1700, price not including RF daughterSDR with boards, to USD$650.NT$900 DongleDeveloping RTL2832U-based dongles can be obtained at NT$900 inSDR by GNURadio and Taiwan!PythonConcludingRemarksReferences
  29. 29. Ettus Research USRP N210: USD$1700A Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  30. 30. Ettus Research USRP1: USD$700A Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  31. 31. Realtek RTL2832U-based DVB Dongle: NT$900A Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences Source: http://farm8.staticflickr.com/7114/6952840370 6e3a75d93a z.jpg
  32. 32. Realtek RTL2832U-based DVB DongleA Glimpse into Developing Software-Defined Radio by Python RTL2832U is a DVB decoder chip designed by Realtek Albert 8-bit resolution Chun-Chieh Huang SNR limits to 48 dBIntroduction to 3.2 Mega sample per second at mostSoftware-Defined 2.4 Msps achievable on my dual core i7 MacBook ProRadio Bandwidth limits to 2.4 MHz (with complex samples)GNU Radio Amateur radio, GSM, AM/FM broadcasting, etc.SDR withNT$900 Dongle Elonics E4000 tuner has the widest tuning range among allDeveloping RTL2832U-based donglesSDR by GNURadio and 52 - 2200 MHz with a gap from 1100 MHz to 1250 MHzPython (varies)ConcludingRemarks Supported by gr-osmosdr module in GNU Radio [3]References
  33. 33. USRP Models and RTL2832U-based DongleA Glimpse into Developing Software-Defined Radio by Python USRP Interface Total RF DB ADC ADC DAC DAC MIMO Int. GPS 1 PPS/Ref Albert Chun-Chieh Model Host BW Slots Res. Rate Res. Rate Capable Disciplined Inputs Huang (MSPS (bits) (MSPS) (bits) (MSPS) Oscillator 16b/8b) (Optional)Introduction toSoftware- N210 Gig. Eth. 50/100 1 14 100 16 400 Yes Yes YesDefinedRadio N200 Gig. Eth. 50/100 1 14 100 16 400 Yes Yes Yes B100 USB 2.0 8/16 1 12 64 14 128 No No YesGNU Radio USRP1 USB 2.0 8/* 2 12 64 14 128 Yes No NoSDR withNT$900 Dongle E100 Embedded 8/16 1 12 64 14 128 No Yes Yes E110 Embedded 8/16 1 12 64 14 128 No Yes YesDevelopingSDR by GNURadio andPython RTL2832U USB 2.0 */3.2 0 8 3.2 * * No No NoConcludingRemarksReferences
  34. 34. Developing SDR by GNU RadioA Glimpse into Developing Software- Lego Way: GNU Radio Companion [1]Defined Radio by Python Easy and intuitive Albert Creating flow-graph by connecting existing components in Chun-Chieh Huang gnuradio companionIntroduction to C++ WaySoftware- Fully customizableDefinedRadio Fast in executionGNU Radio Good for real-time communicationSDR with Time-consuming to write a componentNT$900 Dongle Wrapped by SWIGDevelopingSDR by GNU Python WayRadio andPython Fully customizableConcluding Fast in developmentRemarks NumPy/SciPyReferences Great for rapid prototyping
  35. 35. Developing SDR: Lego Way FM ReceiverA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences http://www.oz9aec.net/index.php/gnu-radio/grc-examples
  36. 36. Developing SDR: Lego Way SSB ReceiverA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences http://www.oz9aec.net/index.php/gnu-radio/grc-examples
  37. 37. Developing SDR: C++ WayA Glimpse into Developing Software-Defined Radio GMSK Receiver Complexity [5] by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  38. 38. Developing SDR: Python WayA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh Huang Python Python Python Python Rapid Wrapper Wrapper WrapperIntroduction to PrototypeSoftware-DefinedRadioGNU Radio C++ signal C++ signal C++ signalSDR with processing processing processingNT$900 Dongle block block blockDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  39. 39. Developing SDR: Python WayA Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh Huang Rapid prototyping for algorithm developmentIntroduction to Modify FPGA code to accommodate your needs if necessarySoftware- Dump samples from front-end hardware to hard drivesDefinedRadio Process saved samples by NumPy/SciPy packages in PythonGNU Radio and GNU RadioSDR withNT$900 Dongle Convert your Python code into C++ module later when youDeveloping need real-time processingSDR by GNURadio andPythonConcludingRemarksReferences
  40. 40. Concluding RemarksA Glimpse into Developing Software-Defined Radio by Python GNU Radio provides signal processing capabilities for Python Albert Chun-Chieh programmers. HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  41. 41. Concluding RemarksA Glimpse into Developing Software-Defined Radio by Python GNU Radio provides signal processing capabilities for Python Albert Chun-Chieh programmers. Huang GNU Radio can doIntroduction to Floating-point digital signal processingSoftware-Defined Communication components include from filters to ViterbiRadio decodersGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  42. 42. Concluding RemarksA Glimpse into Developing Software-Defined Radio by Python GNU Radio provides signal processing capabilities for Python Albert Chun-Chieh programmers. Huang GNU Radio can doIntroduction to Floating-point digital signal processingSoftware-Defined Communication components include from filters to ViterbiRadio decodersGNU Radio GNU Radio can not do (right now)SDR withNT$900 Dongle Fixed-point digital signal processingDeveloping Modern error correction coding, e.g. LDPC, Turbo code, etc.SDR by GNURadio and MAC layer processingPythonConcludingRemarksReferences
  43. 43. Concluding RemarksA Glimpse into Developing Software-Defined Radio by Python GNU Radio provides signal processing capabilities for Python Albert Chun-Chieh programmers. Huang GNU Radio can doIntroduction to Floating-point digital signal processingSoftware-Defined Communication components include from filters to ViterbiRadio decodersGNU Radio GNU Radio can not do (right now)SDR withNT$900 Dongle Fixed-point digital signal processingDeveloping Modern error correction coding, e.g. LDPC, Turbo code, etc.SDR by GNURadio and MAC layer processingPython Upcoming talks will guide you to process digital signals byConcludingRemarks GNU RadioReferences
  44. 44. Don’t ask what GNU Radio can do for you, but what you can do for GNU Radio!A Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadioGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences http://goo.gl/LODjx
  45. 45. A Glimpse into Developing Software-Defined Radio by Python Albert Chun-Chieh HuangIntroduction toSoftware-DefinedRadio Q&AGNU RadioSDR withNT$900 DongleDevelopingSDR by GNURadio andPythonConcludingRemarksReferences
  46. 46. ReferencesA Glimpse into Developing [1] “GNU Radio Companion.” [Online]. Available: http://gnuradio. Software-Defined Radio org/redmine/projects/gnuradio/wiki/GNURadioCompanion by Python Albert [2] “GNU Radio Project Wiki.” [Online]. Available: Chun-Chieh Huang http://gnuradio.org/redmine/projects/gnuradio/wikiIntroduction to [3] “RTL SDR at OsmoCom.” [Online]. Available:Software-Defined http://sdr.osmocom.org/trac/wiki/rtl-sdrRadio [4] “SWIG - Simple Wrapper and Interface Generator.” [Online].GNU Radio Available: http://swig.orgSDR withNT$900 Dongle [5] F. Ge, C. J. Chiang, Y. M. Gottlieb, and R. Chadha, “GNUDevelopingSDR by GNU Radio-Based Digital Communications: Computational AnalysisRadio andPython of a GMSK Transceiver,” in Global TelecommunicationsConcluding Conference (GLOBECOM 2011), 2011 IEEE.Remarks [6] J. Mitola, III, “Software radios-survey, critical evaluation andReferences future directions,” in Telesystems Conference, 1992. NTC-92., National, 1992, p. 13.

×