UQ Communication Systems - 2013-UQ-Communication-Systems/public GitHub Wiki

Welcome to the Public page for UQ Communication Systems. This page is mainly part of two courses at The University of Queensland: COMS4105 (undergraduate level) and COMS7410 (masters level).

In 2013, we used the RTL2832 USB sticks for software defined radio, python, C/C++ and MATLAB/Octave. On the public wiki we list some instructions for setting up the hardware, and some hints in developing under Matlab/Octave, or software defined radio in general.

Where relevant, some pages on the Internet are references or referred to.

Setting up RTL SDR

As part of the setup, you can use a spectrum viewer such as SDRSharp or GQRX. Both pieces of software can also decode FM/AM radio and play it using your sound card.

Reading in Samples

After capturing samples with RTL SDR, you can use

  • MATLAB / Octave - Getting started with MATLAB: MATLAB Primer
  • GNURadio (Python/C++)
  • Raw C/C++ with a library such as ITPP

After you have dump.bin you can read in the samples using you selected language:

In Matlab/Octave you can use read_complex_byte.m (available in the util repository - or from Gnuradio). A little tutorial is available below:

Setting up Octave

Octave is a MATLAB-like matrix manipulation program. In this course all material will aim to be both MATLAB and Octave compatible. Unlike MATLAB, Octave does not use a user interface, and instead you use any editor and the Octave command line.

Setting up GnuRadio

GnuRadio is a set of tools which is for communication signal processing. It features a tool called gnuradio-companion which connects different blocks together. It is written in Python / C. Modules you write are also written in Python and/or C.

  • Windows - Although there are some reports of getting GnuRadio working in Windows, it seems quite difficult.
  • Linux
  • Mac OSX (seems the outstanding issues have been fixed, and this is now reasonably simply possible).

Developing blocks for GnuRadio

Some of the things we will be doing in class this semester will require your own blocks.

General Processing and Figure Output

In this subject you should avoid "screenshots" as a way of adding figures to your assignments. Where possible vector graphics should be used. In MATLAB this is easy by using the "File > Save Figure" menu, but a little more difficult elsewhere.