top header
top gradation HOME top vertical line top vertical line top vertical line top vertical line top vertical line top vertical line top vertical line menu gray
black line 2
menu gray tab More About ATI
menu blue ATI — Who We Are
white line
menu blue Contact ATI Courses
white line
menu blue List Of ATI Courses
white line
menu blue Attendees Testimonials
white line
menu blue The ATI FAQ Sheet
white line
menu blue Suggestions/Wait List
white line
menu blue New Courses
white line
menu blue Become an ATI Instructor
menu gray tab site resources
menu blue Acoustics & Sonar
white line
menu blue Rockets & Space
white line
menu blue GPS Technology
white line
menu blue ATI Blog
white line
menu blue ATI Space News
white line
menu blue ATI Site Map
white line
menu blue ATI Staff Tutorials
white line
menu blue ATI Sampler Page
white line
menu gray tab bar
menu gray tab courses
white line
menu blue Current Schedule
white line
menu blue Onsite Courses
white line
menu blue Register Online
white line
menu blue Request Brochure
white line
menu blue Free On-Site Price Quote
white line
menu blue Download Catalog
white line
menu blue Distance Learning
black line  

Practical Software Defined Radio Development

A beginners guide to Software Defined Radio development with GNU Radio

Share |


Technical Training Short On Site Course Quote This three day 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 course begins with a background in SDR technologies and communications theory. The 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 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.

Each student will receive a complete set of lecture notes as well as a complete SDR development environment preloaded with the worked examples of GNURadio applications.

View course video sampler

View Course Sampler

View Sampler Slides For 2016


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

Contact this instructor (please mention course name in the subject line)

What you will learn:

  • 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)
Course Outline:
  1. 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.
  2. Basic Communications Theory. Spectrum analysis. Media access. Carrier modulation. Bandwidth utilization. Error correcting codes.
  3. Basic Radio Signal Processing. Sampling theory. Filtering. Carrier recovery. Timing recovery. Equalization. Modulation and demodulation.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.


    Tuition for this three-day course is $1890 per person at one of our scheduled public courses. Onsite pricing is available. Please call us at 410-956-8805 or send an email to

Register Now Without Obligation