Software Defined Radio Development Training
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 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.
• 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)
With onsite Training, courses can be scheduled on a date that is convenient for you, and because they can be scheduled at your location, you don’t incur travel costs and students won’t be away from home. Onsite classes can also be tailored to meet your needs. You might shorten a 5-day class into a 3-day class, or combine portions of several related courses into a single course, or have the instructor vary the emphasis of topics depending on your staff’s and site’s requirements.
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.
Whether you are looking for general information or have a specific question, we want to help
Request More Information