Software Defined Radio (SDR) Training

Commitment 3 days, 7-8 hours a day.
Language English
User Ratings Average User Rating 4.8 See what learners said
Delivery Options Instructor-Led Onsite, Online, and Classroom Live


This three-day Software Defined Radio (SDR) Training course will provide the foundational skills required to develop software-defined radios using the GNURadio framework. This course consists of both lecture material and worked SDR software examples. The Software Defined Radio (SDR) Training course begins with a background in SDR technologies and communications theory. The course then covers programming in the Linux environment common to GNURadio via examples of SDR without a framework like GNURadio. Then introductory GNURadio is presented to demonstrate the utility of the stock framework. Worked examples in the GNURadio Companion GUI are used to demonstrate basic SDR signal processing functions.

Then the Software Defined Radio Training class will cover how to develop and debug custom signal processing blocks. A worked example of an OOK modem is used to demonstrate working with data buffers in GNURadio. The advanced features of GNURadio will be covered such as RPC, message passing, data tagging, and burst (event) processing. Finally, additional open-source packages such as GQRX, gr-modes (ADS-B), and REDHAWK are presented.

  • 3 days of Software Defined Radio (SDR) Training with an expert instructor
  • Software Defined Radio Training Course Guide
  • Certificate of Completion
  • 100% Satisfaction Guarantee



Upon completing this Software Defined Radio Training course, learners will be able to meet these objectives:

  • What applications utilize SDR
  • Common SDR architectures
  • Basic communications theory (spectrum access, modulation)
  • Basic algorithms utilized in SDR (carrier recovery, timing recovery)
  • Modem structure
  • Linux software development and debugging
  • SDR development in GNURadio Companion
  • Custom signal processing in GNURadio
  • Worked examples of SDR Modems in GNURadio
  • Advanced GNURadio features (stream tags, message passing, control port)
  • We can adapt this Software Defined Radio Training course to your group’s background and work requirements at little to no added cost.
  • If you are familiar with some aspects of this Software Defined Radio Training course, we can omit or shorten their discussion.
  • We can adjust the emphasis placed on the various topics or build the Software Defined Radio Training course around the mix of technologies of interest to you (including technologies other than those included in this outline).
  • If your background is nontechnical, we can exclude the more technical topics, include the topics that may be of special interest to you (e.g., as a manager or policy-maker), and present the Software Defined Radio Training course in a manner understandable to lay audiences.

The target audience for this Software Defined Radio Training course:

  • Anyone who wishes to know more about SDR technology and its implementation.

Software Defined Radio (SDR) Training

The knowledge and skills that a learner must have before attending this Software Defined Radio (SDR) Training course are:

  • N/A


  1. Basic Communications Theory. Spectrum analysis. Media access. Carrier modulation. Bandwidth utilization. Error-correcting codes.
  2. Basic Radio Signal Processing. Sampling theory. Filtering. Carrier recovery. Timing recovery. Equalization. Modulation and demodulation.
  3. Channel and Hardware Signal Impairments. Path loss. Multi-path. Noise. Doppler. IP3, 1-dB Compression, Noise Figure, IQ Imbalance.
  4. Software-Defined Radio Development in Linux. C++ and Python software development in Linux. Worked example of building C++ and Python signal processing programs in Linux. Build systems. Debugging using GDB. Worked on examples of debugging with GDB. Profiling tools to measure SDR software performance. Integrated Development Environments. Eclipse and LiClipse. Worked on examples of the SWIG C++ to Python interface generator used in GNURadio.
  5. Introduction to GNURadio. GNURadio architecture. Flowgraphs and data buffers. Stock signal processing blocks. How to set up a GNURadio development environment (like the one provided in the class). Developing with GNURadio Companion. Worked examples in GNURadio Companion including a QPSK data modem. Worked example of a python GNURadio app. Working with SDR hardware such as the USRP. Worked example with RTL-Dongle.
  6. Custom Signal Processing in GNURadio. Worked example of how to write a GNURadio signal processing block. Generating block skeleton code. Populating the signal processing. Compiling and debugging the signal processing. Communicating with and monitoring the signal processing in operation.
  7. Burst processing in GNURadio. Worked example for custom signal processing to demodulate OOK burst signals. Demonstration of working with GNURadio data buffers and writing general work functions to consume and produce data in processing blocks.
  8. Advanced GNURadio features. Overview of advanced GNURadio features. Worked on examples of system logging. Worked on examples of message passing and burst processing with PDUs. Worked on examples of metadata passing using stream tags. Worked example of burst processing using metadata enabled tagged-streams. Worked example of external process monitoring using the GNURadio control port. Worked example of hardware-accelerated signal processing using the VOLK-optimized kernel library.
  9. Open source SDR projects. Discussion and simple demonstration of available open-source SDR projects. Scanner utilities such as GQRX, SDR#, and Baudline. SDR modems projects such as ADS-B, AIS, Airprobe, and OpenBTS.
  10. Introduction to REDHAWK.Worked examples in the REDHAWK IDE. Worked on examples of writing signal processing blocks in REDHAWK. Worked example of how to integrate GNURadio processing into REDHAWK applications.
Software Defined Radio (SDR) TrainingSoftware Defined Radio (SDR) Training Course Wrap-Up