aboutsummaryrefslogtreecommitdiffstats
path: root/doc/thesis
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/thesis/Fading.tex37
-rw-r--r--doc/thesis/Makefile5
-rw-r--r--doc/thesis/chapters/implementation.tex85
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.datbin2224456 -> 3098216 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_NLOS.datbin0 -> 3753536 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_vec.datbin0 -> 4124880 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_NLOS.datbin0 -> 3269896 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_vec.datbin0 -> 1587912 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_NLOS.datbin0 -> 3269880 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_vec.datbin0 -> 1587888 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_NLOS.datbin0 -> 3269896 bytes
-rw-r--r--doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_vec.datbin0 -> 1587912 bytes
-rw-r--r--doc/thesis/figures/data/qpsk_sim_constellations_static_symb_NLOS.py32
-rw-r--r--doc/thesis/figures/data/qpsk_sim_constellations_static_symb_vec.py32
-rw-r--r--doc/thesis/figures/tikz/qpsk-sim-constellations-static-symb-NLOS.tex74
-rw-r--r--doc/thesis/figures/tikz/qpsk-sim-constellations-static-symb-vec.tex74
16 files changed, 299 insertions, 40 deletions
diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex
index 836d76e..f303403 100644
--- a/doc/thesis/Fading.tex
+++ b/doc/thesis/Fading.tex
@@ -155,6 +155,43 @@
\bottomrule
\end{tabularx}
\cleardoublepage
+ %TODO: Alphabetisch ortnen
+ \chapter*{List of Acronyms}
+ \noindent %
+ \begin{tabularx}{\linewidth}{>{\(}c<{\)} X}
+ \toprule
+ % \textbf{Notation} & \bfseries Description \\
+ % \midrule
+ IoT & internet of things\\
+ QAM & quadrature amplitude\\
+ QPSK & quadrature phase shift keying\\
+ PSK & phase shift keying\\
+ SDR & software defined radio\\
+ BER & bit error rate\\
+ AWGN & additive white Gaussian noise\\
+ LTV & linear time-varying system\\
+ LTI & inear time invariant\\
+ FIR & finite impulse response (filter)\\
+ CIR & channel impulse response\\
+ WSSUS & Wide Sense Stationary Uncorrelated Scaterring\\
+ WSS & Wide Sense Stationary\\
+ NLOS & no line of sight\\
+ LOS & line of sight\\
+ GR & GNU Radio\\
+ GRC & GNU Radio Companion\\
+ DPG & Dear PyGUI\\
+ IMGUI & immediate graphical user interface\\
+ IP & Internet Protocol\\
+ UDP & User Datagram Protocol\\
+ API & Application Programming Interface\\
+ PDP & Power delay profile \\
+ MSB & most significant bit\\
+ CAZAC& constant amplitude zero autocorrelation waveform\\
+
+ \bottomrule
+ \end{tabularx}
+ \cleardoublepage
+
\hypersetup{pageanchor = true}
\pagenumbering{arabic}
diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile
index 8c1892e..63cc851 100644
--- a/doc/thesis/Makefile
+++ b/doc/thesis/Makefile
@@ -28,13 +28,18 @@ SOURCES := \
figures/tikz/packet-frame.tex \
figures/tikz/qpsk-sim-constellations-static.tex \
figures/tikz/qpsk-sim-constellations-static-symb.tex \
+ figures/tikz/qpsk-sim-constellations-static-symb-NLOS.tex \
+ figures/tikz/qpsk-sim-constellations-static-symb-vec.tex \
figures/tikz/qpsk-sim-constellations-dynamic.tex\
figures/tikz/qpsk-sim-constellations-without-effects.tex\
+
DATA := \
figures/data/multipath_frequency_response.dat \
figures/data/qpsk_sim_constellations_static.dat \
figures/data/qpsk_sim_constellations_static_symb.dat \
+ figures/data/qpsk_sim_constellations_static_symb_NLOS.dat \
+ figures/data/qpsk_sim_constellations_static_symb_vec.dat \
figures/data/qpsk_sim_constellations_dynamic.dat\
figures/data/qpsk_sim_constellations_without_effects.dat \
figures/data/rice_pdf.dat
diff --git a/doc/thesis/chapters/implementation.tex b/doc/thesis/chapters/implementation.tex
index aa394bf..a48127c 100644
--- a/doc/thesis/chapters/implementation.tex
+++ b/doc/thesis/chapters/implementation.tex
@@ -164,7 +164,7 @@ The phase and frequency correction block was implemented with the design goal of
\right) = \SI{2416}{\hertz}.
\end{equation}
Because the frequency estimate is linearly interpolated, the phase error may not exceed \(\pi\) (half rotation) during one data frame (chunk). These constraints imply that for frames of \(N'\) symbols of duration \(T\), using \(\kappa\) samples per symbol the relation
-\begin{equation}
+\begin{equation}\label{Doppler-shift}
2\pi\Delta f N' T \kappa \leq \pi
\iff T = 1/f_s \leq \frac{1}{2\Delta f N' \kappa},
\iff N' \leq \frac{1}{2\Delta f T \kappa},
@@ -271,50 +271,52 @@ In order to study the effects of multipath fading, a series of simulations have
\begin{figure}
\centering
- \input{figures/tikz/qpsk-sim-constellations-static-symb}
- \caption{
- Constellation diagrams for a simulated link using QPSK with the discrete time model block.
+ \input{figures/tikz/qpsk-sim-constellations-without-effects}
+ \caption{ Plot of without any effect, to compare with the other Plots.
}
\end{figure}
-
\begin{figure}
\centering
- \input{figures/tikz/qpsk-sim-constellations-without-effects}
+ \input{figures/tikz/qpsk-sim-constellations-static-symb}
\caption{
- TODO
+ Constellation diagrams for a simulated link using QPSK with the discrete time model block.
+ The parameters are: delay of samples per symbol, amplitude of 0.2 and LOS.
}
+ \label{fig:static-symb-specal-case}
\end{figure}
\begin{figure}
\centering
- \input{figures/tikz/qpsk-sim-constellations-static}
+ \input{figures/tikz/qpsk-sim-constellations-static-symb-NLOS}
\caption{
- Constellation diagrams for a simulated link using QPSK with AWGN and Rayleighan fading.
+ Constellation diagrams for a simulated link using QPSK with the discrete time model block.
+ The parameters are: delay of samples per symbol, amplitude of 0.2 and LOS.
}
+ \label{fig:static-symb-specal-case-NLOS}
\end{figure}
\begin{figure}
\centering
- \input{figures/tikz/qpsk-sim-constellations-dynamic}
+ \input{figures/tikz/qpsk-sim-constellations-static-symb-vec}
\caption{
- Constellation diagrams for a simulated link using QPSK with AWGN and Rayleighan fading. The paramters are: frequency offset of 0.2 \%, \SI{100}{\milli\volt} noise, dopper shift for \(v = \SI{2}{\meter\per\second}\), and a NLOS urban PDP.
+ Constellation diagrams for a simulated link using QPSK with the discrete time model block.
+ The parameters are: delay of \([0.25,4,6.3,3.25]\)samples , amplitude of \([0.2,0.5,0.4,0.08]\) and LOS.
}
+ \label{fig:static-symb-specal-case-vec}
\end{figure}
\subsection{Fading with discrete time model}
-For the statical version according to \ref{sec:discrete-time-model} for implement and illustrate the fading effect, a separate block was created and implemented in the channel. Nearer shown in \ref{lst:fractional-delay-fir}. This block is based on a FIR filter. It can be displayed with a direct path or without one.
+For the statical version according to \ref{sec:discrete-time-model} for implement and illustrate the fading effect, a separate block was created and implemented in the channel. Nearer shown in \ref{lst:fractional-delay-fir}. This block is based on a FIR filter. It can be displayed with a direct path (LOS) or without one (NLOS).
+With the help of this filter, the delay of the line of side paths are illustrated. In this block it is possible to simulate any number of these paths with different strengths, as long as there is an associated amplitude specified for each delayed path.
+
+A special case is show in \figref{fig:static-symb-specal-case} and in \figref{fig:static-symb-specal-case-NLOS}, where the delay in sample is the same as have the sample per symbol or a multiple of it. An other example is shown in \figref{fig:static-symb-specal-case-vec},with more diffident delayed paths.
+Unfortunately, these simulation values do not correspond to the reality, because too many incalculable side effects occur, which aren't possible to illustrate in this simulation.
- With the help of this filter, the delay of the line of side paths are illustrated. In this block it is possible to simulate any number of these paths with different strengths, as long as there is an associated amplitude specified for each delayed path. Unfortunately, these simulation values do not correspond to the realety, because too many incalculable side effects occur, which aren't possiple to ilustrate in this simulation.
This block was additionally implemented with the method described in \ref{sec:fractional-delay} to allow non-integer delay values compared to the samples shown in \figref{fig:fractional-delay-sinc-plot}. Where the sinc function does not select an integer sample. Which in turn means that the other sampled values do not add up to zero.
Thus, they will be distributed among the other whole numbers. A window function could also be implemented to limit these values. Here none was implemented because the sinc function is restricted.
-%TODO: Show some plot
-\skelpar[5]{
- Discrabe a perfect plot
-}
-
\begin{lstlisting}[
texcl = true, language = python, escapechar = {`},
float, captionpos = b, label = {lst:fractional-delay-fir},
@@ -356,6 +358,26 @@ Thus, they will be distributed among the other whole numbers. A window function
\end{lstlisting}
+%
+%\begin{figure}
+% \centering
+% \input{figures/tikz/qpsk-sim-constellations-static}
+% \caption{
+% Constellation diagrams for a simulated link using QPSK with AWGN and Rayleighan fading.
+% }
+%\end{figure}
+%
+\begin{figure}
+ \centering
+ \input{figures/tikz/qpsk-sim-constellations-dynamic}
+ \caption{
+ Constellation diagrams for a simulated link using QPSK with AWGN and Rayleighan fading. The paramters are: frequency offset of 0.2 \%, \SI{100}{\milli\volt} noise, dopper shift for \(v = \SI{2}{\meter\per\second}\), and a NLOS urban PDP.
+ }
+ \label{fig:dynamic-exp}
+\end{figure}
+
+
+
\subsection{Fading with statistical model}
In order to represent the effect of the multipaht fading not only statically, a second model was created using the Frequency Selective Fading Model from Gnu Radio, according to \ref{sec:statistical-model},which was implemented after the algorithm from the paper \cite{Alimohammad2009}, with the help of the sum-of sinusoid principal (SOS). The algorithm in this block is implemented with the aim that only a small number of sinusoids are needed.
@@ -365,32 +387,15 @@ It can also be chosen whish statical model should be taken for the simulation Ra
The power delay profile which specify the delay in time for each impulse need to be in sample. For this delay vector some realistic values \cite{Matlab} are for the first delay, when theirs non line of side zero. The second delayed path depend on the environment of measurement. In an indoor environment it is usually between \(1\cdot10^{-9}\) to \(1\cdot10^{-7}\) and in an outdoor environment between \(1\cdot10^{-7}\) to \(1\cdot10^{-5}\). The rest depends on the bandwidth.
-The magnitudes of the pulses are given with the linear value. In practices the avarage path gain of a fading paht is in the range of \([ -20 \text{dB} , 0\text{dB}]\).
-
-
+The magnitudes of the pulses are given with the linear value. In practices the avarage path gain of a fading path is in the range of \([ -20 \text{dB} , 0\text{dB}]\).
-For the Doppler effect which shoudent be forgotten if something is moving in the construction, like the transmitter or the reviser. It need to be normalized with the sampling rate.
+To add some movement, like a movable transmitter some Doppler shift can be initialized after the formula \eqref{Doppler-shift}. But it need to be normalized with the sampling rate.
+An example of such a simulation plot is shown in \figref{fig:dynamic-exp}.
-\begin{equation}
- max. Doppler = \frac{v\cdot f_c}{c}
-\end{equation}
-
-With the velocity \(v\) in \(\frac{m}{s}\) for example walking this value is between \(2-4\frac{m}{s}\).The carrier frequency \(f_c\) in this case 2.4GHz and the velocity of light \(c\).
-
-
-
-The power delay profile which specify the delay in time for each impulse need to be in sample. For this delay vector some realistic values are for the first delay when theirs non line of side should be zero. The second delayed path depend on the environment of measurement. In an indoor enviroment it is usually between \(1\cdot10^{-9}\) to \(1\cdot10^{-7}\) and in an outdoor environment between \(1\cdot10^{-7}\) to \(1\cdot10^{-5}\). The rest depends on on the bandwidth.
-
-%TODO finish this paragraph
-%\begin{german}
-%
-% Um die resultate einigermassse nach vollziehen zu können wurde ein MATLAP model zur veranschaulichung erstelle.
-% Um ein realistisches beispiel zu haben wurden werte aus dem Skript \cite{Mathis} genomen
-%
-%\end{german}
+%TODO: Other Plots
+\subsubsection{Example from the skript}
-\subsubsection{Example from the skript}
\skelpar[5]{
Simulate an example from the skript
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.dat
index b2f96ab..4d0e9a1 100644
--- a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.dat
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_NLOS.dat
new file mode 100644
index 0000000..425b81b
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_NLOS.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_vec.dat
new file mode 100644
index 0000000..9c8a1d3
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_channel_static_symb_vec.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_NLOS.dat
new file mode 100644
index 0000000..9ab4d78
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_NLOS.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_vec.dat
new file mode 100644
index 0000000..d27f49e
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_equalized_static_symb_vec.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_NLOS.dat
new file mode 100644
index 0000000..d7923f4
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_NLOS.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_vec.dat
new file mode 100644
index 0000000..dba8d1e
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_locked_static_symb_vec.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_NLOS.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_NLOS.dat
new file mode 100644
index 0000000..4f9bb0c
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_NLOS.dat
Binary files differ
diff --git a/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_vec.dat b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_vec.dat
new file mode 100644
index 0000000..ca21c39
--- /dev/null
+++ b/doc/thesis/figures/data/flowgraphs/qpsk_sync_static_symb_vec.dat
Binary files differ
diff --git a/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_NLOS.py b/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_NLOS.py
new file mode 100644
index 0000000..cbca31e
--- /dev/null
+++ b/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_NLOS.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_symb_NLOS.dat", dtype=np.complex64)[::SPS]
+sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_static_symb_NLOS.dat", dtype=np.complex64)
+equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_static_symb_NLOS.dat", dtype=np.complex64)
+locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_static_symb_NLOS.dat", dtype=np.complex64)
+
+samples = [channel, sync, equalized, locked]
+
+# print(list(map(len, samples)))
+
+start = 5e3
+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_symb_vec.py b/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_vec.py
new file mode 100644
index 0000000..68090a4
--- /dev/null
+++ b/doc/thesis/figures/data/qpsk_sim_constellations_static_symb_vec.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_symb_vec.dat", dtype=np.complex64)[::SPS]
+sync = np.fromfile(f"{DATA_DIR}/qpsk_sync_static_symb_vec.dat", dtype=np.complex64)
+equalized = np.fromfile(f"{DATA_DIR}/qpsk_equalized_static_symb_vec.dat", dtype=np.complex64)
+locked = np.fromfile(f"{DATA_DIR}/qpsk_locked_static_symb_vec.dat", dtype=np.complex64)
+
+samples = [channel, sync, equalized, locked]
+
+# print(list(map(len, samples)))
+
+start = 1e3
+end = start +500
+
+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-static-symb-NLOS.tex b/doc/thesis/figures/tikz/qpsk-sim-constellations-static-symb-NLOS.tex
new file mode 100644
index 0000000..16e966a
--- /dev/null
+++ b/doc/thesis/figures/tikz/qpsk-sim-constellations-static-symb-NLOS.tex
@@ -0,0 +1,74 @@
+% vim: set ts=2 sw=2 noet:
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Channel with ISI},
+ width = 5cm, height = 5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -3, xmax = 3,
+ ymin = -3, ymax = 3,
+ ]
+
+ \addplot[magenta, only marks] table[x index = 0, y index = 1]
+ {figures/data/qpsk_sim_constellations_static_symb_NLOS.dat};
+ \end{axis}
+\end{tikzpicture}
+\hspace{5mm}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Synchronized},
+ width = 5cm, height = 5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -3, xmax = 3,
+ ymin = -3, ymax = 3,
+ ]
+
+ \addplot[magenta!80!blue, only marks] table[x index = 2, y index = 3]
+ {figures/data/qpsk_sim_constellations_static_symb_NLOS.dat};
+ \end{axis}
+\end{tikzpicture}
+
+\vspace{5mm}
+
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Equalized},
+ width = 5cm, height = 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_symb_NLOS.dat};
+ \end{axis}
+\end{tikzpicture}
+\hspace{5mm}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Locked},
+ width = 5cm, height = 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_symb_NLOS.dat};
+ \end{axis}
+\end{tikzpicture}
diff --git a/doc/thesis/figures/tikz/qpsk-sim-constellations-static-symb-vec.tex b/doc/thesis/figures/tikz/qpsk-sim-constellations-static-symb-vec.tex
new file mode 100644
index 0000000..6095378
--- /dev/null
+++ b/doc/thesis/figures/tikz/qpsk-sim-constellations-static-symb-vec.tex
@@ -0,0 +1,74 @@
+% vim: set ts=2 sw=2 noet:
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Channel with ISI},
+ width = 5cm, height = 5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -3, xmax = 3,
+ ymin = -3, ymax = 3,
+ ]
+
+ \addplot[magenta, only marks] table[x index = 0, y index = 1]
+ {figures/data/qpsk_sim_constellations_static_symb_vec.dat};
+ \end{axis}
+\end{tikzpicture}
+\hspace{5mm}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Synchronized},
+ width = 5cm, height = 5cm,
+ % ylabel = {Quadrature},
+ % xlabel = {In-Phase},
+ xlabel near ticks,
+ ylabel near ticks,
+ grid = major,
+ xmin = -3, xmax = 3,
+ ymin = -3, ymax = 3,
+ ]
+
+ \addplot[magenta!80!blue, only marks] table[x index = 2, y index = 3]
+ {figures/data/qpsk_sim_constellations_static_symb_vec.dat};
+ \end{axis}
+\end{tikzpicture}
+
+\vspace{5mm}
+
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Equalized},
+ width = 5cm, height = 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_symb_vec.dat};
+ \end{axis}
+\end{tikzpicture}
+\hspace{5mm}
+\begin{tikzpicture}
+ \begin{axis}[
+ title = {Locked},
+ width = 5cm, height = 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_symb_vec.dat};
+ \end{axis}
+\end{tikzpicture}