diff options
author | Nao Pross <np@0hm.ch> | 2021-12-16 06:24:49 +0100 |
---|---|---|
committer | Nao Pross <np@0hm.ch> | 2021-12-16 06:24:49 +0100 |
commit | 12eade5d45bb4ef4e41a62a2f59fac89773cef94 (patch) | |
tree | 9aa08e2af6e8baa371858cc514d23e54eea63701 /doc/thesis/figures | |
parent | Fix broken reference (diff) | |
download | Fading-12eade5d45bb4ef4e41a62a2f59fac89773cef94.tar.gz Fading-12eade5d45bb4ef4e41a62a2f59fac89773cef94.zip |
Constellation plots
Diffstat (limited to 'doc/thesis/figures')
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat | bin | 0 -> 4845712 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat | bin | 0 -> 6369352 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat | bin | 0 -> 1211096 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat | bin | 0 -> 1592008 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat | bin | 0 -> 1211040 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat | bin | 0 -> 1591992 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat | bin | 0 -> 1211096 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat | bin | 0 -> 1592008 bytes | |||
-rw-r--r-- | doc/thesis/figures/data/qpsk_sim_constellations_dynamic.py | 32 | ||||
-rw-r--r-- | doc/thesis/figures/data/qpsk_sim_constellations_static.py | 32 | ||||
-rw-r--r-- | doc/thesis/figures/tikz/qpsk-sim-constellations-dynamic.tex | 87 | ||||
-rw-r--r-- | doc/thesis/figures/tikz/qpsk-sim-constellations-static.tex | 87 |
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 Binary files differnew file mode 100644 index 0000000..560f179 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_channel_dynamic.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat Binary files differnew file mode 100644 index 0000000..7466d69 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat Binary files differnew file mode 100644 index 0000000..473c43d --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_dynamic.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat Binary files differnew file mode 100644 index 0000000..c884795 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat Binary files differnew file mode 100644 index 0000000..92a9b97 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_locked_dynamic.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat Binary files differnew file mode 100644 index 0000000..1e85803 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat Binary files differnew file mode 100644 index 0000000..bc21557 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_sync_dynamic.dat diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat Binary files differnew file mode 100644 index 0000000..cb5ab19 --- /dev/null +++ b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static.dat 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 + |