OptiCommPy 0.6.0__tar.gz → 0.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. OptiCommPy-0.9.0/OptiCommPy.egg-info/PKG-INFO +138 -0
  2. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/OptiCommPy.egg-info/SOURCES.txt +7 -4
  3. OptiCommPy-0.9.0/OptiCommPy.egg-info/requires.txt +11 -0
  4. OptiCommPy-0.9.0/PKG-INFO +138 -0
  5. OptiCommPy-0.9.0/README.rst +119 -0
  6. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/optic/comm/metrics.py +318 -21
  7. OptiCommPy-0.9.0/optic/comm/modulation.py +465 -0
  8. OptiCommPy-0.9.0/optic/comm/ofdm.py +268 -0
  9. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/optic/dsp/carrierRecovery.py +135 -58
  10. OptiCommPy-0.9.0/optic/dsp/clockRecovery.py +221 -0
  11. OptiCommPy-0.9.0/optic/dsp/core.py +772 -0
  12. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/optic/dsp/coreGPU.py +16 -3
  13. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/optic/dsp/equalization.py +279 -134
  14. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/optic/models/amplification.py +41 -20
  15. OptiCommPy-0.9.0/optic/models/channels.py +582 -0
  16. OptiCommPy-0.9.0/optic/models/devices.py +682 -0
  17. OptiCommPy-0.9.0/optic/models/modelsGPU.py +811 -0
  18. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/optic/models/tx.py +49 -40
  19. OptiCommPy-0.9.0/optic/plot.py +647 -0
  20. OptiCommPy-0.9.0/optic/utils.py +170 -0
  21. OptiCommPy-0.9.0/setup.py +68 -0
  22. OptiCommPy-0.9.0/tests/test_dsp.py +28 -0
  23. OptiCommPy-0.9.0/tests/test_metrics.py +97 -0
  24. OptiCommPy-0.9.0/tests/test_modulation.py +56 -0
  25. OptiCommPy-0.6.0/OptiCommPy.egg-info/PKG-INFO +0 -96
  26. OptiCommPy-0.6.0/OptiCommPy.egg-info/requires.txt +0 -10
  27. OptiCommPy-0.6.0/PKG-INFO +0 -96
  28. OptiCommPy-0.6.0/README.md +0 -77
  29. OptiCommPy-0.6.0/optic/comm/fec.py +0 -66
  30. OptiCommPy-0.6.0/optic/comm/modulation.py +0 -221
  31. OptiCommPy-0.6.0/optic/comm/ofdm.py +0 -182
  32. OptiCommPy-0.6.0/optic/core.py +0 -7
  33. OptiCommPy-0.6.0/optic/dsp/core.py +0 -374
  34. OptiCommPy-0.6.0/optic/models/channels.py +0 -475
  35. OptiCommPy-0.6.0/optic/models/devices.py +0 -431
  36. OptiCommPy-0.6.0/optic/models/modelsGPU.py +0 -673
  37. OptiCommPy-0.6.0/optic/plot.py +0 -328
  38. OptiCommPy-0.6.0/setup.py +0 -68
  39. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/LICENSE +0 -0
  40. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/OptiCommPy.egg-info/dependency_links.txt +0 -0
  41. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/OptiCommPy.egg-info/top_level.txt +0 -0
  42. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/optic/__init__.py +0 -0
  43. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/runner +0 -0
  44. {OptiCommPy-0.6.0 → OptiCommPy-0.9.0}/setup.cfg +0 -0
