Skip to main content

Python package for optical communication systems.

Project description

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
    • LASER: Continuous Wave Laser
    • PM: Phase Modulator
    • MZM: Mach-Zehnder Modulator (intensity modulator)
    • FIBER: Optical Fiber (with GPU acceleration support by default)
    • DBP: Back-Propagation algoritm
    • 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 (NumPy compatible)
    • electrical_signal: object for electrical signals (NumPy compatible)
    • 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

What's New in v2.0.0

  • NumPy Compatibility: binary_sequence and electrical_signal now fully support NumPy protocols, allowing direct use with NumPy functions.
  • GPU Acceleration: FIBER simulation now supports GPU acceleration using CuPy.
  • New Lab Module: Drivers for laboratory equipment (PED, Lasers, Oscilloscopes) in opticomlib.lab.
  • Enhanced Logging: Hierarchical logging system for better debugging.
  • New Utilities: Added eyediagram, phase_estimator, get_psd, and more.
  • Breaking Changes: See the full changelog for details on API changes (e.g., property access for .size, .type, NULL sentinel for noise).

License

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

Contact

If you wish to contact me you can do so at armandopr3009@gmail.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opticomlib-2.0.3.tar.gz (92.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opticomlib-2.0.3-py3-none-any.whl (94.8 kB view details)

Uploaded Python 3

File details

Details for the file opticomlib-2.0.3.tar.gz.

File metadata

  • Download URL: opticomlib-2.0.3.tar.gz
  • Upload date:
  • Size: 92.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opticomlib-2.0.3.tar.gz
Algorithm Hash digest
SHA256 96394e79a2a7639bbf14b39e8b2d46bdb5bdd2f1b7450cce3f0475130bea55d6
MD5 040b645232833fb46562752602ab9e53
BLAKE2b-256 f76fcf04f3e2f12ec7e75fec891f7464b3f8f3be2e8f9d8865691b6eb5c8a859

See more details on using hashes here.

File details

Details for the file opticomlib-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: opticomlib-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 94.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opticomlib-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a77073b76903e0791f5bd3016d3b201e9ec15810ebb9f4e66f68949aac2e7700
MD5 632cc17dbd1f64bc7283c8bc7351d6d9
BLAKE2b-256 3cc0c551297fb031b2ad32b1ec17fd2c7762d39fc1a890b02a4a621399a8d902

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page