Course Syllabus

ECE398MA:

Introduction to Modern Communication with Python and SDR


Course Overview

In this course, students will discover the foundational concepts behind modern wireless communication systems and get hands-on experience with cutting-edge software-defined radio (SDR) technology. Students learn how Python can be used to simulate and decode real-world communication protocols such as Bluetooth, WiFi, and FM Radio. This course aims at junior ECE students who are interested in wireless technologies and curious about practical implementations of communication theory.

 

Students will Learn:

  • Basics of analog and digital communication systems
  • Introduction to wireless communication protocols (Bluetooth, GPS, WiFi, FM Radio)
  • How to use Python to model, analyze, and simulate communication systems
  • Hands-on projects with software-defined radios (SDR)
  • Industry-driven case studies to apply knowledge in real-world contexts

 

Instructors: Thomas Moon (tmoon@)

Prerequisites: ECE 210

PlutoSDR Rental: This course requires a PlutoSDR device for lab work. You can rent the device from the ECE shop. Please visit the following link to check out the device.


Course Timing

Lectures: MTW, 9-9:50 am @ECEB 3020

Office Hour (starting 2nd week)

  • Wednesday 10am-11am (after lecture) @ECEB-3020
  • 2/25 Office hour moves to 1-2pm, 2/26 (Thursday) @Zoom

Course Schedule

The course schedules are subject to change.

 

Python tutorial

Week of

Area

Lecture Topic (MW)

Lab (F)

Note

1/19

Analog Communications

Course Introduction

Review: Fourier Transform and Complex numbers

Lab1: Setup python/SDR

slides

No Quiz

MLK 1/19

1/26

DSB-SC, DSB-TC, Envelope detection, coherent demodulation

Monday zoom lecture

 

Lab2: DSB-SC, DSB-TC

slides

Quiz1 solution

 

Lab1 due

2/2

Baseband representation of bandpass signals, Hilbert transform

 

SDR Project 1: RF Scanner

slides

Quiz2 solution

 

Lab2 due

2/9

SSB, VSB, IQ Modulator

 

Lab3: SSB

slides

Quiz3 solution

 

 

SDR project1 due

2/16

FM/PM

 

Lab4: FM

slides

Quiz4 solution

 

 

Lab3 due

2/23

Review: Basic Probability 

 

SDR Project 2: FM Stereo Transceiver (due 3/9)

slides

Quiz5 soltuion

 

 

Lab4 due

3/2

Digital Communications

Intro to Digital comm

Symbol, BPSK, Pulse-shaping

 

Lab5: Pulse-shaping

slides

Quiz6 solution

 

 

SDR project 2  due

3/9

Matched-filter, Symbol-timing recovery

 

Lab6: Matched-filter, Symbol-timing recovery

slides

Quiz7 solution

 

Lab5 due

3/16


Spring break

3/23

Channel, DBPSK, Frame-sync

 

Lab7: DBPSK, Frame-sync

slides

Quiz8 solution

 

Lab6 due

3/30

Signal space, ASK, FSK

 

Lab8: FSK

slides

Quiz9 solution

 

 

Lab7 due

4/6

Channel estimation/correction, CFO

 

Lab9: CFO and Channel Correction

slides

Quiz10 solution

 

Lab8 due

4/13

SNR vs BER, M-ary QAM and PSK

 

Lab10: M-ary QAM

slides

Quiz11

 

 

Lab9 due

4/20

Applications

OFDM, WiFi

 

SDR Project 3: Text message by OOK and 16QAM

slides

Quiz12

 

 

Lab10 due

4/27

LoRa, Bluetooth, RFID, and course summary

course survey 

 

SDR Project 3 continued

4/29, 5/1: Test run

 

 

5/4

No lecture

Demo:

5/4: OOK Demo

5/6: 16QAM Demo

SDR Project 3 Report due


Policy on Use of Generative AI Tools

This course emphasizes individual understanding, hands-on implementation, and direct engagement with communication systems using Python and SDR hardware. To preserve the learning objectives, the use of generative AI tools is limited.

Permitted Use

Students may use generative AI tools only for basic Python syntax assistance or hardware/software setup and installation tasks, such as:

  • Understanding Python language syntax or library function usage
  • Clarifying error messages (e.g., Python exceptions, error/warning messages)
  • Learning general programming constructs (loops, list comprehensions, function definitions)
  • Python installation and environment management
  • Package installation and dependency issues (e.g., NumPy, SciPy, Matplotlib)
  • PlutoSDR driver and firmware installation

This use must be generic and non–course-specific.

Prohibited Use

