GNU Radio

GNU Radio
Original author(s) Eric Blossom
Developer(s) GNU Project
Ben Hilburn
Johnathan Corgan
Initial release 2001 (2001)
Stable release 3.7.10.1 (August 19, 2016 (2016-08-19)[1]) [±]
Repository git.gnuradio.org/git/gnuradio.git
Development status Active
Written in C++, Python
Operating system Cross-platform
Available in English
Type Radio
License GNU General Public License
Website gnuradio.org

GNU Radio is a free software development toolkit that provides signal processing blocks to implement software-defined radios and signal-processing systems. It can be used with external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic, and commercial environments to support both wireless communications research and real-world radio systems.

Overview

GNU Radio plotting demodulated radio samples.

The GNU Radio software provides the framework and tools to build and run software radio or just general signal-processing applications. The GNU Radio applications themselves are generally known as 'flowgraphs', which are a series of signal processing blocks connected together, thus describing a data flow. As with all software-defined radio systems, reconfigurability is a key feature. Instead of using different radios designed for specific but disparate purposes, a single, general-purpose, radio can be used as the radio front-end, and the signal-processing software (here, GNU Radio), handles the processing specific to the radio application.

These flowgraphs can be written in either C++ or the Python programming language. The GNU Radio infrastructure is written entirely in C++, and many of the user tools are written in Python.

GNU Radio is a signal-processing package and part of the GNU Project. It is distributed under the terms of the GNU General Public License (GPL), and most of the project code is copyrighted by the Free Software Foundation[2]

History

First published in 2001, GNU Radio is an official GNU package. Philanthropist John Gilmore initiated GNU Radio with the funding of $320,000 (US) to Eric Blossom for code creation and project-management duties.

GNU Radio began as a fork of the Pspectra code that was developed by the SpectrumWare project at the Massachusetts Institute of Technology (MIT). In 2004 a complete rewrite of GNU Radio was completed, so today GNU Radio no longer has any original Pspectra code. Also of note is that the Pspectra codebase has been used as the foundation of the commercial Vanu Software Radio.

Matt Ettus joined the project as one of the first developers, and created the Universal Software Radio Peripheral (USRP) to provide a hardware platform for use with the GNU Radio software.

In September 2010, Eric Blossom stepped down as project manager and was replaced by Tom Rondeau.[3]

Early in the project, the core developers began holding semi-annual Hackfests. In 2011, the GNU Radio project began holding a yearly conference, called "GRCon", which generally has a Hackfest on the last day of the conference.

In March 2016 Tom Rondeau stepped down and was replaced by Ben Hilburn as the Project Lead, and Johnathan Corgan, a long-time maintainer, as the Chief Architect.[4]

Software

GNU Radio Companion

Editing a GNU Radio flowgraph in the GNU Radio Companion

The GNU Radio Companion is a graphical UI used to develop GNU Radio applications.[5] This is the front-end to the GNU Radio libraries for signal processing. GRC was developed by Josh Blum during his studies at Johns Hopkins University (2006-2007), then distributed as free software for the October 2009 Hackfest. Starting with the 3.2.0 release, GRC was officially bundled with the GNU Radio software distribution.

GRC is effectively a Python code-generation tool. When a flowgraph is 'compiled' in GRC, it generates Python code that creates the desired GUI windows and widgets, and creates and connects the blocks in the flowgraph.

GRC currently supports GUI creation with WxWidgets or the Qt toolkit.

Plotting and displays

GNU Radio provides many common plotting and data visualization data sinks, including FFT displays, symbol constellation diagrams, and scope displays. These are commonly used both for debugging radio applications and as the user-interface to a final application.

PyBOMBS

Many users create 'out-of-tree modules' for use with GNU Radio. To manage these, and the dependencies required to run GNU Radio, the organization created the PyBOMBS (Python Build Overlay Managed Bundle System) project.[6]

See also

Wikimedia Commons has media related to GNU Radio.

References

This article is issued from Wikipedia - version of the 11/20/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.