/suzirjax

UCL Optical Networks Group (ONG) Real-Time Constellation Shaper

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Suzirjax [suzïr'yax]

UCL Optical Networks Group (ONG) Real-Time Constellation Shaper

demo.mp4

What's here?

Here you can find code for constellation shaping for AWGN/PC-AWGN simulation including pyQT5 gui, or headless "animator" to produce lovely mp4 animations.

It also includes "remote channel" that connects to the lab and does experimental transmission. DSP is mostly handled by QAMpy library.

Reason for naming

It's a word "constellation" in Ukrainian (сузір'я) with "jax" suffix because python side computation is implemented in JAX.

OFC 2023

Find out more in OFC23 Demo video

Transnet Meeting 2023

transnet.png

A demonstration of constellation shaping used in Transnet EAB meeting 2023-03-22. In a long simulation video channel noise oscillates between 10dB and 2.5dB SNR.

Experimental setup

Experimental setup includes single channel transmission over 1550nm with real-time updatable channel and launch power parameters. Encoding and DSP is done remotely (server side), GMI calculations and optimisation are done locally (gui client) with new constellations being sent back to server.

diagram.png

How to run?

Preparation

python -m venv env
pip install -r requirements.txt

# for CUDA acceleration
pip install "jax[cuda]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

Run GUI

python -m suzirjax

Run Animation generator

python -m suzirjax.animation