Skip to content

🪐Optical Communications python library (GPU support coming soon in version v2.0.0)

License

Notifications You must be signed in to change notification settings

armando-palacio/opticomlib

Repository files navigation

image

PyPI Read the Docs GitHub

Opticomlib is an open source Python package for optical communications research. It is oriented to engineers who want to simulate optical communication systems using Python. The package provide binary_sequence, electrical_signal, optical_signal, and eye objects with methods for signal processing and visualization integrated with numpy, scipy, and matplotlib libraries for frendly use. The package also provide a set of electro-optic devices as MZM, FIBER, PD, EDFA, and much more.

Features

  • Electro-optic devices: most common electro-optic devices are implemented in the package (opticomlib.devices):

    • PRBS: Pseudo Random Binary Sequence Generator
    • DAC: Digital to Analog Converter
    • ADC: Analog to Digital Converter
    • PM: Phase Modulator
    • MZM: Mach-Zehnder Modulator (intensity modulator)
    • FIBER: Optical Fiber
    • DM: Pure Dispersive Medium
    • PD: Photodetector
    • EDFA: Erbium Doped Fiber Amplifier
    • SAMPLER: electrical sampler
    • LPF: Low Pass Filter
    • BPF: Band Pass Filter
    • GET_EYE: Eye Diagram parameters estimator
    • FBG: Fiber Bragg Grating
    • ... and more in the future
  • Modulation formats: modulations are implemented in separate modules, with their own functionalities:

    • OOK: On-Off Keying (opticomlib.ook)
    • PPM: Pulse Position Modulation (opticomlib.ppm)
    • ... and more in the future
  • Objects types: methods for signal processing and visualization are integrated in the following objects:

    • binary_sequence: object for binary sequences
    • electrical_signal: object for electrical signals
    • optical_signal: object for optical signals
    • eye: object for eye diagrams
  • Laboratory utilities: framework for communication with laboratory equipment and post-processing of data (opticomlib.lab).

Installation

You can install opticomlib using pip:

pip install opticomlib

or from source code:

pip install git+https://github.com/armando-palacio/opticomlib.git

License

This project is licensed under the terms of the MIT license.

Contact

If you wish to contact me you can do so at [email protected].