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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.

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 AGlimpse 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-DefinedRadio 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-DefinedRadio 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-DefinedRadio 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-DefinedRadio 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 SDRDo? 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 SDRDo? 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 SDRDo? 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 SystemComponents 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 AGlimpse 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 AGlimpse 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 AGlimpse 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 AGlimpse 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 AGlimpse 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 AGlimpse 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 AGlimpse 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 AGlimpse 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 AGlimpse 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: OpenSource 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: OpenSource 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: OpenSource 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: OpenSource 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: OpenSource 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 Glimpseinto 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 USRPN210: 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 DVBDongle: 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 DVBDongle 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 andRTL2832U-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 byGNU 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: LegoWay 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: LegoWay 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: PythonWay 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: PythonWay 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 Glimpseinto 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 Glimpseinto 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 Glimpseinto 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 Glimpseinto 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 whatGNU 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.