From adc00a39baff866a3b68b52ffc55a4aae71e61c4 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 31 Oct 2021 00:20:51 +0200 Subject: Fix math error in QAM, improve QAM modulator diagram, rename (wrong) QPSK to PSK --- doc/thesis/Fading.tex | 1 + doc/thesis/Makefile | 2 +- doc/thesis/chapters/theory.tex | 18 ++++---- doc/thesis/figures/tikz/psk-constellation.tex | 23 ++++++++++ doc/thesis/figures/tikz/qam-modulator.tex | 58 +++++++++++++++++++++++--- doc/thesis/figures/tikz/qpsk-constellation.tex | 23 ---------- doc/thesis/tex/docmacros.sty | 1 + 7 files changed, 88 insertions(+), 38 deletions(-) create mode 100644 doc/thesis/figures/tikz/psk-constellation.tex delete mode 100644 doc/thesis/figures/tikz/qpsk-constellation.tex (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index f8a5dfd..7ddd44c 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -35,6 +35,7 @@ \usetikzlibrary{ calc, + positioning, backgrounds, matrix, } diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile index 7095689..55b7a0d 100644 --- a/doc/thesis/Makefile +++ b/doc/thesis/Makefile @@ -15,7 +15,7 @@ SOURCES := \ chapters/conclusions.tex \ \ figures/tikz/overview.tex \ - figures/tikz/qpsk-constellation.tex \ + figures/tikz/psk-constellation.tex \ figures/tikz/qam-modulator.tex \ figures/tikz/qam-constellation.tex diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index e3809fd..9477340 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -52,10 +52,10 @@ The two component \(m_i(t)\) and \(m_q(t)\) are mixed with two different periodi \begin{subequations} \label{eqn:orthonormal-conditions} \begin{align} \langle \phi_i | \phi_q \rangle - &= \int_T \phi_i^* \phi_q \, dt = \int_T \phi_i \phi_q^* \, dt + &= \int_T \phi_i \phi_q^* \, dt = 0, \text{ and } \\ \langle \phi_k | \phi_k \rangle - &= \int_T \phi_k^* \phi_k \,dt = 1, + &= \int_T \phi_k \phi_k^* \,dt = 1, \text{ where } k \text{ is either } i \text{ or } q. \end{align} \end{subequations} @@ -66,10 +66,10 @@ In practice typically \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = j\sin(\ %% TODO: is this assumption correct? Notice that assuming \(m_i\) and \(m_q\) are constant\footnote{This is an approximation assuming that the signal changes much slower relative to the carrier.} over the carrier's period \(T\), \begin{align*} - \langle s | \phi_i \rangle = \int_T s^* \phi_i \,dt - &= \int m_i \phi_i^* \phi_i + m_q \phi_q^* \phi_i \,dt \\ - &= m_i \underbrace{\int_T \phi_i^* \phi_i \,dt}_{1} - + m_q \underbrace{\int_T \phi_q^* \phi_i \,dt}_{0} = m_i, + \langle s | \phi_i \rangle = \int_T s \phi_i^* \,dt + &= \int m_i \phi_i \phi_i^* + m_q \phi_q \phi_i^* \,dt \\ + &= m_i \underbrace{\int_T \phi_i \phi_i^* \,dt}_{1} + + m_q \underbrace{\int_T \phi_q \phi_i^* \,dt}_{0} = m_i, \end{align*} which effectively means that it is possible to isolate a single component \(m_i(t)\) out of \(s(t)\). The same of course works with \(\phi_q\) as well resulting in \(\langle s | \phi_q \rangle = m_q\). Thus (remarkably) it is possible to send two signals on the same frequency, without them interfering with each other. Since each signal can represent one of \(\sqrt{M}\) values, by having two we obtain \(\sqrt{M} \cdot \sqrt{M} = M\) possible combinations. @@ -83,8 +83,8 @@ A better way to see what QAM does, is to observe a so called \emph{constellation \end{subfigure} \hfill \begin{subfigure}{.4\linewidth} - \input{figures/tikz/qpsk-constellation} - \caption{8-PSK\label{fig:qpsk-constellation}} + \input{figures/tikz/psk-constellation} + \caption{8-PSK\label{fig:psk-constellation}} \end{subfigure} \hfill \caption{ @@ -92,7 +92,7 @@ A better way to see what QAM does, is to observe a so called \emph{constellation } \end{figure} -\section{Quadrature phase shift keying (\(M\)-QPSK)} +\section{Quadrature phase shift keying (\(M\)-PSK)} PSK is a popular modulation type for data transmission\cite{Meyer2011}. With a bipolar binary signal, the amplitude remains constant and only the phase will be changed with phase jumps of 180 degrees, which can be seen as a multiplication of the carrier signal with $\pm$ 1. That is alow known as binary phase shift keying. diff --git a/doc/thesis/figures/tikz/psk-constellation.tex b/doc/thesis/figures/tikz/psk-constellation.tex new file mode 100644 index 0000000..d927b19 --- /dev/null +++ b/doc/thesis/figures/tikz/psk-constellation.tex @@ -0,0 +1,23 @@ +% vim: set ts=2 sw=2 noet: +\begin{tikzpicture}[ + axis/.style = { + thick, -latex, black, + }, + star/.style = { + draw = black, thick, fill = red!50, + circle, outer sep = 1mm, inner sep = 0, + minimum size = 1.5mm, + }, + ] + \draw[axis] (-25mm,0) to (25mm,0) node[right] {\(\phi_i\)}; + \draw[axis] (0,-25mm) to (0,25mm) node[above] {\(\phi_q\)}; + + \draw[lightgray, densely dotted, thick] (0,0) circle (15mm); + \foreach \a in {0,1,...,8}{ + \node[star] (s\a) at ({360/8*(.5 + \a)}:15mm) {}; + } + + \foreach \i/\l in {0/000,1/001,2/011,3/010,4/110,5/111,6/101,7/100}{ + \node[lightgray] at ($(s\i) + ({360/8*(.5 + \i)}:5mm)$) {\texttt{\l}}; + } +\end{tikzpicture} diff --git a/doc/thesis/figures/tikz/qam-modulator.tex b/doc/thesis/figures/tikz/qam-modulator.tex index 59d989f..a55ff29 100644 --- a/doc/thesis/figures/tikz/qam-modulator.tex +++ b/doc/thesis/figures/tikz/qam-modulator.tex @@ -57,7 +57,7 @@ \draw (B2Lq.east) -- (Mq.west); \draw (Mq.east) -| (SUM.south); - \draw (SUM) -- (S); + \draw (SUM.east) -- (S); \draw (OSC.east) -| (Mi.south); \draw (OSC.west) -- (H.east); @@ -77,13 +77,61 @@ \node[above left] at (si) {\(s_i(t)\)}; \node[below left] at (sq) {\(s_q(t)\)}; + % Draw digital signals + \begin{scope}[font = \ttfamily\footnotesize, text = blue!70!white] + \node[above = 1mm of M, xshift = 2mm] {\(\ldots 1100101\)}; + \node[above = 7mm of vmi, xshift = 3mm] + {\(\overbracket[.8pt]{\,11\ldots 00\,}^{\sqrt{M} \text{ bits}}\)}; + \end{scope} + + % Draw analog waveform + \begin{scope}[font = \ttfamily\tiny] + \coordinate (O) at ($(mi)+(-2mm,10.5mm)$); + + \node[left, red!70!white, anchor = east, text width = 8mm, align = right] + at ($(O) + (-2mm,0)$) {\(2^{\sqrt{M}}\) levels}; + + \foreach \y in {-3mm,0,3mm} { + \draw[gray, densely dotted] (O) ++(-2mm,\y) -- ++(22mm,0); + } + + \draw[thick, draw = red!70!white] (O) + -- ++(3mm,0) -- ++(0,-3mm) -- ++(3mm,0) -- ++(0,6mm) + -- ++(3mm,0) -- ++(0,-3mm) -- ++(3mm,0) -- ++(0,-3mm) + -- ++(3mm,0) -- ++(0,3mm) -- ++(3mm,0); + \end{scope} + + % Draw constellation diagram + \begin{scope} + \coordinate (O) at ($(S)+(-7mm,8mm)$); + \draw[gray, -latex] (O) ++(-2mm,0) -- ++(12mm,0) node[right] {\tiny \(\phi_i\)}; + \draw[gray, -latex] (O) ++(0,-2mm) -- ++(0,12mm) node[above] {\tiny \(\phi_q\)}; + + \node[ + circle, thick, + minimum size = 3pt, + inner sep = 0, outer sep = .8pt, + draw = gray, fill = red!50!white + ] (P) at ($(O)+(5mm, 4mm)$) {}; + + \node[gray, above right] at (P) {\tiny \(s\)}; + + \draw[gray, densely dotted] + (P) -- (P |- O) + (P) -- (P -| O); + \end{scope} + + + % Background elements \begin{pgfonlayer}{background} \fill[left color = white, right color = blue!20, draw = white] - ($(B2Li.north) + (0,1)$) coordinate (D) rectangle ($(B2Lq.south) - (3,1)$); + ($(B2Li.north) + (0,1.1)$) coordinate (D) rectangle ($(B2Lq.south) - (3,1)$); \fill[right color = white, left color = red!20, draw = white] - ($(B2Li.north) + (0,1)$) coordinate (A) rectangle ($(B2Lq.south) + (9,-1)$); + ($(B2Li.north) + (0,1.1)$) coordinate (A) rectangle ($(B2Lq.south) + (9,-1)$); - \node[blue!50, anchor = south east, font = \ttfamily\bfseries, xshift = -4mm] at (D) {\bfseries\ttfamily Digital bits}; - \node[red!50, anchor = south west, font = \bfseries\ttfamily, xshift = 4mm] at (A) {Analog waveform}; + \node[blue!50, anchor = south east, font = \ttfamily\bfseries, xshift = -4mm] + at (D) {\bfseries\ttfamily Digital bits}; + \node[red!50, anchor = south west, font = \bfseries\ttfamily, xshift = 4mm] + at (A) {Analog waveform}; \end{pgfonlayer} \end{circuitikz} diff --git a/doc/thesis/figures/tikz/qpsk-constellation.tex b/doc/thesis/figures/tikz/qpsk-constellation.tex deleted file mode 100644 index d927b19..0000000 --- a/doc/thesis/figures/tikz/qpsk-constellation.tex +++ /dev/null @@ -1,23 +0,0 @@ -% vim: set ts=2 sw=2 noet: -\begin{tikzpicture}[ - axis/.style = { - thick, -latex, black, - }, - star/.style = { - draw = black, thick, fill = red!50, - circle, outer sep = 1mm, inner sep = 0, - minimum size = 1.5mm, - }, - ] - \draw[axis] (-25mm,0) to (25mm,0) node[right] {\(\phi_i\)}; - \draw[axis] (0,-25mm) to (0,25mm) node[above] {\(\phi_q\)}; - - \draw[lightgray, densely dotted, thick] (0,0) circle (15mm); - \foreach \a in {0,1,...,8}{ - \node[star] (s\a) at ({360/8*(.5 + \a)}:15mm) {}; - } - - \foreach \i/\l in {0/000,1/001,2/011,3/010,4/110,5/111,6/101,7/100}{ - \node[lightgray] at ($(s\i) + ({360/8*(.5 + \i)}:5mm)$) {\texttt{\l}}; - } -\end{tikzpicture} diff --git a/doc/thesis/tex/docmacros.sty b/doc/thesis/tex/docmacros.sty index 433fe19..0005e76 100644 --- a/doc/thesis/tex/docmacros.sty +++ b/doc/thesis/tex/docmacros.sty @@ -1,6 +1,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tex/docmacros}[2021/09/27 v0.1 Document Macros] +\RequirePackage{mathtools} \RequirePackage{amsmath} \RequirePackage{bm} -- cgit v1.2.1 From 49d784994700b19480947263b1b56202703b126b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 31 Oct 2021 01:45:18 +0200 Subject: Restructure QAM section --- doc/thesis/chapters/theory.tex | 42 +++++++++++++++++++++++++++++++++--------- doc/thesis/tex/docmacros.sty | 1 + 2 files changed, 34 insertions(+), 9 deletions(-) (limited to 'doc/thesis') diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index 9477340..f0fb5d4 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -15,6 +15,9 @@ In this section we will briefly give the mathematical background required by the %% TODO: Par on notation m(n) = m(nT) = discrete time +%% TODO: A section on maths? +% \section{Signal space and linear operators} + \section{Quadrature amplitude modulation (\(M\)-ary QAM)} \begin{figure} @@ -30,9 +33,11 @@ Quadrature amplitude modulation is a family of modern digital modulation methods %% TODO: Quick par on "we will dicusss M-Ary QAM, M is 2^something" +\subsection{Modulation of a digital message} + \paragraph{Bit splitter} -As mentioned earlier, quadrature modulation allows sending more than one bit per unit time. The first step to do it is to use a so called bit splitter, converts the continuous data stream \(m(n)\) into pairs of chunks of \(\sqrt{M}\) bits. 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. The reason will become more clear later. +As mentioned earlier, quadrature modulation allows sending more than one bit per unit time. The first step to do it is to use a so called bit splitter, that converts the continuous bitstream \(m(n)\) into pairs of chunks of \(\sqrt{M}\) bits. 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. The reason will become more clear later. \paragraph{Binary to level converter} @@ -42,24 +47,28 @@ Both bit vectors \(\vec{m}_i, \vec{m}_q \in \{0,1\}^{\sqrt{M}}\) are sent throug \begin{equation} m_i(t) = \text{Level}(\vec{m}_i) \cdot p(t), \end{equation} -i.e. a pulse function\footnote{Typically a root raised cosine to optimize for bandwidth.} \(p(t)\) scaled by the interpreted binary value, written here using a ``Level'' function. So at this point the analog waveform is already encoding \(\sqrt{M}\) bits per unit time, but actually it is possible to do better. +i.e. a pulse function\footnote{Typically a root raised cosine to optimize for bandwidth.} \(p(t)\) scaled by the interpreted binary value, written here using a ``Level'' function. So at this point a level of each analog waveform is encodes \(\sqrt{M}\) bits per unit time, and there are two of such waveforms. + \paragraph{Mixer} -Having analog level signals, it is this now possible to mix them with radio frequency carriers. Because there are two waveforms, one might expect that two carrier frequencies are necessary, however this is not the case. +Having analog level signals, it is this now possible to mix them with radio frequency carriers. Because there are two waveforms, one might expect that two carrier frequencies are necessary, however this is not the case. The two component \(m_i(t)\) and \(m_q(t)\) are mixed with two different periodic signals \(\phi_i(t)\) and \(\phi_q(t)\) that have the same frequency \(\omega_c = 2\pi / T\). Why this is possible is explained in the next section. -The two component \(m_i(t)\) and \(m_q(t)\) are mixed with two different periodic signals \(\phi_i(t)\) and \(\phi_q(t)\) that have the same frequency \(\omega_c = 2\pi / T\). Now the clever part: the carrier signals are picked to be \emph{orthonormal}\footnote{Orthonormal here can be understood in the same sense as in finite dimensional vector spaces, where orthonormal vectors behave exactly like equations \eqref{eqn:orthonormal-conditions} under the dot product.} to each other, mathematically this is expressed by the conditions + +\subsection{Orthogonality of carrier signals} + +Before explaining how the two carrier signals are generated, we first need to discuss some important mathematical properties \(\phi_i\) and \(\phi_q\) need to have, in order to modulate two messages over the same frequency \(\omega_c\). The two carriers need to be \emph{orthonormal}\footnote{Actually orthogonality alone would be sufficient, however then the left side of \eqref{eqn:orthonormal-condition} would not equal 1, and an inconvenient factor would be introduced in many later equations.} to each other, mathematically this is expressed by the conditions \begin{subequations} \label{eqn:orthonormal-conditions} \begin{align} \langle \phi_i | \phi_q \rangle &= \int_T \phi_i \phi_q^* \, dt - = 0, \text{ and } \\ + = 0, \text{ and } \label{eqn:orthogonal-condition} \\ \langle \phi_k | \phi_k \rangle &= \int_T \phi_k \phi_k^* \,dt = 1, - \text{ where } k \text{ is either } i \text{ or } q. + \text{ where } k \text{ is either } i \text{ or } q. \label{eqn:orthonormal-condition} \end{align} \end{subequations} -In practice typically \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = j\sin(\omega_c t)\). Provided these rather abstract conditions, let's define a new signal +Provided these rather abstract conditions, let's define a new signal \begin{equation} s = m_i\phi_i + m_q\phi_q. \end{equation} @@ -73,7 +82,21 @@ Notice that assuming \(m_i\) and \(m_q\) are constant\footnote{This is an approx \end{align*} which effectively means that it is possible to isolate a single component \(m_i(t)\) out of \(s(t)\). The same of course works with \(\phi_q\) as well resulting in \(\langle s | \phi_q \rangle = m_q\). Thus (remarkably) it is possible to send two signals on the same frequency, without them interfering with each other. Since each signal can represent one of \(\sqrt{M}\) values, by having two we obtain \(\sqrt{M} \cdot \sqrt{M} = M\) possible combinations. -A better way to see what QAM does, is to observe a so called \emph{constellation diagram}. An example is shown in figure \ref{fig:qam-constellation} for \(M = 16\). The two carrier signals \(\phi_i\) and \(\phi_q\) can be understood as bases of a coordinate system, +A graphical way to see what is happening, is to observe a so called \emph{constellation diagram}. An example is shown in figure \ref{fig:qam-constellation} for \(M = 16\). The two carrier signals \(\phi_i\) and \(\phi_q\) can be understood as bases of a coordinate system. + +\subsection{Construction of orthogonal carrier signals} + + +If \(\phi_i\) is a real valued signal (which is typical) it is possible to find a function the quadrature carrier using the \emph{Hilbert transform}: +\begin{equation} + \hilbert g(t) = g(t) * \frac{1}{\pi t} + = \frac{1}{\pi} \int_\mathbb{R} \frac{g(\tau)}{t - \tau} \,d\tau + = \frac{1}{\pi} \int_\mathbb{R} \frac{g(t - \tau)}{\tau} \,d\tau, +\end{equation} +i.e. a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies. It is a known property of the Hilbert transform that given a real valued function \(g(t)\) then \(\langle g | \hilbert g \rangle = 0\). +In practice \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = \hilbert \phi_i(t) = \sin(\omega_c t)\). + +\paragraph{Oscillator and phase shifter} \begin{figure} \hfill @@ -92,7 +115,8 @@ A better way to see what QAM does, is to observe a so called \emph{constellation } \end{figure} -\section{Quadrature phase shift keying (\(M\)-PSK)} + +\section{Phase shift keying (\(M\)-PSK)} PSK is a popular modulation type for data transmission\cite{Meyer2011}. With a bipolar binary signal, the amplitude remains constant and only the phase will be changed with phase jumps of 180 degrees, which can be seen as a multiplication of the carrier signal with $\pm$ 1. That is alow known as binary phase shift keying. diff --git a/doc/thesis/tex/docmacros.sty b/doc/thesis/tex/docmacros.sty index 0005e76..4c71004 100644 --- a/doc/thesis/tex/docmacros.sty +++ b/doc/thesis/tex/docmacros.sty @@ -3,6 +3,7 @@ \RequirePackage{mathtools} \RequirePackage{amsmath} +\RequirePackage{amssymb} \RequirePackage{bm} % Probability -- cgit v1.2.1 From 9f8e8f7f14835cde2fef6389afada8ec478ca38b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 31 Oct 2021 13:06:26 +0100 Subject: Create tex/docstyle and fix notation in theory --- doc/thesis/Fading.tex | 56 ++++++++++++++++++------------------------ doc/thesis/Makefile | 1 + doc/thesis/chapters/theory.tex | 24 +++++++++++------- doc/thesis/tex/docstyle.sty | 50 +++++++++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 41 deletions(-) create mode 100644 doc/thesis/tex/docstyle.sty (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index 7ddd44c..ecb80d6 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -4,34 +4,30 @@ % vim: set ts=2 sw=2 noet: \documentclass[ - twoside, openright, titlepage, numbers = noenddot, - headinclude, footinclude, cleardoublepage = empty, abstract = on, - BCOR = 5mm, paper = a4, fontsize = 11pt + % page size and margins + paper = a4, twoside, openright, BCOR = 5mm, + headinclude, footexclude, + % font size + fontsize = 11pt, parskip = half, + % style of empty pages (after chapters) + cleardoublepage = empty, + % extra sections + titlepage, abstract = on, + % header and footers + automark, ]{scrreprt} -%% Custom packages -\usepackage{tex/docmacros} - %% Language configuration \usepackage{polyglossia} -%% Links -\usepackage{hyperref} - -\hypersetup{ - colorlinks = true -} - -%% Citations -\usepackage[ - backend = biber, - style = ieee, -]{biblatex} - -\addbibresource{Fading.bib} +%% Custom packages +\usepackage{tex/docmacros} +\usepackage{tex/docstyle} %% Pretty figures -\usepackage{tikz} +\usepackage{circuitikz} % Electric diagrams +\usepackage{pgfplots} % Pretty plots +\usepackage{tikz} % Pretty drawings \usetikzlibrary{ calc, @@ -43,20 +39,15 @@ \pgfdeclarelayer{foreground} \pgfsetlayers{background,main,foreground} -\usepackage{circuitikz} - -%% Pretty plots -\usepackage{pgfplots} -%% Include pictures -\usepackage{graphicx} +\usepackage{graphicx} % Include pictures +\usepackage{subcaption} % Subfigures -%% Subfigures -\usepackage{subcaption} +%% Load bibliography +\addbibresource{Fading.bib} -%% TODO: move into tex/docstyle.sty -%% Sans serif font -\usepackage{roboto} +%% Recompute page margins +\KOMAoptions{DIV=default} \begin{document} @@ -74,6 +65,7 @@ \pagenumbering{arabic} \setcounter{page}{1} + \pagestyle{scrheadings} \include{chapters/introduction} \include{chapters/theory} \include{chapters/implementation} diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile index 55b7a0d..e0690ba 100644 --- a/doc/thesis/Makefile +++ b/doc/thesis/Makefile @@ -6,6 +6,7 @@ SOURCES := \ Fading.bib \ \ tex/docmacros.sty \ + tex/docstyle.sty \ tex/preamble.tex \ tex/titlepage.tex \ \ diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index f0fb5d4..0cbccd2 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -4,7 +4,9 @@ \begin{figure} \centering - \input{figures/tikz/overview} + \resizebox{\linewidth}{!}{ + \input{figures/tikz/overview} + } \caption{ Block diagram for a general wireless communication system with annotated signal names. Frequency domain representations of signals use the uppercase symbol of their respective time domain name. \label{fig:notation} @@ -22,7 +24,9 @@ In this section we will briefly give the mathematical background required by the \begin{figure} \centering - \input{figures/tikz/qam-modulator} + \resizebox{\linewidth}{!}{ + \input{figures/tikz/qam-modulator} + } \caption{ Block diagram of a \(M\)-ary QAM modulator. \label{fig:quadrature-modulation} @@ -60,10 +64,10 @@ Having analog level signals, it is this now possible to mix them with radio freq Before explaining how the two carrier signals are generated, we first need to discuss some important mathematical properties \(\phi_i\) and \(\phi_q\) need to have, in order to modulate two messages over the same frequency \(\omega_c\). The two carriers need to be \emph{orthonormal}\footnote{Actually orthogonality alone would be sufficient, however then the left side of \eqref{eqn:orthonormal-condition} would not equal 1, and an inconvenient factor would be introduced in many later equations.} to each other, mathematically this is expressed by the conditions \begin{subequations} \label{eqn:orthonormal-conditions} \begin{align} - \langle \phi_i | \phi_q \rangle + \langle \phi_i, \phi_q \rangle &= \int_T \phi_i \phi_q^* \, dt = 0, \text{ and } \label{eqn:orthogonal-condition} \\ - \langle \phi_k | \phi_k \rangle + \langle \phi_k, \phi_k \rangle &= \int_T \phi_k \phi_k^* \,dt = 1, \text{ where } k \text{ is either } i \text{ or } q. \label{eqn:orthonormal-condition} \end{align} @@ -75,12 +79,12 @@ Provided these rather abstract conditions, let's define a new signal %% TODO: is this assumption correct? Notice that assuming \(m_i\) and \(m_q\) are constant\footnote{This is an approximation assuming that the signal changes much slower relative to the carrier.} over the carrier's period \(T\), \begin{align*} - \langle s | \phi_i \rangle = \int_T s \phi_i^* \,dt + \langle s, \phi_i \rangle = \int_T s \phi_i^* \,dt &= \int m_i \phi_i \phi_i^* + m_q \phi_q \phi_i^* \,dt \\ &= m_i \underbrace{\int_T \phi_i \phi_i^* \,dt}_{1} + m_q \underbrace{\int_T \phi_q \phi_i^* \,dt}_{0} = m_i, \end{align*} -which effectively means that it is possible to isolate a single component \(m_i(t)\) out of \(s(t)\). The same of course works with \(\phi_q\) as well resulting in \(\langle s | \phi_q \rangle = m_q\). Thus (remarkably) it is possible to send two signals on the same frequency, without them interfering with each other. Since each signal can represent one of \(\sqrt{M}\) values, by having two we obtain \(\sqrt{M} \cdot \sqrt{M} = M\) possible combinations. +which effectively means that it is possible to isolate a single component \(m_i(t)\) out of \(s(t)\). The same of course works with \(\phi_q\) as well resulting in \(\langle s, \phi_q \rangle = m_q\). Thus (remarkably) it is possible to send two signals on the same frequency, without them interfering with each other. Since each signal can represent one of \(\sqrt{M}\) values, by having two we obtain \(\sqrt{M} \cdot \sqrt{M} = M\) possible combinations. A graphical way to see what is happening, is to observe a so called \emph{constellation diagram}. An example is shown in figure \ref{fig:qam-constellation} for \(M = 16\). The two carrier signals \(\phi_i\) and \(\phi_q\) can be understood as bases of a coordinate system. @@ -93,7 +97,7 @@ If \(\phi_i\) is a real valued signal (which is typical) it is possible to find = \frac{1}{\pi} \int_\mathbb{R} \frac{g(\tau)}{t - \tau} \,d\tau = \frac{1}{\pi} \int_\mathbb{R} \frac{g(t - \tau)}{\tau} \,d\tau, \end{equation} -i.e. a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies. It is a known property of the Hilbert transform that given a real valued function \(g(t)\) then \(\langle g | \hilbert g \rangle = 0\). +i.e. a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies. It is a known property of the Hilbert transform that given a real valued function \(g(t)\) then \(\langle g, \hilbert g \rangle = 0\). In practice \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = \hilbert \phi_i(t) = \sin(\omega_c t)\). \paragraph{Oscillator and phase shifter} @@ -131,7 +135,7 @@ Two bits are modulated at ones with the same bandwidth as a 2-PSK so more inform Most times there is noise and the points on the constellation diagram become a surface. If the surfaces overlap there will be a problem with decoding. -\section{Fading} +\section{Chanel noise and fading} \subsection{Geometric Model} @@ -157,6 +161,8 @@ received signal \(y = h * x\), i.e. convolution with channel model. Assume \(x\) is a time discrete signal with and bandwidth \(W\), thus the pulse is sinc shaped \begin{equation} - x(t) = \sum_n x[n] \sinc(t/T - n) + x(t) = \sum_n x(n) \sinc(t/T - n) \end{equation} Ideal sampling at rate \(2W\) of \(y\) gives + +\section{Receiver DSP chain} diff --git a/doc/thesis/tex/docstyle.sty b/doc/thesis/tex/docstyle.sty new file mode 100644 index 0000000..8b1cb80 --- /dev/null +++ b/doc/thesis/tex/docstyle.sty @@ -0,0 +1,50 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tex/docstyle}[2021/10/31 v0.1 Document Style] + +%% Page Margins (done with KOMA) +% \PassOptionsToPackage{geometry}{ +% a4paper, showframe +% } +% \RequirePackage{geometry} +% \AfterCalculatingTypearea{% +% \geometry{% +% inner = 1cm, outer = 1cm, includeheadfoot +% top = 3cm, bottom = 3cm +% } +% } + +%% Pager headers and footers (using KOMA) +\PassOptionsToPackage{scrlayer-scrpage}{autooneside = false} +\RequirePackage{scrlayer-scrpage} +\setkomafont{pagenumber}{\sffamily\bfseries\upshape} +% Add marks +\lehead{\leftmark} +\rohead{\rightmark} + +%% Font configuration +%% use roboto from sans serif +\RequirePackage{roboto} + +%% Bibliography style +\PassOptionsToPackage{biblatex}{% + backend = biber, + style = ieeee, +} +\RequirePackage{biblatex} + +%% Set up links +\PassOptionsToPackage{hyperref}{% + bookmarks = true, + % pdftitle = {} + pdfsubject = {Semester Thesis} + pdfauthor = {Naoki Pross, Sara Halter} + plainpages = false, + psepdfpagelabels, + urlcolor = black, + citecolor = black, + linkcolor = black, + colorlinks = true, +} +\RequirePackage{hyperref} + +% vim: set ts=2 sw=2 noet: -- cgit v1.2.1 From ac09d6f42654ecd15ef42022ed2030bbdad1d369 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 31 Oct 2021 13:40:09 +0100 Subject: More styling --- doc/thesis/tex/docstyle.sty | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'doc/thesis') diff --git a/doc/thesis/tex/docstyle.sty b/doc/thesis/tex/docstyle.sty index 8b1cb80..3f0d76f 100644 --- a/doc/thesis/tex/docstyle.sty +++ b/doc/thesis/tex/docstyle.sty @@ -16,15 +16,25 @@ %% Pager headers and footers (using KOMA) \PassOptionsToPackage{scrlayer-scrpage}{autooneside = false} \RequirePackage{scrlayer-scrpage} -\setkomafont{pagenumber}{\sffamily\bfseries\upshape} + +\setkomafont{pagenumber}{\sffamily\bfseries} +\setkomafont{pageheadfoot}{\itshape} + % Add marks \lehead{\leftmark} \rohead{\rightmark} %% Font configuration -%% use roboto from sans serif +% use roboto from sans serif \RequirePackage{roboto} +%% Floating captions configuration +% set captions font +\setkomafont{captionlabel}{\sffamily\bfseries} +% set caption style +\setcapindent{0pt} +\renewcommand*{\captionformat}{\quad} + %% Bibliography style \PassOptionsToPackage{biblatex}{% backend = biber, @@ -33,18 +43,30 @@ \RequirePackage{biblatex} %% Set up links +\RequirePackage{xcolor} \PassOptionsToPackage{hyperref}{% bookmarks = true, + %% TODO: set title % pdftitle = {} pdfsubject = {Semester Thesis} pdfauthor = {Naoki Pross, Sara Halter} plainpages = false, psepdfpagelabels, - urlcolor = black, +} +\RequirePackage{hyperref} +\hypersetup{ + % remove ugly boxes + hidelinks, + % set link colors + colorlinks = true, + anchorcolor = black, citecolor = black, + filecolor = black, linkcolor = black, - colorlinks = true, + menucolor = black, + runcolor = black, + urlcolor = {black!50!blue}, + urlcolor = black, } -\RequirePackage{hyperref} % vim: set ts=2 sw=2 noet: -- cgit v1.2.1 From f0325a451f6ffbd3aa7e63833e0693b311f7abfd Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 31 Oct 2021 20:49:44 +0100 Subject: Start doc on fading channels --- doc/thesis/Fading.bib | 39 +++++++++--- doc/thesis/Fading.tex | 11 ++-- doc/thesis/Makefile | 4 +- doc/thesis/chapters/introduction.tex | 6 +- doc/thesis/chapters/theory.tex | 74 +++++++++++++++------- .../figures/tikz/multipath-impulse-response.tex | 34 ++++++++++ doc/thesis/figures/tikz/multipath-sketch.tex | 37 +++++++++++ 7 files changed, 167 insertions(+), 38 deletions(-) create mode 100644 doc/thesis/figures/tikz/multipath-impulse-response.tex create mode 100644 doc/thesis/figures/tikz/multipath-sketch.tex (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.bib b/doc/thesis/Fading.bib index 9959867..eda5817 100644 --- a/doc/thesis/Fading.bib +++ b/doc/thesis/Fading.bib @@ -96,27 +96,48 @@ url = "https://www.youtube.com/watch?v=4ibjrRzvJ5E&list=PL7sWxFnBVJLXsvsLzMXT2Fk4ZPD7BJTBX&index=3" } +@misc{Gallager, + title = "Course material for 6.450 Principles of Digital Communications I", + author = "Robert Gallager", + year = 2006, + month = "Fall", + publisher = "MIT OpenCourseWare, Massachusetts Institute of Technology", + url = "https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-450-principles-of-digital-communications-i-fall-2006" +} + +@article{Kschischang, + title = "The Hilbert Transform", + author = "Frank R. Kschischang", + year = 2006, + month = "October", + organization = "The Edward S. Rogers Sr. Department of Electrical and Computer Engineering, University of Toronto", + url = "http://web.eecs.utk.edu/~mjr/ECE342/hilbert.pdf", +} + @book{Hsu, title = {Schaum's Outline of Analog and Digital Communications}, author = {Hsu, H.P.}, isbn = {9780071402286}, lccn = {2002153194}, series = {Schaum's outline series}, - url = {https://books.google.ch/books?id=02I-J\_ZQa50C}, year = {2003}, publisher = {McGraw-Hill Education} } -@book{Kneubuehler, - title = {Nachrichtentechnik 1 + 2}, - author = {Kneub\"uhler, T.}, - year = {2020}, +@misc{Kneubuehler, + title = {Nachrichtentechnik 1 + 2}, + author = {Kneub\"uhler, T.}, + year = {2020}, + month = {September}, + organization = "Eastern Switzerland University of Applied Sciences", } -@book{Mathis, - title = {Wireless Communication}, - author = {{Prof. Dr. Mathis H.} and {Prof. Dr. Lang H.D.}}, - year = {2021}, +@misc{Mathis, + title = {Wireless Communication}, + author = {{Prof. Dr. Mathis H.} and {Prof. Dr. Lang H.D.}}, + year = {2021}, + month = {September}, + organization = "Eastern Switzerland University of Applied Sciences", } @BOOK{Meyer2011, diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index ecb80d6..074048d 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -8,7 +8,7 @@ paper = a4, twoside, openright, BCOR = 5mm, headinclude, footexclude, % font size - fontsize = 11pt, parskip = half, + fontsize = 11pt, % style of empty pages (after chapters) cleardoublepage = empty, % extra sections @@ -25,15 +25,18 @@ \usepackage{tex/docstyle} %% Pretty figures -\usepackage{circuitikz} % Electric diagrams -\usepackage{pgfplots} % Pretty plots -\usepackage{tikz} % Pretty drawings +\usepackage{circuitikz} % Electric diagrams +\usepackage{pgfplots} % Pretty plots +\usepackage{tikz} % Pretty drawings +\usepackage{tikz-3dplot} % More dimensions! \usetikzlibrary{ calc, positioning, backgrounds, + decorations.pathreplacing, matrix, + arrows, } \pgfdeclarelayer{background} \pgfdeclarelayer{foreground} diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile index e0690ba..d5f02ab 100644 --- a/doc/thesis/Makefile +++ b/doc/thesis/Makefile @@ -18,7 +18,9 @@ SOURCES := \ figures/tikz/overview.tex \ figures/tikz/psk-constellation.tex \ figures/tikz/qam-modulator.tex \ - figures/tikz/qam-constellation.tex + figures/tikz/qam-constellation.tex \ + figures/tikz/multipath-sketch.tex \ + figures/tikz/multipath-impulse-response.tex # Get the main file from the file MAIN := $(shell sed -ne 's/^.*\!TeX root =\(.*\)$$/\1/ p' $(SOURCES)) diff --git a/doc/thesis/chapters/introduction.tex b/doc/thesis/chapters/introduction.tex index e2ccd46..965f31b 100644 --- a/doc/thesis/chapters/introduction.tex +++ b/doc/thesis/chapters/introduction.tex @@ -6,9 +6,11 @@ It is undeniable that in the last two decades modern wireless devices have become extremely ubiquitous, and are no longer employed under carefully chosen conditions. -Nowadays smart phones and internet of things (IoT) devices are carried around by everyone and have to work in environments that are very far from ideal. Furthermore, next generation wireless devices in urban environments will also include vehicles (cars, buses and trains)\cite{AntonescuTB17}, where reliability of intra-vehicular communication directly translates into safety. Whereas in rural regions, developing countries as well as 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 and 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 other low-user density areas wireless transmission links using mesh networks have become a practical alternative to wired broadband \cite{Macmillan2019tidal,Subramanian2006rethinking,Flickenger2007wireless}. -All of the mentioned cases have a common problem caused by \emph{the fading effect}, which degrade the reliability of the link\cite{Mathis}. This was foreseen\cite{Frederiksen2002overview,Maddocks1993introduction} and today most modern transmission schemes implement measures to reduce the effects fading\cite{Mathis,Hsu}. +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}. + +In this work we are going to study the multipath fading effect, and how it affects modern digital transmission systems that uses quadrature amplitude (QAM) and phase shift keying (PSK) modulation. \section{Task description} diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index 0cbccd2..41e2314 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -33,7 +33,7 @@ In this section we will briefly give the mathematical background required by the } \end{figure} -Quadrature amplitude modulation is a family of modern digital modulation methods, that use an analog carrier signal. The simple yet effective idea behind QAM is to encode extra information into an orthogonal carrier signal, thus increasing the number of bits sent per unit of time. A block diagram of the process is shown in figure \ref{fig:quadrature-modulation}. +Quadrature amplitude modulation is a family of modern digital modulation methods, that use an analog carrier signal. The simple yet effective idea behind QAM is to encode extra information into an orthogonal carrier signal, thus increasing the number of bits sent per unit of time \cite{Gallager,Kneubuehler,Mathis,Hsu}. A block diagram of the process is shown in figure \ref{fig:quadrature-modulation}. %% TODO: Quick par on "we will dicusss M-Ary QAM, M is 2^something" @@ -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 to do it is to use a so called bit splitter, that converts the continuous bitstream \(m(n)\) into pairs of chunks of \(\sqrt{M}\) bits. 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. The reason will become more clear later. +As mentioned earlier, quadrature modulation allows sending more than one bit per unit time. The first step to do it is to use a so called bit splitter, that converts the continuous bitstream \(m(n)\) into pairs of chunks of \(\sqrt{M}\) bits. 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} @@ -51,7 +51,7 @@ Both bit vectors \(\vec{m}_i, \vec{m}_q \in \{0,1\}^{\sqrt{M}}\) are sent throug \begin{equation} m_i(t) = \text{Level}(\vec{m}_i) \cdot p(t), \end{equation} -i.e. a pulse function\footnote{Typically a root raised cosine to optimize for bandwidth.} \(p(t)\) scaled by the interpreted binary value, written here using a ``Level'' function. So at this point a level of each analog waveform is encodes \(\sqrt{M}\) bits per unit time, and there are two of such waveforms. +i.e. a pulse function\footnote{Typically a root raised cosine to optimize for bandwidth \cite{Hsu}.} \(p(t)\) scaled by the interpreted binary value, written here using a ``Level'' function. So at this point a level of each analog waveform is encodes \(\sqrt{M}\) bits per unit time, and there are two of such waveforms. \paragraph{Mixer} @@ -61,7 +61,7 @@ Having analog level signals, it is this now possible to mix them with radio freq \subsection{Orthogonality of carrier signals} -Before explaining how the two carrier signals are generated, we first need to discuss some important mathematical properties \(\phi_i\) and \(\phi_q\) need to have, in order to modulate two messages over the same frequency \(\omega_c\). The two carriers need to be \emph{orthonormal}\footnote{Actually orthogonality alone would be sufficient, however then the left side of \eqref{eqn:orthonormal-condition} would not equal 1, and an inconvenient factor would be introduced in many later equations.} to each other, mathematically this is expressed by the conditions +Before explaining how the two carrier signals are generated, we first need to discuss some important mathematical properties \(\phi_i\) and \(\phi_q\) need to have, in order to modulate two messages over the same frequency \(\omega_c\). The two carriers need to be \emph{orthonormal}\footnote{Actually orthogonality alone would be sufficient, however then the left side of \eqref{eqn:orthonormal-condition} would not equal 1, and an inconvenient factor would be introduced in many later equations \cite{Gallager,Hsu}.} to each other, mathematically this is expressed by the conditions \begin{subequations} \label{eqn:orthonormal-conditions} \begin{align} \langle \phi_i, \phi_q \rangle @@ -97,11 +97,13 @@ If \(\phi_i\) is a real valued signal (which is typical) it is possible to find = \frac{1}{\pi} \int_\mathbb{R} \frac{g(\tau)}{t - \tau} \,d\tau = \frac{1}{\pi} \int_\mathbb{R} \frac{g(t - \tau)}{\tau} \,d\tau, \end{equation} -i.e. a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies. It is a known property of the Hilbert transform that given a real valued function \(g(t)\) then \(\langle g, \hilbert g \rangle = 0\). +i.e. a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies \cite{Hsu,Gallager}. It is a known property of the Hilbert transform that given a real valued function \(g(t)\) then \(\langle g, \hilbert g \rangle = 0\) \cite{Kschischang,Kneubuehler}. In practice \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = \hilbert \phi_i(t) = \sin(\omega_c t)\). \paragraph{Oscillator and phase shifter} +\subsection{Spectral properties of a QAM signal} + \begin{figure} \hfill \begin{subfigure}{.4\linewidth} @@ -135,34 +137,62 @@ Two bits are modulated at ones with the same bandwidth as a 2-PSK so more inform Most times there is noise and the points on the constellation diagram become a surface. If the surfaces overlap there will be a problem with decoding. -\section{Chanel noise and fading} +\section{Wireless channel} -\subsection{Geometric Model} +In the previous section, we have discussed how the data is modulated and demodulated at the two ends of the transmission system. In this section we will discuss what happens between the sender and receiver, when the modulated passband signal is transmitted wirelessly. +In theory because wireless transmission happens through electromagnetic radiation, to model a wireless channel one would need to solve Maxwell's equations either for the electric or magnetic field, however in practice that is not (analytically) possible. Instead what is typically done, is to model the impulse response of the channel using a geometrical or statistical model, parametrized by a set of coefficients that are either simulated or measured experimentally \cite{Gallager}. -\subsection{Statistical Model} +In our model we are going to include an additive white Gaussian noise (AWGN) and a Rician (or Rayleighan) fading; both are required to model physical effects of the real world. The former in particular is relevant today, as it mathematically describes dense urban environments. -%% TODO: write about advantage of statistical model instead of geometric +\subsection{Additive white Gaussian noise} -\paragraph{Continuous time model} +%% TODO: Discuss thermal stuff etc? -Continuous time small scale fading channel response. +\subsection{Geometric multipath fading model} -time varying channel impulse response: -\begin{equation} - h(t, \tau) = \sum_k c_k (t) \delta(\tau - \tau_k(t)) -\end{equation} +The simplest way to understand the multipath fading, is to consider it from a geometrical perspective. Figure \ref{fig:multipath-sketch} is a sketch a wireless transmission system affected by multipath fading. The sender's antenna radiates an electromagnetic wave in the direction of the receiver (red line), however even under the best conditions a part of the signal will be dispersed in other directions (blue lines). -received signal \(y = h * x\), i.e. convolution with channel model. +\begin{figure} + \centering + \input{figures/tikz/multipath-sketch} + \caption{ + Sketch of channel with multipath fading + \label{fig:multipath-sketch} + } +\end{figure} -\subsection{Time discretization of the model} +The problem is that, as is evident from geometry, some paths are longer than others. And thus the signal is received by the received multiple times, each with different phase shifts \cite{Gallager,Messier}. To mathematically model this effect, we describe the received signal \(r(t)\) as a linear combination of delayed copies of the sent signal \(s(t)\), each with a different phase shift \(\tau_k\): +\begin{equation} \label{eqn:geom-multipath-rx} + r(t) = \sum_k c_k s(t - \tau_k). +\end{equation} +The linearity of the model is justified by the assumption that the electromagnetic waves act linearly (superposition holds) \cite{Gallager}. How many copies of \(s(t)\) (usually referred to as ``taps'') should be included in the formula, depends on the precision requirements of the model. -%% TODO: explain why +A further complication arises, when one end (or both) is not stationary. In that case the lengths of the paths change over time, as a result both the delay of each copy \(\tau_k\) as well as the amplitudes \(c_k\) become functions of time: \(\tau_k(t)\) and \(c_k(t)\) respectively \cite{Gallager,Messier}. Even worse is when the velocity at which it is moving is high, because then Doppler shifts of the electromagnetic wave frequency become non negligible \cite{Gallager}. -Assume \(x\) is a time discrete signal with and bandwidth \(W\), thus the pulse is sinc shaped -\begin{equation} - x(t) = \sum_n x(n) \sinc(t/T - n) +We can thus conclude that the arrangement can be modelled as a linear time \emph{variant} system (LTV), if either the sender or receiver (or both) is moving, and as a linear time \emph{invariant} (LTI) systems if both ends are stationary. Regardless of which of the two cases, just the linearity is sufficient to approximate the channel as finite impulse response (FIR) filter \cite{Messier}. Mathematically we can rewrite LTV version of equation \eqref{eqn:geom-multipath-rx} using a convolution product as following: +\begin{align*} + r(t) = \sum_k c_k(t) s(t - \tau_k(t)) &= \sum_k c_k(t) \int s(t') \delta(t' - \tau_k(t)) \,dt' \\ + &= \int s(t') \sum_k c_k(t) \delta(t' - \tau_k(t)) \,dt' = s(t') * h(t, t'), +\end{align*} +obtaining a new function +\begin{equation} \label{eqn:multipath-impulse-response} + h(t,t') = \sum_k c_k(t) \delta(t' - \tau_k(t)), \end{equation} -Ideal sampling at rate \(2W\) of \(y\) gives +that describes the \emph{impulse response} of the channel. This function is depends on two time parameters: actual time \(t\) and convolution time \(t'\), since after the convolution the latter is removed. To better understand \(h(t,t')\), consider an example in shown in figure \ref{fig:multipath-impulse-response}. Each stem represents a weighted Dirac delta, so each series of stems of the same color, along the convolution time \(t'\) axis, is a channel response at some specific time \(t\). Along the other \(t\) axis we see how the entire channel response changes over time. Notice that the stems are not quite aligned to the \(t'\) time raster (dotted lines), that is because in equation \eqref{eqn:multipath-impulse-response} not only the weights \(c_k\) but also the delays \(\tau_k\) are time dependent. + +\begin{figure} + \centering + \input{figures/tikz/multipath-impulse-response} + \caption{ + LTV impulse response of a multipath fading channel. + \label{fig:multipath-impulse-response} + } +\end{figure} + + +\subsection{Statistical multipath fading model} + +%% TODO: write about advantage of statistical model instead of geometric \section{Receiver DSP chain} diff --git a/doc/thesis/figures/tikz/multipath-impulse-response.tex b/doc/thesis/figures/tikz/multipath-impulse-response.tex new file mode 100644 index 0000000..4826b6f --- /dev/null +++ b/doc/thesis/figures/tikz/multipath-impulse-response.tex @@ -0,0 +1,34 @@ +% vim: set ts=2 sw=2 noet: +\tdplotsetmaincoords{70}{40} +\begin{tikzpicture}[tdplot_main_coords, font = \footnotesize\ttfamily] + \draw[thick, -latex] (0,0,0) -- node[sloped, midway, below, gray] {Effect of the channel} (7,0,0) node[right] {\(t'\)}; + \draw[thick, -latex] (0,0,0) -- node[sloped, midway, above, gray] {How the channel changes} (0,7,0) node[right] {\(t\)}; + \draw[thick, -latex] (0,0,0) -- (0,0,2) node[above] {\(h(t,t')\)}; + + \foreach \y in {1,2,...,4}{ + \draw[dashed, gray] (0,1.5*\y,0) -- ++(7,0,0); + } + + \foreach \x in {1,2,...,6}{ + \draw[dotted, gray] (\x,0,0) -- ++(0,7,0); + } + + % draw 4 responses + \begin{scope}[very thick, -{Circle[fill=white]}] + \foreach \x/\v in {.8/1, 2.2/2, 2.9/1, 4/4, 5.1/7, 5.8/3}{ + \draw[blue!80!red] (\x,1.5*4,0) -- ++(0,0,\v/3); + } + + \foreach \x/\v in {.9/2, 2.1/2, 3/1, 4/3, 5/6, 6/3}{ + \draw[blue!60!red] (\x,1.5*3,0) -- ++(0,0,\v/3); + } + + \foreach \x/\v in {.6/1, 2/1, 2.8/3, 4.1/4, 5.5/4, 6.2/1}{ + \draw[blue!40!red] (\x,1.5*2,0) -- ++(0,0,\v/3); + } + + \foreach \x/\v in {1.1/2, 1.8/1, 3/2, 3.7/1, 4.8/3, 5.8/1}{ + \draw[blue!20!red] (\x,1.5,0) -- ++(0,0,\v/3); + } + \end{scope} +\end{tikzpicture} diff --git a/doc/thesis/figures/tikz/multipath-sketch.tex b/doc/thesis/figures/tikz/multipath-sketch.tex new file mode 100644 index 0000000..096f06f --- /dev/null +++ b/doc/thesis/figures/tikz/multipath-sketch.tex @@ -0,0 +1,37 @@ +% 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) {}; + }, + ] + + % Antennas + \draw (0,2) pic (T) {antenna} node[above left = 3mm] {\sffamily\bfseries TX}; + \draw (5,0) pic (R) {antenna} node[above right = 3mm] {\sffamily\bfseries RX}; + + % wall coefficients + \draw[thick] (4.75, 2.25) to[out = -20, in = 180] ++(1.2,-.5) node[right] {\(|\Gamma| > 0\)}; + + % walls + \draw[thick, fill = lightgray!20] (3,2) -- ++(2,-.5) -- ++(0,1) -- ++(-2,.5) -- cycle; + \draw[thick, fill = lightgray!20] (-1,0) -- ++(3,0) -- ++(1,-.5) -- ++(-3,0) -- cycle; + + + % reflected signals + \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[above, pos = .5] {\(\tau_2\)} (4,2.25) -- (R-center); + \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[left, pos = .7] {\(\tau_3\)} (1,-.25) -- (R-center); + \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[above, pos = .5] {\(\tau_4\)} (-2.5,1.5) -- (R-center); + + % another wall + \draw[thick, fill = lightgray!20] (-2,0) -- ++(-1,.5) -- ++(0,2) --++(1,-.5) -- cycle; + + % LOS path + \draw[line width = 1mm, red!50!white, + decorate, decoration = { + expanding waves, angle = 5, segment length = 2mm + } + ] (T-center) -- node[above = 2mm, pos = .5] {\(\tau_1\)} (R-center); +\end{tikzpicture} -- cgit v1.2.1 From a7f21af3c4dbd3190e4b696258c9fb733e425c25 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 31 Oct 2021 23:43:23 +0100 Subject: Fix notation and typos, add placeholder titlepage --- doc/thesis/Fading.tex | 23 ++++++++++++---- doc/thesis/chapters/theory.tex | 30 ++++++++++++-------- .../figures/tikz/multipath-impulse-response.tex | 4 +-- doc/thesis/figures/tikz/multipath-sketch.tex | 8 +++--- doc/thesis/tex/docstyle.sty | 2 +- doc/thesis/tex/titlepage.tex | 32 +--------------------- 6 files changed, 44 insertions(+), 55 deletions(-) (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index 074048d..b80b9e7 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -52,23 +52,36 @@ %% Recompute page margins \KOMAoptions{DIV=default} +%% Metadata +\title{Multipath fading demonstration using software defined radio} +\author{Naoki Sean Pross \and Sara Cinzia Halter} +\date{Fall semester 2021} + \begin{document} \hypersetup{pageanchor = false} - %% TODO: titlepage + + %% TODO: create a proper titlepage + \maketitle + % \include{tex/titlepage} \cleardoublepage \pagenumbering{roman} + \setcounter{page}{1} + + \begin{abstract} + %% TODO: write abstract + Here goes the abstract + \end{abstract} - %% TODO: abstract - % \begin{abstract} - % \end{abstract} + \tableofcontents + \cleardoublepage \hypersetup{pageanchor = true} \pagenumbering{arabic} \setcounter{page}{1} - \pagestyle{scrheadings} + \include{chapters/introduction} \include{chapters/theory} \include{chapters/implementation} diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index 41e2314..4176ea4 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -139,9 +139,9 @@ If the surfaces overlap there will be a problem with decoding. \section{Wireless channel} -In the previous section, we have discussed how the data is modulated and demodulated at the two ends of the transmission system. In this section we will discuss what happens between the sender and receiver, when the modulated passband signal is transmitted wirelessly. +In the previous section, we discussed how the data is modulated and demodulated at the two ends of the transmission system. In this section we will discuss what happens between the sender and receiver when the modulated passband signal is transmitted wirelessly. -In theory because wireless transmission happens through electromagnetic radiation, to model a wireless channel one would need to solve Maxwell's equations either for the electric or magnetic field, however in practice that is not (analytically) possible. Instead what is typically done, is to model the impulse response of the channel using a geometrical or statistical model, parametrized by a set of coefficients that are either simulated or measured experimentally \cite{Gallager}. +In theory because wireless transmission happens through electromagnetic radiation, to model a wireless channel one would need to solve Maxwell's equations for either the electric or magnetic field, however in practice that is not (analytically) possible. Instead what is typically done, is to model the impulse response of the channel using a geometrical or statistical model, parametrized by a set of coefficients that are either simulated or measured experimentally \cite{Gallager}. In our model we are going to include an additive white Gaussian noise (AWGN) and a Rician (or Rayleighan) fading; both are required to model physical effects of the real world. The former in particular is relevant today, as it mathematically describes dense urban environments. @@ -151,7 +151,7 @@ In our model we are going to include an additive white Gaussian noise (AWGN) and \subsection{Geometric multipath fading model} -The simplest way to understand the multipath fading, is to consider it from a geometrical perspective. Figure \ref{fig:multipath-sketch} is a sketch a wireless transmission system affected by multipath fading. The sender's antenna radiates an electromagnetic wave in the direction of the receiver (red line), however even under the best conditions a part of the signal will be dispersed in other directions (blue lines). +The simplest way to understand the multipath fading, is to consider it from a geometrical perspective. Figure \ref{fig:multipath-sketch} is a sketch a wireless transmission system affected by multipath fading. The sender's antenna radiates an electromagnetic wave in the direction of the receiver (red line), however even under the best circumstances a part of the signal is dispersed in other directions (blue lines). \begin{figure} \centering @@ -162,24 +162,25 @@ The simplest way to understand the multipath fading, is to consider it from a ge } \end{figure} -The problem is that, as is evident from geometry, some paths are longer than others. And thus the signal is received by the received multiple times, each with different phase shifts \cite{Gallager,Messier}. To mathematically model this effect, we describe the received signal \(r(t)\) as a linear combination of delayed copies of the sent signal \(s(t)\), each with a different phase shift \(\tau_k\): +The problem is that, as is geometrically evident, some paths are longer than others. Thus the signal is received by the receiver multiple times with different phase shifts \cite{Gallager,Messier}. To mathematically model this effect, we describe the received signal \(r(t)\) as a linear combination of delayed copies of the sent signal \(s(t)\), each with a different attenuation \(c_k\) and phase shift \(\tau_k\): \begin{equation} \label{eqn:geom-multipath-rx} r(t) = \sum_k c_k s(t - \tau_k). \end{equation} -The linearity of the model is justified by the assumption that the electromagnetic waves act linearly (superposition holds) \cite{Gallager}. How many copies of \(s(t)\) (usually referred to as ``taps'') should be included in the formula, depends on the precision requirements of the model. -A further complication arises, when one end (or both) is not stationary. In that case the lengths of the paths change over time, as a result both the delay of each copy \(\tau_k\) as well as the amplitudes \(c_k\) become functions of time: \(\tau_k(t)\) and \(c_k(t)\) respectively \cite{Gallager,Messier}. Even worse is when the velocity at which it is moving is high, because then Doppler shifts of the electromagnetic wave frequency become non negligible \cite{Gallager}. +The linearity of the model is justified by the assumption that the underlying electromagnetic waves behave linearly (superposition holds) \cite{Gallager}. How many copies of \(s(t)\) (usually referred to as ``taps'' or ``rays'') should be included in the formula, depends on the precision requirements of the model. -We can thus conclude that the arrangement can be modelled as a linear time \emph{variant} system (LTV), if either the sender or receiver (or both) is moving, and as a linear time \emph{invariant} (LTI) systems if both ends are stationary. Regardless of which of the two cases, just the linearity is sufficient to approximate the channel as finite impulse response (FIR) filter \cite{Messier}. Mathematically we can rewrite LTV version of equation \eqref{eqn:geom-multipath-rx} using a convolution product as following: +A further complication arises, when one end (or both) is not stationary. In that case the lengths of the paths change over time, and as a result both the delays \(\tau_k\) as well as the attenuations \(c_k\) become functions of time: \(\tau_k(t)\) and \(c_k(t)\) respectively \cite{Gallager,Messier}. Even worse is when the velocity at which the device is moving is high, because then Doppler shifts of the electromagnetic wave frequency become non negligible \cite{Gallager}. + +We have thus observed that the arrangement can be modelled as a linear time-\emph{varying} system (LTV), if the sender or the receiver (or anything else in the channel) is moving, and as a linear time \emph{invariant} (LTI) system if the geometry is stationary. Regardless of which of the two cases, linearity alone is sufficient to approximate the channel as finite impulse response (FIR) filter \cite{Messier}. Mathematically we can rewrite LTV version of equation \eqref{eqn:geom-multipath-rx} using a convolution product as following: \begin{align*} - r(t) = \sum_k c_k(t) s(t - \tau_k(t)) &= \sum_k c_k(t) \int s(t') \delta(t' - \tau_k(t)) \,dt' \\ - &= \int s(t') \sum_k c_k(t) \delta(t' - \tau_k(t)) \,dt' = s(t') * h(t, t'), + r(t) = \sum_k c_k(t) s(t - \tau_k(t)) &= \sum_k c_k(t) \int_\mathbb{R} s(\tau) \delta(\tau - \tau_k(t)) \,d\tau \\ + &= \int_\mathbb{R} s(\tau) \sum_k c_k(t) \delta(\tau - \tau_k(t)) \,dt' = s(\tau) * h(t, \tau), \end{align*} obtaining a new function \begin{equation} \label{eqn:multipath-impulse-response} - h(t,t') = \sum_k c_k(t) \delta(t' - \tau_k(t)), + h(t,\tau) = \sum_k c_k(t) \delta(\tau - \tau_k(t)), \end{equation} -that describes the \emph{impulse response} of the channel. This function is depends on two time parameters: actual time \(t\) and convolution time \(t'\), since after the convolution the latter is removed. To better understand \(h(t,t')\), consider an example in shown in figure \ref{fig:multipath-impulse-response}. Each stem represents a weighted Dirac delta, so each series of stems of the same color, along the convolution time \(t'\) axis, is a channel response at some specific time \(t\). Along the other \(t\) axis we see how the entire channel response changes over time. Notice that the stems are not quite aligned to the \(t'\) time raster (dotted lines), that is because in equation \eqref{eqn:multipath-impulse-response} not only the weights \(c_k\) but also the delays \(\tau_k\) are time dependent. +that describes the \emph{impulse response} of the channel. This function is dependant on two time parameters: actual time \(t\) and convolution time \(\tau\). To better understand \(h(t,\tau)\), consider an example in shown in figure \ref{fig:multipath-impulse-response}. Each stem represents a weighted Dirac delta, so each series of stems of the same color, along the convolution time \(\tau\) axis, is a channel response at some specific time \(t\). Along the other \(t\) axis we see how the entire channel response changes over time\footnote{In the figure only a finite number of stems was drawn, but actually \(h(t,\tau)\) is continuous in \(t\), i.e. the weights \(c_k(t)\) of the Dirac deltas change continuously.}. Notice that the stems are not quite aligned to the \(\tau\) time raster (dotted lines), that is because in equation \eqref{eqn:multipath-impulse-response} not only the weights \(c_k\) but also the delays \(\tau_k\) are time dependent. \begin{figure} \centering @@ -190,8 +191,13 @@ that describes the \emph{impulse response} of the channel. This function is depe } \end{figure} +\subsection{Spectrum of a multipath fading channel} + +With a continuous time channel model we can now discuss the spectral properties of a fading channel. For this section, we will assume a LTI channel impulse response \(h(\tau)\) and consider a simple geometry. + +\subsection{Discrete-time model} -\subsection{Statistical multipath fading model} +\subsection{Statistical model} %% TODO: write about advantage of statistical model instead of geometric diff --git a/doc/thesis/figures/tikz/multipath-impulse-response.tex b/doc/thesis/figures/tikz/multipath-impulse-response.tex index 4826b6f..b643e28 100644 --- a/doc/thesis/figures/tikz/multipath-impulse-response.tex +++ b/doc/thesis/figures/tikz/multipath-impulse-response.tex @@ -1,9 +1,9 @@ % vim: set ts=2 sw=2 noet: \tdplotsetmaincoords{70}{40} \begin{tikzpicture}[tdplot_main_coords, font = \footnotesize\ttfamily] - \draw[thick, -latex] (0,0,0) -- node[sloped, midway, below, gray] {Effect of the channel} (7,0,0) node[right] {\(t'\)}; + \draw[thick, -latex] (0,0,0) -- node[sloped, midway, below, gray] {Effect of the channel} (7,0,0) node[right] {\(\tau\)}; \draw[thick, -latex] (0,0,0) -- node[sloped, midway, above, gray] {How the channel changes} (0,7,0) node[right] {\(t\)}; - \draw[thick, -latex] (0,0,0) -- (0,0,2) node[above] {\(h(t,t')\)}; + \draw[thick, -latex] (0,0,0) -- (0,0,2) node[above] {\(h(t,\tau)\)}; \foreach \y in {1,2,...,4}{ \draw[dashed, gray] (0,1.5*\y,0) -- ++(7,0,0); diff --git a/doc/thesis/figures/tikz/multipath-sketch.tex b/doc/thesis/figures/tikz/multipath-sketch.tex index 096f06f..d5bc5bb 100644 --- a/doc/thesis/figures/tikz/multipath-sketch.tex +++ b/doc/thesis/figures/tikz/multipath-sketch.tex @@ -21,9 +21,9 @@ % reflected signals - \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[above, pos = .5] {\(\tau_2\)} (4,2.25) -- (R-center); - \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[left, pos = .7] {\(\tau_3\)} (1,-.25) -- (R-center); - \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[above, pos = .5] {\(\tau_4\)} (-2.5,1.5) -- (R-center); + \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[above, pos = .5] {\(\tau_2,c_2\)} (4,2.25) -- (R-center); + \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[left, pos = .7] {\(\tau_3,c_3\)} (1,-.25) -- (R-center); + \draw[line width = 2pt, blue!50!white, -latex] (T-center) -- node[above, pos = .5] {\(\tau_4,c_4\)} (-2.5,1.5) -- (R-center); % another wall \draw[thick, fill = lightgray!20] (-2,0) -- ++(-1,.5) -- ++(0,2) --++(1,-.5) -- cycle; @@ -33,5 +33,5 @@ decorate, decoration = { expanding waves, angle = 5, segment length = 2mm } - ] (T-center) -- node[above = 2mm, pos = .5] {\(\tau_1\)} (R-center); + ] (T-center) -- node[above = 2mm, pos = .5] {\(\tau_1,c_1\)} (R-center); \end{tikzpicture} diff --git a/doc/thesis/tex/docstyle.sty b/doc/thesis/tex/docstyle.sty index 3f0d76f..ae33342 100644 --- a/doc/thesis/tex/docstyle.sty +++ b/doc/thesis/tex/docstyle.sty @@ -17,7 +17,7 @@ \PassOptionsToPackage{scrlayer-scrpage}{autooneside = false} \RequirePackage{scrlayer-scrpage} -\setkomafont{pagenumber}{\sffamily\bfseries} +\setkomafont{pagenumber}{\sffamily\bfseries\slshape} \setkomafont{pageheadfoot}{\itshape} % Add marks diff --git a/doc/thesis/tex/titlepage.tex b/doc/thesis/tex/titlepage.tex index 9bcd127..266cde1 100644 --- a/doc/thesis/tex/titlepage.tex +++ b/doc/thesis/tex/titlepage.tex @@ -1,35 +1,5 @@ % vim: set ts=2 sw=2 noet: \begin{titlepage} - \pdfbookmark[1]{\myTitle}{titlepage} - \begin{addmargin}[-1cm]{-3cm} - \begin{center} - \large - - \hfill - - \vfill - - \begingroup - \color{CTtitle}\spacedallcaps{\myTitle} \\ \bigskip - \endgroup - - \spacedlowsmallcaps{\myName} - - \vfill - - % \includegraphics[width=6cm]{gfx/TFZsuperellipse_bw} \\ \medskip - - % \mySubtitle \\ \medskip - % \myDegree \\ - \myDepartment \\ - \myFaculty \\ - \myUni \\ \bigskip - - \myTime\ -- \myVersion - - \vfill - - \end{center} - \end{addmargin} + hello \end{titlepage} -- cgit v1.2.1 From 5d395dc3b2c8e9c94cf72f235f63586cde84903a Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 1 Nov 2021 00:22:02 +0100 Subject: On the FT of h(t,tau) --- doc/thesis/chapters/theory.tex | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'doc/thesis') diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index 4176ea4..2c4687b 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -56,7 +56,7 @@ i.e. a pulse function\footnote{Typically a root raised cosine to optimize for ba \paragraph{Mixer} -Having analog level signals, it is this now possible to mix them with radio frequency carriers. Because there are two waveforms, one might expect that two carrier frequencies are necessary, however this is not the case. The two component \(m_i(t)\) and \(m_q(t)\) are mixed with two different periodic signals \(\phi_i(t)\) and \(\phi_q(t)\) that have the same frequency \(\omega_c = 2\pi / T\). Why this is possible is explained in the next section. +Having analog level signals, it is this now possible to mix them with radio frequency carriers. Because there are two waveforms, one might expect that two carrier frequencies are necessary, however this is not the case. The two component \(m_i(t)\) and \(m_q(t)\) are mixed with two different periodic signals \(\phi_i(t)\) and \(\phi_q(t)\) that have the same frequency \(\omega_c = 2\pi / T\). How this is possible is explained in the next section. \subsection{Orthogonality of carrier signals} @@ -162,7 +162,7 @@ The simplest way to understand the multipath fading, is to consider it from a ge } \end{figure} -The problem is that, as is geometrically evident, some paths are longer than others. Thus the signal is received by the receiver multiple times with different phase shifts \cite{Gallager,Messier}. To mathematically model this effect, we describe the received signal \(r(t)\) as a linear combination of delayed copies of the sent signal \(s(t)\), each with a different attenuation \(c_k\) and phase shift \(\tau_k\): +The problem is that, as is geometrically evident, some paths are longer than others. Because of this fact, the signal is seen by the receiver multiple times with different phase shifts \cite{Gallager,Messier}. To mathematically model this effect, we describe the received signal \(r(t)\) as a linear combination of delayed copies of the sent signal \(s(t)\), each with a different attenuation \(c_k\) and phase shift \(\tau_k\): \begin{equation} \label{eqn:geom-multipath-rx} r(t) = \sum_k c_k s(t - \tau_k). \end{equation} @@ -174,13 +174,13 @@ A further complication arises, when one end (or both) is not stationary. In that We have thus observed that the arrangement can be modelled as a linear time-\emph{varying} system (LTV), if the sender or the receiver (or anything else in the channel) is moving, and as a linear time \emph{invariant} (LTI) system if the geometry is stationary. Regardless of which of the two cases, linearity alone is sufficient to approximate the channel as finite impulse response (FIR) filter \cite{Messier}. Mathematically we can rewrite LTV version of equation \eqref{eqn:geom-multipath-rx} using a convolution product as following: \begin{align*} r(t) = \sum_k c_k(t) s(t - \tau_k(t)) &= \sum_k c_k(t) \int_\mathbb{R} s(\tau) \delta(\tau - \tau_k(t)) \,d\tau \\ - &= \int_\mathbb{R} s(\tau) \sum_k c_k(t) \delta(\tau - \tau_k(t)) \,dt' = s(\tau) * h(t, \tau), + &= \int_\mathbb{R} s(\tau) \sum_k c_k(t) \delta(\tau - \tau_k(t)) \,d\tau = s(\tau) * h(\tau, t), \end{align*} obtaining a new function \begin{equation} \label{eqn:multipath-impulse-response} - h(t,\tau) = \sum_k c_k(t) \delta(\tau - \tau_k(t)), + h(\tau, t) = \sum_k c_k(t) \delta(\tau - \tau_k(t)), \end{equation} -that describes the \emph{impulse response} of the channel. This function is dependant on two time parameters: actual time \(t\) and convolution time \(\tau\). To better understand \(h(t,\tau)\), consider an example in shown in figure \ref{fig:multipath-impulse-response}. Each stem represents a weighted Dirac delta, so each series of stems of the same color, along the convolution time \(\tau\) axis, is a channel response at some specific time \(t\). Along the other \(t\) axis we see how the entire channel response changes over time\footnote{In the figure only a finite number of stems was drawn, but actually \(h(t,\tau)\) is continuous in \(t\), i.e. the weights \(c_k(t)\) of the Dirac deltas change continuously.}. Notice that the stems are not quite aligned to the \(\tau\) time raster (dotted lines), that is because in equation \eqref{eqn:multipath-impulse-response} not only the weights \(c_k\) but also the delays \(\tau_k\) are time dependent. +that describes the \emph{impulse response} of the channel. This function is dependant on two time parameters: actual time \(t\) and convolution time \(\tau\). To better understand \(h(\tau, t)\), consider an example in shown in figure \ref{fig:multipath-impulse-response}. Each stem represents a weighted Dirac delta, so each series of stems of the same color, along the convolution time \(\tau\) axis, is a channel response at some specific time \(t\). Along the other \(t\) axis we see how the entire channel response changes over time\footnote{In the figure only a finite number of stems was drawn, but actually \(h(\tau, t)\) is continuous in \(t\), i.e. the weights \(c_k(t)\) of the Dirac deltas change continuously.}. Notice that the stems are not quite aligned to the \(\tau\) time raster (dotted lines), that is because in equation \eqref{eqn:multipath-impulse-response} not only the weights \(c_k\) but also the delays \(\tau_k\) are time dependent. \begin{figure} \centering @@ -193,7 +193,13 @@ that describes the \emph{impulse response} of the channel. This function is depe \subsection{Spectrum of a multipath fading channel} -With a continuous time channel model we can now discuss the spectral properties of a fading channel. For this section, we will assume a LTI channel impulse response \(h(\tau)\) and consider a simple geometry. +With a continuous time channel model we can now discuss the spectral properties of a fading channel, since the frequency response is the Fourier transform of the impulse response, mathematically \(H(f, t) = \fourier h(\tau, t)\). In this case however \(h(\tau, t)\) depends on two time variables, but that is actually not an issue, it just means that the frequency response is also changing with time. Hence we perform the Fourier transform with respect to the channel (convolution) time variable \(\tau\) to obtain +\begin{equation} \label{eqn:multipath-frequency-response} + H(f, t) = \int_\mathbb{R} \sum_k c_k(t) \delta(\tau - \tau_k(t)) e^{-2\pi jf\tau} \, d\tau + = \sum_k c_k(t) e^{-2\pi jf \tau_k(t)}. +\end{equation} + +Equation \eqref{eqn:multipath-frequency-response} indicates that the frequency response is has a periodic (complex) sinusoidal shape, which has some important implications. A series of plots of the magnitude of the frequency response is shown in figure \ref{fig:multipath-frequency-response-plots}. \subsection{Discrete-time model} -- cgit v1.2.1 From 3e86fb2e2d187220efb2038a26e68a37f1dc6ff5 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 1 Nov 2021 15:37:41 +0100 Subject: Draw figure for frequency selective channels --- doc/thesis/Fading.tex | 6 + doc/thesis/Makefile | 14 +- doc/thesis/chapters/theory.tex | 15 +- .../figures/data/multipath_frequency_response.dat | 300 +++++++++++++++++++++ .../figures/data/multipath_frequency_response.py | 35 +++ .../tikz/multipath-frequency-response-plots.tex | 70 +++++ 6 files changed, 434 insertions(+), 6 deletions(-) create mode 100644 doc/thesis/figures/data/multipath_frequency_response.dat create mode 100644 doc/thesis/figures/data/multipath_frequency_response.py create mode 100644 doc/thesis/figures/tikz/multipath-frequency-response-plots.tex (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index b80b9e7..1844ceb 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -30,14 +30,20 @@ \usepackage{tikz} % Pretty drawings \usepackage{tikz-3dplot} % More dimensions! +\pgfplotsset{compat=1.17} \usetikzlibrary{ + external, calc, positioning, backgrounds, decorations.pathreplacing, + decorations.markings, matrix, arrows, } +% \tikzexternalize[ + % mode=graphics if exists, + % figure list=true] \pgfdeclarelayer{background} \pgfdeclarelayer{foreground} \pgfsetlayers{background,main,foreground} diff --git a/doc/thesis/Makefile b/doc/thesis/Makefile index d5f02ab..167ad29 100644 --- a/doc/thesis/Makefile +++ b/doc/thesis/Makefile @@ -1,5 +1,5 @@ TEX := xelatex -TEXARGS := -halt-on-error -interaction=nonstopmode +TEXARGS := -halt-on-error -interaction=nonstopmode -shell-escape=1 SOURCES := \ Fading.tex \ @@ -20,7 +20,10 @@ SOURCES := \ figures/tikz/qam-modulator.tex \ figures/tikz/qam-constellation.tex \ figures/tikz/multipath-sketch.tex \ - figures/tikz/multipath-impulse-response.tex + figures/tikz/multipath-impulse-response.tex \ + figures/tikz/multipath-frequency-response-plots.tex + +DATA := figures/data/multipath_frequency_response.dat # Get the main file from the file MAIN := $(shell sed -ne 's/^.*\!TeX root =\(.*\)$$/\1/ p' $(SOURCES)) @@ -34,7 +37,10 @@ endif .PHONY: all all: $(PDF) -%.pdf: %.tex $(SOURCES) +%.dat: %.py + /usr/bin/env python3 $< + +%.pdf: %.tex $(SOURCES) $(DATA) $(TEX) $(TEXARGS) $< # TODO: makeindex biber $(basename $(MAIN)) @@ -42,7 +48,7 @@ all: $(PDF) .PHONY: clean cleanall clean: - @rm -vf *.aux *.aue *.lof *.log *.lot *.fls *.out *.toc *.fmt *.fot *.cb *.cb2 .*.lb *.dvi *.xdv *-converted-to.* *.bbl *.bcf *.blg *-blx.aux *-blx.bib *.run.xml *.fdb_latexmk *.synctex *.synctex\(busy\) *.synctex.gz *.synctex.gz\(busy\) *.pdfsync *.alg *.loa acs-*.bib *.thm *.nav *.pre *.snm *.vrb *.soc *.cut *.cpt *.spl *.ent *.lox *.mf *.acn *.acr *.glg *.glo *.gls *.glsdefs *.lzo *.lzs *.lol + @rm -vf *.aux *.aue *.lof *.log *.lot *.fls *.out *.toc *.fmt *.fot *.cb *.cb2 .*.lb *.dvi *.xdv *-converted-to.* *.bbl *.bcf *.blg *-blx.aux *-blx.bib *.run.xml *.fdb_latexmk *.synctex *.synctex\(busy\) *.synctex.gz *.synctex.gz\(busy\) *.pdfsync *.alg *.loa acs-*.bib *.thm *.nav *.pre *.snm *.vrb *.soc *.cut *.cpt *.spl *.ent *.lox *.mf *.acn *.acr *.glg *.glo *.gls *.glsdefs *.lzo *.lzs *.lol *.auxlock *.figlist @rm -vf tex/*.aux @rm -vf chapters/*.aux diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index 2c4687b..2506333 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -193,13 +193,24 @@ that describes the \emph{impulse response} of the channel. This function is depe \subsection{Spectrum of a multipath fading channel} -With a continuous time channel model we can now discuss the spectral properties of a fading channel, since the frequency response is the Fourier transform of the impulse response, mathematically \(H(f, t) = \fourier h(\tau, t)\). In this case however \(h(\tau, t)\) depends on two time variables, but that is actually not an issue, it just means that the frequency response is also changing with time. Hence we perform the Fourier transform with respect to the channel (convolution) time variable \(\tau\) to obtain +With a continuous time channel model we can now discuss the spectral properties of a fading channel since the frequency response is the Fourier transform of the impulse response, mathematically \(H(f, t) = \fourier h(\tau, t)\). In this case however \(h(\tau, t)\) depends on two time variables, but that is actually not an issue, it just means that the frequency response is also changing with time. Hence we perform the Fourier transform with respect to the channel (convolution) time variable \(\tau\) to obtain \begin{equation} \label{eqn:multipath-frequency-response} H(f, t) = \int_\mathbb{R} \sum_k c_k(t) \delta(\tau - \tau_k(t)) e^{-2\pi jf\tau} \, d\tau = \sum_k c_k(t) e^{-2\pi jf \tau_k(t)}. \end{equation} -Equation \eqref{eqn:multipath-frequency-response} indicates that the frequency response is has a periodic (complex) sinusoidal shape, which has some important implications. A series of plots of the magnitude of the frequency response is shown in figure \ref{fig:multipath-frequency-response-plots}. +Equation \eqref{eqn:multipath-frequency-response} indicates that the frequency response is a periodic complex exponential, which has some important implications. Notice that if there is only one tap (term), the magnitude of \(H(f, t)\) is a constant (with respect to \(f\)) since \(|e^{j\alpha f}| = 1\). This means that the channels attenuates all frequencies by the same amount, therefore it is said to be a \emph{frequency non-selective} channel. Whereas in the case when there is more than one tap, the taps interfere destructively at certain frequencies and the channel is called \emph{frequency selective}. Plots of the frequency response of a two tap channel model are shown in figure \ref{fig:multipath-frequency-response-plots}. On the left is the magnitude of \(H(f, t)\), which presents periodic ``dips'', and on the right complex loci for the two taps (red and blue), as well as their sum (magenta), over the frequency range near the first dip (2 to 2.5 MHz) are shown. + +\begin{figure} + \centering + \resizebox{\linewidth}{!}{ + \input{figures/tikz/multipath-frequency-response-plots} + } + \caption{ + Frequency response of a multipath fading channel. + \label{fig:multipath-frequency-response-plots} + } +\end{figure} \subsection{Discrete-time model} diff --git a/doc/thesis/figures/data/multipath_frequency_response.dat b/doc/thesis/figures/data/multipath_frequency_response.dat new file mode 100644 index 0000000..bb10780 --- /dev/null +++ b/doc/thesis/figures/data/multipath_frequency_response.dat @@ -0,0 +1,300 @@ +1.000000e+05 1.000000e-05 1.996053e-05 1.000000e+00 -1.133108e-15 -8.090170e-01 -5.877853e-01 1.909830e-01 -5.877853e-01 +1.031283e+05 9.696658e-06 1.935262e-05 9.999862e-01 5.253475e-03 -8.071602e-01 -5.903324e-01 1.928260e-01 -5.850790e-01 +1.063545e+05 9.402517e-06 1.876306e-05 9.999448e-01 1.050681e-02 -8.052954e-01 -5.928737e-01 1.946494e-01 -5.823669e-01 +1.096816e+05 9.117299e-06 1.819132e-05 9.998758e-01 1.575985e-02 -8.034226e-01 -5.954092e-01 1.964532e-01 -5.796493e-01 +1.131128e+05 8.840733e-06 1.763683e-05 9.997792e-01 2.101245e-02 -8.015419e-01 -5.979387e-01 1.982374e-01 -5.769262e-01 +1.166513e+05 8.572557e-06 1.709908e-05 9.996550e-01 2.626448e-02 -7.996531e-01 -6.004622e-01 2.000019e-01 -5.741978e-01 +1.203005e+05 8.312515e-06 1.657756e-05 9.995033e-01 3.151578e-02 -7.977564e-01 -6.029798e-01 2.017468e-01 -5.714641e-01 +1.240639e+05 8.060361e-06 1.607177e-05 9.993239e-01 3.676621e-02 -7.958518e-01 -6.054914e-01 2.034721e-01 -5.687252e-01 +1.279450e+05 7.815857e-06 1.558123e-05 9.991170e-01 4.201562e-02 -7.939393e-01 -6.079970e-01 2.051777e-01 -5.659814e-01 +1.319476e+05 7.578769e-06 1.510548e-05 9.988824e-01 4.726388e-02 -7.920189e-01 -6.104966e-01 2.068636e-01 -5.632327e-01 +1.360753e+05 7.348873e-06 1.464406e-05 9.986204e-01 5.251083e-02 -7.900906e-01 -6.129901e-01 2.085297e-01 -5.604792e-01 +1.403322e+05 7.125951e-06 1.419654e-05 9.983307e-01 5.775633e-02 -7.881545e-01 -6.154775e-01 2.101762e-01 -5.577211e-01 +1.447222e+05 6.909791e-06 1.376249e-05 9.980135e-01 6.300024e-02 -7.862105e-01 -6.179587e-01 2.118030e-01 -5.549585e-01 +1.492496e+05 6.700188e-06 1.334150e-05 9.976688e-01 6.824241e-02 -7.842588e-01 -6.204339e-01 2.134100e-01 -5.521915e-01 +1.539186e+05 6.496943e-06 1.293317e-05 9.972965e-01 7.348270e-02 -7.822992e-01 -6.229029e-01 2.149973e-01 -5.494202e-01 +1.587336e+05 6.299863e-06 1.253711e-05 9.968967e-01 7.872096e-02 -7.803319e-01 -6.253656e-01 2.165648e-01 -5.466447e-01 +1.636993e+05 6.108762e-06 1.215295e-05 9.964694e-01 8.395704e-02 -7.783568e-01 -6.278222e-01 2.181126e-01 -5.438652e-01 +1.688203e+05 5.923457e-06 1.178033e-05 9.960146e-01 8.919081e-02 -7.763739e-01 -6.302726e-01 2.196406e-01 -5.410817e-01 +1.741016e+05 5.743774e-06 1.141888e-05 9.955323e-01 9.442212e-02 -7.743834e-01 -6.327166e-01 2.211488e-01 -5.382945e-01 +1.795480e+05 5.569541e-06 1.106827e-05 9.950225e-01 9.965082e-02 -7.723852e-01 -6.351544e-01 2.226373e-01 -5.355036e-01 +1.851648e+05 5.400593e-06 1.072817e-05 9.944852e-01 1.048768e-01 -7.703793e-01 -6.375859e-01 2.241059e-01 -5.327091e-01 +1.909574e+05 5.236771e-06 1.039824e-05 9.939205e-01 1.100998e-01 -7.683657e-01 -6.400110e-01 2.255548e-01 -5.299112e-01 +1.969311e+05 5.077917e-06 1.007819e-05 9.933284e-01 1.153198e-01 -7.663445e-01 -6.424298e-01 2.269839e-01 -5.271100e-01 +2.030918e+05 4.923883e-06 9.767697e-06 9.927089e-01 1.205367e-01 -7.643157e-01 -6.448422e-01 2.283932e-01 -5.243055e-01 +2.094451e+05 4.774521e-06 9.466475e-06 9.920619e-01 1.257502e-01 -7.622793e-01 -6.472482e-01 2.297826e-01 -5.214980e-01 +2.159972e+05 4.629689e-06 9.174237e-06 9.913876e-01 1.309602e-01 -7.602353e-01 -6.496478e-01 2.311523e-01 -5.186875e-01 +2.227543e+05 4.489251e-06 8.890706e-06 9.906859e-01 1.361666e-01 -7.581838e-01 -6.520409e-01 2.325021e-01 -5.158742e-01 +2.297228e+05 4.353073e-06 8.615613e-06 9.899569e-01 1.413693e-01 -7.561248e-01 -6.544275e-01 2.338322e-01 -5.130582e-01 +2.369092e+05 4.221026e-06 8.348697e-06 9.892006e-01 1.465681e-01 -7.540582e-01 -6.568076e-01 2.351424e-01 -5.102395e-01 +2.443205e+05 4.092985e-06 8.089705e-06 9.884169e-01 1.517628e-01 -7.519841e-01 -6.591812e-01 2.364328e-01 -5.074184e-01 +2.519636e+05 3.968827e-06 7.838391e-06 9.876060e-01 1.569533e-01 -7.499026e-01 -6.615483e-01 2.377034e-01 -5.045949e-01 +2.598458e+05 3.848436e-06 7.594517e-06 9.867678e-01 1.621395e-01 -7.478136e-01 -6.639088e-01 2.389543e-01 -5.017692e-01 +2.679746e+05 3.731697e-06 7.357851e-06 9.859024e-01 1.673212e-01 -7.457172e-01 -6.662626e-01 2.401853e-01 -4.989414e-01 +2.763577e+05 3.618499e-06 7.128170e-06 9.850098e-01 1.724984e-01 -7.436133e-01 -6.686099e-01 2.413965e-01 -4.961115e-01 +2.850030e+05 3.508734e-06 6.905255e-06 9.840900e-01 1.776707e-01 -7.415021e-01 -6.709505e-01 2.425879e-01 -4.932798e-01 +2.939188e+05 3.402300e-06 6.688894e-06 9.831430e-01 1.828381e-01 -7.393835e-01 -6.732845e-01 2.437595e-01 -4.904463e-01 +3.031136e+05 3.299094e-06 6.478884e-06 9.821689e-01 1.880005e-01 -7.372576e-01 -6.756117e-01 2.449113e-01 -4.876112e-01 +3.125959e+05 3.199018e-06 6.275025e-06 9.811677e-01 1.931577e-01 -7.351244e-01 -6.779323e-01 2.460434e-01 -4.847745e-01 +3.223749e+05 3.101979e-06 6.077123e-06 9.801394e-01 1.983096e-01 -7.329838e-01 -6.802461e-01 2.471556e-01 -4.819365e-01 +3.324598e+05 3.007883e-06 5.884992e-06 9.790841e-01 2.034560e-01 -7.308360e-01 -6.825531e-01 2.482481e-01 -4.790971e-01 +3.428602e+05 2.916641e-06 5.698448e-06 9.780017e-01 2.085968e-01 -7.286809e-01 -6.848534e-01 2.493209e-01 -4.762566e-01 +3.535859e+05 2.828167e-06 5.517317e-06 9.768924e-01 2.137318e-01 -7.265185e-01 -6.871469e-01 2.503739e-01 -4.734151e-01 +3.646472e+05 2.742377e-06 5.341425e-06 9.757561e-01 2.188610e-01 -7.243490e-01 -6.894335e-01 2.514071e-01 -4.705726e-01 +3.760545e+05 2.659189e-06 5.170607e-06 9.745928e-01 2.239840e-01 -7.221722e-01 -6.917133e-01 2.524206e-01 -4.677293e-01 +3.878187e+05 2.578524e-06 5.004700e-06 9.734027e-01 2.291010e-01 -7.199883e-01 -6.939862e-01 2.534144e-01 -4.648853e-01 +3.999509e+05 2.500307e-06 4.843549e-06 9.721857e-01 2.342115e-01 -7.177972e-01 -6.962523e-01 2.543885e-01 -4.620407e-01 +4.124626e+05 2.424462e-06 4.687000e-06 9.709418e-01 2.393157e-01 -7.155990e-01 -6.985114e-01 2.553429e-01 -4.591957e-01 +4.253658e+05 2.350918e-06 4.534905e-06 9.696712e-01 2.444132e-01 -7.133936e-01 -7.007635e-01 2.562775e-01 -4.563504e-01 +4.386726e+05 2.279605e-06 4.387122e-06 9.683738e-01 2.495040e-01 -7.111812e-01 -7.030087e-01 2.571926e-01 -4.535048e-01 +4.523956e+05 2.210455e-06 4.243510e-06 9.670497e-01 2.545878e-01 -7.089617e-01 -7.052470e-01 2.580879e-01 -4.506591e-01 +4.665480e+05 2.143402e-06 4.103934e-06 9.656988e-01 2.596647e-01 -7.067352e-01 -7.074782e-01 2.589636e-01 -4.478135e-01 +4.811431e+05 2.078384e-06 3.968262e-06 9.643214e-01 2.647344e-01 -7.045017e-01 -7.097023e-01 2.598197e-01 -4.449680e-01 +4.961948e+05 2.015338e-06 3.836367e-06 9.629173e-01 2.697968e-01 -7.022611e-01 -7.119195e-01 2.606562e-01 -4.421227e-01 +5.117173e+05 1.954204e-06 3.708124e-06 9.614866e-01 2.748517e-01 -7.000136e-01 -7.141295e-01 2.614730e-01 -4.392778e-01 +5.277254e+05 1.894925e-06 3.583414e-06 9.600294e-01 2.798991e-01 -6.977591e-01 -7.163325e-01 2.622703e-01 -4.364334e-01 +5.442344e+05 1.837444e-06 3.462118e-06 9.585457e-01 2.849387e-01 -6.954977e-01 -7.185283e-01 2.630481e-01 -4.335896e-01 +5.612597e+05 1.781706e-06 3.344123e-06 9.570356e-01 2.899705e-01 -6.932294e-01 -7.207170e-01 2.638062e-01 -4.307466e-01 +5.788177e+05 1.727660e-06 3.229319e-06 9.554990e-01 2.949942e-01 -6.909541e-01 -7.228986e-01 2.645449e-01 -4.279044e-01 +5.969250e+05 1.675252e-06 3.117598e-06 9.539361e-01 3.000098e-01 -6.886721e-01 -7.250729e-01 2.652640e-01 -4.250631e-01 +6.155987e+05 1.624435e-06 3.008856e-06 9.523468e-01 3.050172e-01 -6.863832e-01 -7.272401e-01 2.659637e-01 -4.222229e-01 +6.348565e+05 1.575159e-06 2.902992e-06 9.507313e-01 3.100161e-01 -6.840874e-01 -7.294000e-01 2.666439e-01 -4.193839e-01 +6.547168e+05 1.527378e-06 2.799908e-06 9.490895e-01 3.150065e-01 -6.817849e-01 -7.315527e-01 2.673046e-01 -4.165463e-01 +6.751985e+05 1.481046e-06 2.699508e-06 9.474215e-01 3.199881e-01 -6.794756e-01 -7.336981e-01 2.679460e-01 -4.137100e-01 +6.963208e+05 1.436120e-06 2.601700e-06 9.457274e-01 3.249610e-01 -6.771595e-01 -7.358363e-01 2.685679e-01 -4.108753e-01 +7.181039e+05 1.392556e-06 2.506393e-06 9.440072e-01 3.299248e-01 -6.748367e-01 -7.379671e-01 2.691705e-01 -4.080422e-01 +7.405685e+05 1.350314e-06 2.413501e-06 9.422609e-01 3.348796e-01 -6.725072e-01 -7.400906e-01 2.697537e-01 -4.052109e-01 +7.637358e+05 1.309353e-06 2.322937e-06 9.404886e-01 3.398251e-01 -6.701710e-01 -7.422067e-01 2.703176e-01 -4.023816e-01 +7.876279e+05 1.269635e-06 2.234622e-06 9.386904e-01 3.447613e-01 -6.678282e-01 -7.443154e-01 2.708622e-01 -3.995542e-01 +8.122674e+05 1.231122e-06 2.148473e-06 9.368662e-01 3.496879e-01 -6.654787e-01 -7.464168e-01 2.713875e-01 -3.967289e-01 +8.376776e+05 1.193777e-06 2.064416e-06 9.350162e-01 3.546049e-01 -6.631227e-01 -7.485107e-01 2.718936e-01 -3.939059e-01 +8.638828e+05 1.157564e-06 1.982373e-06 9.331404e-01 3.595121e-01 -6.607600e-01 -7.505973e-01 2.723804e-01 -3.910852e-01 +8.909078e+05 1.122451e-06 1.902274e-06 9.312389e-01 3.644093e-01 -6.583908e-01 -7.526763e-01 2.728481e-01 -3.882670e-01 +9.187782e+05 1.088402e-06 1.824047e-06 9.293116e-01 3.692966e-01 -6.560150e-01 -7.547479e-01 2.732966e-01 -3.854513e-01 +9.475205e+05 1.055386e-06 1.747625e-06 9.273587e-01 3.741736e-01 -6.536327e-01 -7.568119e-01 2.737260e-01 -3.826384e-01 +9.771620e+05 1.023372e-06 1.672942e-06 9.253802e-01 3.790403e-01 -6.512439e-01 -7.588685e-01 2.741363e-01 -3.798282e-01 +1.007731e+06 9.923286e-07 1.599936e-06 9.233761e-01 3.838965e-01 -6.488486e-01 -7.609175e-01 2.745275e-01 -3.770210e-01 +1.039256e+06 9.622271e-07 1.528545e-06 9.213466e-01 3.887421e-01 -6.464469e-01 -7.629590e-01 2.748997e-01 -3.742168e-01 +1.071767e+06 9.330387e-07 1.458711e-06 9.192916e-01 3.935770e-01 -6.440388e-01 -7.649928e-01 2.752528e-01 -3.714158e-01 +1.105295e+06 9.047357e-07 1.390377e-06 9.172113e-01 3.984011e-01 -6.416243e-01 -7.670191e-01 2.755870e-01 -3.686180e-01 +1.139872e+06 8.772913e-07 1.323489e-06 9.151057e-01 4.032141e-01 -6.392034e-01 -7.690378e-01 2.759023e-01 -3.658236e-01 +1.175531e+06 8.506793e-07 1.257996e-06 9.129748e-01 4.080161e-01 -6.367761e-01 -7.710488e-01 2.761986e-01 -3.630327e-01 +1.212305e+06 8.248747e-07 1.193848e-06 9.108186e-01 4.128067e-01 -6.343425e-01 -7.730521e-01 2.764761e-01 -3.602454e-01 +1.250230e+06 7.998527e-07 1.130999e-06 9.086374e-01 4.175860e-01 -6.319026e-01 -7.750478e-01 2.767348e-01 -3.574618e-01 +1.289341e+06 7.755898e-07 1.069404e-06 9.064311e-01 4.223537e-01 -6.294565e-01 -7.770357e-01 2.769746e-01 -3.546820e-01 +1.329676e+06 7.520629e-07 1.009023e-06 9.041998e-01 4.271098e-01 -6.270041e-01 -7.790160e-01 2.771957e-01 -3.519062e-01 +1.371272e+06 7.292497e-07 9.498145e-07 9.019435e-01 4.318541e-01 -6.245454e-01 -7.809885e-01 2.773981e-01 -3.491344e-01 +1.414170e+06 7.071285e-07 8.917437e-07 8.996623e-01 4.365865e-01 -6.220806e-01 -7.829532e-01 2.775817e-01 -3.463668e-01 +1.458410e+06 6.856783e-07 8.347767e-07 8.973563e-01 4.413068e-01 -6.196095e-01 -7.849102e-01 2.777468e-01 -3.436034e-01 +1.504034e+06 6.648788e-07 7.788829e-07 8.950255e-01 4.460150e-01 -6.171323e-01 -7.868594e-01 2.778932e-01 -3.408444e-01 +1.551084e+06 6.447102e-07 7.240349e-07 8.926700e-01 4.507108e-01 -6.146490e-01 -7.888007e-01 2.780210e-01 -3.380899e-01 +1.599607e+06 6.251534e-07 6.702084e-07 8.902899e-01 4.553942e-01 -6.121596e-01 -7.907342e-01 2.781303e-01 -3.353400e-01 +1.649648e+06 6.061899e-07 6.173823e-07 8.878852e-01 4.600650e-01 -6.096641e-01 -7.926599e-01 2.782211e-01 -3.325949e-01 +1.701254e+06 5.878016e-07 5.655391e-07 8.854560e-01 4.647232e-01 -6.071625e-01 -7.945777e-01 2.782935e-01 -3.298545e-01 +1.754475e+06 5.699711e-07 5.146651e-07 8.830024e-01 4.693685e-01 -6.046549e-01 -7.964876e-01 2.783475e-01 -3.271191e-01 +1.809360e+06 5.526815e-07 4.647503e-07 8.805244e-01 4.740008e-01 -6.021413e-01 -7.983895e-01 2.783831e-01 -3.243887e-01 +1.865963e+06 5.359163e-07 4.157887e-07 8.780221e-01 4.786201e-01 -5.996217e-01 -8.002836e-01 2.784004e-01 -3.216635e-01 +1.924336e+06 5.196597e-07 3.677788e-07 8.754956e-01 4.832262e-01 -5.970962e-01 -8.021697e-01 2.783994e-01 -3.189435e-01 +1.984535e+06 5.038963e-07 3.207233e-07 8.729449e-01 4.878189e-01 -5.945647e-01 -8.040478e-01 2.783802e-01 -3.162289e-01 +2.046618e+06 4.886110e-07 2.746297e-07 8.703701e-01 4.923982e-01 -5.920273e-01 -8.059179e-01 2.783428e-01 -3.135198e-01 +2.110643e+06 4.737893e-07 2.295106e-07 8.677713e-01 4.969638e-01 -5.894840e-01 -8.077800e-01 2.782872e-01 -3.108162e-01 +2.176670e+06 4.594173e-07 1.853836e-07 8.651485e-01 5.015158e-01 -5.869349e-01 -8.096341e-01 2.782136e-01 -3.081183e-01 +2.244763e+06 4.454813e-07 1.422719e-07 8.625019e-01 5.060539e-01 -5.843799e-01 -8.114802e-01 2.781219e-01 -3.054263e-01 +2.314987e+06 4.319679e-07 1.002042e-07 8.598314e-01 5.105781e-01 -5.818192e-01 -8.133182e-01 2.780122e-01 -3.027401e-01 +2.387407e+06 4.188645e-07 5.921523e-08 8.571372e-01 5.150881e-01 -5.792526e-01 -8.151481e-01 2.778846e-01 -3.000600e-01 +2.462092e+06 4.061586e-07 1.934598e-08 8.544194e-01 5.195840e-01 -5.766803e-01 -8.169699e-01 2.777391e-01 -2.973859e-01 +2.539114e+06 3.938381e-07 1.935624e-08 8.516780e-01 5.240655e-01 -5.741023e-01 -8.187836e-01 2.775757e-01 -2.947181e-01 +2.618546e+06 3.818913e-07 5.683747e-08 8.489131e-01 5.285325e-01 -5.715186e-01 -8.205891e-01 2.773945e-01 -2.920567e-01 +2.700462e+06 3.703070e-07 9.303699e-08 8.461247e-01 5.329849e-01 -5.689291e-01 -8.223865e-01 2.771956e-01 -2.894016e-01 +2.784941e+06 3.590740e-07 1.278871e-07 8.433130e-01 5.374227e-01 -5.663341e-01 -8.241758e-01 2.769790e-01 -2.867531e-01 +2.872063e+06 3.481818e-07 1.613131e-07 8.404781e-01 5.418456e-01 -5.637334e-01 -8.259568e-01 2.767447e-01 -2.841112e-01 +2.961910e+06 3.376199e-07 1.932331e-07 8.376199e-01 5.462535e-01 -5.611271e-01 -8.277297e-01 2.764928e-01 -2.814761e-01 +3.054568e+06 3.273785e-07 2.235584e-07 8.347386e-01 5.506464e-01 -5.585152e-01 -8.294943e-01 2.762234e-01 -2.788479e-01 +3.150125e+06 3.174477e-07 2.521931e-07 8.318343e-01 5.550241e-01 -5.558978e-01 -8.312506e-01 2.759365e-01 -2.762265e-01 +3.248671e+06 3.078182e-07 2.790348e-07 8.289070e-01 5.593865e-01 -5.532749e-01 -8.329988e-01 2.756321e-01 -2.736123e-01 +3.350299e+06 2.984808e-07 3.039748e-07 8.259568e-01 5.637334e-01 -5.506464e-01 -8.347386e-01 2.753104e-01 -2.710052e-01 +3.455107e+06 2.894266e-07 3.268984e-07 8.229839e-01 5.680647e-01 -5.480125e-01 -8.364701e-01 2.749714e-01 -2.684054e-01 +3.563194e+06 2.806471e-07 3.476860e-07 8.199882e-01 5.723804e-01 -5.453732e-01 -8.381934e-01 2.746150e-01 -2.658129e-01 +3.674662e+06 2.721339e-07 3.662135e-07 8.169699e-01 5.766803e-01 -5.427284e-01 -8.399083e-01 2.742415e-01 -2.632280e-01 +3.789617e+06 2.638789e-07 3.823538e-07 8.139290e-01 5.809643e-01 -5.400782e-01 -8.416148e-01 2.738508e-01 -2.606505e-01 +3.908168e+06 2.558744e-07 3.959781e-07 8.108657e-01 5.852322e-01 -5.374227e-01 -8.433130e-01 2.734431e-01 -2.580808e-01 +4.030428e+06 2.481126e-07 4.069573e-07 8.077800e-01 5.894840e-01 -5.347618e-01 -8.450028e-01 2.730182e-01 -2.555188e-01 +4.156513e+06 2.405863e-07 4.151643e-07 8.046721e-01 5.937195e-01 -5.320956e-01 -8.466843e-01 2.725764e-01 -2.529647e-01 +4.286541e+06 2.332883e-07 4.204762e-07 8.015419e-01 5.979387e-01 -5.294241e-01 -8.483573e-01 2.721177e-01 -2.504186e-01 +4.420638e+06 2.262117e-07 4.227769e-07 7.983895e-01 6.021413e-01 -5.267474e-01 -8.500219e-01 2.716421e-01 -2.478806e-01 +4.558929e+06 2.193497e-07 4.219604e-07 7.952152e-01 6.063273e-01 -5.240655e-01 -8.516780e-01 2.711497e-01 -2.453507e-01 +4.701547e+06 2.126959e-07 4.179343e-07 7.920189e-01 6.104966e-01 -5.213783e-01 -8.533257e-01 2.706406e-01 -2.428291e-01 +4.848626e+06 2.062440e-07 4.106237e-07 7.888007e-01 6.146490e-01 -5.186859e-01 -8.549649e-01 2.701148e-01 -2.403158e-01 +5.000307e+06 1.999877e-07 3.999754e-07 7.855608e-01 6.187845e-01 -5.159884e-01 -8.565956e-01 2.695724e-01 -2.378111e-01 +5.156732e+06 1.939213e-07 3.859634e-07 7.822992e-01 6.229029e-01 -5.132858e-01 -8.582177e-01 2.690134e-01 -2.353149e-01 +5.318051e+06 1.880388e-07 3.685932e-07 7.790160e-01 6.270041e-01 -5.105781e-01 -8.598314e-01 2.684379e-01 -2.328274e-01 +5.484417e+06 1.823348e-07 3.479081e-07 7.757113e-01 6.310879e-01 -5.078652e-01 -8.614365e-01 2.678460e-01 -2.303486e-01 +5.655986e+06 1.768038e-07 3.239945e-07 7.723852e-01 6.351544e-01 -5.051474e-01 -8.630331e-01 2.672378e-01 -2.278787e-01 +5.832924e+06 1.714406e-07 2.969880e-07 7.690378e-01 6.392034e-01 -5.024245e-01 -8.646211e-01 2.666132e-01 -2.254177e-01 +6.015396e+06 1.662401e-07 2.670791e-07 7.656691e-01 6.432347e-01 -4.996967e-01 -8.662005e-01 2.659724e-01 -2.229658e-01 +6.203576e+06 1.611973e-07 2.345191e-07 7.622793e-01 6.472482e-01 -4.969638e-01 -8.677713e-01 2.653155e-01 -2.205231e-01 +6.397644e+06 1.563075e-07 1.996247e-07 7.588685e-01 6.512439e-01 -4.942261e-01 -8.693334e-01 2.646424e-01 -2.180895e-01 +6.597782e+06 1.515661e-07 1.627828e-07 7.554367e-01 6.552216e-01 -4.914834e-01 -8.708869e-01 2.639533e-01 -2.156654e-01 +6.804182e+06 1.469684e-07 1.244530e-07 7.519841e-01 6.591812e-01 -4.887358e-01 -8.724318e-01 2.632483e-01 -2.132506e-01 +7.017038e+06 1.425103e-07 8.516926e-08 7.485107e-01 6.631227e-01 -4.859834e-01 -8.739680e-01 2.625273e-01 -2.108454e-01 +7.236553e+06 1.381873e-07 4.553922e-08 7.450167e-01 6.670458e-01 -4.832262e-01 -8.754956e-01 2.617906e-01 -2.084498e-01 +7.462936e+06 1.339955e-07 6.240464e-09 7.415021e-01 6.709505e-01 -4.804641e-01 -8.770144e-01 2.610380e-01 -2.060639e-01 +7.696400e+06 1.299309e-07 3.198606e-08 7.379671e-01 6.748367e-01 -4.776973e-01 -8.785245e-01 2.602698e-01 -2.036878e-01 +7.937168e+06 1.259895e-07 6.834666e-08 7.344117e-01 6.787043e-01 -4.749257e-01 -8.800259e-01 2.594859e-01 -2.013216e-01 +8.185467e+06 1.221677e-07 1.020099e-07 7.308360e-01 6.825531e-01 -4.721495e-01 -8.815185e-01 2.586865e-01 -1.989654e-01 +8.441535e+06 1.184619e-07 1.321267e-07 7.272401e-01 6.863832e-01 -4.693685e-01 -8.830024e-01 2.578716e-01 -1.966192e-01 +8.705612e+06 1.148684e-07 1.578553e-07 7.236242e-01 6.901942e-01 -4.665828e-01 -8.844775e-01 2.570413e-01 -1.942833e-01 +8.977952e+06 1.113840e-07 1.783919e-07 7.199883e-01 6.939862e-01 -4.637926e-01 -8.859438e-01 2.561957e-01 -1.919576e-01 +9.258810e+06 1.080052e-07 1.930067e-07 7.163325e-01 6.977591e-01 -4.609977e-01 -8.874013e-01 2.553348e-01 -1.896422e-01 +9.548455e+06 1.047290e-07 2.010843e-07 7.126569e-01 7.015127e-01 -4.581982e-01 -8.888500e-01 2.544587e-01 -1.873373e-01 +9.847161e+06 1.015521e-07 2.021684e-07 7.089617e-01 7.052470e-01 -4.553942e-01 -8.902899e-01 2.535675e-01 -1.850430e-01 +1.015521e+07 9.847161e-08 1.960074e-07 7.052470e-01 7.089617e-01 -4.525857e-01 -8.917209e-01 2.526613e-01 -1.827592e-01 +1.047290e+07 9.548455e-08 1.826009e-07 7.015127e-01 7.126569e-01 -4.497726e-01 -8.931431e-01 2.517401e-01 -1.804861e-01 +1.080052e+07 9.258810e-08 1.622418e-07 6.977591e-01 7.163325e-01 -4.469551e-01 -8.945564e-01 2.508040e-01 -1.782239e-01 +1.113840e+07 8.977952e-08 1.355512e-07 6.939862e-01 7.199883e-01 -4.441332e-01 -8.959608e-01 2.498531e-01 -1.759725e-01 +1.148684e+07 8.705612e-08 1.035016e-07 6.901942e-01 7.236242e-01 -4.413068e-01 -8.973563e-01 2.488874e-01 -1.737321e-01 +1.184619e+07 8.441535e-08 6.742174e-08 6.863832e-01 7.272401e-01 -4.384761e-01 -8.987429e-01 2.479071e-01 -1.715028e-01 +1.221677e+07 8.185467e-08 2.897961e-08 6.825531e-01 7.308360e-01 -4.356410e-01 -9.001205e-01 2.469122e-01 -1.692846e-01 +1.259895e+07 7.937168e-08 9.863330e-09 6.787043e-01 7.344117e-01 -4.328015e-01 -9.014892e-01 2.459028e-01 -1.670776e-01 +1.299309e+07 7.696400e-08 4.693013e-08 6.748367e-01 7.379671e-01 -4.299578e-01 -9.028490e-01 2.448789e-01 -1.648819e-01 +1.339955e+07 7.462936e-08 7.994140e-08 6.709505e-01 7.415021e-01 -4.271098e-01 -9.041998e-01 2.438407e-01 -1.626976e-01 +1.381873e+07 7.236553e-08 1.066632e-07 6.670458e-01 7.450167e-01 -4.242576e-01 -9.055416e-01 2.427882e-01 -1.605248e-01 +1.425103e+07 7.017038e-08 1.250856e-07 6.631227e-01 7.485107e-01 -4.214011e-01 -9.068744e-01 2.417216e-01 -1.583636e-01 +1.469684e+07 6.804182e-08 1.336224e-07 6.591812e-01 7.519841e-01 -4.185405e-01 -9.081982e-01 2.406408e-01 -1.562140e-01 +1.515661e+07 6.597782e-08 1.313173e-07 6.552216e-01 7.554367e-01 -4.156757e-01 -9.095129e-01 2.395459e-01 -1.540762e-01 +1.563075e+07 6.397644e-08 1.180352e-07 6.512439e-01 7.588685e-01 -4.128067e-01 -9.108186e-01 2.384372e-01 -1.519502e-01 +1.611973e+07 6.203576e-08 9.461085e-08 6.472482e-01 7.622793e-01 -4.099337e-01 -9.121153e-01 2.373145e-01 -1.498360e-01 +1.662401e+07 6.015396e-08 6.292452e-08 6.432347e-01 7.656691e-01 -4.070566e-01 -9.134029e-01 2.361781e-01 -1.477338e-01 +1.714406e+07 5.832924e-08 2.587289e-08 6.392034e-01 7.690378e-01 -4.041754e-01 -9.146815e-01 2.350279e-01 -1.456437e-01 +1.768038e+07 5.655986e-08 1.279325e-08 6.351544e-01 7.723852e-01 -4.012902e-01 -9.159509e-01 2.338642e-01 -1.435658e-01 +1.823348e+07 5.484417e-08 4.878035e-08 6.310879e-01 7.757113e-01 -3.984011e-01 -9.172113e-01 2.326869e-01 -1.415000e-01 +1.880388e+07 5.318051e-08 7.771116e-08 6.270041e-01 7.790160e-01 -3.955080e-01 -9.184625e-01 2.314961e-01 -1.394466e-01 +1.939213e+07 5.156732e-08 9.570315e-08 6.229029e-01 7.822992e-01 -3.926109e-01 -9.197047e-01 2.302919e-01 -1.374055e-01 +1.999877e+07 5.000307e-08 1.000061e-07 6.187845e-01 7.855608e-01 -3.897100e-01 -9.209376e-01 2.290745e-01 -1.353768e-01 +2.062440e+07 4.848626e-08 8.960498e-08 6.146490e-01 7.888007e-01 -3.868052e-01 -9.221615e-01 2.278438e-01 -1.333607e-01 +2.126959e+07 4.701547e-08 6.566633e-08 6.104966e-01 7.920189e-01 -3.838965e-01 -9.233761e-01 2.266001e-01 -1.313572e-01 +2.193497e+07 4.558929e-08 3.169419e-08 6.063273e-01 7.952152e-01 -3.809840e-01 -9.245816e-01 2.253433e-01 -1.293664e-01 +2.262117e+07 4.420638e-08 6.724621e-09 6.021413e-01 7.983895e-01 -3.780678e-01 -9.257779e-01 2.240735e-01 -1.273884e-01 +2.332883e+07 4.286541e-08 4.265521e-08 5.979387e-01 8.015419e-01 -3.751477e-01 -9.269650e-01 2.227909e-01 -1.254232e-01 +2.405863e+07 4.156513e-08 6.900779e-08 5.937195e-01 8.046721e-01 -3.722240e-01 -9.281429e-01 2.214955e-01 -1.234709e-01 +2.481126e+07 4.030428e-08 8.004242e-08 5.894840e-01 8.077800e-01 -3.692966e-01 -9.293116e-01 2.201875e-01 -1.215316e-01 +2.558744e+07 3.908168e-08 7.289935e-08 5.852322e-01 8.108657e-01 -3.663654e-01 -9.304710e-01 2.188668e-01 -1.196053e-01 +2.638789e+07 3.789617e-08 4.875477e-08 5.809643e-01 8.139290e-01 -3.634307e-01 -9.316212e-01 2.175336e-01 -1.176922e-01 +2.721339e+07 3.674662e-08 1.316352e-08 5.766803e-01 8.169699e-01 -3.604923e-01 -9.327622e-01 2.161880e-01 -1.157923e-01 +2.806471e+07 3.563194e-08 2.475840e-08 5.723804e-01 8.199882e-01 -3.575504e-01 -9.338938e-01 2.148300e-01 -1.139057e-01 +2.894266e+07 3.455107e-08 5.440553e-08 5.680647e-01 8.229839e-01 -3.546049e-01 -9.350162e-01 2.134599e-01 -1.120324e-01 +2.984808e+07 3.350299e-08 6.670095e-08 5.637334e-01 8.259568e-01 -3.516559e-01 -9.361293e-01 2.120775e-01 -1.101725e-01 +3.078182e+07 3.248671e-08 5.729043e-08 5.593865e-01 8.289070e-01 -3.487034e-01 -9.372331e-01 2.106831e-01 -1.083262e-01 +3.174477e+07 3.150125e-08 2.878670e-08 5.550241e-01 8.318343e-01 -3.457474e-01 -9.383276e-01 2.092767e-01 -1.064934e-01 +3.273785e+07 3.054568e-08 9.095924e-09 5.506464e-01 8.347386e-01 -3.427880e-01 -9.394128e-01 2.078585e-01 -1.046742e-01 +3.376199e+07 2.961910e-08 4.220222e-08 5.462535e-01 8.376199e-01 -3.398251e-01 -9.404886e-01 2.064284e-01 -1.028688e-01 +3.481818e+07 2.872063e-08 5.706682e-08 5.418456e-01 8.404781e-01 -3.368589e-01 -9.415551e-01 2.049866e-01 -1.010771e-01 +3.590740e+07 2.784941e-08 4.688882e-08 5.374227e-01 8.433130e-01 -3.338894e-01 -9.426123e-01 2.035333e-01 -9.929923e-02 +3.703070e+07 2.700462e-08 1.569605e-08 5.329849e-01 8.461247e-01 -3.309165e-01 -9.436600e-01 2.020684e-01 -9.753530e-02 +3.818913e+07 2.618546e-08 2.197438e-08 5.285325e-01 8.489131e-01 -3.279404e-01 -9.446984e-01 2.005921e-01 -9.578535e-02 +3.938381e+07 2.539114e-08 4.702357e-08 5.240655e-01 8.516780e-01 -3.249610e-01 -9.457274e-01 1.991045e-01 -9.404943e-02 +4.061586e+07 2.462092e-08 4.560100e-08 5.195840e-01 8.544194e-01 -3.219783e-01 -9.467470e-01 1.976056e-01 -9.232763e-02 +4.188645e+07 2.387407e-08 1.795452e-08 5.150881e-01 8.571372e-01 -3.189925e-01 -9.477572e-01 1.960956e-01 -9.062000e-02 +4.319679e+07 2.314987e-08 1.962901e-08 5.105781e-01 8.598314e-01 -3.160035e-01 -9.487580e-01 1.945746e-01 -8.892661e-02 +4.454813e+07 2.244763e-08 4.309786e-08 5.060539e-01 8.625019e-01 -3.130114e-01 -9.497494e-01 1.930425e-01 -8.724753e-02 +4.594173e+07 2.176670e-08 3.613227e-08 5.015158e-01 8.651485e-01 -3.100161e-01 -9.507313e-01 1.914997e-01 -8.558281e-02 +4.737893e+07 2.110643e-08 3.207954e-09 4.969638e-01 8.677713e-01 -3.070178e-01 -9.517038e-01 1.899461e-01 -8.393253e-02 +4.886110e+07 2.046618e-08 3.089180e-08 4.923982e-01 8.703701e-01 -3.040164e-01 -9.526668e-01 1.883818e-01 -8.229674e-02 +5.038963e+07 1.984535e-08 3.850727e-08 4.878189e-01 8.729449e-01 -3.010120e-01 -9.536204e-01 1.868069e-01 -8.067550e-02 +5.196597e+07 1.924336e-08 1.267284e-08 4.832262e-01 8.754956e-01 -2.980046e-01 -9.545644e-01 1.852216e-01 -7.906889e-02 +5.359163e+07 1.865963e-08 2.363669e-08 4.786201e-01 8.780221e-01 -2.949942e-01 -9.554990e-01 1.836259e-01 -7.747695e-02 +5.526815e+07 1.809360e-08 3.567481e-08 4.740008e-01 8.805244e-01 -2.919809e-01 -9.564241e-01 1.820199e-01 -7.589975e-02 +5.699711e+07 1.754475e-08 1.090381e-08 4.693685e-01 8.830024e-01 -2.889647e-01 -9.573397e-01 1.804037e-01 -7.433735e-02 +5.878016e+07 1.701254e-08 2.451096e-08 4.647232e-01 8.854560e-01 -2.859457e-01 -9.582458e-01 1.787775e-01 -7.278980e-02 +6.061899e+07 1.649648e-08 3.052898e-08 4.600650e-01 8.878852e-01 -2.829238e-01 -9.591424e-01 1.771413e-01 -7.125718e-02 +6.251534e+07 1.599607e-08 3.084196e-10 4.553942e-01 8.902899e-01 -2.798991e-01 -9.600294e-01 1.754951e-01 -6.973953e-02 +6.447102e+07 1.551084e-08 2.932395e-08 4.507108e-01 8.926700e-01 -2.768716e-01 -9.609069e-01 1.738392e-01 -6.823691e-02 +6.648788e+07 1.504034e-08 1.786581e-08 4.460150e-01 8.950255e-01 -2.738413e-01 -9.617749e-01 1.721736e-01 -6.674938e-02 +6.856783e+07 1.458410e-08 1.813446e-08 4.413068e-01 8.973563e-01 -2.708084e-01 -9.626333e-01 1.704985e-01 -6.527700e-02 +7.071285e+07 1.414170e-08 2.549354e-08 4.365865e-01 8.996623e-01 -2.677727e-01 -9.634821e-01 1.688138e-01 -6.381982e-02 +7.292497e+07 1.371272e-08 7.236324e-09 4.318541e-01 9.019435e-01 -2.647344e-01 -9.643214e-01 1.671197e-01 -6.237790e-02 +7.520629e+07 1.329676e-08 2.637044e-08 4.271098e-01 9.041998e-01 -2.616934e-01 -9.651510e-01 1.654164e-01 -6.095129e-02 +7.755898e+07 1.289341e-08 9.554477e-10 4.223537e-01 9.064311e-01 -2.586499e-01 -9.659711e-01 1.637038e-01 -5.954004e-02 +7.998527e+07 1.250230e-08 2.500353e-08 4.175860e-01 9.086374e-01 -2.556038e-01 -9.667816e-01 1.619822e-01 -5.814421e-02 +8.248747e+07 1.212305e-08 1.909517e-10 4.128067e-01 9.108186e-01 -2.525551e-01 -9.675825e-01 1.602516e-01 -5.676386e-02 +8.506793e+07 1.175531e-08 2.348921e-08 4.080161e-01 9.129748e-01 -2.495040e-01 -9.683738e-01 1.585121e-01 -5.539903e-02 +8.772913e+07 1.139872e-08 3.270717e-09 4.032141e-01 9.151057e-01 -2.464503e-01 -9.691554e-01 1.567638e-01 -5.404978e-02 +9.047357e+07 1.105295e-08 2.113449e-08 3.984011e-01 9.172113e-01 -2.433942e-01 -9.699274e-01 1.550069e-01 -5.271615e-02 +9.330387e+07 1.071767e-08 1.037222e-08 3.935770e-01 9.192916e-01 -2.403357e-01 -9.706898e-01 1.532413e-01 -5.139820e-02 +9.622271e+07 1.039256e-08 1.494712e-08 3.887421e-01 9.213466e-01 -2.372748e-01 -9.714426e-01 1.514673e-01 -5.009598e-02 +9.923286e+07 1.007731e-08 1.785833e-08 3.838965e-01 9.233761e-01 -2.342115e-01 -9.721857e-01 1.496850e-01 -4.880953e-02 +1.023372e+08 9.771620e-09 1.995845e-09 3.790403e-01 9.253802e-01 -2.311460e-01 -9.729191e-01 1.478943e-01 -4.753891e-02 +1.055386e+08 9.475205e-09 1.787556e-08 3.741736e-01 9.273587e-01 -2.280781e-01 -9.736428e-01 1.460955e-01 -4.628416e-02 +1.088402e+08 9.187782e-09 1.370856e-08 3.692966e-01 9.293116e-01 -2.250079e-01 -9.743569e-01 1.442886e-01 -4.504533e-02 +1.122451e+08 8.909078e-09 2.842020e-09 3.644093e-01 9.312389e-01 -2.219355e-01 -9.750613e-01 1.424738e-01 -4.382247e-02 +1.157564e+08 8.638828e-09 1.536265e-08 3.595121e-01 9.331404e-01 -2.188610e-01 -9.757561e-01 1.406511e-01 -4.261562e-02 +1.193777e+08 8.376776e-09 1.548898e-08 3.546049e-01 9.350162e-01 -2.157842e-01 -9.764411e-01 1.388207e-01 -4.142484e-02 +1.231122e+08 8.122674e-09 6.095680e-09 3.496879e-01 9.368662e-01 -2.127053e-01 -9.771164e-01 1.369826e-01 -4.025015e-02 +1.269635e+08 7.876279e-09 5.209960e-09 3.447613e-01 9.386904e-01 -2.096243e-01 -9.777820e-01 1.351370e-01 -3.909162e-02 +1.309353e+08 7.637358e-09 1.271201e-08 3.398251e-01 9.404886e-01 -2.065412e-01 -9.784379e-01 1.332840e-01 -3.794927e-02 +1.350314e+08 7.405685e-09 1.480849e-08 3.348796e-01 9.422609e-01 -2.034560e-01 -9.790841e-01 1.314236e-01 -3.682317e-02 +1.392556e+08 7.181039e-09 1.281962e-08 3.299248e-01 9.440072e-01 -2.003688e-01 -9.797205e-01 1.295560e-01 -3.571334e-02 +1.436120e+08 6.963208e-09 8.957474e-09 3.249610e-01 9.457274e-01 -1.972797e-01 -9.803473e-01 1.276813e-01 -3.461982e-02 +1.481046e+08 6.751985e-09 5.007449e-09 3.199881e-01 9.474215e-01 -1.941885e-01 -9.809642e-01 1.257996e-01 -3.354267e-02 +1.527378e+08 6.547168e-09 1.949086e-09 3.150065e-01 9.490895e-01 -1.910955e-01 -9.815715e-01 1.239110e-01 -3.248193e-02 +1.575159e+08 6.348565e-09 1.268911e-10 3.100161e-01 9.507313e-01 -1.880005e-01 -9.821689e-01 1.220156e-01 -3.143762e-02 +1.624435e+08 6.155987e-09 4.369747e-10 3.050172e-01 9.523468e-01 -1.849037e-01 -9.827566e-01 1.201135e-01 -3.040979e-02 +1.675252e+08 5.969250e-09 1.893762e-10 3.000098e-01 9.539361e-01 -1.818050e-01 -9.833346e-01 1.182048e-01 -2.939849e-02 +1.727660e+08 5.788177e-09 1.925552e-09 2.949942e-01 9.554990e-01 -1.787046e-01 -9.839028e-01 1.162896e-01 -2.840374e-02 +1.781706e+08 5.612597e-09 4.591233e-09 2.899705e-01 9.570356e-01 -1.756023e-01 -9.844612e-01 1.143681e-01 -2.742558e-02 +1.837444e+08 5.442344e-09 7.669374e-09 2.849387e-01 9.585457e-01 -1.724984e-01 -9.850098e-01 1.124403e-01 -2.646406e-02 +1.894925e+08 5.277254e-09 1.002241e-08 2.798991e-01 9.600294e-01 -1.693927e-01 -9.855486e-01 1.105064e-01 -2.551921e-02 +1.954204e+08 5.117173e-09 9.879377e-09 2.748517e-01 9.614866e-01 -1.662853e-01 -9.860777e-01 1.085664e-01 -2.459106e-02 +2.015338e+08 4.961948e-09 5.661473e-09 2.697968e-01 9.629173e-01 -1.631762e-01 -9.865969e-01 1.066205e-01 -2.367965e-02 +2.078384e+08 4.811431e-09 2.030553e-09 2.647344e-01 9.643214e-01 -1.600656e-01 -9.871064e-01 1.046688e-01 -2.278501e-02 +2.143402e+08 4.665480e-09 8.540606e-09 2.596647e-01 9.656988e-01 -1.569533e-01 -9.876060e-01 1.027114e-01 -2.190718e-02 +2.210455e+08 4.523956e-09 7.165033e-09 2.545878e-01 9.670497e-01 -1.538395e-01 -9.880958e-01 1.007483e-01 -2.104619e-02 +2.279605e+08 4.386726e-09 2.503053e-09 2.495040e-01 9.683738e-01 -1.507242e-01 -9.885759e-01 9.877977e-02 -2.020207e-02 +2.350918e+08 4.253658e-09 8.493172e-09 2.444132e-01 9.696712e-01 -1.476073e-01 -9.890460e-01 9.680583e-02 -1.937486e-02 +2.424462e+08 4.124626e-09 2.787920e-10 2.393157e-01 9.709418e-01 -1.444890e-01 -9.895064e-01 9.482661e-02 -1.856458e-02 +2.500307e+08 3.999509e-09 7.997532e-09 2.342115e-01 9.721857e-01 -1.413693e-01 -9.899569e-01 9.284223e-02 -1.777127e-02 +2.578524e+08 3.878187e-09 1.703581e-09 2.291010e-01 9.734027e-01 -1.382482e-01 -9.903976e-01 9.085278e-02 -1.699495e-02 +2.659189e+08 3.760545e-09 6.302029e-09 2.239840e-01 9.745928e-01 -1.351257e-01 -9.908285e-01 8.885839e-02 -1.623566e-02 +2.742377e+08 3.646472e-09 6.472189e-09 2.188610e-01 9.757561e-01 -1.320018e-01 -9.912495e-01 8.685915e-02 -1.549342e-02 +2.828167e+08 3.535859e-09 1.397827e-09 2.137318e-01 9.768924e-01 -1.288766e-01 -9.916606e-01 8.485519e-02 -1.476826e-02 +2.916641e+08 3.428602e-09 3.438258e-09 2.085968e-01 9.780017e-01 -1.257502e-01 -9.920619e-01 8.284661e-02 -1.406021e-02 +3.007883e+08 3.324598e-09 5.850221e-09 2.034560e-01 9.790841e-01 -1.226225e-01 -9.924534e-01 8.083352e-02 -1.336930e-02 +3.101979e+08 3.223749e-09 6.397739e-09 1.983096e-01 9.801394e-01 -1.194936e-01 -9.928350e-01 7.881604e-02 -1.269555e-02 +3.199018e+08 3.125959e-09 6.240028e-09 1.931577e-01 9.811677e-01 -1.163635e-01 -9.932067e-01 7.679426e-02 -1.203898e-02 +3.299094e+08 3.031136e-09 6.052444e-09 1.880005e-01 9.821689e-01 -1.132322e-01 -9.935686e-01 7.476832e-02 -1.139962e-02 +3.402300e+08 2.939188e-09 5.817114e-09 1.828381e-01 9.831430e-01 -1.100998e-01 -9.939205e-01 7.273831e-02 -1.077750e-02 +3.508734e+08 2.850030e-09 4.863007e-09 1.776707e-01 9.840900e-01 -1.069663e-01 -9.942626e-01 7.070435e-02 -1.017264e-02 +3.618499e+08 2.763577e-09 2.195493e-09 1.724984e-01 9.850098e-01 -1.038318e-01 -9.945949e-01 6.866654e-02 -9.585064e-03 +3.731697e+08 2.679746e-09 2.189180e-09 1.673212e-01 9.859024e-01 -1.006962e-01 -9.949172e-01 6.662501e-02 -9.014787e-03 +3.848436e+08 2.598458e-09 5.171847e-09 1.621395e-01 9.867678e-01 -9.755966e-02 -9.952297e-01 6.457986e-02 -8.461836e-03 +3.968827e+08 2.519636e-09 1.905795e-09 1.569533e-01 9.876060e-01 -9.442212e-02 -9.955323e-01 6.253121e-02 -7.926230e-03 +4.092985e+08 2.443205e-09 4.419369e-09 1.517628e-01 9.884169e-01 -9.128364e-02 -9.958249e-01 6.047916e-02 -7.407990e-03 +4.221026e+08 2.369092e-09 1.170747e-09 1.465681e-01 9.892006e-01 -8.814425e-02 -9.961077e-01 5.842383e-02 -6.907135e-03 +4.353073e+08 2.297228e-09 4.509058e-09 1.413693e-01 9.899569e-01 -8.500399e-02 -9.963806e-01 5.636533e-02 -6.423684e-03 +4.489251e+08 2.227543e-09 3.477105e-09 1.361666e-01 9.906859e-01 -8.186288e-02 -9.966436e-01 5.430377e-02 -5.957656e-03 +4.629689e+08 2.159972e-09 1.254462e-09 1.309602e-01 9.913876e-01 -7.872096e-02 -9.968967e-01 5.223927e-02 -5.509067e-03 +4.774521e+08 2.094451e-09 1.261735e-10 1.257502e-01 9.920619e-01 -7.557825e-02 -9.971399e-01 5.017193e-02 -5.077935e-03 +4.923883e+08 2.030918e-09 2.849323e-10 1.205367e-01 9.927089e-01 -7.243480e-02 -9.973731e-01 4.810188e-02 -4.664276e-03 +5.077917e+08 1.969311e-09 7.178973e-10 1.153198e-01 9.933284e-01 -6.929063e-02 -9.975965e-01 4.602922e-02 -4.268105e-03 +5.236771e+08 1.909574e-09 2.573978e-09 1.100998e-01 9.939205e-01 -6.614576e-02 -9.978100e-01 4.395406e-02 -3.889437e-03 +5.400593e+08 1.851648e-09 3.700724e-09 1.048768e-01 9.944852e-01 -6.300024e-02 -9.980135e-01 4.187653e-02 -3.528287e-03 +5.569541e+08 1.795480e-09 1.207707e-09 9.965082e-02 9.950225e-01 -5.985410e-02 -9.982071e-01 3.979672e-02 -3.184667e-03 +5.743774e+08 1.741016e-09 3.218962e-09 9.442212e-02 9.955323e-01 -5.670736e-02 -9.983908e-01 3.771476e-02 -2.858592e-03 +5.923457e+08 1.688203e-09 3.267977e-10 8.919081e-02 9.960146e-01 -5.356005e-02 -9.985646e-01 3.563076e-02 -2.550073e-03 +6.108762e+08 1.636993e-09 2.790284e-09 8.395704e-02 9.964694e-01 -5.041222e-02 -9.987285e-01 3.354483e-02 -2.259121e-03 +6.299863e+08 1.587336e-09 3.174555e-09 7.872096e-02 9.968967e-01 -4.726388e-02 -9.988824e-01 3.145708e-02 -1.985748e-03 +6.496943e+08 1.539186e-09 3.021745e-09 7.348270e-02 9.972965e-01 -4.411507e-02 -9.990265e-01 2.936763e-02 -1.729964e-03 +6.700188e+08 1.492496e-09 2.984784e-09 6.824241e-02 9.976688e-01 -4.096583e-02 -9.991605e-01 2.727658e-02 -1.491779e-03 +6.909791e+08 1.447222e-09 2.363841e-09 6.300024e-02 9.980135e-01 -3.781618e-02 -9.992847e-01 2.518407e-02 -1.271201e-03 +7.125951e+08 1.403322e-09 1.675413e-10 5.775633e-02 9.983307e-01 -3.466615e-02 -9.993989e-01 2.309019e-02 -1.068239e-03 +7.348873e+08 1.360753e-09 2.714684e-09 5.251083e-02 9.986204e-01 -3.151578e-02 -9.995033e-01 2.099506e-02 -8.829000e-04 +7.578769e+08 1.319476e-09 6.190918e-10 4.726388e-02 9.988824e-01 -2.836509e-02 -9.995976e-01 1.889879e-02 -7.151915e-04 +7.815857e+08 1.279450e-09 1.390524e-09 4.201562e-02 9.991170e-01 -2.521412e-02 -9.996821e-01 1.680150e-02 -5.651196e-04 +8.060361e+08 1.240639e-09 1.973763e-09 3.676621e-02 9.993239e-01 -2.206291e-02 -9.997566e-01 1.470330e-02 -4.326900e-04 +8.312515e+08 1.203005e-09 1.699703e-09 3.151578e-02 9.995033e-01 -1.891147e-02 -9.998212e-01 1.260431e-02 -3.179076e-04 +8.572557e+08 1.166513e-09 3.567496e-10 2.626448e-02 9.996550e-01 -1.575985e-02 -9.998758e-01 1.050463e-02 -2.207768e-04 +8.840733e+08 1.131128e-09 1.889514e-09 2.101245e-02 9.997792e-01 -1.260806e-02 -9.999205e-01 8.404387e-03 -1.413011e-04 +9.117299e+08 1.096816e-09 1.020433e-09 1.575985e-02 9.998758e-01 -9.456158e-03 -9.999553e-01 6.303688e-03 -7.948362e-05 +9.402517e+08 1.063545e-09 2.100536e-09 1.050681e-02 9.999448e-01 -6.304158e-03 -9.999801e-01 4.202648e-03 -3.532661e-05 +9.696658e+08 1.031283e-09 2.017258e-09 5.253475e-03 9.999862e-01 -3.152094e-03 -9.999950e-01 2.101381e-03 -8.831734e-06 +1.000000e+09 1.000000e-09 2.000000e-09 3.061617e-16 1.000000e+00 -1.836970e-16 -1.000000e+00 1.224647e-16 0.000000e+00 diff --git a/doc/thesis/figures/data/multipath_frequency_response.py b/doc/thesis/figures/data/multipath_frequency_response.py new file mode 100644 index 0000000..e5207ae --- /dev/null +++ b/doc/thesis/figures/data/multipath_frequency_response.py @@ -0,0 +1,35 @@ +import sys, os +import numpy as np + +nsamples = 300 + +np.seterr(over='raise') + +def tap(c, tau, f): + return np.exp(2j * np.pi * f * tau) + + +# attenuations for frequency plot +f_whole = np.logspace(5, 9, num=nsamples) +linear_whole = 1 / f_whole +multipath_whole = tap(c=.8, tau=500e-9, f=f_whole) + tap(c=.4, tau=300e-9, f=f_whole) +channel_whole = linear_whole * multipath_whole + +# coordinates for complex diagram +f_tap = np.linspace(2e6, 2.5e6, num=nsamples) +linear_tap = 1 / f_tap + +multipath_tap_1 = tap(c=.8, tau=500e-9, f=f_tap) +multipath_tap_2 = tap(c=.4, tau=300e-9, f=f_tap) +multipath_taps = multipath_tap_1 + multipath_tap_2 + +data = np.array(list(zip(f_whole, linear_whole, np.abs(channel_whole), + np.real(multipath_tap_1), np.imag(multipath_tap_1), + np.real(multipath_tap_2), np.imag(multipath_tap_2), + np.real(multipath_taps), np.imag(multipath_taps)))) + +# 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/multipath-frequency-response-plots.tex b/doc/thesis/figures/tikz/multipath-frequency-response-plots.tex new file mode 100644 index 0000000..094e33a --- /dev/null +++ b/doc/thesis/figures/tikz/multipath-frequency-response-plots.tex @@ -0,0 +1,70 @@ +% vim: set ts=2 sw=2 noet: +\begin{tikzpicture} + \begin{loglogaxis}[ + width = .6\linewidth, height = 5cm, + ylabel = {Response \(|H(f, t)|\)}, + xlabel = {Frequency \(f\)/Hz}, + xlabel near ticks, + ylabel near ticks, + ytick = \empty, + smooth, + ] + + \addplot[solid, magenta] table[x index = 0, y index = 2] + {figures/data/multipath_frequency_response.dat}; + \addlegendentry{Multipath} + + \addplot[dashed, thick, black] table[x index = 0, y index = 1] + {figures/data/multipath_frequency_response.dat}; + \addlegendentry{Linear} + + \end{loglogaxis} +\end{tikzpicture} +\hskip 5mm +\begin{tikzpicture}[ + decorated/.style = { + solid, thick, + postaction={decorate}, + decoration={markings, + mark=at position 0.35 with {\arrow{stealth}}, + mark=at position 0.65 with {\arrow{stealth}}}, + }, + ] + \begin{axis}[ + width = 5cm, height = 5cm, + ylabel = {\(\Im{H(f,t)}\)}, + xlabel = {\(\Re{H(f,t)}\)}, + xlabel near ticks, + ylabel near ticks, + grid = major, + xmin = -1.2, xmax = 1.2, + ymin = -1.2, ymax = 1.2, + ] + + \addplot[decorated, red] table[x index = 3, y index = 4] + {figures/data/multipath_frequency_response.dat} + node[pos = 0, circle, fill = white, draw, inner sep = 1pt] {} + node[pos = .2, outer sep = 1pt, inner sep = 0pt] (A) {} + node[pos = 1, circle, fill = white, draw, inner sep = 1pt] {}; + + \addplot[decorated, blue] table[x index = 5, y index = 6] + {figures/data/multipath_frequency_response.dat} + node[pos = 0, circle, fill = white, draw, inner sep = 1pt] {} + node[pos = .2, outer sep = 1pt, inner sep = 0pt] (B) {} + node[pos = 1, circle, fill = white, draw, inner sep = 1pt] {}; + + \addplot[decorated, magenta] table[x index = 7, y index = 8] + {figures/data/multipath_frequency_response.dat} + node[pos = 0, circle, fill = white, draw, inner sep = 1pt] {} + node[pos = 0, below, font = \tiny] {2 MHz} + node[pos = .2, outer sep = 1pt, inner sep = 0pt] (C) {} + node[pos = 1, circle, fill = white, draw, inner sep = 1pt] {} + node[pos = 1, above left, font = \tiny] {2.5 MHz}; + + \node[outer sep = 2pt, inner sep = 0pt] (O) at (0,0) {}; + \draw[-latex, red!50!white] (O) -- (A); + \draw[-latex, blue!50!white] (O) -- (B); + \draw[-latex, magenta!50!white] (O) -- (C); + + \end{axis} +\end{tikzpicture} -- cgit v1.2.1 From 0b4422f6508fd6f5d2d28c0465f48476edd700ea Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 1 Nov 2021 16:29:17 +0100 Subject: Review construction of orthogonal carriers --- doc/thesis/chapters/theory.tex | 31 ++++++++++------- doc/thesis/figures/tikz/qam-constellation.tex | 3 ++ doc/thesis/figures/tikz/qam-example.tex | 49 +++++++++++++++++++++++++++ doc/thesis/figures/tikz/qam-modulator.tex | 45 ------------------------ 4 files changed, 70 insertions(+), 58 deletions(-) create mode 100644 doc/thesis/figures/tikz/qam-example.tex (limited to 'doc/thesis') diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index 2506333..6354328 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -86,23 +86,14 @@ Notice that assuming \(m_i\) and \(m_q\) are constant\footnote{This is an approx \end{align*} which effectively means that it is possible to isolate a single component \(m_i(t)\) out of \(s(t)\). The same of course works with \(\phi_q\) as well resulting in \(\langle s, \phi_q \rangle = m_q\). Thus (remarkably) it is possible to send two signals on the same frequency, without them interfering with each other. Since each signal can represent one of \(\sqrt{M}\) values, by having two we obtain \(\sqrt{M} \cdot \sqrt{M} = M\) possible combinations. -A graphical way to see what is happening, is to observe a so called \emph{constellation diagram}. An example is shown in figure \ref{fig:qam-constellation} for \(M = 16\). The two carrier signals \(\phi_i\) and \(\phi_q\) can be understood as bases of a coordinate system. - -\subsection{Construction of orthogonal carrier signals} +A graphical way to see what is happening, is to observe a so called \emph{constellation diagram}. An example is shown in figure \ref{fig:qam-constellation} for \(M = 16\). The two carrier signals \(\phi_i\) and \(\phi_q\) can be understood as bases of a coordinate system, in which the two amplitude levels of the two modulated messages, determine a position in the grid. +\paragraph{Example} -If \(\phi_i\) is a real valued signal (which is typical) it is possible to find a function the quadrature carrier using the \emph{Hilbert transform}: -\begin{equation} - \hilbert g(t) = g(t) * \frac{1}{\pi t} - = \frac{1}{\pi} \int_\mathbb{R} \frac{g(\tau)}{t - \tau} \,d\tau - = \frac{1}{\pi} \int_\mathbb{R} \frac{g(t - \tau)}{\tau} \,d\tau, -\end{equation} -i.e. a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies \cite{Hsu,Gallager}. It is a known property of the Hilbert transform that given a real valued function \(g(t)\) then \(\langle g, \hilbert g \rangle = 0\) \cite{Kschischang,Kneubuehler}. -In practice \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = \hilbert \phi_i(t) = \sin(\omega_c t)\). +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 an analog amplitudes \(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 figure \ref{fig:qam-constellation}). -\paragraph{Oscillator and phase shifter} +In figure \ref{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. -\subsection{Spectral properties of a QAM signal} \begin{figure} \hfill @@ -121,6 +112,20 @@ In practice \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = \hilbert \phi_i(t } \end{figure} +\subsection{Construction of orthogonal carrier signals} + +Knowing why there is a need for orthogonal carriers, we should now discuss which functions satisfy the property described by \eqref{eqn:orthogonal-condition}. If \(\phi_i\) is a real valued signal (which is typical) it is possible to find a function the quadrature carrier using the \emph{Hilbert transform} (sometimes called Hilbert filter): +\begin{equation} + \hilbert g(t) = g(t) * \frac{1}{\pi t} + = \frac{1}{\pi} \int_\mathbb{R} \frac{g(\tau)}{t - \tau} \,d\tau + = \frac{1}{\pi} \int_\mathbb{R} \frac{g(t - \tau)}{\tau} \,d\tau. +\end{equation} +The Hilbert transform is a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies \cite{Hsu,Gallager}, and it is possible to show that given a real valued function \(g(t)\) then \(\langle g, \hilbert g \rangle = 0\) \cite{Kschischang,Kneubuehler}. There are many functions that are Hilbert transform pairs, however in practice the pair \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = \hilbert \phi_i(t) = \sin(\omega_c t)\) is always used. + +% \paragraph{Oscillator and phase shifter} +% TODO: what to write here? + +\subsection{Spectral properties of a QAM signal} \section{Phase shift keying (\(M\)-PSK)} diff --git a/doc/thesis/figures/tikz/qam-constellation.tex b/doc/thesis/figures/tikz/qam-constellation.tex index 6481650..eeeddc3 100644 --- a/doc/thesis/figures/tikz/qam-constellation.tex +++ b/doc/thesis/figures/tikz/qam-constellation.tex @@ -21,6 +21,9 @@ } } + % special node for the example + \node[star, fill = blue!40!white] at (s32) {}; + \foreach \i/\l in {0/00,1/01,2/11,3/10}{ \node[lightgray, below = 3mm] at (s\i0) {\texttt{\l}}; \node[lightgray, left = 2mm] at (s0\i) {\texttt{\l}}; diff --git a/doc/thesis/figures/tikz/qam-example.tex b/doc/thesis/figures/tikz/qam-example.tex new file mode 100644 index 0000000..2d37f55 --- /dev/null +++ b/doc/thesis/figures/tikz/qam-example.tex @@ -0,0 +1,49 @@ +% vim: set ts=2 sw=2 noet: + +%% TODO: finish this figure + +\begin{tikzpicture} + % Draw digital signals + \begin{scope}[font = \ttfamily\footnotesize, text = blue!70!white] + \node[above = 1mm of M, xshift = 2mm] {\(\ldots 1100101\)}; + \node[above = 7mm of vmi, xshift = 3mm] + {\(\overbracket[.8pt]{\,11\ldots 00\,}^{\sqrt{M} \text{ bits}}\)}; + \end{scope} + + % Draw analog waveform + \begin{scope}[font = \ttfamily\tiny] + \coordinate (O) at ($(mi)+(-2mm,10.5mm)$); + + \node[left, red!70!white, anchor = east, text width = 8mm, align = right] + at ($(O) + (-2mm,0)$) {\(2^{\sqrt{M}}\) levels}; + + \foreach \y in {-3mm,0,3mm} { + \draw[gray, densely dotted] (O) ++(-2mm,\y) -- ++(22mm,0); + } + + \draw[thick, draw = red!70!white] (O) + -- ++(3mm,0) -- ++(0,-3mm) -- ++(3mm,0) -- ++(0,6mm) + -- ++(3mm,0) -- ++(0,-3mm) -- ++(3mm,0) -- ++(0,-3mm) + -- ++(3mm,0) -- ++(0,3mm) -- ++(3mm,0); + \end{scope} + + % Draw constellation diagram + \begin{scope} + \coordinate (O) at ($(S)+(-7mm,8mm)$); + \draw[gray, -latex] (O) ++(-2mm,0) -- ++(12mm,0) node[right] {\tiny \(\phi_i\)}; + \draw[gray, -latex] (O) ++(0,-2mm) -- ++(0,12mm) node[above] {\tiny \(\phi_q\)}; + + \node[ + circle, thick, + minimum size = 3pt, + inner sep = 0, outer sep = .8pt, + draw = gray, fill = red!50!white + ] (P) at ($(O)+(5mm, 4mm)$) {}; + + \node[gray, above right] at (P) {\tiny \(s\)}; + + \draw[gray, densely dotted] + (P) -- (P |- O) + (P) -- (P -| O); + \end{scope} +\end{tikzpicture} diff --git a/doc/thesis/figures/tikz/qam-modulator.tex b/doc/thesis/figures/tikz/qam-modulator.tex index a55ff29..7ebc2c5 100644 --- a/doc/thesis/figures/tikz/qam-modulator.tex +++ b/doc/thesis/figures/tikz/qam-modulator.tex @@ -77,51 +77,6 @@ \node[above left] at (si) {\(s_i(t)\)}; \node[below left] at (sq) {\(s_q(t)\)}; - % Draw digital signals - \begin{scope}[font = \ttfamily\footnotesize, text = blue!70!white] - \node[above = 1mm of M, xshift = 2mm] {\(\ldots 1100101\)}; - \node[above = 7mm of vmi, xshift = 3mm] - {\(\overbracket[.8pt]{\,11\ldots 00\,}^{\sqrt{M} \text{ bits}}\)}; - \end{scope} - - % Draw analog waveform - \begin{scope}[font = \ttfamily\tiny] - \coordinate (O) at ($(mi)+(-2mm,10.5mm)$); - - \node[left, red!70!white, anchor = east, text width = 8mm, align = right] - at ($(O) + (-2mm,0)$) {\(2^{\sqrt{M}}\) levels}; - - \foreach \y in {-3mm,0,3mm} { - \draw[gray, densely dotted] (O) ++(-2mm,\y) -- ++(22mm,0); - } - - \draw[thick, draw = red!70!white] (O) - -- ++(3mm,0) -- ++(0,-3mm) -- ++(3mm,0) -- ++(0,6mm) - -- ++(3mm,0) -- ++(0,-3mm) -- ++(3mm,0) -- ++(0,-3mm) - -- ++(3mm,0) -- ++(0,3mm) -- ++(3mm,0); - \end{scope} - - % Draw constellation diagram - \begin{scope} - \coordinate (O) at ($(S)+(-7mm,8mm)$); - \draw[gray, -latex] (O) ++(-2mm,0) -- ++(12mm,0) node[right] {\tiny \(\phi_i\)}; - \draw[gray, -latex] (O) ++(0,-2mm) -- ++(0,12mm) node[above] {\tiny \(\phi_q\)}; - - \node[ - circle, thick, - minimum size = 3pt, - inner sep = 0, outer sep = .8pt, - draw = gray, fill = red!50!white - ] (P) at ($(O)+(5mm, 4mm)$) {}; - - \node[gray, above right] at (P) {\tiny \(s\)}; - - \draw[gray, densely dotted] - (P) -- (P |- O) - (P) -- (P -| O); - \end{scope} - - % Background elements \begin{pgfonlayer}{background} \fill[left color = white, right color = blue!20, draw = white] -- cgit v1.2.1 From b2a6f2517f4558423b81da615dcf1dbc3dbb845d Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 1 Nov 2021 16:39:20 +0100 Subject: Change PGFPlots version for GH actions --- doc/thesis/Fading.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index 1844ceb..2c10109 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -30,7 +30,7 @@ \usepackage{tikz} % Pretty drawings \usepackage{tikz-3dplot} % More dimensions! -\pgfplotsset{compat=1.17} +\pgfplotsset{compat=newest} \usetikzlibrary{ external, calc, -- cgit v1.2.1 From a32bdcbcb4bb20cf606d4ffe59895a30b5dca4c5 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 2 Nov 2021 00:14:50 +0100 Subject: Remove BPSK image --- doc/thesis/image/BPSK2.PNG | Bin 41239 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/thesis/image/BPSK2.PNG (limited to 'doc/thesis') diff --git a/doc/thesis/image/BPSK2.PNG b/doc/thesis/image/BPSK2.PNG deleted file mode 100644 index 36a7131..0000000 Binary files a/doc/thesis/image/BPSK2.PNG and /dev/null differ -- cgit v1.2.1 From c68d09d1683bdd4d303f9ced50f7da2844c468b6 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 2 Nov 2021 16:17:16 +0100 Subject: Set up drafting options --- doc/thesis/Fading.tex | 4 +++- doc/thesis/tex/docstyle.sty | 25 ++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index 2c10109..da9bdb1 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -4,6 +4,8 @@ % vim: set ts=2 sw=2 noet: \documentclass[ + % show when a line is too long (drafting) + overfullrule, % page size and margins paper = a4, twoside, openright, BCOR = 5mm, headinclude, footexclude, @@ -22,7 +24,7 @@ %% Custom packages \usepackage{tex/docmacros} -\usepackage{tex/docstyle} +\usepackage[draft]{tex/docstyle} %% Pretty figures \usepackage{circuitikz} % Electric diagrams diff --git a/doc/thesis/tex/docstyle.sty b/doc/thesis/tex/docstyle.sty index ae33342..32a76e8 100644 --- a/doc/thesis/tex/docstyle.sty +++ b/doc/thesis/tex/docstyle.sty @@ -1,5 +1,11 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tex/docstyle}[2021/10/31 v0.1 Document Style] +\ProvidesPackage{tex/docstyle}[2021/10/31 v0.1 Styling for my thesis] + +% Package options +\newif\ifdraftmode +\DeclareOption{draft}{\draftmodetrue} + +\ProcessOptions\relax %% Page Margins (done with KOMA) % \PassOptionsToPackage{geometry}{ @@ -13,19 +19,29 @@ % } % } +%% Need colors +\RequirePackage{xcolor} + %% Pager headers and footers (using KOMA) -\PassOptionsToPackage{scrlayer-scrpage}{autooneside = false} +\PassOptionsToPackage{scrlayer-scrpage}{autooneside=false, draft=false} \RequirePackage{scrlayer-scrpage} \setkomafont{pagenumber}{\sffamily\bfseries\slshape} \setkomafont{pageheadfoot}{\itshape} -% Add marks \lehead{\leftmark} \rohead{\rightmark} +%% Draft date when in draft mode +\ifdraftmode + \RequirePackage{scrtime} + \newcommand{\draftfooterstring}{\footnotesize\slshape (Draft of \today\ at \thistime)} + \cefoot{\draftfooterstring} + \cofoot{\draftfooterstring} +\fi + %% Font configuration -% use roboto from sans serif +% use roboto for sans serif \RequirePackage{roboto} %% Floating captions configuration @@ -43,7 +59,6 @@ \RequirePackage{biblatex} %% Set up links -\RequirePackage{xcolor} \PassOptionsToPackage{hyperref}{% bookmarks = true, %% TODO: set title -- cgit v1.2.1 From 52219a8664b37e2dd3f778b5600e1b8245918d95 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 2 Nov 2021 17:15:01 +0100 Subject: Add skels --- doc/thesis/Fading.tex | 8 +++- doc/thesis/chapters/introduction.tex | 2 + doc/thesis/chapters/theory.tex | 93 ++++++++++++++++++++++++++++++++---- 3 files changed, 91 insertions(+), 12 deletions(-) (limited to 'doc/thesis') diff --git a/doc/thesis/Fading.tex b/doc/thesis/Fading.tex index da9bdb1..c0b5f41 100644 --- a/doc/thesis/Fading.tex +++ b/doc/thesis/Fading.tex @@ -50,10 +50,12 @@ \pgfdeclarelayer{foreground} \pgfsetlayers{background,main,foreground} - \usepackage{graphicx} % Include pictures \usepackage{subcaption} % Subfigures +%% Placeholders +\usepackage{skeldoc} + %% Load bibliography \addbibresource{Fading.bib} @@ -79,7 +81,7 @@ \begin{abstract} %% TODO: write abstract - Here goes the abstract + \skelpar \end{abstract} \tableofcontents @@ -95,6 +97,8 @@ \include{chapters/implementation} \include{chapters/conclusions} + %% TODO: remove in final version + \printskelnotes \printbibliography \end{document} diff --git a/doc/thesis/chapters/introduction.tex b/doc/thesis/chapters/introduction.tex index 965f31b..734abad 100644 --- a/doc/thesis/chapters/introduction.tex +++ b/doc/thesis/chapters/introduction.tex @@ -21,3 +21,5 @@ As described in the document given at the beginning of the semester: The task description document is found in the appendix. \section{Overview} + +\skelpar{Overview of the whole document.} diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex index 6354328..f0afe65 100644 --- a/doc/thesis/chapters/theory.tex +++ b/doc/thesis/chapters/theory.tex @@ -13,9 +13,11 @@ } \end{figure} -In this section we will briefly give the mathematical background required by the modulation schemes used in the project. The notation used is summarised in figure \ref{fig:notation}. For conciseness encoding schemes and (digital) signal processing calculations are left out and discussed later. Thus for this section \(m_e = m\). +In the first two sections we will briefly give the mathematics required by the modulation schemes used in the project. The notation used is summarised in figure \ref{fig:notation}. For conciseness encoding schemes and (digital) signal processing calculations are left out and discussed later. Thus for this section \(m_e = m\). +\skelpar[4]{Finish overview of the chapter.} + +\skelpar[3]{Discuss notation \(m(n) = m(nT)\) in discrete time and some other details.} -%% TODO: Par on notation m(n) = m(nT) = discrete time %% TODO: A section on maths? % \section{Signal space and linear operators} @@ -94,7 +96,6 @@ A concrete example for \(M = 16\): if the message is 1110 the bit splitter creat In figure \ref{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. - \begin{figure} \hfill \begin{subfigure}{.4\linewidth} @@ -122,14 +123,19 @@ Knowing why there is a need for orthogonal carriers, we should now discuss which \end{equation} The Hilbert transform is a linear operator that introduces a phase shift of \(\pi / 2\) over all frequencies \cite{Hsu,Gallager}, and it is possible to show that given a real valued function \(g(t)\) then \(\langle g, \hilbert g \rangle = 0\) \cite{Kschischang,Kneubuehler}. There are many functions that are Hilbert transform pairs, however in practice the pair \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = \hilbert \phi_i(t) = \sin(\omega_c t)\) is always used. -% \paragraph{Oscillator and phase shifter} -% TODO: what to write here? +\paragraph{Oscillator and phase shifter} + +\skelpar[4]{Give a few details on how the carrier is generated in practice.} \subsection{Spectral properties of a QAM signal} +\skelpar[4]{Spectral properties of QAM} + \section{Phase shift keying (\(M\)-PSK)} -PSK is a popular modulation type for data transmission\cite{Meyer2011}. With a bipolar binary signal, the amplitude remains constant and only the phase will be changed with phase jumps of 180 degrees, which can be seen as a multiplication of the carrier signal with $\pm$ 1. That is alow known as binary phase shift keying. +\skelpar[6]{Explain PSK (assuming the previous section was read).} + +% PSK is a popular modulation type for data transmission\cite{Meyer2011}. With a bipolar binary signal, the amplitude remains constant and only the phase will be changed with phase jumps of 180 degrees, which can be seen as a multiplication of the carrier signal with $\pm$ 1. That is alow known as binary phase shift keying. % \begin{figure} % % TODO: Better Image @@ -137,10 +143,13 @@ PSK is a popular modulation type for data transmission\cite{Meyer2011}. With a b % \includegraphics[width=5cm]{./image/BPSK2.png} % \end{figure} -Two bits are modulated at ones with the same bandwidth as a 2-PSK so more informations are transmitted at the same time. \cite{Meyer2011} +% Two bits are modulated at ones with the same bandwidth as a 2-PSK so more informations are transmitted at the same time. \cite{Meyer2011} %TODO: Image Signal Raum -Most times there is noise and the points on the constellation diagram become a surface. -If the surfaces overlap there will be a problem with decoding. +% Most times there is noise and the points on the constellation diagram become a surface. If the surfaces overlap there will be a problem with decoding. + +\subsection{Quadrature PSK (QPSK)} + +\skelpar[2]{QPSK = 4-PSK = 4-QAM} \section{Wireless channel} @@ -153,6 +162,11 @@ In our model we are going to include an additive white Gaussian noise (AWGN) and \subsection{Additive white Gaussian noise} %% TODO: Discuss thermal stuff etc? +\skelpar[3]{What does AWGN model?} +\skelpar[3]{Mathematical model of AWGN, assumptions, limits etc.} +\begin{equation} + \skelline +\end{equation} \subsection{Geometric multipath fading model} @@ -219,8 +233,67 @@ Equation \eqref{eqn:multipath-frequency-response} indicates that the frequency r \subsection{Discrete-time model} +\skelpar[3]{Why use a discrete time model?} +\skelpar[3]{Mathematical discretization} + +\begin{equation} + h(n, k) = \skelline[8cm]{Discrete-time multipath fading channel impulse response} +\end{equation} + +\skelpar[3]{Discrete frequency response. Discuss bins, etc.} + \subsection{Statistical model} -%% TODO: write about advantage of statistical model instead of geometric +\skelpar[5]{Advantages of statistical model over geometric model.} + +\begin{figure} + \centering + \begin{subfigure}{.45\linewidth} + \skelfig + \caption{NLOS, Rayleigh} + \end{subfigure} + \hskip 5mm + \begin{subfigure}{.45\linewidth} + \skelfig + \caption{LOS, Rice} + \end{subfigure} + \caption{ + Ring of scattering objects. + \label{fig:multipath-statistical-models} + } +\end{figure} + +\paragraph{NLOS case} + +\skelpar[4]{Explain statistical model with Rayleighan distribution.} +\begin{equation} + \Re{h_l(n)}, \Im{h_l(n)} + \sim \mathcal{N} \left(0, \frac{1}{2} \E{|h_l(n)|^2} \right) +\end{equation} +\skelpar[4] + +\paragraph{LOS case} + +\skelpar[4]{Explain statistical model with Rician distribution.} +\begin{equation} + \Re{h_l(n)}, \Im{h_l(n)} + \sim \mathcal{N} \left( \frac{A_l}{\sqrt{2}}, \frac{1}{2} \sigma_l^2 \right) +\end{equation} +\skelpar[4] \section{Receiver DSP chain} + +\skelpar[3]{Overview of the DSP chain.} + +\begin{figure} + \centering + \skelfig[width = .8\linewidth] + \caption{ + Signal processing chain of the receiver. + \label{fig:rx-dsp-chain} + } +\end{figure} + +\paragraph{Synchronization} \skelpar[4]{Polyphase filter bank.} +\paragraph{Equalization} \skelpar[4]{CMA Equalizer.} +\paragraph{Fine tuning} \skelpar[4]{Costas Loop.} -- cgit v1.2.1