@@ -0,0 +1,138 @@
1
+ Metadata-Version: 2.1
2
+ Name: OptiCommPy
3
+ Version: 0.9.0
4
+ Summary: Optical Communications Algorithms with Python
5
+ Home-page: https://github.com/edsonportosilva/OptiCommPy
6
+ Maintainer: Edson Porto da Silva
7
+ Maintainer-email: edsonporto88@gmail.com
8
+ License: GPL-3.0 license
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Intended Audience :: Telecommunications Industry
12
+ Classifier: Operating System :: Unix
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Topic :: Scientific/Engineering
15
+ Classifier: Topic :: Software Development
16
+ Requires-Python: >=3.2
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+
20
+
21
+ .. image:: ../../figures/logo_OptiCommPy.jpg
22
+ :width: 75%
23
+ :align: center
24
+
25
+ **OptiCommPy** is a Python-based framework to simulate systems, subsystems, and
26
+ components of fiber optic communication systems, for educational and research purposes.
27
+
28
+ .. image:: ../../figures/eyeDisp.gif
29
+ :width: 45%
30
+ .. image:: ../../figures/40GOOK_spectrum.jpg
31
+ :width: 45%
32
+
33
+
34
+ .. image:: ../../figures/DSP.jpg
35
+ :width: 600px
36
+ :align: center
37
+
38
+ |PyPI| |PyPI - Downloads| |Documentation Status| |DOI|
39
+
40
+ Available features
41
+ ------------------
42
+
43
+ - Several digital modulations available (M-PAM, square M-QAM, M-PSK,
44
+ OOK) to simulate IM-DD and coherent optical systems.
45
+ - Numerical models to simulate optical transmitters, optical
46
+ amplification, nonlinear propagation over optical fibers, and optical
47
+ receivers.
48
+ - CPU and GPU-based implementations of the `split-step Fourier
49
+ Method <https://en.wikipedia.org/wiki/Split-step_method>`__ to
50
+ simulate polarization multiplexed WDM transmission.
51
+ - Standard digital signal processing (DSP) blocks employed in coherent
52
+ optical receivers, such as:
53
+
54
+ - *Signal resampling.*
55
+ - *Matched filtering.*
56
+ - *Clock recovery.*
57
+ - *Electronic chromatic dispersion compensation (EDC)*.
58
+ - *Several NxN MIMO adaptive equalization algorithms*.
59
+ - *Carrier phase recovery algorithms.*
60
+
61
+ - For most of the cases, `Numba <https://numba.pydata.org/>`__ is used
62
+ to speed up the core DSP functions.
63
+ - Evaluate transmission performance with metrics such as:
64
+
65
+ - *Bit-error-rate* (BER).
66
+ - *Symbol-error-rate* (SER).
67
+ - *Error vector magnitude* (EVM).
68
+ - *Mutual information* (MI).
69
+ - *Generalized mutual information* (GMI).
70
+ - *Normalized generalized mutual information* (NGMI).
71
+
72
+ - Visualization of the spectrum of electrical/optical signals, signal
73
+ constellations, and eyediagrams.
74
+
75
+ How can I contribute?
76
+ ---------------------
77
+
78
+ If you want to contribute to this project, implement the feature you
79
+ want and send me a pull request. If you want to suggest new features or
80
+ discuss anything related to OptiCommPy, please get in touch with me
81
+ (edsonporto88@gmail.com).
82
+
83
+ Requirements/Dependencies
84
+ -------------------------
85
+
86
+ - python>=3.2
87
+ - numpy>=1.24.4
88
+ - scipy>=1.13.0
89
+ - matplotlib>=3.7.0
90
+ - numba>=0.54.1,<=0.57.0
91
+ - tqdm>=4.64.1
92
+ - simple-pid>=1.0.1
93
+ - mpl-scatter-density>=0.7.0
94
+ - sphinx-rtd-theme>=1.2.2
95
+ - nbsphinx>=0.9.3
96
+ - nbsphinx-link>=1.3.0
97
+ - cupy-cuda12x >= 13.1.0 (optional, in case GPU processing is desired)
98
+
99
+ Installation
100
+ ------------
101
+
102
+ Using pip:
103
+
104
+ ::
105
+
106
+ pip install OptiCommPy
107
+
108
+ Cloning the repository from GitHub:
109
+
110
+ ::
111
+
112
+ $ git clone https://github.com/edsonportosilva/OptiCommPy.git
113
+ $ cd OptiCommPy
114
+ $ pip install .
115
+
116
+ Documentation
117
+ -------------
118
+
119
+ We are continuously making efforts to improve the code documentation.
120
+ You can find the latest documentation in
121
+ `opticommpy.readthedocs.io <https://opticommpy.readthedocs.io/en/latest/index.html>`__.
122
+
123
+ Citing this repository
124
+ ----------------------
125
+
126
+ Edson Porto da Silva, Adolfo Herbster, Carlos Daniel Fontes da Silva, &
127
+ Joaquin Matres. (2023). edsonportosilva/OptiCommPy: v0.7.0-alpha
128
+ (v0.7.0-alpha). Zenodo. https://doi.org/10.5281/zenodo.10304945
129
+
130
+ .. |PyPI| image:: https://img.shields.io/pypi/v/OptiCommPy?label=pypi%20package
131
+ .. |PyPI - Downloads| image:: https://img.shields.io/pypi/dm/OptiCommPy
132
+ .. |Documentation Status| image:: https://readthedocs.org/projects/opticommpy/badge/?version=latest
133
+ :target: https://opticommpy.readthedocs.io/en/latest/?badge=latest
134
+ .. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.10304945.svg
135
+ :target: https://doi.org/10.5281/zenodo.10304945
136
+
137
+
138
+
@@ -1,5 +1,5 @@
1
1
  LICENSE
