A desktop application illustrating signal sampling and recovery based on the Nyquist–Shannon theorem. Users can load and compose signals, sample at various frequencies, visualize original, sampled, and reconstructed signals in real-time, and explore different reconstruction methods while adding noise and investigating aliasing effects.
Sampling-Theory-Studio-Demo.mp4
- Python 3.6 or higher
-
Clone the repository:
git clone https://github.com/AhmedAmgadElsharkawy/Sampling-Theory-Studio.git
-
Install The Dependincies:
pip install -r requirements.txt
-
Run The App:
python main.py
- Load Signal: Support loading pre-recorded signals from CSV files.
- Signal Mixer: Compose custom signals by summing sinusoids with different frequencies, magnitudes, and phase shifts, with real-time generation.
- Export Signal: Save composed signals to CSV files, allowing you to load and share them at any time.
- Signal Sampling: Sample signals and display the sampling frequency in either actual or normalized form (0×fmax to 4×fmax).
- Signal-to-Noise Ratio (SNR): Control the SNR to introduce noise into signals.
- Signal Reconstruction: Provide five different signal reconstruction options: Whittaker–Shannon, Lanczos, Cubic Spline, Zero-Order Hold, and First-Order Hold.
- AhmedAmgadElsharkawy: GitHub Profile
- AbdullahMahmoudHanafy: GitHub Profile
- Mohamed-185: GitHub Profile
- RawanAhmed444: GitHub Profile