This repository contains a simulation framework for evaluating the performance of underwater acoustic communication systems. It supports various modulation schemes, error correction techniques, and performance metrics to analyze the efficiency and reliability of underwater communications.
The simulation models a multi-hop underwater communication system with:
- Nodes:
- Randomly placed nodes with varying distances and depths.
- Underwater Acoustic Channel:
- Simulates noise and attenuation, with adjustable Signal-to-Noise Ratio (SNR).
- Modulation Schemes:
- BPSK, QPSK, FSK, and 16-QAM.
- Error Correction:
- Low-Density Parity Check (LDPC) coding to improve reliability.
- Performance Metrics:
- Bit Error Rate (BER): Fraction of bits decoded incorrectly.
- Frame Error Rate (FER): Fraction of frames with errors.
- Success Rate: Percentage of error-free transmissions.
- Multi-hop underwater acoustic communication simulation.
- Evaluation of BER and FER across multiple modulation schemes and SNR values.
- Visualizations for performance analysis.
- Python 3.x
- Required Python libraries:
numpy
matplotlib
scipy
tqdm
- Clone or download the repository.
- Run the
main_uw_rs.py
Python script:
python <main_uw_ldpc>.py
The script will simulate the communication system and display the performance metrics in graphical form.
-
DigitalDemodulator
:- Supports demodulation for BPSK, QPSK, FSK, and 16-QAM.
- Includes signal amplification, gain adjustment, and equalization.
-
UnderwaterChannel
:- Simulates an underwater acoustic channel with noise and attenuation.
- Allows transmission at adjustable SNR levels.
-
DigitalModulator
:- Encodes binary data into modulated waveforms.
-
LDPC
:- Implements Low-Density Parity Check encoding and decoding.
-
Main Simulation (
main_uw_ldpc.py
):- Simulates transmission and reception for multiple SNR levels and modulation schemes.
- Outputs performance metrics (BER, FER) for analysis.
main_uw_ldpc.py
The simulation generates the following plots:
- BER vs. SNR:
- Compares bit error rates for all modulation schemes.
- FER vs. SNR:
- Illustrates frame error rates across modulation schemes.
- BER vs. SNR
- FER vs. SNR
(Plots will be displayed when the script is executed.)
- Incorporate advanced channel models with multi-path effects.
- Add support for adaptive modulation and coding.
- Explore higher-order modulation schemes like 64-QAM or OFDM.
Contributions are welcome! If you'd like to contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name
This simulation framework was developed to advance research and education for error correction using LPDPC coding in underwater communication systems. It aims to support the study of error correction techniques, modulation schemes, and reliable communication in challenging underwater environments.
This project is licensed under the MIT License.
If you use this code, please acknowledge:
Dr. Md Munjure Mowla
Email: rimonece@gmail.com