aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/thesis/Fading.tex8
-rw-r--r--doc/thesis/chapters/conclusions.tex4
-rw-r--r--doc/thesis/chapters/implementation.tex71
-rw-r--r--doc/thesis/chapters/introduction.tex15
-rw-r--r--doc/thesis/chapters/theory.tex6
-rw-r--r--doc/thesis/figures/screenshots/gui_screenshot.pngbin0 -> 307457 bytes
-rw-r--r--doc/thesis/figures/tikz/phasecorr-blockprocessing-diagram.tex34
7 files changed, 72 insertions, 66 deletions
diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex
index b8118df..f78c8db 100644
--- a/doc/thesis/Fading.tex
+++ b/doc/thesis/Fading.tex
@@ -58,8 +58,12 @@
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
-\usepackage{graphicx} % Include pictures
-\usepackage{subcaption} % Subfigures
+% Include pictures
+\usepackage{graphicx}
+% Subfigures
+\usepackage{subcaption}
+% Frames around includegraphics
+\usepackage[export]{adjustbox}
%% Placeholders
\usepackage{skeldoc}
diff --git a/doc/thesis/chapters/conclusions.tex b/doc/thesis/chapters/conclusions.tex
index 2566bdf..1936c3d 100644
--- a/doc/thesis/chapters/conclusions.tex
+++ b/doc/thesis/chapters/conclusions.tex
@@ -1,10 +1,10 @@
% vim: set ts=2 sw=2 noet:
-\chapter{Conclusions}
+\chapter{Conclusions} \label{chp:conclusions}
\section{Next Steps}
Create some exacter calculation environment to verifite the simulation in a exacter way.
-Show the BER with the help of a least Square approximation. \ No newline at end of file
+Show the BER with the help of a least Square approximation.
diff --git a/doc/thesis/chapters/implementation.tex b/doc/thesis/chapters/implementation.tex
index bf6dfcf..3150b66 100644
--- a/doc/thesis/chapters/implementation.tex
+++ b/doc/thesis/chapters/implementation.tex
@@ -4,7 +4,7 @@
\section{Overview}
-First of all the tools that were used in this project are introduced. Then it is explained how the transmitter and receiver chains are implemented. Except for the channel, there are no differences in the signal processing chains between the simulated and real flow graphs (with hardware). Following are some channel simulations and measurements of the bit error rate (BER). Finally, the issues and the degree of completeness of our current implementation is discussed.
+First the tools used in this project are introduced. Then implementations of the transmitter and receiver chains is explained. Subsequently simulations and measurements of fading channels with an empirically computed bit error rate (BER) are presented. Finally, the issues and the state of our current implementation is discussed.
\section{Software Stack}
@@ -47,15 +47,21 @@ class myblock(gr.sync_block):
\subsection{Dear PyGUI}\label{sec:GUI}
-To construct a graphical interface for a demonstration platform the Dear IMGUI (immediate mode graphical user interface) library was chosen, mainly for its ease of use, wide range of techincal capabilites and high refresh rate. Dear PyGUI (DPG) are the Python bindings for the Dear IMGUI library.
+\begin{figure}
+ \centering
+ \includegraphics[frame, width = \linewidth]{figures/screenshots/gui_screenshot}
+ \caption{Screenshot of the graphical interface of receiver built using the DearPyGUI library.}
+\end{figure}
-The DPG GUI communicates with the GR flow graphs using the IP/UDP protocol. This decision to separate the project into two parts that communicate over the IP network was made because it is not very easy to extend the graphical interface of GRC without interfering with the sophisticated multi-threaded architecture of GR. Furthermore, this allows to have multiple correctly configure flow graph on disk and to choose which one to run and display on the graphical interface, instead of having a single flow graph whose parameters need to be changed each time.
+To construct a graphical interface for a demonstration platform the Dear IMGUI (immediate mode graphical user interface) library was chosen, mainly for its ease of use, wide range of techincal capabilites and high refresh rate. Dear PyGUI (DPG) are the Python bindings for the Dear IMGUI library.
-As a side effect, in theory this setup allows to have one computer running the graphical interface, and another remote machine running just the flow graph.
+The DPG GUI communicates with the GR flow graphs using the IP/UDP protocol. This decision to separate the project into two parts that communicate over the IP network was made because it is not very easy to extend the graphical interface of GRC without interfering with the sophisticated multi-threaded architecture of GR. Furthermore, this allows to have multiple correctly configure flow graph on disk and to choose which one to run and display on the graphical interface, instead of having a single flow graph whose parameters need to be changed each time. As a side effect, in theory this setup allows to have one computer running the graphical interface, and another remote machine running just the flow graph.
\section{Hardware}
-\begin{table}[b]
+As receivers and transmitter devices for the SDR setup two USRP B210 devices from Ettus Research were used. Some technical specifications are shown in \tabref{tab:usrp-specs}. GR provides off the shelf blocks that interface with the official API provided from Ettus Research.
+
+\begin{table}[h]
%TODO sepzifikationen ampssen / genauer? https://www.ettus.com/wp-content/uploads/2019/01/b200-b210_spec_sheet.pdf
% https://kb.ettus.com/B200/B210/B200mini/B205mini#FAQ
\centering
@@ -71,8 +77,6 @@ As a side effect, in theory this setup allows to have one computer running the g
\caption{USRP B210 specifications \cite{EttusUSRPB210}. \label{tab:usrp-specs}}
\end{table}
-As receivers and transmitter devices for the SDR setup two USRP B210 devices from Ettus Research were used. Some technical specifications are shown in \tabref{tab:usrp-specs}. GR provides off the shelf blocks that interface with the official API provided from Ettus Research.
-
\section{Transmitter chain}
\subsection{Data frame} \label{sec:data-frame}
@@ -170,6 +174,17 @@ Because the frequency estimate is linearly interpolated, the phase error may not
\end{equation}
must hold. By further setting \(\kappa = 4\) and \(N' = 32\) we obtain a minimum sampling frequency of approximately \(\SI{618.5}{\kilo\hertz}\), or conversely by letting \(f_s = \SI{1}{\mega\hertz}\) we have a maximum frame length of \(N' = 51\) symbols. In other words, roughly every 50 symbols the system must send an access code sequence. This result is rather unfortunate as it requires a lot more processing power than expected.
+\begin{figure}
+ \centering
+ % TODO: move code into separate file
+ \input{figures/tikz/phasecorr-blockprocessing-diagram}
+ \caption{
+ Graphical representation of the input samples for the work function of the fine phase and frequency correction block (shown in listing \ref{lst:phasecorr-work}). Roughly every \(N\) samples there is a tag containing the information of the phase error (computed using the cross correlation peak). The white `chunks' of samples can be corrected using their respective left and right tag values. The samples in the red chunk need phase information from the previous block processing. The samples in the blue chunk need a phase information from the future, which is not attainable. Thus for the blue chunk the frequency estimate of the previous chunk is used.
+ \label{fig:phasecorr-chunks}
+ }
+\end{figure}
+
+
\begin{lstlisting}[
texcl = true, language = python, escapechar = {`},
float, captionpos = b, label = {lst:phasecorr-work},
@@ -198,48 +213,6 @@ def work(self, inputs, outputs):
return len(outputs[0])
\end{lstlisting}
-\begin{figure}
- \centering
- % TODO: move code into separate file
- \begin{tikzpicture}[
- blk/.style = {
- draw, rectangle, thick, black,
- minimum width = 15mm,
- minimum height = 3mm,
- outer sep = 1mm,
- pattern = vertical lines,
- pattern color = lightgray,
- },
- ]
-
- \foreach \i in {0,1,...,4}{
- \coordinate (blkC\i) at (15mm*\i,0);
- \node[blk] (blk\i) at (blkC\i) {};
- \node[below] (phi\i) at (blk\i.south west) {\(\varphi_{\i}\)};
- }
- % last phase
- \node[below] (phi5) at (blk4.south east) {\(\varphi_{5}\)};
-
- % first block
- \node[blk, minimum width = 10mm, xshift = 2.5mm, fill = red!30] (S) at (-15mm,0) {};
- \node[anchor = east] at (S.west) {Input};
-
- % last block
- \node[blk, minimum width = 9mm, xshift = -3mm, fill = blue!30] (E) at ($(blk4)+(15mm,0)$) {};
-
- % labels
- \draw[thick, latex-] (blk3.north) to[out = 90, in = 180] ++(5mm,6mm)
- node[right] {Chunk of \(N\) samples};
-
- \draw[thick, latex-] (blk0.north east) ++(-1mm,0) to[out = 90, in = 0] ++(-5mm,6mm)
- node[left] (tags) {Phase tags};
- \end{tikzpicture}
- \caption{
- Graphical representation of the input samples for the work function of the fine phase and frequency correction block (shown in listing \ref{lst:phasecorr-work}). Roughly every \(N\) samples there is a tag containing the information of the phase error (computed using the cross correlation peak). The white `chunks' of samples can be corrected using their respective left and right tag values. The samples in the red chunk need phase information from the previous block processing. The samples in the blue chunk need a phase information from the future, which is not attainable. Thus for the blue chunk the frequency estimate of the previous chunk is used.
- \label{fig:phasecorr-chunks}
- }
-\end{figure}
-
\begin{lstlisting}[
texcl = true, language = python, escapechar = {`},
float, captionpos = b, label = {lst:phasecorr-blockphase},
diff --git a/doc/thesis/chapters/introduction.tex b/doc/thesis/chapters/introduction.tex
index 1a113e2..9e406b8 100644
--- a/doc/thesis/chapters/introduction.tex
+++ b/doc/thesis/chapters/introduction.tex
@@ -1,14 +1,14 @@
% vim: set ts=2 sw=2 noet spell spelllang=en:
-\chapter{Introduction}
+\chapter{Introduction} \label{chp:introduction}
\section{Background}
It is undeniable that in the last two decades wireless devices have become extremely ubiquitous, and are no longer employed under carefully chosen conditions.
-Nowadays smart phones, internet of things (IoT) devices and many other wireless devices are carried around by everyone and have to work in environments that are very far from ideal. Furthermore in addition to the already large class of networked appliances, next generation wireless devices in urban environments will include the new category of vehicles \cite{AntonescuTB17}, where reliability of intra-vehicular communication directly translates into safety. While at the same time in rural regions, developing countries as well as in other low-user density areas, wireless transmission links using mesh networks have become a practical alternative to wired broadband \cite{Macmillan2019tidal,Subramanian2006rethinking,Flickenger2007wireless}.
+Nowadays smart phones, internet of things (IoT) devices and many other wireless devices omnipresent have to work in environments that are very far from ideal. Furthermore in addition to the already large class of networked appliances, next generation wireless devices in urban environments will include the new category of vehicles \cite{AntonescuTB17}, where reliability of intra-vehicular communication directly translates into safety. While at the same time in rural regions, developing countries as well as in other low-user density areas, wireless transmission links using mesh networks have become a practical alternative to wired broadband \cite{Macmillan2019tidal,Subramanian2006rethinking,Flickenger2007wireless}.
-The study of problems concerning wireless devices is thus a very relevant topic today. More specifically, a common issue in the previously mentioned use cases is the so called \emph{multipath fading effect}, which degrade the reliability of the transmission link \cite{Mathis, Gallager}. The presence of fading was actually foreseen \cite{Frederiksen2002overview,Maddocks1993introduction} and today most modern transmission schemes implement measures to reduce the effects fading \cite{Mathis,Hsu}.
+Thus today the study of problems concerning wireless devices is very relevant topic. In particular, a common issue observed in the previously mentioned use cases is the so called \emph{multipath fading effect}, that degrades the reliability of a wireless transmission links \cite{Mathis, Gallager}. The problem of fading was actually foreseen \cite{Frederiksen2002overview,Maddocks1993introduction} and today most modern transmission schemes implement measures to reduce the effects fading \cite{Mathis,Hsu}.
This work studies the multipath fading effect, and how it affects modern digital transmission systems that use quadrature amplitude (QAM) and phase shift keying (PSK) modulation.
@@ -18,13 +18,8 @@ As described in the document given at the beginning of the semester:
\begin{quote}
The goal is to develop a SDR-based demonstrator, consisting of one transmitter and one receiver, to illustrate the impact of different fading effects on the signal. To get a brief understanding of the concept of fading channels, the project should be started with a literature research followed by simulation of different scenarios, which then can be reproduced by measurements.
\end{quote}
-The task description document is found in the appendix.
+The entire task description is found in the appendix.
\section{Overview}
-In the first chapter some theoretical basics where introduced, which are imported for the topic and later on for the implementation. The theory covers fundamentals for the modulation schemes and channel models used. Further more the mathematical basics for the different models in this project, to describe multipath fading are define.
-
-The next chapter contains the whole implementation part, description from the tools, which were used and how they are implemented.
-More details about the transmitter and receiver chains and the channel model with the different fading effect models. In addition to that, the problems and some open points in the project are discussed.
-
-At least the conclusion part, in which the results were showed and some further steps are discussed.
+In chapter \ref{chp:theory} the theoretical formulation and mathematical basis for the modulation schemes and channel models that have been used in this project are presented. Specifically \(M\)-ary QAM, \(M\)-PSK modulation, and three models for multipath fading are explained (continuous time, discrete time and statistical). Chapter \ref{chp:implementation} describes in detail our implementation. The transmitter and receiver chains are explained and simulations as well as measurements under different multipath fading conditions are presented. Finally some problems of the current implementation project are addressed. Chapter \ref{chp:conclusions} discusses the results of the project, and suggests how the device could be improved in the future.
diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex
index 3b34736..c73f94d 100644
--- a/doc/thesis/chapters/theory.tex
+++ b/doc/thesis/chapters/theory.tex
@@ -1,6 +1,6 @@
% vim: set ts=2 sw=2 noet spell:
-\chapter{Theory}
+\chapter{Theory} \label{chp:theory}
\begin{figure}
\centering
@@ -41,7 +41,7 @@ Quadrature amplitude modulation is a family of modern digital modulation methods
\paragraph{Bit splitter}
-As mentioned earlier, quadrature modulation allows sending more than one bit per unit time. The first step is to use a so called bit splitter, that converts the continuous bitstream \(m(n)\) into pairs of chunks of \(\sqrt{M}\) bits each. The two bit vectors of length \(\sqrt{M}\), denoted by \(\vec{m}_i\) and \(\vec{m}_q\) in figure \ref{fig:quadrature-modulation}, are called in-phase and quadrature component respectively\cite{Hsu}. The reason will become more clear later.
+As mentioned above, quadrature modulation allows to send more than one bit per unit time. The first step is to use a so called bit splitter, that converts the continuous bitstream \(m(n)\) into pairs of chunks of \(\sqrt{M}\) bits each. The two bit vectors of length \(\sqrt{M}\), denoted by \(\vec{m}_i\) and \(\vec{m}_q\) in figure \ref{fig:quadrature-modulation}, are called in-phase and quadrature component respectively\cite{Hsu}. The reason will become more clear later.
\paragraph{Binary to level converter}
@@ -395,7 +395,7 @@ Extending the previous NLOS case, if there is a line of sight (LOS) path (red si
\frac{1}{\sqrt{N}}\sum_{n=1}^{N} e^{j \vartheta_k}
\right).
\end{equation}
-Notice that by letting \(K = 0\), that is no power in the LOS path, \eqref{eqn:mult-fading-los} becomes \eqref{eqn:mult-fading-nlos} or Rayleigh distributed (as expected). Conversely when \(K \to \infty\), i.e. no power in the NLOS paths, then \(f \to 1\) and so the fading disappears. The new amplitude density in this case is:
+Notice that by letting \(K = 0\), that is no power in the LOS path, \eqref{eqn:mult-fading-los} becomes \eqref{eqn:mult-fading-nlos} or Rayleigh distributed (as expected). Conversely when \(K \to \infty\), i.e. no power in the NLOS paths, then \(f \to 1\) and the fading disappears. The new amplitude density in this case is:
\begin{equation}
p(a)= 2a(1+K) \exp{\left(-K -a^2 (K+1) \right)} I_0 \left(2a\sqrt{K(1+K)} \right),
\end{equation}
diff --git a/doc/thesis/figures/screenshots/gui_screenshot.png b/doc/thesis/figures/screenshots/gui_screenshot.png
new file mode 100644
index 0000000..42f9707
--- /dev/null
+++ b/doc/thesis/figures/screenshots/gui_screenshot.png
Binary files differ
diff --git a/doc/thesis/figures/tikz/phasecorr-blockprocessing-diagram.tex b/doc/thesis/figures/tikz/phasecorr-blockprocessing-diagram.tex
new file mode 100644
index 0000000..a6d12b3
--- /dev/null
+++ b/doc/thesis/figures/tikz/phasecorr-blockprocessing-diagram.tex
@@ -0,0 +1,34 @@
+% vim: set ts=2 sw=2 noet:
+\begin{tikzpicture}[
+ blk/.style = {
+ draw, rectangle, thick, black,
+ minimum width = 15mm,
+ minimum height = 3mm,
+ outer sep = 1mm,
+ pattern = vertical lines,
+ pattern color = lightgray,
+ },
+ ]
+
+ \foreach \i in {0,1,...,4}{
+ \coordinate (blkC\i) at (15mm*\i,0);
+ \node[blk] (blk\i) at (blkC\i) {};
+ \node[below] (phi\i) at (blk\i.south west) {\(\varphi_{\i}\)};
+ }
+ % last phase
+ \node[below] (phi5) at (blk4.south east) {\(\varphi_{5}\)};
+
+ % first block
+ \node[blk, minimum width = 10mm, xshift = 2.5mm, fill = red!30] (S) at (-15mm,0) {};
+ \node[anchor = east] at (S.west) {Input};
+
+ % last block
+ \node[blk, minimum width = 9mm, xshift = -3mm, fill = blue!30] (E) at ($(blk4)+(15mm,0)$) {};
+
+ % labels
+ \draw[thick, latex-] (blk3.north) to[out = 90, in = 180] ++(5mm,6mm)
+ node[right] {Chunk of \(N\) samples};
+
+ \draw[thick, latex-] (blk0.north east) ++(-1mm,0) to[out = 90, in = 0] ++(-5mm,6mm)
+ node[left] (tags) {Phase tags};
+\end{tikzpicture}