ECE 4630/5630 Communication Systems 2

Catalog Course Description
Continuation of ECE4625/5625. Digital modulation and demodulation; equalization and diversity; error correcting code performance in noise; introduction to spread spectrum and space communications; simulation of communication systems.
Prerequisite: ECE 3610 and ECE 4625/5625 or equivalent
Offered: Fall even years (S)
News for 09-04-2024
Welcome to the Fall 2024 semester. This page is being served on a new platform, so as the author I am still getting used to creating and editing content in Word Press. The fall 2024 course syllabus is now available under the Course Materials tab below. The use of modeling tools for DSP will be a big topic at our first class meeting, but to start with I am assuming scientific computing with Python as the starting point. Syntax conversion between Python/MATLAB/Julia is contained in links under the Learning Python section at the bottom of this home page.
Getting Tools Setup
- Create a new Python virtual environment using miniconda as of February 09, 2026 09:01:05 (UTC). I suggest this to get going quickly with Python as of (UTC). This will give you a full scientific Python environment good for the entire semester. You will have scientific Python with scikit-dsp-comm running in Jupyter Lab with pyaudio for real-time DSP. Python scripts with debugging and Jupyter notebooks with debugging will also work in vs code with extensions.
- Install Julia, Python, Jupyter Lab, Pyaudio as of (UTC). For both Python users and Julia users, the document also provides details on how Markdown files exports from Jupyter Lab can be used to produce PDF pages that can be merged with handwritten homework pages. The approach is to edit Markdown in vs code for producing PDFs from Jupyter Lab documents to include in your solved homework.
- C++ development with MSYS2, gcc/g++, and then configure vs code extensions for building, debugging, and running code.
- Get motivated for digital comm in the Jupyter notebook by reading some Scipy Conference papers I published using pyaudio_helper. As an application consider a 3D audio simulator that makes use of pyaudio_helper.
- Course Materials
- Lecture Videos
- Problem Sets with Solutions
- Jupyter Notebooks that follow the Lectures
- Exams Including Simulation Problems
Course Materials Tab
Course Syllabus as of September 03, 2024 09:24:56 (UTC).
Intro Lecture (Chapter 1) as of September 02, 2024 09:33:40.
Lecture Notes
- PDF file of Chapter 2 as of September 02, 2024 09:33:42.
- PDF file of Chapter 3 as of September 02, 2024 09:33:42.
- PDF file of Chapter 4 as of September 02, 2024 09:33:44.
- PDF file of Chapter 5 as of March 01, 2026 09:33:57.
- PDF file of Chapter 6 as of March 01, 2026 09:34:05.
- PDF file of Chapter 7 as of September 02, 2024 09:33:48.
Other Course Materials
- Python Basics a tutorial written in Jupyter Notebook. ZIP.
- Read-the-Docs for scikit-dsp-comm
- Sample statistics in recursive form
Lectures from Fall 2021 are on YouTube via the links below. I have a YouTube channel with playlists for each of the courses posted in this Web Site. If there are issues with Fall 2021 I have Fall 2018 videos for back up.
- Lecture 1 (fa21)
- Lecture 2 (fa21)
- Lecture 3 (fa21)
- Lecture 4 (fa21)
- Lecture 5 (fa21)
- Lecture 6 (fa21)
- Lecture 7 (fa21)
- Lecture 8 (fa21)
- Lecture 9 (fa21)
- Lecture 10 (fa21)
- Lecture 11 (fa21)
- Lecture 12 (fa21)
- Lecture 13 (fa21)
- Lecture 14 (fa21)
- Lecture 15 (fa21)
Problem Sets with Solutions
Set 1 as of September 02, 2024 09:33:16 (UTC). A hints page and full solutions will be published in due time.
Set 2 as of September 02, 2024 09:33:16 (UTC).
Set 3 as of September 02, 2024 09:33:16 (UTC).
Set 4 as of September 02, 2024 09:33:17 (UTC).
Set 5 as of September 02, 2024 09:33:17 (UTC).
Set 6 as of September 02, 2024 09:33:17 (UTC).
A Collection of Jupyter Notebooks from Fall 2021
- Probability and Random Variables as of June 30, 2025 09:33:31 (UTC). PDF rendering.
- Random Processes as of June 30, 2025 09:33:32 (UTC). PDF rendering.
- Sympy Nsolve Examples as of June 30, 2025 09:33:33 (UTC). PDF rendering.
- Data Transmission in Noise as of June 30, 2025 09:59:18 (UTC). PDF rendering.
- Equalizers as of June 30, 2025 09:52:32 (UTC). PDF rendering.
- Advanced Data Transmission in Noise as of July 01, 2025 10:03:55 (UTC). PDF rendering.
Fall 2021 Exams
- Exam 1 as of July 02, 2025 09:27:17 (UTC)
- Exam 2 as of July 02, 2025 09:27:17 (UTC)
- Final Exam/Project July 02, 2025 09:27:17 (UTC). Jupyter notebook zip as of June 20, 2025 05:48:55 (UTC)
Spring Related 2025
A course of related interest Spring 2025 is Real-Time DSP, ECE 5655/4655-3, a three-credit course on programming the ARM CortexM4/M7. Keil MDK is the IDE, and we make use of the ARM CMSIS-DSP library. As of Fall 2024 I am not sure this course will be offered.
Learning Python and Getting Acquainted with Julia
There are many resources for learning Python. For our purposes we are interested in learning Python with an emphasis on the so-called scipy stack which includes the well-known packages numpy, scipy, and matplotlib.
- Scientific-python.org
- Python Basics a tutorial written in Jupyter Notebook. A ZIP of the complete Jupyter notebook with all graphics.
- An IDE I recommend is VS Code with many nice extensions for Python, Julia, and Jupyter, C++, just to name a few.
- Cheatsheet for MATLAB/Python/Julia.
- NumPy2MATLAB and IPython reference card.
- Julia Tools ZIP package.