A desktop application for visual and interactive simulation and analysis of Amplitude Modulation (AM) spectrums. Created as a project to deepen the understanding of concepts in analog communication systems.
- Signal Generator: Generates message signals (sine, square, sawtooth, dual-tone) and a carrier signal.
- AM Modulation: Supports DSB-FC (Double Sideband Full Carrier) and DSB-SC (Double Sideband Suppressed Carrier) modes.
- Channel Simulation: Adds noise to the signal with an adjustable Signal-to-Noise Ratio (SNR).
- Demodulation: Simulates Envelope and Coherent demodulators (with phase error control).
- Real-Time Visualization: Interactive plots for signals in the time domain (message, carrier, modulated, demodulated) and frequency domain (FFT spectrum).
- Spectrum Analysis: Zoom, pan, and markers on the FFT plot to analyze frequency components (Fc, LSB, USB).
- Parameter Calculation: Automatically calculates and displays the Modulation Index (m), Bandwidth (BW), Efficiency (η), and Total Harmonic Distortion (THD).
- Educational Presets: Comes with various presets for common modulation scenarios (good modulation, overmodulation, noisy signal, etc.).
- Audio Playback: Listen to the original message signal and the demodulated result to compare sound quality.
- Language: Python 3
- GUI Framework: Tkinter with a modern theme from
ttkbootstrap. - Signal & Numerical Processing:
NumPyandSciPy. - Data Visualization:
Matplotlib. - Audio Playback:
Sounddevice. - Packaging:
PyInstallerto create an.exefile.
There are two ways to run this application:
You don't need to install Python or any libraries.
- Go to the Releases page of this repository.
- In the "Assets" section, download the latest
.zipfile. - Extract the zip file.
- Run the
.exefile inside.
Prerequisites:
- Python 3.8+
- Git
Steps:
-
Clone this repository:
git clone https://github.com/DhimasArdinata/Virtual-AM-Spectrum-Analyzer.git
-
Go into the project directory:
cd Virtual-AM-Spectrum-Analyzer -
(Highly recommended) Create and activate a virtual environment:
# Windows python -m venv venv .\venv\Scripts\activate
-
Install all required libraries:
pip install numpy matplotlib scipy sounddevice ttkbootstrap
-
Run the application:
# Replace am_analyzer.py with your Python file name python am_analyzer.py
- Name: Dhimas Ardinata Putra Pamungkas
- Student ID: 4.3.22.0.10
- Class: TE-4A
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for full details.
