aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2021-12-16 18:16:31 +0100
committerNao Pross <np@0hm.ch>2021-12-16 18:16:31 +0100
commit6964c9b50490003a4e2da939a020850d31dc8777 (patch)
tree53e5f57b5685ec71d361468de0e7b6c69fda5075
parentGUI angepasst (diff)
downloadFading-6964c9b50490003a4e2da939a020850d31dc8777.tar.gz
Fading-6964c9b50490003a4e2da939a020850d31dc8777.zip
Figures for statistical model
-rw-r--r--doc/thesis/Fading.tex3
-rw-r--r--doc/thesis/Makefile3
-rw-r--r--doc/thesis/chapters/implementation.tex4
-rw-r--r--doc/thesis/chapters/theory.tex21
-rw-r--r--doc/thesis/figures/data/rice_pdf.py22
-rw-r--r--doc/thesis/figures/tikz/rayleigh-rice-pdf-plots.tex33
-rw-r--r--doc/thesis/figures/tikz/ring-of-scattering-objects.tex38
7 files changed, 114 insertions, 10 deletions
diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex
index 6cb2dd1..836d76e 100644
--- a/doc/thesis/Fading.tex
+++ b/doc/thesis/Fading.tex
@@ -75,6 +75,9 @@
% \sisetup{uncertainty-mode = separate}
\sisetup{separate-uncertainty}
+%% List of acronyms
+% \usepackage{acronym}
+
%% Load bibliography
\addbibresource{Fading.bib}
diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile
index cefe3f4..a392083 100644
--- a/doc/thesis/Makefile
+++ b/doc/thesis/Makefile
@@ -23,6 +23,8 @@ SOURCES := \
figures/tikz/multipath-impulse-response.tex \
figures/tikz/multipath-frequency-response-plots.tex \
figures/tikz/tapped-delay-line.tex \
+ figures/tikz/ring-of-scattering-objects.tex \
+ figures/tikz/rayleigh-rice-pdf-plots.tex \
figures/tikz/packet-frame.tex \
figures/tikz/qpsk-sim-constellations-static.tex \
figures/tikz/qpsk-sim-constellations-dynamic.tex\
@@ -34,6 +36,7 @@ DATA := \
figures/data/qpsk_sim_constellations_static_symb.dat \
figures/data/qpsk_sim_constellations_dynamic.dat\
figures/data/qpsk_sim_constellations_whitout_effects.dat \
+ figures/data/rice_pdf.dat
# Get the main file from the file
diff --git a/doc/thesis/chapters/implementation.tex b/doc/thesis/chapters/implementation.tex
index ab00e21..7be6763 100644
--- a/doc/thesis/chapters/implementation.tex
+++ b/doc/thesis/chapters/implementation.tex
@@ -464,8 +464,8 @@ With QAM however, the complexity of the constellation and the higher number of b
k(k+1) & \text{when } N \text{ is odd}
\end{cases},
\end{equation}
-and \(M\) is relatively prime to \(N\). CAZAC waveforms are ideal because they have a Dirac delta as autocorrelation\cite{Chu1972}, i.e. \(R_{uu}(\tau) = \delta(\tau)\). Though unfortunately, since these complex values are not on any constellation point they break some assumptions of the polyphase clock sync and the LMD DD equalizer. Thus to use CAZAC waveforms the sender needs to put them in front of the modulated symbols (for example using a correctly parametrized stream mux block in GR), and the receiver would need to synchronize with the sequence before the clock recovery or equalization. The latter is especially problematic because then it is no longer possible to identify the peak by comparing the autocorrelation value to a fixed threshold as done in section \ref{sec:implement-phasecorr}.
+and \(M\) is relatively prime to \(N\). CAZAC waveforms are ideal because they have a Dirac delta as autocorrelation\cite{Chu1972}, i.e. \(R_{uu}(\tau) = \delta(\tau)\). Though unfortunately, since these complex values are not on any constellation point they break some assumptions of the polyphase clock sync and the LMD DD equalizer (but not CMA). Thus to use CAZAC waveforms the sender needs to put them in front of the modulated symbols (for example using a correctly parametrized stream mux block in GR), and the receiver would need to synchronize with the sequence before the clock recovery or equalization. The latter is especially problematic because then it is no longer possible to identify the peak by comparing the autocorrelation value to a fixed threshold as done in section \ref{sec:implement-phasecorr}.
-\section{Incomplete}
+\subsection{Incomplete parts}
diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex
index d8dd696..6420de2 100644
--- a/doc/thesis/chapters/theory.tex
+++ b/doc/thesis/chapters/theory.tex
@@ -357,17 +357,22 @@ i.e. the amplitude of \(f\) is \emph{Raileigh} distributed.
\begin{figure}
\centering
- \begin{subfigure}{.45\linewidth}
- \skelfig
- \caption{NLOS, Rayleigh}
+ \hfill
+ \begin{subfigure}[t]{.5\linewidth}
+ \input{figures/tikz/rayleigh-rice-pdf-plots}
+ \caption{Amplitude density.}
\end{subfigure}
- \hskip 5mm
- \begin{subfigure}{.45\linewidth}
- \skelfig
- \caption{LOS, Rice}
+ \hfill
+ \begin{subfigure}[t]{.45\linewidth}
+ \centering
+ \resizebox{!}{5cm}{%
+ \input{figures/tikz/ring-of-scattering-objects}
+ }
+ \caption{Ring of scattering objects.}
\end{subfigure}
+ \hfill
\caption{
- Ring of scattering objects.
+ Statistical model for multipath fading.
\label{fig:multipath-statistical-models}
}
\end{figure}
diff --git a/doc/thesis/figures/data/rice_pdf.py b/doc/thesis/figures/data/rice_pdf.py
new file mode 100644
index 0000000..110b6b3
--- /dev/null
+++ b/doc/thesis/figures/data/rice_pdf.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python3
+
+import os
+import numpy as np
+
+a = np.linspace(0, 3, num=100)
+
+ps = []
+for k in [0, 2, 5, 10]:
+ p = 2 * a * (1 + k) * np.exp(-k - (a**2) * (k + 1)) \
+ * np.i0(2 * a * np.sqrt(k * (1 + k)))
+
+ ps += [p]
+
+
+data = np.array(list(zip(a, *ps)))
+
+# 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/rayleigh-rice-pdf-plots.tex b/doc/thesis/figures/tikz/rayleigh-rice-pdf-plots.tex
new file mode 100644
index 0000000..2a8f971
--- /dev/null
+++ b/doc/thesis/figures/tikz/rayleigh-rice-pdf-plots.tex
@@ -0,0 +1,33 @@
+% vim:set ts=2 sw=2 noet:
+\begin{tikzpicture}
+ \begin{axis}[
+ font = \small,
+ width = \linewidth, height = 6cm,
+ ylabel = {Probability density},
+ % xlabel = {Amplitude},
+ xlabel near ticks,
+ ylabel near ticks,
+ smooth, samples = 100, domain = 0:3,
+ legend = north east, legend style = {
+ cells = {anchor = west},
+ font = \footnotesize,
+ },
+ ]
+
+ \addplot[thick, solid, blue] plot ({x}, {2*x*exp(-x^2)});
+ \addlegendentry{Rayleigh}
+
+ \addplot[thick, solid, red!40!blue] table[x index = 0, y index = 2]
+ {figures/data/rice_pdf.dat};
+ \addlegendentry{Rice \(K = 2\)}
+
+ \addplot[thick, solid, red!60!blue] table[x index = 0, y index = 3]
+ {figures/data/rice_pdf.dat};
+ \addlegendentry{Rice \(K = 5\)}
+
+ \addplot[thick, solid, red!80!blue] table[x index = 0, y index = 4]
+ {figures/data/rice_pdf.dat};
+ \addlegendentry{Rice \(K = 10\)}
+
+ \end{axis}
+\end{tikzpicture}
diff --git a/doc/thesis/figures/tikz/ring-of-scattering-objects.tex b/doc/thesis/figures/tikz/ring-of-scattering-objects.tex
new file mode 100644
index 0000000..98387ad
--- /dev/null
+++ b/doc/thesis/figures/tikz/ring-of-scattering-objects.tex
@@ -0,0 +1,38 @@
+% vim:set ts=2 sw=2 noet:
+\begin{tikzpicture}[
+ antenna/.pic = {
+ \draw[very thick] (0,0) -- ++(2mm, 3mm) -- ++(-4mm,0) -- cycle;
+ \draw[very thick] (0,0) -- ++(0,-5mm) coordinate (-mast) {};
+ \draw[thick] (0,0) -- ++(0,3mm);
+ \node[inner sep = 0pt, outer sep = 6pt] (-center) at (0,2mm) {};
+ },
+ ]
+
+ \coordinate (X) at (-3.5,3);
+
+ % antennas
+ \draw (X) pic (T) {antenna} node[above = 3mm] {\sffamily\bfseries TX};
+
+ % rays
+ \foreach \i [count=\j] in {-2.2,-0.3,1.3,2.7,5.3,7.1,8.3}{
+ \draw[blue!20, line width = 1mm]
+ (T-center) -- ({30 * \i}:25mm) coordinate (p\j) -- (0,0);
+ };
+
+ % angle
+ \draw[dashed, thick] (25mm, 0) node[right] {0}
+ -- (0,0) -- (p3) node[above right] {\(\vartheta_k \sim \mathcal{U}(0,2\pi)\)};
+
+ % LOS
+ \draw[line width = 1mm, red!50,
+ decorate, decoration = {
+ expanding waves, angle = 5, segment length = 2mm
+ }
+ ] (T-center) -- (-5mm, 5mm);
+
+ % ring und RX antenna
+ \draw (0,0) pic (R) {antenna} node[above = 3mm] {\sffamily\bfseries RX};
+ \draw[thick, densely dotted] circle (25mm);
+
+
+\end{tikzpicture}