Skip to main content

QAMPy a DSP chain for optical communication signals

DOI

QAMPy is a dsp chain for simulation and equalisation of signals from optical communication transmissions. It is written in Python, but has been designed for high performance and most performance critical functions are written with pythran to run at speed of compiled c or c++ code.

QAMPy can equalise BPSK, QPSK and higher-order QAM signals as well as simulate signal impairments.

Equalisation

For signal equalisation it contains:

  • CMA and modified CMA equalisation algorithms
  • Radius directed equalisers
  • several decision directed equaliser implementations
  • phase recovery using blind phase search (BPS) and ViterbiViterbi algorithms
  • frequency offset compensation
  • a complete set of pilot-based equalisation routines, including frame synchronization, frequency offset estimation, adaptive equalisation and phase recovery
  • additional data-aided and real-valued adaptive equaliser routines

Impairments

It can simulate the following impairments:

  • frequency offset
  • SNR
  • PMD
  • phase noise
  • transceiver impairments such as modulator nonlinearity, DAC frequency response and limited ENOB

Signal Quality Metrics

QAMpy is designed to make working with QAM signals easy and includes calculations for several performance metrics:

  • Symbol Error Rate (SER)
  • Bit Error Rate (BER)
  • Error Vector Magnitude (EVM)
  • Generalized Mututal Information (GMI)

Documentation

We put a strong focus on documenting our functions and most public functions should be well documented. Use help in jupyter notebook to excess the documenation.

You can access documentation with an extensive API at our website.

For examples of how to use QAMpy see the Scripts and the Notebooks subdirectory, note that not all files are up-to-date You should in particular look at the cma_equaliser.py and 64_qam_equalisation.py files.

Installation

Installation instructions can be found here here.

Status

QAMpy is still in alpha status, however we daily in our work. We will try to keep the basic API stable across releases, but implementation details under core might change without notice.

Licence and Authors

QAMpy was written by Mikael Mazur and Jochen Schröder from the Photonics Laboratory at Chalmers University of Technology and is licenced under GPLv3 or later.

Citing

If you use QAMpy in your work please cite us as Jochen Schröder and Mikael Mazur, "QAMPy a DSP chain for optical communications, DOI: 10.5281/zenodo.1195720".

Acknowledgements

The GPU graphics card used for part of this work was donated by NVIDIA Corporation

Metadata

Release files for qampy 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qampy 0.5.1
File Size Uploaded Provenance Actions
qampy-0.5.1.tar.gz 81.1 MB Without provenance Details for qampy-0.5.1.tar.gz

Release files / qampy-0.5.1.tar.gz

Download URL qampy-0.5.1.tar.gz
Size 81.1 MB
Tags Source
SHA-256 checksum
How to use checksums
46361940fb903eecc9a65a919ca29a2f63c55d4ffa04ca10c04f0afc6f19872a
BLAKE2b-256 checksum
How to use checksums
c5f16a88b36569d83d3156aac45a88a19de84aada4d5370d8b7ad74838908863
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Security for qampy 0.5.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page