aboutsummaryrefslogtreecommitdiffstats
path: root/doc/thesis/figures
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2021-12-16 06:24:49 +0100
committerNao Pross <np@0hm.ch>2021-12-16 06:24:49 +0100
commit12eade5d45bb4ef4e41a62a2f59fac89773cef94 (patch)
tree9aa08e2af6e8baa371858cc514d23e54eea63701 /doc/thesis/figures
parentFix broken reference (diff)
downloadFading-12eade5d45bb4ef4e41a62a2f59fac89773cef94.tar.gz
Fading-12eade5d45bb4ef4e41a62a2f59fac89773cef94.zip
Constellation plots
Diffstat (limited to '')
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.datbin0 -> 4845712 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_channel_static.datbin0 -> 6369352 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.datbin0 -> 1211096 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.datbin0 -> 1592008 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.datbin0 -> 1211040 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_locked_static.datbin0 -> 1591992 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.datbin0 -> 1211096 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_sync_static.datbin0 -> 1592008 bytes
-rw-r--r--doc/thesis/figures/data/qpsk_sim_constellations_dynamic.py32
-rw-r--r--doc/thesis/figures/data/qpsk_sim_constellations_static.py32
-rw-r--r--doc/thesis/figures/tikz/qpsk-sim-constellations-dynamic.tex87
-rw-r--r--doc/thesis/figures/tikz/qpsk-sim-constellations-static.tex87
12 files changed, 238 insertions, 0 deletions
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat
new file mode 100644
index 0000000..560f179
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat
new file mode 100644
index 0000000..7466d69
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat
new file mode 100644
index 0000000..473c43d
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat
new file mode 100644
index 0000000..c884795
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat
new file mode 100644
index 0000000..92a9b97
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat
new file mode 100644
index 0000000..1e85803
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat
new file mode 100644
index 0000000..bc21557
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat
new file mode 100644
index 0000000..cb5ab19
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat
Binary files differ
diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_dynamic.py b/doc/thesis/figures/data/qpsk_sim_constellations_dynamic.py
new file mode 100644
index 0000000..7e23125
--- /dev/null
+++ b/doc/thesis/figures/data/qpsk_sim_constellations_dynamic.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import os
+import numpy as np
+
+DATA_DIR = "./figures/data/flowgraphs"
+SPS = 4
+
+channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_dynamic.dat", dtype=np.complex64)[::SPS]
+sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_dynamic.dat", dtype=np.complex64)
+equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_dynamic.dat", dtype=np.complex64)
+locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_dynamic.dat", dtype=np.complex64)
+
+samples = [channel, sync, equalized, locked]
+
+# print(list(map(len, samples)))
+
+start = 67.8e3
+end = start + 200
+
+get_range = lambda arr: arr[int(start):int(end)]
+get_parts = lambda v: (np.real(v), np.imag(v))
+
+values = map(get_range, samples)
+parts = [p for v in map(get_parts, values) for p in v]
+data = np.array(list(zip(*parts)))
+
+# save to file
+location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
+name, _ = os.path.splitext(os.path.basename(__file__))
+filename = os.path.join(location, name + ".dat")
+np.savetxt(filename, data, fmt='%.6e')
diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_static.py b/doc/thesis/figures/data/qpsk_sim_constellations_static.py
new file mode 100644
index 0000000..61fdcb1
--- /dev/null
+++ b/doc/thesis/figures/data/qpsk_sim_constellations_static.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import os
+import numpy as np
+
+DATA_DIR = "./figures/data/flowgraphs"
+SPS = 4
+
+channel = np.fromfile(f"{DATA_DIR}/qpsk_channel_static.dat", dtype=np.complex64)[::SPS]
+sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_static.dat", dtype=np.complex64)
+equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_static.dat", dtype=np.complex64)
+locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_static.dat", dtype=np.complex64)
+
+samples = [channel, sync, equalized, locked]
+
+# print(list(map(len, samples)))
+
+start = 67.8e3
+end = start + 200
+
+get_range = lambda arr: arr[int(start):int(end)]
+get_parts = lambda v: (np.real(v), np.imag(v))
+
+values = map(get_range, samples)
+parts = [p for v in map(get_parts, values) for p in v]
+data = np.array(list(zip(*parts)))
+
+# save to file
+location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
+name, _ = os.path.splitext(os.path.basename(__file__))
+filename = os.path.join(location, name + ".dat")
+np.savetxt(filename, data, fmt='%.6e')
diff --git a/doc/thesis/figures/tikz/qpsk-sim-constellations-dynamic.tex b/doc/thesis/figures/tikz/qpsk-sim-constellations-dynamic.tex
new file mode 100644
index 0000000..5f7d1de
--- /dev/null
+++ b/doc/thesis/figures/tikz/qpsk-sim-constellations-dynamic.tex
@@ -0,0 +1,87 @@
+% vim: set ts=2 sw=2 noet:
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Channel with ISI},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -5, xmax = 5,
+ ymin = -5, ymax = 5,
+ ]
+
+ \addplot[magenta, only marks] table[x index = 0, y index = 1]
+ {figures/data/qpsk_sim_constellations_dynamic.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Synchronized},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -5, xmax = 5,
+ ymin = -5, ymax = 5,
+ ]
+
+ \addplot[magenta!80!blue, only marks] table[x index = 2, y index = 3]
+ {figures/data/qpsk_sim_constellations_dynamic.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+
+\vspace{3mm}
+
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Equalized},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -1.5, xmax = 1.5,
+ ymin = -1.5, ymax = 1.5,
+ ]
+
+ \addplot[magenta!50!blue, only marks] table[x index = 4, y index = 5]
+ {figures/data/qpsk_sim_constellations_dynamic.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Locked},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -1.5, xmax = 1.5,
+ ymin = -1.5, ymax = 1.5,
+ ]
+
+ \addplot[magenta!30!blue, only marks] table[x index = 6, y index = 7]
+ {figures/data/qpsk_sim_constellations_dynamic.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+
diff --git a/doc/thesis/figures/tikz/qpsk-sim-constellations-static.tex b/doc/thesis/figures/tikz/qpsk-sim-constellations-static.tex
new file mode 100644
index 0000000..ffd6a2f
--- /dev/null
+++ b/doc/thesis/figures/tikz/qpsk-sim-constellations-static.tex
@@ -0,0 +1,87 @@
+% vim: set ts=2 sw=2 noet:
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Channel with ISI},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -5, xmax = 5,
+ ymin = -5, ymax = 5,
+ ]
+
+ \addplot[magenta, only marks] table[x index = 0, y index = 1]
+ {figures/data/qpsk_sim_constellations_static.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Synchronized},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -5, xmax = 5,
+ ymin = -5, ymax = 5,
+ ]
+
+ \addplot[magenta!80!blue, only marks] table[x index = 2, y index = 3]
+ {figures/data/qpsk_sim_constellations_static.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+
+\vspace{3mm}
+
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Equalized},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -1.5, xmax = 1.5,
+ ymin = -1.5, ymax = 1.5,
+ ]
+
+ \addplot[magenta!50!blue, only marks] table[x index = 4, y index = 5]
+ {figures/data/qpsk_sim_constellations_static.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+\begin{subfigure}{.45\linewidth}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Locked},
+ width = 6.5cm, height = 6.5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -1.5, xmax = 1.5,
+ ymin = -1.5, ymax = 1.5,
+ ]
+
+ \addplot[magenta!30!blue, only marks] table[x index = 6, y index = 7]
+ {figures/data/qpsk_sim_constellations_static.dat};
+ \end{axis}
+\end{tikzpicture}
+\end{subfigure}
+\hfill
+