Welcome to the webpage for ELE361L course at TOBB ETU. Here you'll find general information about the course.

ELE361L Course will address Digital Signal Processing (DSP) for Radio Frequency (RF) from practical point of view. For this reason SDR device and software radio toolkit GNU Radio will be introduced at the beginning of the course. Some fundamental DSP concepts will be covered but not in detail. This course will accompany the main DSP/communication courses. So it is important that student take preliminary courses before. Python will be used as programming language throughout the course.

Some important points to remember

Course Content

Course consists of many lab sessions and each lab is built on Jupyter Notebook.

Lab Title Lab Description
Lab DSP GNU Radio will be introduced. It will be leveraged to generate mono/stereo sound, make filtering on generated sound. Sound card will be utilized to learn fundamental DSP concepts like sampling rate, aliasing, filtering (FIR, cutoff frequency, transient range, taps), decimation.
Lab SDR SDR hardware used throughout the labs is introduced: RTL-SDR. General purpose SDR application gqrx is explored to receive samples from RTL-SDR. Spectrum monitoring (live and waterfall), demodulation is illustrated with gqrx.
Lab Python In this lab we will take a look at important Python libraries like numpy, scipy we'll see how to use them inside Jupyter Notebook interactive environment.
Lab AM IQ record containing airband (108-137 MHz) signal will be used to demodulate Amplitude Modulated signal. IQ file formats will be discussed, too.
Lab NBFM NBFM is commonly used in handheld communicaiton equipment. After FM repeater concept is presented, example FM repeater IQ record is used to show Narrow Band FM modulation.
Lab WBFM WBFM signal may contain more than one signal: mono, stereo, sub-channels, HD, and a data channel. Flow-graphs are created to demodulate WBFM signals in GNU Radio. Mono/stereo sound, single/multi channel, real-time demodulation examples will be presented.
Lab Digital Digital signal transmitted from simple keyfob device will be analyzed. We will look at tools specifically written to analyze and decode digital signals.
Lab ADSB ADSB signals generated by aircrafts will be inspected. Planes will emit tail number, flight, altitude, direction and speed information through ADS-B signals.

As you complete the labs, you will be able to:


You can find rough schedule for the course below.

Week Activities
Week-1 Introduction to Communication Systems and SDR Concepts
Discussion of SDR Toolchains and Programming Options
Overview of using Git/GitHub/GitHub Classroom
Week-2 GNU Radio Fundamentals
Using GNU Radio and GRC
Creating and Running Flowgraphs
Using GNU Radio from Python
Hands-on demo of filtering, and sound card processing showcasing Nyquist Theorem, Aliasing
Overview of JupyterLab Environment
Week-3 Hands-on DSP with GNU Radio
Examples of Decimation, Interpolation, Stereo Sound and DTMF Tone Generation
Week-4 Python with JupyterLab, Numpy and SciPy libraries
Frequency Domain Analysis with Python
Week-5 Connecting to and Communicating with RTL-SDR
Hands-on with SDR# and Osmocom Software Suite (rtl_test, rtl_sdr)
Week-6 Discussion of IQ Record Types (RTL-SDR, USRP)
AM Demodulation Examples with HF Band and Airband Records
Week-7 NBFM Demodulation with VHF Band Record
Overview of FM Repeaters and CTCSS
Week-8 Wide Band FM Demodulation Example with Broadcast FM Record
Overview of WBFM Components: Mono/Stereo, Pilot tones, RDS, Subchannels
Week-9 Introduction to Digital Communications
QPSK Simulation in GNU Radio
Hands-on Demo of Analyzing Various Digital Signals with SDR#
Week-10 Overview of ADS-B: Preamble, Manchester encoding, Thresholding
ADS-B Decoding Example