aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/slides/beamerthemehsr.sty2
-rw-r--r--doc/slides/slides.pdfbin10248 -> 0 bytes
-rw-r--r--doc/slides/slides.tex25
-rw-r--r--doc/thesis/Fading.tex40
-rw-r--r--doc/thesis/Makefile3
-rw-r--r--doc/thesis/chapters/implementation.tex14
-rw-r--r--doc/thesis/chapters/theory.tex23
-rw-r--r--doc/thesis/figures/data/qpsk_hw_lab.py6
-rw-r--r--doc/thesis/figures/tikz/qpsk-hardware.tex83
9 files changed, 163 insertions, 33 deletions
diff --git a/doc/slides/beamerthemehsr.sty b/doc/slides/beamerthemehsr.sty
index 79970b3..16dbf0a 100644
--- a/doc/slides/beamerthemehsr.sty
+++ b/doc/slides/beamerthemehsr.sty
@@ -65,7 +65,7 @@
\useoutertheme{default}
\usecolortheme{hsr}
-\setbeamerfont{title}{size=\Huge}
+\setbeamerfont{title}{size=\Large}
\setbeamerfont{frametitle}{size=\Large}
diff --git a/doc/slides/slides.pdf b/doc/slides/slides.pdf
deleted file mode 100644
index 9e7e104..0000000
--- a/doc/slides/slides.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/slides/slides.tex b/doc/slides/slides.tex
index ef2bb6b..5ec08bc 100644
--- a/doc/slides/slides.tex
+++ b/doc/slides/slides.tex
@@ -15,7 +15,7 @@
\renewcommand*\familydefault{\sfdefault}
% metadata
-\title{Multipath fading channel demonstrator using SDR}
+\title{Multipath Fading Demonstration Platform using Software Defined Radio}
\author{Naoki Sean Pross \and Sara Cinzia Halter}
\date{23. December 2021}
@@ -38,9 +38,30 @@
\section{Multipath Fading}
\begin{frame}{Multipath fading}
-
+ \begin{itemize}
+ \item Hello
+ \end{itemize}
\end{frame}
+\begin{frame}{Multipath fading}
+ \begin{columns}
+ \begin{column}{.5\linewidth}
+ \begin{itemize}
+ \item Hello
+ \end{itemize}
+ \end{column}
+ \begin{column}{.5\linewidth}
+ \begin{itemize}
+ \item Hello
+ \end{itemize}
+ \end{column}
+ \end{columns}
+\end{frame}
+
+\section{Channel model}
+
+\section{Implementation}
+
\end{document}
% vim:et:ts=2:sw=2:wrap:nolinebreak:
diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex
index 73f247f..9a61380 100644
--- a/doc/thesis/Fading.tex
+++ b/doc/thesis/Fading.tex
@@ -17,6 +17,8 @@
titlepage, abstract = on,
% header and footers
automark,
+ % remove numbers
+ numbers = noenddot
]{scrreprt}
%% Language configuration
@@ -122,16 +124,21 @@
% \textbf{Notation} & \bfseries Description \\
% \midrule
\multicolumn{2}{l}{\itshape Mathematics} \\
- \vec{v},\, \vec{m} & Vector quantity \\
+ j & Imaginary unit \\
\phi^* & Complex conjugate of \(\phi\) \\
+ \vec{v},\, \vec{m} & Vector quantity \\
+ \E{X} & Expectation of a random variable \(X\) \\
\midrule
\multicolumn{2}{l}{\itshape Physical quantities} \\
- t & Time \\
- T & Period \\
- \tau & Convolution time \\
- f & Frequency in Hz \\
- \omega & Frequency in radians per second \\
- \Omega & Digital frequency in radians per sample \\
+ t & Time \\
+ T & Period \\
+ \tau & Convolution time \\
+ f & Frequency in Hz \\
+ \omega & Frequency in radians per second \\
+ \Omega & Digital frequency in radians per sample \\
+ \varphi & Phase angle \\
+ c_0 & Speed of light \\
+ v & Velocity \\
\midrule
\multicolumn{2}{l}{\itshape Modulation schemes} \\
n(t) & Additive white Gaussian noise (AWGN) \\
@@ -146,14 +153,14 @@
r(m) & Received samples \\
\midrule
\multicolumn{2}{l}{\itshape Channel modelling} \\
- h(t) & LTI impluse response, \(h(\tau, t\) for the LTV IR \\
+ h(t) & LTI impluse response, \(h(\tau, t)\) for the LTV IR \\
h(m) & LTI discrete time impulse response, \(h_l(m)\) for the LTV discrete time IR \\
H(f) & LTI Frequency response, \(H(f, t)\) for the LTV frequency response \\
c_k & Tap attenuation \\
\tau_k & Tap delay \\
T_d & Delay spread \\
B_c & Coherence bandwidth \\
- R_{xy} & Correlation between \(x\) and \(y\) \\
+ R_{xy} & Correlation between \(x\) and \(y\), also written as \(x \star y\) \\
\bottomrule
\end{tabularx}
@@ -175,25 +182,25 @@
GR & GNU Radio \\
GRC & GNU Radio Companion \\
GSM & Global System for Mobile communication \\
- IMGUI & Immediate Graphical User Interface \\
+ IMGUI & Immediate Mode Graphical User Interface \\
IP & Internet Protocol \\
IR & Impulse Response \\
IoT & Internet of Things \\
LMS-DD & Least Mean Square Decision-Directed equalizer \\
- LOS & Line of Sight \\
+ LOS & Line Of Sight \\
LTI & Linear Time Invariant \\
LTV & Linear Time-Varying \\
MSB & Most Significant Bit \\
NLOS & No Line Of Sight \\
PDP & Power Delay Profile \\
PSK & Phase Shift Keying \\
- QAM & Quadrature Amplitude \\
+ QAM & Quadrature Amplitude Modulation \\
QPSK & Quadrature Phase Shift Keying \\
SDR & Software Defined radio \\
UDP & User Datagram Protocol \\
US & Uncorrelated Scattering \\
WSS & Wide Sense Stationary \\
- WSSUS & Wide Sense Stationary Uncorrelated Scaterring \\
+ WSSUS & Wide Sense Stationary Uncorrelated Scattering \\
\bottomrule
\end{tabularx}
@@ -213,4 +220,11 @@
\printskelnotes
\printbibliography
+ \appendix
+ \chapter{Appendix}
+
+ \begin{itemize}
+ \item
+ \end{itemize}
+
\end{document}
diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile
index f705a6b..0afb1f6 100644
--- a/doc/thesis/Makefile
+++ b/doc/thesis/Makefile
@@ -27,7 +27,8 @@ SOURCES := \
figures/tikz/rayleigh-rice-pdf-plots.tex \
figures/tikz/packet-frame.tex \
figures/tikz/qpsk-simulations-static.tex \
- figures/tikz/qpsk-simulations-dynamic.tex
+ figures/tikz/qpsk-simulations-dynamic.tex \
+ figures/tikz/qpsk-hardware.tex
DATA := \
figures/data/multipath_frequency_response.dat \
diff --git a/doc/thesis/chapters/implementation.tex b/doc/thesis/chapters/implementation.tex
index 4f21923..bf6dfcf 100644
--- a/doc/thesis/chapters/implementation.tex
+++ b/doc/thesis/chapters/implementation.tex
@@ -1,6 +1,6 @@
% vim: set ts=2 sw=2 noet spell:
-\chapter{Implementation}
+\chapter{Implementation} \label{chp:implementation}
\section{Overview}
@@ -47,7 +47,7 @@ class myblock(gr.sync_block):
\subsection{Dear PyGUI}\label{sec:GUI}
-To construct a graphical interface for a demonstration platform the Dear IMGUI (immediate 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.
+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.
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.
@@ -394,7 +394,7 @@ The numbers of tags used in this case are similar to the number of given values.
\SI{5.0}{\micro\second} & \(\SI{-7.0}{\decibel} \approx 0.1995\) \\
\bottomrule
\end{tabular}
- \caption{Extended Typical Urban model (ETU) ETSI Standard PDP values for multipath fading propagation conditions. \cite{ETSI}. \label{tab:etsi-tap-values}}
+ \caption{Extended Typical Urban model (ETU) ETSI Standard PDP values for multipath fading propagation conditions \cite{ETSI}. \label{tab:etsi-tap-values}}
\end{table}
% \begin{figure}
@@ -517,4 +517,12 @@ Without those only the amplitudes could be seen in the Plots, with all the noise
Simulations with a dynamic fading channel model using PDP values of the Extended Typical Urban model (ETU) of the ETSI standard normative Annex B.2 in \cite{ETSI}. The color gradient represents progression in time.
}
\end{figure}
+\newpage
+\begin{figure}
+ \centering
+ \input{figures/tikz/qpsk-hardware}
+ \caption{
+ TODO QPSK hardware
+ }
+\end{figure}
\restoregeometry
diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex
index ceaa649..3b34736 100644
--- a/doc/thesis/chapters/theory.tex
+++ b/doc/thesis/chapters/theory.tex
@@ -8,7 +8,7 @@
\input{figures/tikz/overview}
}
\caption{
- Block diagram of our wireless communication system with annotated signal names. Frequency domain representations of signals use the uppercase symbol of their respective time domain name.
+ Block diagram of our wireless communication system with annotated signal names. Frequency domain representations of signals use the uppercase symbol of their respective time domain name. Amplification constants in the channel (for \(s(t)\) and \(r(t)\)) were omitted throughout the document for readability.
\label{fig:notation}
}
\end{figure}
@@ -91,6 +91,7 @@ A graphical way to see what is happening, is to observe a so called \emph{conste
\paragraph{Example}
A concrete example for \(M = 16\): if the message is 1110 the bit splitter creates two values \(\vec{m}_q = 11\) and \(\vec{m}_i = 10\); both are converted into analog amplitudes (symbols) \(m_q = 3\) and \(m_i = 4\); that are then mixed with their respective carrier, resulting in \(s(t)\) being the point inside the bottom right sub-quadrant of the top right quadrant (blue dot in \figref{fig:qam-constellation}).
+\vspace{1em}
In \figref{fig:qam-constellation} the dots of the constellation have coordinates that begin on the bottom left corner, and are nicely aligned on a grid. Both are not a necessary requirement for QAM, in fact there are many schemes (for example when \(M = 32\)) that are arranged on a non square shape, and place the dots in different orders. The only constraint that most QAM modulators have in common, with regards to the geometry of the constellation, is that between any two adjacent dots (along the axis, not diagonally) only one bit of the represented value changes (gray code). This is done to improve the bit error rate (BER) of the transmission.
@@ -129,16 +130,13 @@ The Hilbert transform is a linear operator that introduces a phase shift of \(\p
\section{Phase shift keying (\(M\)-PSK)}
-Phase shift keying (PSK) is another popular family of modulation schemes for digital signals, that is however simpler than QAM. In PSK as the name suggests only the phase of the envelope changes, which means that the symbols have all the same amplitude. Thus, instead of arranging the symbols into a grid as done in QAM, \(M\)-PSK distributes the symbols over the unit circle at equidistant intervals of \(2\pi / M\) radians \cite{Mathis,Kneubuehler}. An example of 8-PSK is shown in \figref{fig:psk-constellation}. Mathematically the process of a PSK modulation can be described by \skelpar[2]
+Phase shift keying (PSK) is another popular family of modulation schemes for digital signals, that is however simpler than QAM. In PSK as the name suggests only the phase of the envelope changes, which means that the symbols have all the same amplitude. Thus, instead of arranging the symbols into a grid as done in QAM, \(M\)-PSK distributes the symbols over the unit circle at equidistant intervals of \(2\pi / M\) radians \cite{Mathis,Kneubuehler}. An example of 8-PSK is shown in \figref{fig:psk-constellation}. Mathematically the process of a PSK modulation can be described by making the phase of a carrier function of the message signal. For a complex exponential carrier:
\begin{equation}
- \skelpar[1]
+ s(t) = \exp\left(\omega_c t + \varphi(t)\right), \quad\text{where}\quad
+ \varphi = \frac{2\pi \cdot \text{Level}(\vec{m})}{M}, \quad \vec{m} \in \{0,1\}^{\log_2 M}.
\end{equation}
-\skelpar[3]
-
-\subsection{Quadrature PSK (QPSK)}
-
-\skelpar[2]{QPSK = 4-PSK = 4-QAM}
+It is worth noting that the case of 4-PSK, also known as quaternary phase shift keying (QPSK), is a special case, because its constellation is (up to a constant phase) a 4-ary QAM.
\section{Multipath fading} \label{sec:multipath-fading}
@@ -223,8 +221,13 @@ An intuitive parameter to quantify how dispersive channel is, is to take the tim
\end{equation}
as is done in \cite{Gallager}. However since in reality some paths get more attenuated than others (\(c_k(t)\) parameters) it also not uncommon to define the delay spread as a weighted mean or even as a statistical second moment (RMS value), where mean tap power \(\expectation\{|c_k(t)|^2\}\) is taken into account \cite{Mathis,Messier}. % More sophisticated definitions of delay spread will be briefly mentioned later in section \ref{sec:statistical-model}.
-Another important parameter for quantifying dispersion is \emph{coherence bandwidth}, a measure that is highly related to delay spread but in the frequency domain. % Coherence bandwidth can be be defined as
-\skelpar[3]
+Another important parameter for quantifying dispersion is \emph{coherence bandwidth}, a measure that is highly related to delay spread but in the frequency domain. Coherence bandwidth, is informally ``how much bandwidth can be used by the signal before it gets distorted'' (in our case by fading) \cite{Messier}. Thus intuitively, this parameter must be related to the delay spread with an inversely proportional relationship, since higher delay spread implies more intersymbol interference. And in fact, although there are multiple definitions depending on the context, the coherence bandwidth \(B_c\) is usually estimated with
+\begin{equation}
+ B_c \approx \frac{1}{T_d}.
+\end{equation}
+
+Finally, another important mean of parametrizing a multipath fading channel is what is called a \emph{power delay profile} (PDP). PDPs are nothing but a list of taps for a FIR model of multipath fading \cite{Mathis}. The weight of each tap in the PDP corresponds to the average channel tap power \(\expectation\{|h_l|^2\}\) (hence the name \emph{power} delay profile) and is usually given in decibel \cite{Mathis,Messier}. An example is shown at the end of chapter \ref{chp:implementation} in \tabref{tab:etsi-tap-values}.
+
% \subsection{Effects of multipath fading on modulation constellations}
%
diff --git a/doc/thesis/figures/data/qpsk_hw_lab.py b/doc/thesis/figures/data/qpsk_hw_lab.py
index a8170c6..741f32f 100644
--- a/doc/thesis/figures/data/qpsk_hw_lab.py
+++ b/doc/thesis/figures/data/qpsk_hw_lab.py
@@ -7,11 +7,11 @@ import numpy as np
samples = utils.load_samples(__file__)
# range of samples we want to show
-start = 1e3
-end = start +50
+start = 250e3
+end = start +400
# select every second samples
-select_samples = lambda arr: arr[int(start):int(end):2]
+select_samples = lambda arr: arr[int(start):int(end):6]
values = map(select_samples, samples)
# split into imaginary and real parts
diff --git a/doc/thesis/figures/tikz/qpsk-hardware.tex b/doc/thesis/figures/tikz/qpsk-hardware.tex
new file mode 100644
index 0000000..68a31a6
--- /dev/null
+++ b/doc/thesis/figures/tikz/qpsk-hardware.tex
@@ -0,0 +1,83 @@
+% vim: set ts=2 sw=2 noet:
+
+\newcommand{\makeplot}[5]{%
+ \hfill
+ \begin{tikzpicture}
+ \begin{axis}[
+ width = {\linewidth / 3.3},
+ height = {\linewidth / 3.3},
+ grid = major,
+ xmin = {-#4}, xmax = {#4},
+ ymin = {-#4}, ymax = {#4},
+ colormap name=viridis,
+ #5
+ ]
+
+ \addplot[only marks, scatter] table [x index = #2, y index = #3] {#1};
+ \end{axis}
+ \end{tikzpicture}
+ \hfill
+}
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_hw_lab.dat}{0}{1}{.25}{
+ ylabel = {Channel with ISI},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+ title = {LOS, Indoors (Lab)},
+}
+%
+\makeplot{figures/data/qpsk_hw_lab.dat}{0}{1}{.25}{
+ title = {LOS, Indoors (Lab)},
+}
+%
+\makeplot{figures/data/qpsk_hw_lab.dat}{0}{1}{.25}{
+ title = {LOS, Indoors (Lab)},
+}
+\newline
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_hw_lab.dat}{2}{3}{.25}{%
+ ylabel = {Synchronized},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+}
+\makeplot{figures/data/qpsk_hw_lab.dat}{2}{3}{.25}{}
+\makeplot{figures/data/qpsk_hw_lab.dat}{2}{3}{.25}{}
+\newline
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_hw_lab.dat}{4}{5}{2}{%
+ ylabel = {Equalized},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+}
+\makeplot{figures/data/qpsk_hw_lab.dat}{4}{5}{2}{}
+\makeplot{figures/data/qpsk_hw_lab.dat}{4}{5}{2}{}
+\newline
+
+% -------------------------------------------------------------------
+
+\noindent
+\makeplot{figures/data/qpsk_hw_lab.dat}{6}{7}{2}{%
+ ylabel = {Locked},
+ yticklabel style = {
+ text width = 3em,
+ align = right,
+ },
+}
+\makeplot{figures/data/qpsk_hw_lab.dat}{6}{7}{2}{}
+\makeplot{figures/data/qpsk_hw_lab.dat}{6}{7}{2}{}
+\newline