Simulate optical communications systems with Python. This repository is a Python-based framework to simulate systems, subsystems and components of fiber optic communication systems, for educational and research purposes.
- QAM/PSK signal generation with CommPy
- Numerical models to simulate optical transmitters, nonlinear propagation over optical fibers, and optical receivers.
- CPU and GPU-based implementations of the split-step Fourier Method to simulate polarization multiplexed WDM transmission.
- Standard digital signal processing (DSP) blocks employed in coherent optical receivers. For most of the cases, Numba is used to speed up the core functions.
- Tools to evaluate transmission performance metrics such as bit-error-rate (BER), symbol-error-rate (SER), mutual information (MI), generalized mutual information (GMI).
If you want to contribute to this project, just implement the feature you want and send me a pull request. If you want to suggest new features or discuss anything related to OptiCommPy, please get in touch with me ([email protected]).
- python 3.2 or above
- numpy 1.10 or above
- scipy 0.15 or above
- matplotlib 1.4 or above
- Commpy 0.7.0 or above
- numba 0.54.1 or above
- tqdm
Clone from github and install as follows::
$ git clone https://github.com/edsonportosilva/OptiCommPy.git
$ cd OptiCommPy
$ python setup.py install
Edson Porto da Silva, & Adolfo Herbster. (2021). edsonportosilva/OptiCommpy: First release (alpha version) (v0.1.0-alpha).