commkit 1.0.0__py3-none-any.whl
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.
- commkit/__init__.py +74 -0
- commkit/_cuda/__init__.py +321 -0
- commkit/_cuda/compiler.py +88 -0
- commkit/_cuda/src/bps_min_d2.cu +104 -0
- commkit/_cuda/src/cs_block.cu +119 -0
- commkit/_cuda/src/selftest.cu +14 -0
- commkit/analysis/__init__.py +55 -0
- commkit/analysis/_common.py +236 -0
- commkit/analysis/allan.py +108 -0
- commkit/analysis/drift.py +213 -0
- commkit/analysis/interferometry.py +887 -0
- commkit/analysis/linewidth.py +480 -0
- commkit/analysis/trajectory.py +91 -0
- commkit/backend.py +507 -0
- commkit/coding/__init__.py +23 -0
- commkit/coding/base.py +17 -0
- commkit/coding/bch.py +6 -0
- commkit/coding/convolutional.py +7 -0
- commkit/coding/crc.py +7 -0
- commkit/coding/galois.py +8 -0
- commkit/coding/hamming.py +6 -0
- commkit/coding/interleaving.py +7 -0
- commkit/coding/ldpc.py +8 -0
- commkit/coding/polar.py +8 -0
- commkit/coding/ratematch.py +6 -0
- commkit/coding/reed_solomon.py +6 -0
- commkit/coding/turbo.py +8 -0
- commkit/core/__init__.py +32 -0
- commkit/core/frame.py +992 -0
- commkit/core/generation.py +581 -0
- commkit/core/signal.py +725 -0
- commkit/equalization/__init__.py +49 -0
- commkit/equalization/_block.py +1855 -0
- commkit/equalization/_common.py +606 -0
- commkit/equalization/_kernels_jax.py +1720 -0
- commkit/equalization/_kernels_numba.py +1704 -0
- commkit/equalization/blind.py +223 -0
- commkit/equalization/linear.py +365 -0
- commkit/equalization/polarization.py +790 -0
- commkit/equalization/result.py +191 -0
- commkit/equalization/sequential.py +2805 -0
- commkit/filtering.py +1120 -0
- commkit/frequency.py +1191 -0
- commkit/helpers.py +489 -0
- commkit/impairments/__init__.py +43 -0
- commkit/impairments/channel/__init__.py +20 -0
- commkit/impairments/channel/linear.py +310 -0
- commkit/impairments/channel/nonlinear.py +11 -0
- commkit/impairments/frontend.py +229 -0
- commkit/impairments/noise.py +105 -0
- commkit/impairments/source.py +219 -0
- commkit/io.py +308 -0
- commkit/logger.py +103 -0
- commkit/mapping/__init__.py +46 -0
- commkit/mapping/bits.py +240 -0
- commkit/mapping/constellation.py +153 -0
- commkit/mapping/gray.py +429 -0
- commkit/mapping/llr.py +253 -0
- commkit/mapping/shaping.py +218 -0
- commkit/metrics.py +949 -0
- commkit/multirate.py +476 -0
- commkit/plotting/__init__.py +78 -0
- commkit/plotting/analysis.py +627 -0
- commkit/plotting/constellation.py +483 -0
- commkit/plotting/equalizer.py +390 -0
- commkit/plotting/eye.py +388 -0
- commkit/plotting/spectral.py +575 -0
- commkit/plotting/sync.py +953 -0
- commkit/plotting/theme.py +203 -0
- commkit/plotting/waveform.py +200 -0
- commkit/py.typed +0 -0
- commkit/recovery/__init__.py +51 -0
- commkit/recovery/bps.py +337 -0
- commkit/recovery/corrections.py +751 -0
- commkit/recovery/pilots.py +803 -0
- commkit/recovery/pll.py +482 -0
- commkit/recovery/tikhonov.py +424 -0
- commkit/recovery/viterbi_viterbi.py +227 -0
- commkit/spectral.py +560 -0
- commkit/timing.py +841 -0
- commkit-1.0.0.dist-info/METADATA +145 -0
- commkit-1.0.0.dist-info/RECORD +84 -0
- commkit-1.0.0.dist-info/WHEEL +4 -0
- commkit-1.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Adaptive and block channel equalization.
|
|
3
|
+
|
|
4
|
+
This package provides sequential (LMS, RLS, CMA, RDE) and block / frequency-domain
|
|
5
|
+
equalizers with optional carrier-phase recovery, plus linear (zero-forcing) and
|
|
6
|
+
pilot-tone polarization-demultiplexing routines. Numba (CPU) and JAX (GPU) kernel
|
|
7
|
+
backends dispatch automatically based on where the input data resides.
|
|
8
|
+
|
|
9
|
+
The public API is unchanged from when this was a single module:
|
|
10
|
+
``from commkit.equalization import lms, rls, cma, rde, ...`` continues to work.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
# Re-exported for tests/benchmarks that reach package internals through this
|
|
16
|
+
# namespace (historically ``equalization._get_jax`` etc.). F401 is silenced for
|
|
17
|
+
# this re-export hub in pyproject.toml.
|
|
18
|
+
from ..backend import _get_jax
|
|
19
|
+
from ._block import block_lms
|
|
20
|
+
from ._kernels_jax import _JITTED_EQ
|
|
21
|
+
from ._kernels_numba import _get_numba
|
|
22
|
+
from .blind import block_cma, block_rde, build_pilot_ref
|
|
23
|
+
from .linear import apply_taps, estimate_transfer_function, zf_equalizer
|
|
24
|
+
from .polarization import (
|
|
25
|
+
apply_interpolated_matrix,
|
|
26
|
+
demultiplex_polarization_tones_dynamic,
|
|
27
|
+
demultiplex_polarization_tones_static,
|
|
28
|
+
)
|
|
29
|
+
from .result import CPRState, EqualizerResult
|
|
30
|
+
from .sequential import _check_rls_divergence, cma, lms, rde, rls
|
|
31
|
+
|
|
32
|
+
__all__ = [
|
|
33
|
+
"CPRState",
|
|
34
|
+
"EqualizerResult",
|
|
35
|
+
"apply_interpolated_matrix",
|
|
36
|
+
"apply_taps",
|
|
37
|
+
"block_cma",
|
|
38
|
+
"block_lms",
|
|
39
|
+
"block_rde",
|
|
40
|
+
"build_pilot_ref",
|
|
41
|
+
"cma",
|
|
42
|
+
"demultiplex_polarization_tones_dynamic",
|
|
43
|
+
"demultiplex_polarization_tones_static",
|
|
44
|
+
"estimate_transfer_function",
|
|
45
|
+
"lms",
|
|
46
|
+
"rde",
|
|
47
|
+
"rls",
|
|
48
|
+
"zf_equalizer",
|
|
49
|
+
]
|