Software Defined Radio Development Training

Software Defined Radio Development Training

Course Delivery

This Course is available in the following format:

Request this course in a different delivery format

GSA Schedule 70 Saving for Government Customers

Course Overview:

Software Defined Radio Development Training Course Description

This three day Software Defined Radio Development Training will provide the foundational skills required to develop software defined radios using the GNURadio framework. This Software Defined Radio Development Training course consists of both lecture material and worked SDR software examples. The course begins with a background in SDR technologies and communications theory. The Software Defined Radio Development Training course then covers programming in the Linux environment common to GNURadio development. GNURadio is introduced through a presentation on the basic concepts of the framework and worked examples which utilize existing GNURadio signal processing components.

Then the Software Defined Radio Development Training class will cover how to develop and debug custom signal processing blocks in the context of a working SDR modem. Finally, the advanced features of GNURadio will be covered such as RPC, data tagging, and burst (event) processing. This class will present SDR development best practices developed through the development of over a dozen SDR systems. Such practices include approaches to quality assurance coding, process monitoring, and proper system segmentation architectures.

Software Defined Radio Development Training – Customize It:

• We can adapt this Software Defined Radio Development 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 Development 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 Development 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 Development Training course in manner understandable to lay audiences.

Software Defined Radio Development Training – Skills Gained:

• 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)

Software Defined Radio Development Training – Related Courses:

Rockets & Missiles – Fundamentals Training
Rocket Propulsion 101 Training

Software Defined Radio Development Training – Course Content:

Introduction to Software Defined Radio. Applications of SDR. Common software defined radio hardware architectures. Common software defined radio frameworks such as GNURadio, REDHAWK, and Matlab. Discussion of the differences and strengths of each.

Basic Communications Theory. Spectrum analysis. Media access. Carrier modulation. Bandwidth utilization. Error correcting codes.

Basic Radio Signal Processing. Sampling theory. Filtering. Carrier recovery. Timing recovery. Equalization. Modulation and demodulation.

The Linux Programming Environment. Introduction to the Linux operating system. Architecture of the Linux operating system (Kernel and User spaces) Features of the Linux OS useful to development such as Package managers, command line utilities, and BASH scripting. How software is compiled, linked, and executed by the Linux kernel.

Software Development in Linux. C++ and Python software development in Linux. Worked example of building a C++ program in Linux. Build systems such as MAKE, CMAKE, and AUTOTOOLS. Debugging using GDB. Worked examples of debugging with GDB. Profiling tools to measure SDR software performance. Packaging and revision control for software distribution. Integrated Development Environments. Eclipse and LiClipse. Scripting languages such as Python. Worked examples of Python scripting. Worked examples of the SWIG C++ to Python interface generator used in GNURadio.

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 with the class). Developing with GNURadio Companion. Worked example in GNURadio Companion. Developing a GNURadio application in python. Worked example of a python GNURadio app. Working with SDR hardware. Worked example with RTL-Dongle.

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.

Best Practices in GNURadio Development. Discussion of techniques for the development of deployable, maintainable and extensible SDR applications. Architectures to segment proprietary code from GPL code. Logging and monitoring techniques. Code libraries and developing for re-use.

Advanced GNURadio features. Overview of advanced GNURadio features. Worked examples of system logging. Worked examples of message passing and burst processing with PDUs. Worked examples of metadata passing using stream tags. Worked example of burst processing using metadata enabled tagged-streams. Worked example of external process monitoring using GNURadio control port. Worked example of hardware accelerated signal processing using the VOLK optimized kernel library.

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.


Dr. Mark Plett has 15 years experience developing Communications Systems. He has worked at several telecommunications start-ups as well as the DoD, and Microsoft. Most recently, Dr. Plett is a Principal professional member of the Johns Hopkins Applied Physics Lab (APL) directing the Wireless Cyber Capabilities Group there. Dr. Plett has spent the last 7 years developing software-defined radios for a variety of DoD applications. He is active in the open source SDR community and has contributed source code to the GNURadio project. Dr. Plett received his Masters in Electrical Engineering from the University of Maryland in 1999 and his Ph.D. in Electro-physics from the University of Maryland in 2007. Dr. Plett is a licensed Professional Engineer in the State of Maryland.Electro-physics from the University of Maryland in 2007. Dr. Plett is a licensed Professional Engineer in the State of Maryland.

Whether you are looking for general information or have a specific question, we want to help!

Request More Information

Print Friendly, PDF & Email