Optical Communications Algorithms with Python
Project description
OptiCommPy: Fiber Optic Communications with Python
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.
Available features
- 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), error vector magnitude (EVM), mutual information (MI), generalized mutual information (GMI).
How can I contribute?
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 (edsonporto88@gmail.com).
Requirements/Dependencies
- 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
Installation
Using pip:
pip install OptiCommPy
Cloning the repository from github:
$ git clone https://github.com/edsonportosilva/OptiCommPy.git
$ cd OptiCommPy
$ python setup.py install
or
$ git clone https://github.com/edsonportosilva/OptiCommPy.git
$ cd OptiCommPy
$ pip install .
Citing this repository
Edson Porto da Silva, & Adolfo Herbster. (2021). edsonportosilva/OptiCommpy: First release (alpha version) (v0.1.0-alpha).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.