Software Defined Radio: Practical Applications
Description
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 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 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, and gr-modes (ADS-B) are presented. Each student will receive a complete set of lecture notes as well as a complete SDR development environment (Virtual Machine) preloaded with the worked examples of GNURadio applications.
Each attendee needs a laptop/desktop for this class. Requirements for the computer are: 1) A 3.0 USB port, 2) Minimum of 4GB RAM and, 3) Intel i5 processor or better. An understanding of programming is recommended.
A RTL-SDR dongle is also provided to each student (to keep) for the worked examples in the class.
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).
- Channel and Hardware Impairments.
- Modem structure.
- Linux software development and debugging. (with worked examples)
- SDR development in GNURadio Companion. (with worked examples)
- Custom signal processing in GNURadio. (with worked examples)
- Worked examples of SDR Modems in GNURadio. (with worked examples)
- Advanced GNURadio features (with examples of stream tags, message passing, control port).
Course Outline:
- 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.
- Channel and Hardware Signal Impairments. Path loss. Multi-path. Noise. Doppler. IP3, 1-dB Compression, Noise Figure, IQ Imbalance.
- 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 examples of debugging with GDB. Profiling tools to measure SDR software performance. Integrated Development Environments. Eclipse and LiClipse. 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 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.
- 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.
- 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.
- 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.
Instructor(s):
Dr. Mark Plett has 20 years experience developing Communications Systems. He has worked at several telecommunications start-ups as well as the DoD, and Microsoft. Most recently, Dr. Plett works at the Johns Hopkins Applied Physics Lab (APL) where he has spent the last 10 years developing software-defined radios for a variety of DoD applications. Dr. Plett was the Principal Investigator for the DARPA Spectrum Collaboration Grand Challenge (SC2). For SC2, Dr. Plett oversaw the development of the world’s largest Wireless Emulation Environment composed of over 256 software-defined radios. 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.
Dr. Daniel Chew has a B.E.E. from the University of Delaware, a M.S.E.E. from Johns Hopkins University, and a D.Eng. from Johns Hopkins University. Dr. Chew was a researcher and subject matter expert on wireless systems at Johns Hopkins University Applied Physics Laboratory, and he continues to teach courses at Johns Hopkins University. He has held positions in industry at Thales Group, Digital Receiver Technology (now The Boeing Company), and most recently designs DSP algorithms and FPGA implementations for wireless systems at Rampart Communications. Dr. Chew has written two books on wireless communications, The Wireless Internet of Things: A Guide to the Lower Layers (2018) and Wireless Coexistence: Standards, Challenges, and Intelligent Solutions (2021).