The following uses of AI tools are NOT allowed and constitute a violation of academic integrity:

  • Copying or pasting any part of the lab document, lab instructions, or provided starter code into an AI tool
  • Using AI to:
    • Generate full or partial lab solutions
    • Modify, refactor, or complete provided code templates
    • Rename variables, functions, or files from the provided code to produce a “new” solution
  • Submitting AI-generated code or text that you cannot fully explain 
  • Using AI to interpret lab results, generate plots, or write analysis sections of lab reports

Enforcement

  • Inability to explain submitted work or inconsistencies between submitted code and demonstrated understanding may trigger an academic integrity review.
  • Violations may result in penalties ranging from a letter grade reduction to further disciplinary action, consistent with university policy.

Examples of Permitted vs. Prohibited AI Prompts

Permitted Prompts (Syntax-Level Only)

  • “Show me examples of Python array slicing.”
  • “What does this Python error mean: ValueError: operands could not be broadcast together?”
  • “How do I plot multiple lines using Matplotlib?”
  • “What is the difference between a Python list and a NumPy array?”
  • “How do I write a for-loop over array indices in Python?”
  • “What is the correct syntax for defining a Python function with default arguments?”
  • “How do I install NumPy and Matplotlib in a Conda environment?”
  • “How do I install the PlutoSDR drivers on Windows?”
  • “Why is my PlutoSDR not showing up as a USB device?”

Prohibited Prompts (Course-Specific or Solution-Generating)

These prompts directly or indirectly ask the AI to complete, modify, or interpret course assignments, which is not allowed.

Direct Solution Requests

  • “Complete the following code for FM demodulation.”
  • “Implement matched filtering for this lab.”
  • “Generate the Python code for symbol timing recovery.”

Using Provided Course Materials

  • “Modify this provided code so that it performs carrier recovery.”
  • “Rename variables and rewrite this code so it looks original.”

Disguised or Indirect Prompts

  • “Explain what this lab code is doing and suggest how to complete the assignments.”
  • “Analyze the results from the code and compare the two methods.”

If the prompt mentions this course, labs, SDR projects, modulation, demodulation, or includes provided code or instructions, it is NOT allowed.
If the prompt could apply to any generic Python tutorial or installation and configuration, it is allowed.


Grading Breakdown

Lab Reports SDR Projects Lecture Quizzes
45% 30% 25%

 


 

1. Lab Reports (45%):

  •    Weekly lab assignments will be worth 100-150 points each (Lab1 50 points).  
  •    No extensions will be granted for COVID-related or other medical/non-medical circumstances. Instead, the lowest lab score will be dropped.  
  •    Lab assignments will be distributed on Thursdays and are due the following Thursday at 10:00 PM.  
  •    All submissions must be made via Gradescope, where grades will also be published once ready.
  •    Lab report is required to use this Latex Template

 

2. SDR Projects (30%):

   There will be 3 SDR projects focusing on hands-on exploration of real-world communication systems:  

  •    SDR Scanner (5%): Scanning real communication signals in an outdoor environment.  
  •    FM Radio Demodulation (10%): Demodulating FM radio signals and playing audio outputs.  
  •    Text messaging (15%): Implementation and analysis of a digital communication system.  

 

3. Lecture Quizzes (25%):

  •    Paper-based closed-book quizzes will be administered during the first 10 minutes of each Friday lab session.  
  •    Quizzes will test students’ understanding of concepts covered in lectures.  
  •    The lowest two quiz scores will be dropped.

Lectures and Lab Sessions

Lectures (Monday and Wednesday):  

Lectures will cover the theory and concepts of communication systems. The course will be divided into three parts:  

  1. Analog Communication and Basics of Signal Processing (5-6 weeks): Introduction to analog communication techniques and foundational signal processing concepts.  
  2. Digital Communication (5-6 weeks): Key principles of digital communication, including modulation schemes, synchronization, channel equalization, etc.  
  3. Applications of Modern Communication (3-4 weeks): Exploration of modern communication technologies and IoT.

 

Lab Sessions (Friday):

  Each lab session will begin with a 10-minute lecture quiz to assess students’ understanding of the week's concepts. Following the quiz, the session will include a discussion of the upcoming lab, along with demonstrations of relevant examples.


Important Course Policies

  • Individual Work:  All lab reports, lecture quizzes, and SDR projects must be completed individually. Collaboration or sharing of work is strictly prohibited.  
  • Academic Integrity: Students are expected to adhere to the university’s policies on academic integrity. Any violations will result in disciplinary action.
  • Late Work Policy:  As the lowest lab score and quiz scores are dropped, no further accommodations for late submissions will be provided. Please plan your time accordingly.

 


Recommended textbook:

J. G. Proakis and M. Salehi, Fundamentals of Communication Systems, 2nd edition, Prentice-Hall, ISBN: 978-0133354850.