UNIVERSITY OF WEST ATTICA
SCHOOL OF ENGINEERING
DEPARTMENT OF COMPUTER ENGINEERING AND INFORMATICS
Digital Signal Processing
Vasileios Evangelos Athanasiou
Student ID: 19390005
Supervisor: Emmanouel Bratsolis, Special Technical Laboratory Staff
Athens, January 2023
The report consists of 30 laboratory exercises (as listed in the table of contents) centered on generating, transforming, and plotting discrete-time signals.
All exercises are implemented in MATLAB, with signal definitions influenced by the student’s registration number (AM), which determines specific constants and time intervals.
| Section | Folder / File | Description |
|---|---|---|
| 1 | assign/ |
Assignment material |
| 1.1 | assign/ExersLabForDelivery22-23.pdf |
Laboratory exercises for submission (English) |
| 1.2 | assign/ΑσκησειςΕργΓιαΠαράδοση22-23.pdf |
Εργαστηριακές ασκήσεις προς παράδοση (Greek) |
| 2 | docs/ |
Theoretical documentation |
| 2.1 | docs/Digital-Signal-Processing-at-Matlab.pdf |
Digital Signal Processing using MATLAB (English) |
| 2.2 | docs/Ψηφιακή-Επεξεργασία-Σήματος-στο-Matlab.pdf |
Ψηφιακή Επεξεργασία Σήματος με MATLAB (Greek) |
| 3 | graphs/ |
Output graphs and figures |
| 3.1 | graphs/ex*.png |
Plots generated from MATLAB exercises |
| 4 | src/ |
MATLAB source code |
| 4.1 | src/ex1.m |
Exercise 1 implementation |
| 4.2 | src/ex2a.m, src/ex2b.m |
Exercise 2 implementations |
| 4.3 | src/ex3*.m |
Exercise 3 implementations (standard & repmat versions) |
| 4.4 | src/ex4.m |
Exercise 4 implementation |
| 4.5 | src/ex5a.m, src/ex5b.m |
Exercise 5 implementations |
| 4.6 | src/ex6.m – src/ex9b.m |
Exercises 6–9 implementations |
| 4.7 | src/ex10.m – src/ex19.m |
Exercises 10–19 implementations |
| 4.8 | src/ex22.m, src/ex25.m, src/ex26.m, src/ex29.m |
Advanced exercise implementations |
| 4.9 | src/dft.m |
Discrete Fourier Transform implementation |
| 4.10 | src/convall.m |
Convolution utility function |
| 4.11 | src/stepseq.m |
Step sequence generation |
| 4.12 | src/my_toeplitz.m |
Custom Toeplitz matrix function |
| 4.13 | src/freq.m |
Frequency analysis utility |
| 4.14 | src/transfer.m |
Transfer function implementation |
| 4.15 | src/theory.m |
Theoretical signal analysis script |
| 5 | README.md |
Repository overview and usage instructions |
The first exercise involves plotting a discrete-time signal ( x[n] ) defined over three distinct intervals:
Constant value equal to the single-digit sum of the student’s ID
(calculated as 9)
Constant value of 0
Signal defined by:
- Uses
stem(n, x)for discrete-time plotting - Employs
ones()andzeros()to construct constant signal segments - Computes the single-digit sum of the student ID using a custom loop with modulo operations
The second exercise examines unit step and unit impulse signals.
- Time Interval:
to
determined by the student’s ID
- Uses a custom MATLAB function
stepseqto generate the unit step sequence - Combines step and impulse signals to form composite discrete-time signals
The complete laboratory report includes the following (partial overview):
- Exercise 1: Multi-part discrete signal plotting (Pages 4–7)
- Exercise 2: Unit step and impulse combinations (Pages 7–16)
- Exercises 3–30: Various DSP signal implementations and analyses (Pages 16–120)
- Software: MATLAB
- Primary Commands Used:
stem,zeros,ones,sqrt,xlabel,ylabel,title
This laboratory work demonstrates practical proficiency in discrete-time signal modeling, MATLAB-based visualization, and fundamental DSP concepts through structured and progressively complex exercises.
This repository contains a Digital Signal Processing (DSP) laboratory project implemented in MATLAB, consisting of 30 structured exercises focused on discrete-time signal generation, transformation, and visualization.
The project is intended for academic use in Digital Signal Processing courses.
Supported platforms:
- Windows (recommended)
- macOS
- Linux
MATLAB scripts in this repository are platform-independent.
- MATLAB 2023 (recommended)
- Earlier versions (R2020b+) should also work, but MATLAB 2023 was used during development and testing.
The project primarily uses core MATLAB functionality.
No specialized toolboxes are strictly required.
Optional (helpful but not mandatory):
- Signal Processing Toolbox
- Minimum 4 GB RAM (8 GB recommended)
- At least 2 GB of free disk space
- Audio playback support (for
.WAVfile experiments)
Basic understanding of:
- Digital communications fundamentals
- Sampling theory
- Sinusoidal signals
- Fourier Transform & FFT
- MATLAB scripting (
.mfiles, functions, plotting)
Using Git:
git clone https://github.com/Digital-Signal-Processing-aka-Uniwa/Matlab.git- Open the repository URL in your browser
- Click Code → Download ZIP
- Extract the ZIP file to a local directory
- Install MATLAB 2023 from MathWorks
- Activate MATLAB using:
- University license, or
- Personal MathWorks account
- Verify MATLAB launches correctly
- Open MATLAB
- Navigate to the cloned repository folder
- Set it as the working directory:
cd path_to_repo/MatlabOr:
- Use the Current Folder panel in MATLAB
- Right-click → Add to Path → Selected Folders and Subfolders
Ensure the following directories are visible:
assign/docs/src/graphs/MATLAB scripts are located in:
src/From the MATLAB Command Window:
run('src/ex1.m')Or:
- Open the script in the MATLAB Editor
- Press Run
Each exX.m file corresponds to a specific laboratory exercise.
Some exercises depend on custom utility functions located in src/, such as:
stepseq.m– unit step sequencedft.m– Discrete Fourier Transformconvall.m– convolution helpermy_toeplitz.m– custom Toeplitz matrixfreq.m– frequency analysistransfer.m– transfer function modeling
Ensure the entire src/ folder is on the MATLAB path.
- Generated figures are displayed during script execution
- Saved plots are stored in:
graphs/in .png format
- Navigate to the
docs/directory - Open the report corresponding to your preferred language:
- English:
Digital-Signal-Processing-at-Matlab.pdf - Greek:
Ψηφιακή-Επεξεργασία-Σήματος-στο-Matlab.pdf
- English:
