From 6964c9b50490003a4e2da939a020850d31dc8777 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 16 Dec 2021 18:16:31 +0100 Subject: Figures for statistical model --- doc/thesis/Fading.tex | 3 ++ doc/thesis/Makefile | 3 ++ doc/thesis/chapters/implementation.tex | 4 +-- doc/thesis/chapters/theory.tex | 21 +++++++----- doc/thesis/figures/data/rice_pdf.py | 22 +++++++++++++ .../figures/tikz/rayleigh-rice-pdf-plots.tex | 33 +++++++++++++++++++ .../figures/tikz/ring-of-scattering-objects.tex | 38 ++++++++++++++++++++++ 7 files changed, 114 insertions(+), 10 deletions(-) create mode 100644 doc/thesis/figures/data/rice_pdf.py create mode 100644 doc/thesis/figures/tikz/rayleigh-rice-pdf-plots.tex create mode 100644 doc/thesis/figures/tikz/ring-of-scattering-objects.tex (limited to 'doc') 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} -- cgit v1.2.1