GNU Radio

From Wikipedia, the free encyclopedia
Jump to: navigation, search
The GNU Software Radio
Original author(s) GNU project
Developer(s) Eric Blossom
Stable release 3.7.1 / 29 August 2013; 7 months ago (2013-08-29)[1]
Written in C++, Python
Operating system Cross-platform
Type Radio
License GNU General Public License
Website Official website

GNU Radio is a free software toolkit for building software-defined radios. It can be used for signal processing from the physical layer with readily-available low-cost external RF hardware, or without hardware in a simulation-like environment. It is widely used for learning about, building, and deploying software radios, both in business and academic fields.


GNU Radio applications are primarily written using the Python programming language, while the supplied performance-critical signal processing path is implemented in C++ using processor floating-point extensions, where available. Thus, the developer is able to implement real-time, high-throughput radio systems in a simple-to-use, application-development environment.

GNU Radio supports development of signal processing algorithms using pre-recorded or generated data, avoiding the need for actual RF hardware.[2]

GNU Radio is a signal processing package, which is distributed under the terms of the GNU General Public License (GPL). All of the code is copyright of the Free Software Foundation. The goal is to give ordinary software people the ability to 'hack' the electromagnetic spectrum, that is, to understand the radio spectrum and think of clever ways to use it.

As with all software-defined radio systems, reconfigurability is the key feature. Instead of purchasing multiple expensive radios, a single generic radio is purchased which feeds signal processing software. Currently only a few forms of radio can be processed in GNU Radio but if one understands the math of a radio transmission system, one can reconfigure GNU Radio to receive it.

The GNU Radio project utilizes the Universal Software Radio Peripheral (USRP) which is a computer-based transceiver containing four 64 mega sample-per-second (MS/s) 12-bit analog-to-digital (A to D) converters, four 128 MS/s 14-bit digital-to-analog (D to A) converters, and support circuitry for the interface to the host computer. Depending on the model, the host-to-USRP interface is either USB 2.0 or Gigabit Ethernet. The USRP can process signals up to 25-MHz wide, depending on the model. Several transmitter and receiver plug-in daughter boards are available covering various bands between 0 and 5.9 GHz. The USRP was developed by Matt Ettus.

In order to run GNU Radio on a Macintosh operating system, one can install a package manager such as MacPorts to download and compile the source code.


Started in 2001, GNU Radio is an official GNU Project. Philanthropist John Gilmore initiated and has sustained 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 the GNU Radio was completed, so today GNU Radio doesn't contain any of the original Pspectra code. Also of note is that the Pspectra codebase has been used as the foundation of the commercial Vanu Software Radio.

GNU Radio has been used in low cost Passive radar systems.[3][4]

In September 2010, Eric Blossom stepped down as project manager and was replaced by Tom Rondeau.[5] Tom is a graduate of Virginia Tech and is an expert in cognitive radio and a longtime contributor to GNU Radio.

GNU Radio Companion[edit]

The GNU Radio Companion is graphical UI to develop GNU Radio applications. This is the frontend to the GNU Radio libraries for signal processing. GRC has been developed by Josh Blum during his studies at the Johns Hopkins University (2006-2007), then distributed as free software for the October 2009 Hackfest. It has been used at several other universities making the project a success.[6] GRC was finally bundled with gnuradio for the 3.2 release.


PyBOMBS (Python Build Overlay Managed Bundle System), the GNU Radio installation tool, is also used to build it.

See also[edit]


External links[edit]