Skip to content

This repository serves as a lab companion for **CCE3206 - Digital Signal Processing**, offered by the **Department of Communications and Computer Engineering** at the University of Malta. The labs are designed to reinforce theoretical concepts through practical signal analysis tasks using Python-based tools.

Notifications You must be signed in to change notification settings

GrahamPellegrini/DSP-Labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSP Learning Labs

CCE3206 Course Supervisor

A lab-focused repository for CCE3206: Digital Signal Processing at the University of Malta. Each practical session explores a key DSP concept using Python (NumPy, SciPy) in Jupyter notebooks.


Practicals Overview

This repository includes 4 hands-on labs, each with a worksheet and an implemented solution notebook. Topics range from sampling theory and IIR filtering to FIR design and FFT-based frequency analysis.

Practical 1 – Sampling Theorem

  • Signal generation and pulse train sampling
  • Power spectrum comparison (original vs sampled)
  • Aliasing effects and Nyquist violations
  • Chebyshev low-pass filtering

Practical 2 – IIR Filter Implementation

  • First-order IIR filter with recursive feedback
  • Impulse and step response simulation
  • .wav signal filtering and power spectrum analysis
  • Gain/phase computation
  • Experimental vs theoretical Bode plots

Practical 3 – FIR Filter Design

  • FIR system implementation and frequency response
  • Filter length and performance tradeoffs
  • Visualization of filtering effects
  • (See worksheet for theoretical context)

Practical 4 – DFT and FFT Analysis

  • Manual DFT matrix computation
  • Symmetry and conjugation in transforms
  • Parseval’s theorem and energy conservation
  • FFT implementation and performance gains

These practicals were designed as skill-building exercises rather than full projects. Emphasis is on signal understanding and implementation from first principles.


Requirements

This repository does not include a requirements.txt file.

To run the notebooks, make sure you have the following Python libraries installed:

pip install numpy scipy matplotlib jupyter

Or use:

conda install numpy scipy matplotlib jupyter

Repository Structure

DSP-Labs/
├── Practical_1/
│   ├── cce3206-practical-1.pdf
│   └── practical_1_solution.ipynb
├── Practical_2/
│   ├── cce3206-practical-2.pdf
│   └── practical_2_solution.ipynb
├── Practical_3/
│   ├── cce3206-practical-3.pdf
│   └── practical_3_solution.ipynb
├── Practical_4/
│   ├── cce3206-practical-4.pdf
│   └── practical_4_solution.ipynb
└── README.md

Author

Graham Pellegrini
University of Malta
GitHub: @GrahamPellegrini

About

This repository serves as a lab companion for **CCE3206 - Digital Signal Processing**, offered by the **Department of Communications and Computer Engineering** at the University of Malta. The labs are designed to reinforce theoretical concepts through practical signal analysis tasks using Python-based tools.

Topics

Resources

Stars

Watchers

Forks