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 GeneratorDAC: Digital to Analog ConverterADC: Analog to Digital ConverterLASER: Continuous Wave LaserPM: Phase ModulatorMZM: Mach-Zehnder Modulator (intensity modulator)FIBER: Optical Fiber (with GPU acceleration support by default)DBP: Back-Propagation algoritmDM: Pure Dispersive MediumPD: PhotodetectorEDFA: Erbium Doped Fiber AmplifierSAMPLER: electrical samplerLPF: Low Pass FilterBPF: Band Pass FilterGET_EYE: Eye Diagram parameters estimatorFBG: 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 signalseye: 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_sequenceandelectrical_signalnow fully support NumPy protocols, allowing direct use with NumPy functions. - GPU Acceleration:
FIBERsimulation 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,NULLsentinel 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96394e79a2a7639bbf14b39e8b2d46bdb5bdd2f1b7450cce3f0475130bea55d6
|
|
| MD5 |
040b645232833fb46562752602ab9e53
|
|
| BLAKE2b-256 |
f76fcf04f3e2f12ec7e75fec891f7464b3f8f3be2e8f9d8865691b6eb5c8a859
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a77073b76903e0791f5bd3016d3b201e9ec15810ebb9f4e66f68949aac2e7700
|
|
| MD5 |
632cc17dbd1f64bc7283c8bc7351d6d9
|
|
| BLAKE2b-256 |
3cc0c551297fb031b2ad32b1ec17fd2c7762d39fc1a890b02a4a621399a8d902
|