Skip to content

desktop application developed to demonstrate the principles of signal sampling and recovery based on the Nyquist–Shannon sampling theorem.

Notifications You must be signed in to change notification settings

Mostafaali3/Nyquist-Realtime-Sampling-Studio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sampling-Theory Studio

Application Overview

Overview

This project is a desktop application developed to demonstrate the principles of signal sampling and recovery based on the Nyquist–Shannon sampling theorem. It helps users visualize, sample, and reconstruct signals using various methods, showcasing the impact of sampling frequency and noise on signal recovery.


Features

  1. Signal Sampling and Recovery:

    • Load a signal (from a file or generated in-app) and visualize it.
    • Sample the signal at different frequencies (normalized or actual).
    • Recover the original signal using various reconstruction methods like Whittaker–Shannon interpolation.
  2. Signal Mixer/Composer:

    • Combine sinusoidal signals of different frequencies and amplitudes.
    • Add or remove components dynamically. Video Demo Watch the video
  3. Noise Addition:

    • Add controllable noise to the signal with a customizable SNR.
    • Visualize the effect of noise on signal frequency. Video Demo Watch the video
  4. Real-Time Interaction:

    • Changes in sampling frequency and reconstruction methods update the visualization in real time.
  5. Reconstruction Methods:

    • Explore multiple reconstruction techniques, including Whittaker–Shannon and alternatives, via a dropdown menu. Video Demo Watch the video
  6. Multiple Graphs:

    • View the original signal, reconstructed signal, error (difference), and frequency domain in a convenient layout.
  7. Responsive UI:

    • The application adjusts dynamically to resizing without disrupting the interface.
  8. Testing Scenarios:

    • Includes test cases demonstrating scenarios like aliasing and signal reconstruction challenges.

Dependencies

The Multi-Signal Viewer relies on the following technologies and libraries to deliver its robust functionality:

Dependency Description
Python 3.x Core programming language.
NumPy Numerical computations for signal processing.
Pandas Data manipulation and analysis.
SciPy Advanced scientific computing and interpolation.
PyQt5 GUI framework for building desktop applications.
PyQtGraph Fast plotting and 2D/3D visualization in PyQt.

Setup Instructions

Clone the repository

git clone https://github.com/Mostafaali3/Nyquist-Realtime-Sampling-Studio.git

Navigate to project directory

cd Nyquist-Realtime-Sampling-Studio

Install required packages

pip install -r requirements.txt

Run the application

python main.py

Contributors

Mostafa Ali
Mostafa Ali
Youssef Abo El Ela
Youssef Abo El-Ela
Kareem Abdel Nabi
Kareem Abdel Nabi
Ahmed X AlDeeb
Ahmed AlDeeb

About

desktop application developed to demonstrate the principles of signal sampling and recovery based on the Nyquist–Shannon sampling theorem.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages