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.
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
A Glimpse into Developing Software-Defined Radio by Python
1. A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang A Glimpse into
Introduction to
Software-
Developing Software-Defined Radio by Python
Defined
Radio
GNU Radio
Albert Chun-Chieh Huang
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
December 17, 2012
Concluding
Remarks
References
2. About the Author
A 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. His
Introduction to
Software- interests include communication engineering and engineering
Defined
Radio communication, which consists of fields from physical layer to
GNU Radio MAC layer as well as typesetting.
SDR with
NT$900 Dongle Blog: Random Notes,
Developing http://alberthuang314.blogspot.com/
SDR by GNU
Radio and LinkedIn:
Python
Concluding
http://www.linkedin.com/in/alberthuang314
Remarks
Email address: alberthuang314 AT gmail DOT com
References
3. Outline
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
1 Introduction to Software-Defined Radio
Chun-Chieh
Huang
Introduction to
2 GNU Radio
Software-
Defined
Radio
3 SDR with NT$900 Dongle
GNU Radio
SDR with
NT$900 Dongle
4 Developing SDR by GNU Radio and Python
Developing
SDR by GNU
Radio and
Python
5 Concluding Remarks
Concluding
Remarks
References
4. Introduction to Software-Defined Radio
A 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
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
5. Introduction to Software-Defined Radio
A 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 to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
6. Introduction to Software-Defined Radio
A 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 to
Software- Application areas
Defined
Radio Military systems, space exploration, base stations, femtocells,
GNU Radio etc.
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
7. Introduction to Software-Defined Radio
A 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 to
Software- Application areas
Defined
Radio Military systems, space exploration, base stations, femtocells,
GNU Radio etc.
SDR with Background knowledge required for SDR programmer
NT$900 Dongle
Developing
Programming
SDR by GNU Digital Signal Processing
Radio and
Python Probability and Statistics
Concluding Communication System
Remarks
References
8. What Can SDR Do?
A Glimpse into
Developing
Software-
Defined Radio
by Python Rapid prototype for
Albert
Chun-Chieh
algorithm development
Huang channel measurement
Introduction to
systems because field trials are vital to commercial
Software- communication systems
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
9. What Can SDR Do?
A Glimpse into
Developing
Software-
Defined Radio
by Python Rapid prototype for
Albert
Chun-Chieh
algorithm development
Huang channel measurement
Introduction to
systems because field trials are vital to commercial
Software- communication systems
Defined
Radio Reconfigurable radio
GNU Radio
one device for many communication standards
SDR with
NT$900 Dongle
military or aviation communication systems
instruments
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
10. What Can SDR Do?
A Glimpse into
Developing
Software-
Defined Radio
by Python Rapid prototype for
Albert
Chun-Chieh
algorithm development
Huang channel measurement
Introduction to
systems because field trials are vital to commercial
Software- communication systems
Defined
Radio Reconfigurable radio
GNU Radio
one device for many communication standards
SDR with
NT$900 Dongle
military or aviation communication systems
instruments
Developing
SDR by GNU
Radio and
Small volume deployment
Python implemented by DSP’s and FPGA’s without producing IC’s
Concluding
base stations
Remarks
References
11. Radio Communication System Components
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Source Channel Digital Up Up
Source Modulator D/A
Encoder Encoder Converter Converter
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with Source Channel Demodula Digital Dn Down
Sink A/D
NT$900 Dongle Decoder Decoder tor Converter Converter
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
12. Software-Defined Radio Components
A 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 Converter
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with Source Channel Demodula Digital Dn Down
Sink A/D
NT$900 Dongle Decoder Decoder tor Converter Converter
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
13. Software-Defined Modem Components
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert Software Hardware
Chun-Chieh
Huang
Source Channel
Source Modulator D/A
Encoder Encoder
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with Source Channel Demodula
Sink A/D
NT$900 Dongle Decoder Decoder tor
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
14. Software-Defined Modem Example: Courier
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
15. Software-Defined Modem Example: Sporster
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
16. Software-Defined Modem Example
A 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
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
17. Software-Defined Modem Example
A 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 to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
18. Software-Defined Modem Example
A 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 to
Software- Those were really good old days that we can do
Defined
Radio software-defined radio/modem in a product.
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
19. Software-Defined Modem Example
A 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 to
Software- Those were really good old days that we can do
Defined
Radio software-defined radio/modem in a product.
GNU Radio And sell it at USD$400!
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
20. Software-Defined Modem Example
A 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 to
Software- Those were really good old days that we can do
Defined
Radio 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.
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
21. Software-Defined Modem Example
A 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 to
Software- Those were really good old days that we can do
Defined
Radio 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.
Developing
SDR by GNU
Developing communication system is not so fun anymore
Radio and because it takes longer to start playing in the field!
Python
Concluding
Remarks
References
22. Software-Defined Modem Example
A 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 to
Software- Those were really good old days that we can do
Defined
Radio 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.
Developing
SDR by GNU
Developing communication system is not so fun anymore
Radio and because it takes longer to start playing in the field!
Python
Concluding It’s great to have GNU Radio now!
Remarks
References
23. GNU Radio: Open Source SDR
A 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 to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
24. GNU Radio: Open Source SDR
A 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 to
Software- Primarily written in Python with performance-critical signal
Defined
Radio processing components written in C++ [2].
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
25. GNU Radio: Open Source SDR
A 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 to
Software- Primarily written in Python with performance-critical signal
Defined
Radio processing components written in C++ [2].
GNU Radio
C++ classes are wrapped by SWIG [4].
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
26. GNU Radio: Open Source SDR
A 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 to
Software- Primarily written in Python with performance-critical signal
Defined
Radio processing components written in C++ [2].
GNU Radio
C++ classes are wrapped by SWIG [4].
SDR with
NT$900 Dongle Python can be used to develop rapid prototype for SDR in an
Developing elegant and fast way.
SDR by GNU
Radio and
Python
Concluding
Remarks
References
27. GNU Radio: Open Source SDR
A 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 to
Software- Primarily written in Python with performance-critical signal
Defined
Radio processing components written in C++ [2].
GNU Radio
C++ classes are wrapped by SWIG [4].
SDR with
NT$900 Dongle Python can be used to develop rapid prototype for SDR in an
Developing elegant and fast way.
SDR by GNU
Radio and
Python
“Install GNU Radio 3.6.2 on MacOSX 10.8.2”
Concluding http://goo.gl/mJQmA
Remarks
References
28. SDR Hardware
A 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 to
Software-
or in the water. :-)
Defined
Radio Ettus Research provides cheap RF front-end hardware
GNU Radio ranges from USD$1700, price not including RF daughter
SDR with boards, to USD$650.
NT$900 Dongle
Developing RTL2832U-based dongles can be obtained at NT$900 in
SDR by GNU
Radio and Taiwan!
Python
Concluding
Remarks
References
29. Ettus Research USRP N210: USD$1700
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
30. Ettus Research USRP1: USD$700
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
31. Realtek RTL2832U-based DVB Dongle: NT$900
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
Source: http://farm8.staticflickr.com/7114/6952840370 6e3a75d93a z.jpg
32. Realtek RTL2832U-based DVB Dongle
A 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 dB
Introduction to 3.2 Mega sample per second at most
Software-
Defined 2.4 Msps achievable on my dual core i7 MacBook Pro
Radio
Bandwidth limits to 2.4 MHz (with complex samples)
GNU Radio
Amateur radio, GSM, AM/FM broadcasting, etc.
SDR with
NT$900 Dongle Elonics E4000 tuner has the widest tuning range among all
Developing RTL2832U-based dongles
SDR by GNU
Radio and 52 - 2200 MHz with a gap from 1100 MHz to 1250 MHz
Python
(varies)
Concluding
Remarks
Supported by gr-osmosdr module in GNU Radio [3]
References
33. USRP Models and RTL2832U-based Dongle
A 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 to
Software- N210 Gig. Eth. 50/100 1 14 100 16 400 Yes Yes Yes
Defined
Radio 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 Yes
GNU Radio
USRP1 USB 2.0 8/* 2 12 64 14 128 Yes No No
SDR with
NT$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 Yes
Developing
SDR by GNU
Radio and
Python RTL2832U USB 2.0 */3.2 0 8 3.2 * * No No No
Concluding
Remarks
References
34. Developing SDR by GNU Radio
A 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 companion
Introduction to
C++ Way
Software- Fully customizable
Defined
Radio Fast in execution
GNU Radio Good for real-time communication
SDR with Time-consuming to write a component
NT$900 Dongle
Wrapped by SWIG
Developing
SDR by GNU Python Way
Radio and
Python Fully customizable
Concluding Fast in development
Remarks
NumPy/SciPy
References
Great for rapid prototyping
35. Developing SDR: Lego Way FM Receiver
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
http://www.oz9aec.net/index.php/gnu-radio/grc-examples
36. Developing SDR: Lego Way SSB Receiver
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
http://www.oz9aec.net/index.php/gnu-radio/grc-examples
37. Developing SDR: C++ Way
A Glimpse into
Developing
Software-
Defined Radio GMSK Receiver Complexity [5]
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
38. Developing SDR: Python Way
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang Python
Python Python Python
Rapid
Wrapper Wrapper Wrapper
Introduction to Prototype
Software-
Defined
Radio
GNU Radio
C++ signal C++ signal C++ signal
SDR with
processing processing processing
NT$900 Dongle
block block block
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
39. Developing SDR: Python Way
A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang Rapid prototyping for algorithm development
Introduction to
Modify FPGA code to accommodate your needs if necessary
Software- Dump samples from front-end hardware to hard drives
Defined
Radio Process saved samples by NumPy/SciPy packages in Python
GNU Radio and GNU Radio
SDR with
NT$900 Dongle
Convert your Python code into C++ module later when you
Developing need real-time processing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
40. Concluding Remarks
A Glimpse into
Developing
Software-
Defined Radio
by Python GNU Radio provides signal processing capabilities for Python
Albert
Chun-Chieh
programmers.
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
41. Concluding Remarks
A Glimpse into
Developing
Software-
Defined Radio
by Python GNU Radio provides signal processing capabilities for Python
Albert
Chun-Chieh
programmers.
Huang
GNU Radio can do
Introduction to Floating-point digital signal processing
Software-
Defined Communication components include from filters to Viterbi
Radio decoders
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
42. Concluding Remarks
A Glimpse into
Developing
Software-
Defined Radio
by Python GNU Radio provides signal processing capabilities for Python
Albert
Chun-Chieh
programmers.
Huang
GNU Radio can do
Introduction to Floating-point digital signal processing
Software-
Defined Communication components include from filters to Viterbi
Radio decoders
GNU Radio
GNU Radio can not do (right now)
SDR with
NT$900 Dongle Fixed-point digital signal processing
Developing Modern error correction coding, e.g. LDPC, Turbo code, etc.
SDR by GNU
Radio and
MAC layer processing
Python
Concluding
Remarks
References
43. Concluding Remarks
A Glimpse into
Developing
Software-
Defined Radio
by Python GNU Radio provides signal processing capabilities for Python
Albert
Chun-Chieh
programmers.
Huang
GNU Radio can do
Introduction to Floating-point digital signal processing
Software-
Defined Communication components include from filters to Viterbi
Radio decoders
GNU Radio
GNU Radio can not do (right now)
SDR with
NT$900 Dongle Fixed-point digital signal processing
Developing Modern error correction coding, e.g. LDPC, Turbo code, etc.
SDR by GNU
Radio and
MAC layer processing
Python
Upcoming talks will guide you to process digital signals by
Concluding
Remarks GNU Radio
References
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
Huang
Introduction to
Software-
Defined
Radio
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
http://goo.gl/LODjx
45. A Glimpse into
Developing
Software-
Defined Radio
by Python
Albert
Chun-Chieh
Huang
Introduction to
Software-
Defined
Radio
Q&A
GNU Radio
SDR with
NT$900 Dongle
Developing
SDR by GNU
Radio and
Python
Concluding
Remarks
References
46. References
A 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/wiki
Introduction to
[3] “RTL SDR at OsmoCom.” [Online]. Available:
Software-
Defined
http://sdr.osmocom.org/trac/wiki/rtl-sdr
Radio
[4] “SWIG - Simple Wrapper and Interface Generator.” [Online].
GNU Radio
Available: http://swig.org
SDR with
NT$900 Dongle [5] F. Ge, C. J. Chiang, Y. M. Gottlieb, and R. Chadha, “GNU
Developing
SDR by GNU
Radio-Based Digital Communications: Computational Analysis
Radio and
Python
of a GMSK Transceiver,” in Global Telecommunications
Concluding
Conference (GLOBECOM 2011), 2011 IEEE.
Remarks
[6] J. Mitola, III, “Software radios-survey, critical evaluation and
References
future directions,” in Telesystems Conference, 1992. NTC-92.,
National, 1992, p. 13.