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.
Electro-optic devices: most common electro-optic devices are implemented in the package (opticomlib.devices
):
PRBS
: Pseudo Random Binary Sequence GeneratorDAC
: Digital to Analog ConverterADC
: Analog to Digital ConverterPM
: Phase ModulatorMZM
: Mach-Zehnder Modulator (intensity modulator)FIBER
: Optical FiberDM
: Pure Dispersive MediumPD
: PhotodetectorEDFA
: Erbium Doped Fiber AmplifierSAMPLER
: electrical samplerLPF
: Low Pass FilterBPF
: Band Pass FilterGET_EYE
: Eye Diagram parameters estimatorFBG
: Fiber Bragg GratingModulation formats: modulations are implemented in separate modules, with their own functionalities:
OOK
: On-Off Keying (opticomlib.ook
)PPM
: Pulse Position Modulation (opticomlib.ppm
)Objects types: methods for signal processing and visualization are integrated in the following objects:
binary_sequence
: object for binary sequenceselectrical_signal
: object for electrical signalsoptical_signal
: object for optical signalseye
: object for eye diagramsLaboratory utilities: framework for communication with laboratory equipment and post-processing of data (opticomlib.lab
).
You can install opticomlib using pip:
pip install opticomlib
or from source code:
pip install git+https://github.com/armando-palacio/opticomlib.git
This project is licensed under the terms of the MIT license.
If you wish to contact me you can do so at armandopr3009@gmail.com.