GNURadio is an open-source development kit that provides block functionality to implement software defined radios (SDRs). GNURadio can provide a visual representation of a signal processing chain and greatly reduce the programming skill needed to implement complex algorithms, as real-time functionality, graphing, and many common signal processing blocks are just a click away!

Setup

GNURadio is most commonly run on Linux-based OS. For this type, installation is very easy and quick. Supported operating systems are:

Debian ≥ 12

Ubuntu ≥ 22.04

Linux Mint ≥ 21.1

Raspberry Pi OS ≥ 2021-10-30

If you have one of these operating systems, simply run the following in a terminal, and GNURadio will install:

sudo apt update

sudo apt-get install gnuradio

to run gnuradio in Linux, you can either launch it from the app interface or use the following terminal command:

gnuradio-companion

This will launch you into the gnuradio design suite.

Why?

At this point in the module, you might be wondering: why would I ever use something like GNURadio? This is a fair assessment. GNURadio is very useful for interacting with Software Defined Radios, but it is also useful for building signal processing chains. If you are taking a class like Signals and Systems, it is an easier alternative to the MATLAB that you may have to write for class, so it can be used to verify your MATLAB solutions. GNURadio can do all kinds of signal processing, such as modulation, demodulation, tuning, processing, and almost everything you can think of. It can read data from files, networks, localhost, and can output to those as well. GNURadio hits all the marks for a holistic signal-processing software suite that allows for easy editing of signal processing “blocks” that visually show you what is going on.

Quick Start

There are two types of files that GNURadio generates. The first is a .grc file, and the second is a .py file. Note that in GNURadio settings you can choose to work with .cpp files. The grc file is a gnuradio project file, and it is the basis of the project you are creating. Note that when you first create a project in GNURadio, it will not have any blocks, but after adding these, an opened GRC file might look something like this: