Signals and Communication

From Raspberry Pi Min-Grant project
Jump to: navigation, search

Signals and Communication

This course is taught in the third year of the electrical engineering curriculum. After an introduction to the classification and mathematical analysis of signals in both the time and frequency domains, the course introduces analogue modulation schemes such as amplitude modulation (AM) and frequency modulation (FM). We propose to enhance the laboratory exercises in this course by introducing the students to the concept of software defined radio (SDR) using the Raspberry Pi and designing two laboratory exercises that implement SDR on a Raspberry Pi. We first briefly introduce SDR and then describe the two laboratory exercises.

Software Defined Radio

SDR is a communication system framework that moves all the signal processing in current radio systems from dedicated hardware modules to software. Therefore the same hardware system is capable of implementing several modulation schemes by simply changing the controlling software. An SDR system consists of an antenna, an analogue-to-digital converter which converts the radio frequency (RF) signal to digital samples and software which manipulates these samples to retrieve the information 

SDR has become popular with electronics hobbyists because it was discovered that cheap USB receivers (also known as dongles) designed to receive digital TV broadcasts could be turned into SDR receivers allowing access to samples of analogue RF signals. These samples could then be processed using appropriate software. A popular dongle is the DVB-T TV tuner dongle based on the RTL2832U chipset which retails for about $20.

SDR Dongle connected to a Raspberry Pi Model B+.

With one of these cheap dongles, it is possible to implement different communication systems. In fact a large community of hobbyists has emerged and a number of their projects are freely available online (see An open source driver rtl-sdr is also available for linux based systems. This software allows the user to tune to a particular frequency in the range of the dongle's tuner (27-1700 MHz for the DVB-T TV tuner) and to obtain samples of the in-phase and quadrature components of the RF signal. These samples can then be appropriately processed to recover the message signal.

Software Setup

In order to run the laboratory exercises, we will need to install the rtl-sdr driver which turns the DVB-T TV tuner dongle into a software defined radio. You can obtain the source for the driver here []. To check out the repository type

git clone git://

Once the code is downloaded. Follow these instructions [1]. You will need to have installed cmake and libusb1.0. You can do this by typing

sudo apt-get install cmake


sudo apt-get install libusb-1.0-0-dev

Laboratory Exercises

There will be three laboratory exercises in this course. The labs are listed below with 

1. Introduction to python

In this lab, students will be introduced to python. This knowledge will be useful for the subsequent labs. Download the manual here File:SigCommLab1.pdf

2. FM Signal Demodulation

In FM systems, a baseband message signal modifies the instantaneous frequency of the carrier signal. This laboratory exercise will expose the students to FM demodulation using SDR.