A Python-based GUI application for simulating digital and analog modulation techniques with real-time signal analysis.
This project provides a comprehensive tool for simulating various modulation techniques and analyzing their signal characteristics. It features:
- Digital Modulation: FSK, PSK, ASK
- Analog Modulation: AM, FM
- Signal Analysis: Bandwidth, SNR, Spectral Efficiency
- AES Encryption: Secure data transmission simulation
- Audio Playback: Listen to generated signals
- Export Options: Save signals as WAV or plots as PNG/PDF
Built with tkinter for the GUI and matplotlib for visualization.
- FSK/PSK/ASK: Digital modulation with configurable carrier frequencies
- AM/FM: Analog modulation with customizable parameters
- Bandwidth Calculation: FFT-based spectral analysis
- SNR Estimation: Signal-to-noise ratio metrics
- Transmission Distance: Path loss model for range estimation
- AES-128 Encryption: Secure text input before modulation
- Save signals as
.wavfiles - Export plots to
/JPEG/PNG/PDF - Real-time audio playback
Clone the repository:
git clone https://github.com/armanghobadi/wavelab.git
cd modulation-simulatorInstall dependencies:
pip install -r requirements.txtRun the application:
python app.py- Python 3.8+
- Required libraries:
numpy, matplotlib, scipy, sounddevice, ttkthemes, pycryptodome
- Input text/message
- Bit rate, carrier frequency, sampling rate
- Duration and amplitude
- Digital: FSK/PSK/ASK
- Analog: AM/FM
- Bit-1 frequency (for FSK)
- Toggle AES-128 encryption
- 16-byte key input
- View bandwidth, SNR, and spectral efficiency
- Estimate transmission distance
- Enter text (e.g.,
Hello). - Select FSK modulation with:
- Carrier =
600 Hz, Bit-1 Frequency =1200 Hz
- Carrier =
- Enable AES Encryption (optional).
- Click Generate Signal → View plots.
- Click Analyze → Check SNR/Bandwidth.
- Play Audio or Save as WAV.
This project is licensed under the MIT License. See the LICENSE file for details.
- Telecommunications education
- Signal processing prototyping
- Encryption-integrated modulation testing
Made with ❤️ for the signal processing community!