https://github.com/zceemja/suzirjax
UCL Optical Networks Group (ONG) Real-Time Constellation Shaper
https://github.com/zceemja/suzirjax
Last synced: 5 months ago
JSON representation
UCL Optical Networks Group (ONG) Real-Time Constellation Shaper
- Host: GitHub
- URL: https://github.com/zceemja/suzirjax
- Owner: zceemja
- License: gpl-3.0
- Created: 2023-02-21T11:29:24.000Z (over 3 years ago)
- Default Branch: wip
- Last Pushed: 2024-06-04T14:30:14.000Z (about 2 years ago)
- Last Synced: 2025-04-12T23:49:52.677Z (about 1 year ago)
- Language: Python
- Size: 16 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Suzirjax [_suzïr'yax_]
UCL Optical Networks Group (ONG) Real-Time Constellation Shaper

## 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](http://qampy.org/) library.
## Reason for naming
It's a word "constellation" in Ukrainian (сузір'я) with "jax" suffix because
python side computation is implemented in [JAX](https://github.com/google/jax).
## OFC 2023
Find out more in
[OFC23 Demo video](https://mediacentral.ucl.ac.uk/player?autostart=n&videoId=8ad172H5&captions=y&chapterId=0&playerJs=n)
## Transnet Meeting 2023

A demonstration of constellation shaping used in Transnet EAB meeting 2023-03-22. In a long
[simulation video](https://mediacentral.ucl.ac.uk/flash/Ba94g80h_hd.mp4) 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.

### How to run?
Preparation
```shell
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
```shell
python -m suzirjax
```
Run Animation generator
```shell
python -m suzirjax.animation
```