2
- README.md
2
+ README.rst
3
3
  runner
4
4
  setup.py
5
5
  OptiCommPy.egg-info/PKG-INFO
@@ -8,13 +8,13 @@ OptiCommPy.egg-info/dependency_links.txt
8
8
  OptiCommPy.egg-info/requires.txt
9
9
  OptiCommPy.egg-info/top_level.txt
10
10
  optic/__init__.py
11
- optic/core.py
12
11
  optic/plot.py
13
- optic/comm/fec.py
12
+ optic/utils.py
14
13
  optic/comm/metrics.py
15
14
  optic/comm/modulation.py
16
15
  optic/comm/ofdm.py
17
16
  optic/dsp/carrierRecovery.py
17
+ optic/dsp/clockRecovery.py
18
18
  optic/dsp/core.py
19
19
  optic/dsp/coreGPU.py
20
20
  optic/dsp/equalization.py
@@ -22,4 +22,7 @@ optic/models/amplification.py
22
22
  optic/models/channels.py
23
23
  optic/models/devices.py
24
24
  optic/models/modelsGPU.py
25
- optic/models/tx.py
25
+ optic/models/tx.py
26
+ tests/test_dsp.py
27
+ tests/test_metrics.py
28
+ tests/test_modulation.py
@@ -0,0 +1,11 @@
1
+ numpy>=1.24.4
2
+ scipy>=1.13.0
3
+ matplotlib>=3.7.0
4
+ sympy
5
+ tqdm>=4.64.1
6
+ numba<=0.57,>=0.54.0
7
+ simple-pid>=1.0.1
8
+ mpl-scatter-density>=0.7.0
9
+ sphinx-rtd-theme>=1.2.2
10
+ nbsphinx>=0.9.3
11
+ nbsphinx-link>=1.3.0
@@ -0,0 +1,138 @@
1
+ Metadata-Version: 2.1
2
+ Name: OptiCommPy
3
+ Version: 0.9.0
4
+ Summary: Optical Communications Algorithms with Python
5
+ Home-page: https://github.com/edsonportosilva/OptiCommPy
6
+ Maintainer: Edson Porto da Silva
7
+ Maintainer-email: edsonporto88@gmail.com
8
+ License: GPL-3.0 license
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Intended Audience :: Telecommunications Industry
12
+ Classifier: Operating System :: Unix
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Topic :: Scientific/Engineering
15
+ Classifier: Topic :: Software Development
16
+ Requires-Python: >=3.2
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+
20
+
21
+ .. image:: ../../figures/logo_OptiCommPy.jpg
22
+ :width: 75%
23
+ :align: center
24
+
25
+ **OptiCommPy** is a Python-based framework to simulate systems, subsystems, and
26
+ components of fiber optic communication systems, for educational and research purposes.
27
+
28
+ .. image:: ../../figures/eyeDisp.gif
29
+ :width: 45%
30
+ .. image:: ../../figures/40GOOK_spectrum.jpg
31
+ :width: 45%
32
+
33
+
34
+ .. image:: ../../figures/DSP.jpg
35
+ :width: 600px
36
+ :align: center
37
+
38
+ |PyPI| |PyPI - Downloads| |Documentation Status| |DOI|
39
+
40
+ Available features
41
+ ------------------
42
+
43
+ - Several digital modulations available (M-PAM, square M-QAM, M-PSK,
44
+ OOK) to simulate IM-DD and coherent optical systems.
45
+ - Numerical models to simulate optical transmitters, optical
46
+ amplification, nonlinear propagation over optical fibers, and optical
47
+ receivers.
48
+ - CPU and GPU-based implementations of the `split-step Fourier
49
+ Method <https://en.wikipedia.org/wiki/Split-step_method>`__ to
50
+ simulate polarization multiplexed WDM transmission.
51
+ - Standard digital signal processing (DSP) blocks employed in coherent
52
+ optical receivers, such as:
53
+
54
+ - *Signal resampling.*
55
+ - *Matched filtering.*
56
+ - *Clock recovery.*
57
+ - *Electronic chromatic dispersion compensation (EDC)*.
58
+ - *Several NxN MIMO adaptive equalization algorithms*.
59
+ - *Carrier phase recovery algorithms.*
60
+
61
+ - For most of the cases, `Numba <https://numba.pydata.org/>`__ is used
62
+ to speed up the core DSP functions.
63
+ - Evaluate transmission performance with metrics such as:
64
+
65
+ - *Bit-error-rate* (BER).
66
+ - *Symbol-error-rate* (SER).
67
+ - *Error vector magnitude* (EVM).
68
+ - *Mutual information* (MI).
69
+ - *Generalized mutual information* (GMI).
70
+ - *Normalized generalized mutual information* (NGMI).
71
+
72
+ - Visualization of the spectrum of electrical/optical signals, signal
73
+ constellations, and eyediagrams.
74
+
75
+ How can I contribute?
76
+ ---------------------
77
+
78
+ If you want to contribute to this project, implement the feature you
79
+ want and send me a pull request. If you want to suggest new features or
80
+ discuss anything related to OptiCommPy, please get in touch with me
81
+ (edsonporto88@gmail.com).
82
+
83
+ Requirements/Dependencies
84
+ -------------------------
85
+
86
+ - python>=3.2
87
+ - numpy>=1.24.4
88
+ - scipy>=1.13.0
89
+ - matplotlib>=3.7.0
90
+ - numba>=0.54.1,<=0.57.0
91
+ - tqdm>=4.64.1
92
+ - simple-pid>=1.0.1
93
+ - mpl-scatter-density>=0.7.0
94
+ - sphinx-rtd-theme>=1.2.2
95
+ - nbsphinx>=0.9.3
96
+ - nbsphinx-link>=1.3.0
97
+ - cupy-cuda12x >= 13.1.0 (optional, in case GPU processing is desired)
98
+
99
+ Installation
100
+ ------------
101
+
102
+ Using pip:
103
+
104
+ ::
105
+
106
+ pip install OptiCommPy
107
+
108
+ Cloning the repository from GitHub:
109
+
110
+ ::
111
+
112
+ $ git clone https://github.com/edsonportosilva/OptiCommPy.git
113
+ $ cd OptiCommPy
114
+ $ pip install .
115
+
116
+ Documentation
117
+ -------------
118
+
119
+ We are continuously making efforts to improve the code documentation.
120
+ You can find the latest documentation in
121
+ `opticommpy.readthedocs.io <https://opticommpy.readthedocs.io/en/latest/index.html>`__.
122
+
123
+ Citing this repository
124
+ ----------------------
125
+
126
+ Edson Porto da Silva, Adolfo Herbster, Carlos Daniel Fontes da Silva, &
127
+ Joaquin Matres. (2023). edsonportosilva/OptiCommPy: v0.7.0-alpha
128
+ (v0.7.0-alpha). Zenodo. https://doi.org/10.5281/zenodo.10304945
129
+
130
+ .. |PyPI| image:: https://img.shields.io/pypi/v/OptiCommPy?label=pypi%20package
131
+ .. |PyPI - Downloads| image:: https://img.shields.io/pypi/dm/OptiCommPy
132
+ .. |Documentation Status| image:: https://readthedocs.org/projects/opticommpy/badge/?version=latest
133
+ :target: https://opticommpy.readthedocs.io/en/latest/?badge=latest
134
+ .. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.10304945.svg
135
+ :target: https://doi.org/10.5281/zenodo.10304945
136
+
137
+
138
+
@@ -0,0 +1,119 @@
1
+
2
+ .. image:: ../../figures/logo_OptiCommPy.jpg
3
+ :width: 75%
4
+ :align: center
5
+
6
+ **OptiCommPy** is a Python-based framework to simulate systems, subsystems, and
7
+ components of fiber optic communication systems, for educational and research purposes.
8
+
9
+ .. image:: ../../figures/eyeDisp.gif
10
+ :width: 45%
11
+ .. image:: ../../figures/40GOOK_spectrum.jpg
12
+ :width: 45%
13
+
14
+
15
+ .. image:: ../../figures/DSP.jpg
16
+ :width: 600px
17
+ :align: center
18
+
19
+ |PyPI| |PyPI - Downloads| |Documentation Status| |DOI|
20
+
21
+ Available features
22
+ ------------------
23
+
24
+ - Several digital modulations available (M-PAM, square M-QAM, M-PSK,
25
+ OOK) to simulate IM-DD and coherent optical systems.
26
+ - Numerical models to simulate optical transmitters, optical
27
+ amplification, nonlinear propagation over optical fibers, and optical
28
+ receivers.
29
+ - CPU and GPU-based implementations of the `split-step Fourier
30
+ Method <https://en.wikipedia.org/wiki/Split-step_method>`__ to
31
+ simulate polarization multiplexed WDM transmission.
32
+ - Standard digital signal processing (DSP) blocks employed in coherent
33
+ optical receivers, such as:
34
+
35
+ - *Signal resampling.*
36
+ - *Matched filtering.*
37
+ - *Clock recovery.*
38
+ - *Electronic chromatic dispersion compensation (EDC)*.
39
+ - *Several NxN MIMO adaptive equalization algorithms*.
40
+ - *Carrier phase recovery algorithms.*
41
+
42
+ - For most of the cases, `Numba <https://numba.pydata.org/>`__ is used
43
+ to speed up the core DSP functions.
44
+ - Evaluate transmission performance with metrics such as:
45
+
46
+ - *Bit-error-rate* (BER).
47
+ - *Symbol-error-rate* (SER).
48
+ - *Error vector magnitude* (EVM).
49
+ - *Mutual information* (MI).
50
+ - *Generalized mutual information* (GMI).
51
+ - *Normalized generalized mutual information* (NGMI).
52
+
53
+ - Visualization of the spectrum of electrical/optical signals, signal
54
+ constellations, and eyediagrams.
55
+
56
+ How can I contribute?
57
+ ---------------------
58
+
59
+ If you want to contribute to this project, implement the feature you
60
+ want and send me a pull request. If you want to suggest new features or
61
+ discuss anything related to OptiCommPy, please get in touch with me
62
+ (edsonporto88@gmail.com).
63
+
64
+ Requirements/Dependencies
65
+ -------------------------
66
+
67
+ - python>=3.2
68
+ - numpy>=1.24.4
69
+ - scipy>=1.13.0
70
+ - matplotlib>=3.7.0
71
+ - numba>=0.54.1,<=0.57.0
72
+ - tqdm>=4.64.1
73
+ - simple-pid>=1.0.1
74
+ - mpl-scatter-density>=0.7.0
75
+ - sphinx-rtd-theme>=1.2.2
76
+ - nbsphinx>=0.9.3
77
+ - nbsphinx-link>=1.3.0
78
+ - cupy-cuda12x >= 13.1.0 (optional, in case GPU processing is desired)
79
+
80
+ Installation
81
+ ------------
82
+
83
+ Using pip:
84
+
85
+ ::
86
+
87
+ pip install OptiCommPy
88
+
89
+ Cloning the repository from GitHub:
90
+
91
+ ::
92
+
93
+ $ git clone https://github.com/edsonportosilva/OptiCommPy.git
94
+ $ cd OptiCommPy
95
+ $ pip install .
96
+
97
+ Documentation
98
+ -------------
99
+
100
+ We are continuously making efforts to improve the code documentation.
101
+ You can find the latest documentation in
102
+ `opticommpy.readthedocs.io <https://opticommpy.readthedocs.io/en/latest/index.html>`__.
103
+
104
+ Citing this repository
105
+ ----------------------
106
+
107
+ Edson Porto da Silva, Adolfo Herbster, Carlos Daniel Fontes da Silva, &
108
+ Joaquin Matres. (2023). edsonportosilva/OptiCommPy: v0.7.0-alpha
109
+ (v0.7.0-alpha). Zenodo. https://doi.org/10.5281/zenodo.10304945
110
+
111
+ .. |PyPI| image:: https://img.shields.io/pypi/v/OptiCommPy?label=pypi%20package
112
+ .. |PyPI - Downloads| image:: https://img.shields.io/pypi/dm/OptiCommPy
113
+ .. |Documentation Status| image:: https://readthedocs.org/projects/opticommpy/badge/?version=latest
114
+ :target: https://opticommpy.readthedocs.io/en/latest/?badge=latest
115
+ .. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.10304945.svg
116
+ :target: https://doi.org/10.5281/zenodo.10304945
117
+
118
+
119
+