Repository navigation
Home
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.
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.
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:
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.
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
Some of the things we will be doing in class this semester will require your own blocks.
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.
See https://github.com/UQ-Communication-Systems/public for the latest version of these notes.