Modern digital communications: a hands-on approach
COM-430
Media
Media
Modern Digital Communications: A Hands-on Approach
Lectures and Labs: Mondays 09h15 - 11h in INM 11 and Wednesdays 11h15 - 13h in INF 119.Please bring your laptop with you and have MATLAB and/or Python 3.8+ installed. If you don't have MATLAB, please refer to Poseidon [https://poseidon.epfl.ch/] to have a copy installed on your machine. For Python, for example, you can refer to Anaconda [https://www.anaconda.com].
=================================================
Please notice the following important information:
The official Course Booklet mentions two periods per week, namely the Lectures (Mondays 09:15 - 11:00) and the Practical work (Wednesdays 11:15 - 13:00). As a general rule, we start indeed the week with the theoretical material needed for the hands-on assignment. The amount of time that this will take will vary from week to week. In many cases, the practical part will start already on Monday and in some cases the theory will spill over to Wednesday. Hence, it is important that you attend both periods. (Do not plan to take an overlapping class on Wednesday, thinking that you do the practical work at home.)
=================================================
- News Forum (Forum)
- Student's Forum (Forum)
- General Information (File)
- Web version of the book "Principles of Digital Communications: A Top-Down Approach" by Bixio Rimoldi (File)
- Class notes for Advanced Digital Communications by Michael Gastpar (File)
- Past exams and solutions (Folder)
Introduction
Software Radio, Fourier, and MATLAB/Python refresher
The first lecture is about the "big picture" and some review. We will discuss what software defined radio is all about, what makes it possible, and why it is becoming more and more the technology of choice. We will also review the relationship between various transforms of the Fourier family.
In the first assignment we do some MATLAB/Python warm-up exercises and we demodulate an AM (Amplitude Modulation) signal. This is the only assignment on analog (as opposed to digital) communication.
Monday: After
a brief presentation of the course and its organization, we continue
with the theory needed for the first assignment.
Wednesday: Finish the theory on the Fourier transform and AM signals, and then work on the first assignment.
- Software-Defined Radio (File)
- AM signal and receiver (File)
- Fourier Transform and DFT (File)
- Coding Guidelines (Matlab, but equally valid for Python as well) (File)
- MATLAB Tutorial (File)
- NumPy User guide (URL)
- SciPy User Guide (URL)
- Assignment (File)
- Matlab/Python files (File)
- Solutions Assignment (File)
Physical Layer in MATLAB/Python
Building your own communication toolbox
The aim of this exercise is to review the key concepts of digital communications as well as to become familiar with the issues arising when dealing with signals in a discrete environment. You will implement a simple communication system consisting of a random source, a modulator, a pulse shaper, a noisy channel, a matched filter and a receiver.
Monday: No classes (Holiday - Federal Fasting Monday).
Wednesday: Lecture: Basic Digital Communication Link - Theory review.
- Handwritten Notes (Communication Toolbox) (from 2021) (File)
- Slides (File)
- Assignment (File)
- Matlab/Python files (File)
Inter-Symbol Interference (ISI) and Eye Diagram
In this lab we become familiar with eye diagrams and we use them to study the tradeoffs in choosing a shaping filter. In particular, we consider root-raised-cosine pulses and the effect of the roll-off factor and the pulse truncation.
Monday: Working on the 2nd assignment. We are in the classroom to answer your questions.
Wednesday: After a brief review of the ISI and Eye Diagram concepts, we will already start working on the 3rd assignment. Note that there are no lecture notes for this week. The bit of theory which is needed is contained in the assignment and will also be exposed during the first part of the class.
- Handwritten Notes (from 2021) (File)
- Assignment (File)
- Matlab/Python files (File)
- Solutions Assignment (File)
Symbol Synchronization
In a typical introductory course on digital communications, it is taken for granted that the receiver knows the correct time to sample the matched filter output. The goal of this week is to experiment with one way to perform symbol synchronization.
Monday: working on the 3rd assignment. We are in the classroom to answer your questions.
Wednesday: after a brief review of the synchronization concepts, we will already start working on the 4th assignment. Note that there are no lecture notes for this week. The bit of theory which is needed is contained in the assignment and will also be exposed during the first part of the class.
- Handwritten Notes (from 2021) (File)
- Assignment (File)
- Matlab/Python files (File)
- Solutions Assignment (File)
Decoding the GPS Signal 1
The goal of this assignment is to estimate the bits sent by a GPS satellite. The assignment is non-trivial for several reasons. First, the signal power to noise power ratio is very small. (To the naked eye the signal looks just like noise.) This is not a real problem since the data rate is low so that there is considerable energy in one bit. In fact at the matched filter output the signal to noise ratio is quite high. Yet, not being able to see the signal structure makes debugging more challenging. Second and more importantly, the fact that the satellite is moving rapidly introduces a time-varying delay as well as a Doppler shift and a time-scaling of the information carrying pulse. Hence there are a number of signal parameters that need to be estimated before we can proceed as we have learned in PDC.Monday: working on the 4th assignment.
Wednesday: Lecture: Decoding the GPS Signal (part 1) - Synchronization.
- Handwritten Notes (from 2021) (File)
- Decoding Slides (File)
- Assignment - Synchronization (File)
- Variables mapping (File)
- Code framework (File)
Decoding the GPS Signal 2
Monday: working on the 5th assignment.
Wednesday: Lecture: Decoding the GPS Signal (part 2) - Getting the bits.
GPS: Ephemerides and Pseudoranges
The goal of this assignement is to extract the needed information from the satellite data. Monday: working on the 6th assignment.
Wednesday: Lecture: Ephemerides and Pseudoranges. Zoom link:
https://epfl.zoom.us/j/66775031256?pwd=CmYQNYWbhM2fzAcoOvagprZdSkbC36.1
- Slides (Folder)
- Handwritten Notes (2024) (Folder)
- Assignment - Ephemerides (File)
- Code framework (File)
Midterm Exam
Monday: working on the 7th assignment.
Wednesday: Midterm Exam, 11h15 - 13h15 in room INM 202.
GPS: Positioning
In the final GPS assignment you will determine the position of the receiver antenna.Monday: working on the 7th assignment (Ephemerides and Pseudoranges).
Wednesday: Lecture: Orbits and Reference Systems / Positioning.
- Notes on Orbits and Reference Systems (File)
- Notes on Positioning (File)
- IS-GPS-200D Standard document (File)
- Assignment - Position (File)
- Code framework (File)
OFDM
The purpose of this lab assignment is to become acquainted with OFDM (Orthogonal Frequency Division Multiplexing). This is a clever and currently quite popular technique to communicate across channels that have a non-flat frequency response.Monday: working on the 8th assignment.
Wednesday: Lecture: OFDM.
- OFDM Slides (File)
- Handwritten Notes (from 2021) (File)
- Assignment (File)
- Matlab/Python files (File)
- Solutions Assignment (File)
MMSE channel estimation
Monday: Present the PSD (Power Spectral Density) of the OFDM signal (about 10-15 minutes) and then working on the 9th assignment.
Wednesday: Lecture: MMSE channel estimation.
- Lecture Notes and Matlab Script (Folder)
- Assignment (File)
- Matlab/Python files (File)
- Solutions Assignment (File)
OFDM implementation on USRP
Monday: working on the 10th assignment.
Wednesday: Derivation of the lambdas. Channel estimation in time domain (MMSE and LS). USRP and Assignment 11, and then start working on the assignment.
- Handwritten Notes (from 2021) (File)
- Assignment (File)
- Matlab/Python files (File)
- Installing the Support Package for USRP® Radio (Matlab) (Page)
- Installing the Support Package for USRP® Radio (Python) (Page)
- Solutions Assignment (File)
Linear MMSE; MIMO Systems
Monday: Working on the 11th assignment.
Wednesday: Lecture: Linear MMSE. Then we start working on the new assignment.
Final Exam
Monday: Working on the 12th assignment.
Wednesday: Final exam, starting 11h15, in room INM 202.
- Lecture Notes on Fading (not part of the final exam) (File)
- Lecture Notes on Alamouti's Scheme (not part of the final exam) (File)
- Final Exam 2024 (File)
- Final exam solutions (File)
- Histogram (File)