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.
Release files for opticomlib 2.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| opticomlib-2.0.3.tar.gz | 92.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opticomlib-2.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:187.6 kB
Release files / opticomlib-2.0.3.tar.gz
| Download URL | opticomlib-2.0.3.tar.gz |
|---|---|
| Size | 92.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
96394e79a2a7639bbf14b39e8b2d46bdb5bdd2f1b7450cce3f0475130bea55d6
|
|
BLAKE2b-256 checksum How to use checksums |
f76fcf04f3e2f12ec7e75fec891f7464b3f8f3be2e8f9d8865691b6eb5c8a859
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / opticomlib-2.0.3-py3-none-any.whl
| Download URL | opticomlib-2.0.3-py3-none-any.whl |
|---|---|
| Size | 94.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a77073b76903e0791f5bd3016d3b201e9ec15810ebb9f4e66f68949aac2e7700
|
|
BLAKE2b-256 checksum How to use checksums |
3cc0c551297fb031b2ad32b1ec17fd2c7762d39fc1a890b02a4a621399a8d902
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|