From 376c7c0bc4cc25203e67025fa200c3e3a9023894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Wed, 18 Dec 2019 11:04:58 -0500 Subject: [PATCH] Add illustration --- README.md | 2 ++ results/16QAM.png | Bin 0 -> 28733 bytes 2 files changed, 2 insertions(+) create mode 100644 results/16QAM.png diff --git a/README.md b/README.md index 6175cf0..88f60d5 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ This is the source code for the “Using Autoencoders to Optimize Two-Dimensional Signal Constellations for Fiber Optic Communication Systems” project. +![Results for 16 QAM](results/16QAM.png) + ## Structure The ConstellationNet model is defined inside the `constellation/` folder. At the root are several scripts (described below) for training the model and testing it. diff --git a/results/16QAM.png b/results/16QAM.png new file mode 100644 index 0000000000000000000000000000000000000000..00e876765de6783fabfcecf14e338a9c85911668 GIT binary patch literal 28733 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 I)jZ&T01B|N?*IS* literal 0 HcmV?d00001