Software Defined Radio Development Training
|Commitment||3 days, 7-8 hours a day.|
|How To Pass||Pass all graded assignments to complete the course.|
|User Ratings||Average User Rating 4.8 See what learners said|
|Delivery Options||Instructor-Led Onsite, Online, and Classroom Live|
Software Defined Radio Development Training Course – Hands-on
Software Defined Radio Development Training Course – Customize it
- We can adapt this 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 training course, we can omit or shorten their discussion.
- We can adjust the emphasis placed on the various topics or build the training 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 training course in manner understandable to lay audiences.
Software Defined Radio Development Training Course – Audience/Target Group
The target audience for this training course:
Software Defined Radio Development Training Course – Objectives:
Upon completing this 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)
Software Defined Radio Development Training – Course Content
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.