Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation


Project Logo

Digital Signal Processing Analysis

A digital signal processing toolkit for generating, approximating, and analyzing frequencies using Fourier series and fast Fourier transforms.

Explore the Documentation »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Lessons Learned
  3. Getting Started
  4. Usage
  5. Contact
  6. Acknowledgments

About The Project

Signal Generation Plot Fourier Series Approximation

Time-domain signal generation and Fourier series approximations generated by the notebook.


This repository contains Digital Signal Processing Analysis, an academic project developed from scratch in 2024 for the Processamento Digital de Sinais course at ISEL (Instituto Superior de Engenharia de Lisboa).

The primary goal of this project is to apply fundamental digital signal processing concepts to a computational environment, translating mathematical formulations of waveforms and Fourier series into practical Python code to study signal behavior in both the time and frequency domains.

(back to top)


Built With

  • Python
  • Jupyter
  • NumPy
  • Matplotlib

(back to top)


Features & Key Highlights

  • Signal Generation: Generate and visualize complex waveforms by mathematically combining multiple sine and cosine waves.
  • Fourier Series Approximation: Reconstruct specific waves computationally by iterating variable harmonic terms ($N$).
  • Amplitude Spectrum Analysis: Utilize Fast Fourier Transforms (FFT) to accurately identify and visualize the frequency components of digital signals.
  • Data Visualization: Clear plotting of time-domain signals and frequency-domain spectrums using the Matplotlib library.

(back to top)


Lessons Learned

  • Computational Mathematics: Consolidated the ability to translate complex mathematical formulas into efficient, iterative code blocks.
  • Frequency Domain Insights: Gained a deeper practical understanding of how signals are composed and how to analyze them using their spectral density.
  • Python Scientific Stack: Improved proficiency with numpy for mathematical operations and matplotlib for generating professional engineering plots.

(back to top)


Getting Started

Follow these instructions to set up a local copy of the project on your machine to view the notebook and run the signal processing algorithms.

Prerequisites

  • Python 3.x
  • Jupyter Notebook or JupyterLab
  • Required Libraries: numpy, matplotlib

Installation & Running Locally

  1. Clone the repository:
    git clone https://github.com/GuilhermeGraca/python-digital-signal-processing.git
  2. Navigate to the project directory:
    cd python-digital-signal-processing
  3. Install the required libraries (if not already installed):
    pip install numpy matplotlib jupyter
  4. Open the Jupyter Notebook:
    jupyter notebook "python-digital-signal-processing.ipynb"

(back to top)


Usage

Once the notebook is open, you can run the cells sequentially to see how different signals are mathematically generated and plotted. You can experiment by changing the frequency variables (Fs), modifying the number of terms ($N$) in the Fourier Series, and observing the real-time changes in the amplitude spectrum graphs.

(back to top)


Contact

Guilherme Graça

(back to top)


Acknowledgments

  • ISEL (Instituto Superior de Engenharia de Lisboa) - For providing the academic foundation and resources for this project during the Processamento Digital de Sinais course.
  • David Delgado - Project collaborator and co-author.
  • Martim Ramos - Project collaborator and co-author.

(back to top)

About

Digital signal processing academic project focusing on time-domain signal generation and frequency-domain analysis using Python, NumPy, and Matplotlib.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages