From 569193b000a5df2caa9ef9127a06882bdb0c428a Mon Sep 17 00:00:00 2001 From: Philipp Le Date: Sat, 6 Jun 2020 03:06:39 +0200 Subject: WIP: Chapter 5 - Digital Modulation --- chapter05/content_ch05.tex | 828 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 803 insertions(+), 25 deletions(-) (limited to 'chapter05') diff --git a/chapter05/content_ch05.tex b/chapter05/content_ch05.tex index 7252131..15d8a58 100644 --- a/chapter05/content_ch05.tex +++ b/chapter05/content_ch05.tex @@ -1662,11 +1662,26 @@ All digital modulation techniques take time-discrete and value-discrete data. \item We already know these terms from the chapter about sampling. \begin{itemize} \item The time-discrete data is transferred back to a time-continuous, but still value-discrete domain. - \item Each instantaneous value of the time-discrete data points is prolonged to the symbol period $T_{sym}$. + \item Each instantaneous value of the time-discrete data points is prolonged to the symbol period $T_{sym}$. In fact, it becomes a rectangle function. \item The result is a series of symbols $x_{sym}(t)$. \end{itemize} \end{itemize} +The process of converting time-discrete symbols to time-continuous rectangle functions can be mathematically described by: +\begin{equation} + x_{sym}(t) = \sum\limits_{n} x_{sym}[n] \cdot \mathrm{rect}_{T_{sym}}\left(t - n T_{sym}\right) + \label{eq:ch05:sym_rect} +\end{equation} + +\begin{excursus}{The rectangle function} + \begin{equation} + \mathrm{rect}_{T_{sym}}\left(t\right) = \frac{1}{T_{sym}} \begin{cases} + 0 &\quad \text{if } |t| > \frac{1}{2} T_{sym}, \\ + 1 &\quad \text{if } |t| \leq \frac{1}{2} T_{sym} + \end{cases} + \end{equation} +\end{excursus} + \begin{figure}[H] \centering \begin{tikzpicture} @@ -1698,7 +1713,7 @@ All digital modulation techniques take time-discrete and value-discrete data. %xticklabels={$- \omega_S$, $- \frac{\omega_S}{2}$, $0$, $\frac{\omega_S}{2}$, $\omega_S$}, %ytick={0}, ytick={0, 0.25, 0.5, 0.75, 1}, - yticklabels={0, $(00)_2 \mapsto 0.25$, $(01)_2 \mapsto 0.5$, $(10)_2 \mapsto 0.75$, $(11)_2 \mapsto 1$}, + yticklabels={0, $0$, $1$, $2$, $3$}, ] \draw[blue] (axis cs:0,1) -- (axis cs:2,1) -- (axis cs:2,0.25) -- (axis cs:4,0.25) -- (axis cs:4,0.75) -- (axis cs:6,0.75) -- (axis cs:6,0.5) -- (axis cs:8,0.5) -- (axis cs:8,1) -- (axis cs:9,1); @@ -1710,7 +1725,7 @@ All digital modulation techniques take time-discrete and value-discrete data. % \draw (7,-0.5) node{01}; \end{axis} \end{tikzpicture} - \caption{Series of symbols, each encoding 2 bits} + \caption[Series of symbols]{Series of symbols of the set $\left\{0, 1, 2, 3\right\}$. The set is exemplary and can be any set of discrete values.} \end{figure} \subsubsection{Symbol Mapping} @@ -1730,13 +1745,13 @@ However, the modulation is capable of encoding only $K_m$ discrete values. \text Data & Symbol \\ \hline \hline - $\left[0, 0\right]^{\mathrm{T}}$ & 0.25 \\ + $\left[0, 0\right]^{\mathrm{T}}$ & 0 \\ \hline - $\left[1, 0\right]^{\mathrm{T}}$ & 0.5 \\ + $\left[1, 0\right]^{\mathrm{T}}$ & 1 \\ \hline - $\left[0, 1\right]^{\mathrm{T}}$ & 0.75 \\ + $\left[0, 1\right]^{\mathrm{T}}$ & 2 \\ \hline - $\left[1, 1\right]^{\mathrm{T}}$ & 1 \\ + $\left[1, 1\right]^{\mathrm{T}}$ & 3 \\ \hline \end{tabular} \end{table} @@ -1814,7 +1829,7 @@ Remember that the received signal is subject to noise (thermal noise, quantizati \caption{Abstract receiver signal chain of demodulation and data detection} \end{figure} -\subsection{Amplitude-Shift Keying and Symbol Mapping} +\subsection{Amplitude-Shift Keying} The application of the \ac{AM} in digital communication system is the \index{amplitude-shift keying} \acf{ASK}. \begin{itemize} @@ -1824,9 +1839,15 @@ The application of the \ac{AM} in digital communication system is the \index{amp \item Drawback: The amplitude can be strongly affected by disturbances. \ac{ASK} signals are not very immune against noise. \end{itemize} -The amplitude can take $K_m$ discrete values. The data is mapped to symbols $x_{sym}(t)$ which alter the amplitude of the carrier. +The amplitude can take $K_m$ discrete values (symbols). The symbols are mapped to amplitude levels between $\hat{A}_L$ and the maximum amplitude $\hat{A}_H$: +\begin{equation} + x_{A}(t) = \hat{A}_L + \frac{\hat{A}_H - \hat{A}_L}{K_m - 1} x_{sym}(t) +\end{equation} +where $x_{sym}(t) \in \left\{0, 1, \cdots, K_m - 1\right\}$. + +The \ac{ASK} is: \begin{equation} - x_{ASK}(t) = x_{sym}(t) \underbrace{\cos\left(\omega_{RF} t\right)}_{\text{Carrier}} + x_{ASK}(t) = x_{A}(t) \underbrace{\cos\left(\omega_{RF} t\right)}_{\text{Carrier}} \end{equation} \begin{figure}[H] @@ -1879,7 +1900,7 @@ The amplitude can take $K_m$ discrete values. The data is mapped to symbols $x_{ \draw (7,-1.5) node{0}; \end{axis} \end{tikzpicture} - \caption{\acs{ASK} with $K_m = 2$ discrete states capable of encoding 1 bit} + \caption{\acs{ASK} with $K_m = 2$ discrete states (with $\hat{A}_L = 0.2$ and $\hat{A}_H = 1$) capable of encoding 1 bit} \end{figure} \begin{figure}[H] @@ -1922,13 +1943,13 @@ The amplitude can take $K_m$ discrete values. The data is mapped to symbols $x_{ \draw[olive, dashed] (axis cs:0,1) -- (axis cs:2,1) -- (axis cs:2,0.2) -- (axis cs:4,0.2) -- (axis cs:4,0.8) -- (axis cs:6,0.8) -- (axis cs:6,0.5) -- (axis cs:8,0.5) -- (axis cs:8,1) -- (axis cs:9,1); %\addlegendentry{Envelope of $x_B(t)$}; - \draw (1,-1.5) node{11}; - \draw (3,-1.5) node{00}; - \draw (5,-1.5) node{10}; - \draw (7,-1.5) node{01}; + \draw (1,-1.5) node{3}; + \draw (3,-1.5) node{0}; + \draw (5,-1.5) node{2}; + \draw (7,-1.5) node{1}; \end{axis} \end{tikzpicture} - \caption{\acs{ASK} with $K_m = 4$ discrete states capable of encoding 2 bits} + \caption{\acs{ASK} with $K_m = 4$ discrete states (with $\hat{A}_L = 0.25$ and $\hat{A}_H = 1$) capable of encoding 2 bits} \end{figure} \subsubsection{Phasor Representation} @@ -1938,10 +1959,13 @@ The above examples depicted different constellations for $K_m$. The \ac{ASK} is a multiplication of the symbol stream $x_{sym}(t)$ which the mono-chromatic carrier. This causes an amplitude change with each new symbol. \textbf{An alternate representation is known from Chapter 2 -- the phasors.} Each symbol of the $K_m$ states is assigned a phasor. +\begin{equation} + \underline{X}_{ASK}(t) = \hat{A}_L + \frac{\hat{A}_H - \hat{A}_L}{K_m - 1} x_{sym}(t) +\end{equation} \begin{table}[H] \centering - \caption{Example phasor representation of the symbols} + \caption{Example phasor representation of the symbols with $K_m = 4$ discrete states (with $\hat{A}_L = 0.25$ and $\hat{A}_H = 1$)} \begin{tabular}{|l|l|} \hline Symbol & Phasor \\ @@ -1963,28 +1987,782 @@ At each transition to a new symbol, the phasor is switched. The new phasor alter \subsection{Phase-Shift Keying} The application of the \ac{PM} in digital communication system is the \index{phase-shift keying} \acf{PSK}. +\begin{itemize} + \item The phase of the carrier is altered to modulate the data. + \item Non-coherent demodulation will not work. Generally, a coherent demodulator is required. + \item Advantage: The modulated carrier is more immune to disturbances causing fluctuations of the amplitude. + \item Drawback: The hardware is more complex than that for \ac{ASK}. +\end{itemize} + +\begin{fact} + \ac{PSK} must be demodulated coherently. +\end{fact} + +The general form of a \ac{PSK} is: +\begin{equation} + x_{PSK}(t) = \sqrt{\frac{2 E_{sym}}{T_{sym}}} \cos\left(\omega_{RF} t + \phi_{sym}(t)\right) +\end{equation} +where +\begin{itemize} + \item $E_{sym}$ is the energy per symbol, + \item $T_{sym}$ is the symbol period, and + \item $\phi_{sym}(t)$ represents the symbol converted to a phase-shift. +\end{itemize} + +Each of the $K_m$ symbol represents a phase-shift: +\begin{equation} + \phi_{sym}(t) = \frac{2\pi}{K_m} x_{sym}(t) +\end{equation} +The discrete phase-shifts are equally distributed. + +The phase-shifts can be represented by a phasor: +\begin{equation} + \underline{X}_{PSK}(t) = \sqrt{\frac{2 E_{sym}}{T_{sym}}} e^{j \phi_{sym}(t)} = \sqrt{\frac{2 E_{sym}}{T_{sym}}} e^{j \frac{2\pi}{K_m} x_{sym}(t)} +\end{equation} + +\begin{figure}[H] + \centering + + \subfloat[\acs{PSK} with $K_m = 2$ in the time-domain]{ + \centering + \begin{tikzpicture} + \begin{axis}[ + height={0.15\textheight}, + width=0.35\linewidth, + scale only axis, + xlabel={$t$}, + ylabel={$x_{PSK}(t)$}, + %grid style={line width=.6pt, color=lightgray}, + %grid=both, + grid=none, + legend pos=outer north east, + axis y line=middle, + axis x line=middle, + every axis x label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=north, + }, + every axis y label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=east, + }, + xmin=-0.5, + xmax=9.5, + ymin=-1.7, + ymax=1.7, + %xtick={0,0.125,...,1}, + %xticklabels={$- \omega_S$, $- \frac{\omega_S}{2}$, $0$, $\frac{\omega_S}{2}$, $\omega_S$}, + %ytick={0}, + ] + \addplot[red, smooth, domain=0:2, samples=50] plot(\x, {cos(deg(2*pi*1*\x)+180)}); + \addplot[red, smooth, domain=2:4, samples=50] plot(\x, {cos(deg(2*pi*1*\x))}); + \addplot[red, smooth, domain=4:6, samples=50] plot(\x, {cos(deg(2*pi*1*\x)+180)}); + \addplot[red, smooth, domain=6:8, samples=50] plot(\x, {cos(deg(2*pi*1*\x))}); + \addplot[red, smooth, domain=8:9, samples=50] plot(\x, {cos(deg(2*pi*1*\x))}); + + \draw[dashed] (axis cs:2,-1.6) -- (axis cs:2,1.2); + \draw[dashed] (axis cs:4,-1.6) -- (axis cs:4,1.2); + \draw[dashed] (axis cs:6,-1.6) -- (axis cs:6,1.2); + \draw[dashed] (axis cs:8,-1.6) -- (axis cs:8,1.2); + \draw[latex-latex] (axis cs:4,1.1) -- node[midway,above,align=center]{Symbol period $T_{sym}$} (axis cs:6,1.1); + + \draw (1,-1.5) node{1}; + \draw (3,-1.5) node{0}; + \draw (5,-1.5) node{1}; + \draw (7,-1.5) node{0}; + \end{axis} + \end{tikzpicture} + } + \hfill + \subfloat[Constellation diagram of the \acs{PSK} with $K_m = 2$]{ + \centering + \begin{tikzpicture} + \draw[->] (-2.2,0) -- (2.2,0) node[below right, align=left]{$\Re\left\{\underline{X}_{PSK}(t)\right\}$}; + \draw[->] (0,-2.2) -- (0,2.2) node[left, align=right]{$\Im\left\{\underline{X}_{PSK}(t)\right\}$}; + + \draw[black,thick,fill=gray!60] (0:1) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{0}; + \draw[black,thick,fill=gray!60] (180:1) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{1}; + \end{tikzpicture} + } + + \caption{\acs{PSK} with $K_m = 2$ discrete states (also known as \ac{BPSK}) capable of encoding 1 bit} +\end{figure} + +\begin{figure}[H] + \centering + + \subfloat[\acs{PSK} with $K_m = 4$ in the time-domain]{ + \centering + \begin{tikzpicture} + \begin{axis}[ + height={0.15\textheight}, + width=0.35\linewidth, + scale only axis, + xlabel={$t$}, + ylabel={$x_{PSK}(t)$}, + %grid style={line width=.6pt, color=lightgray}, + %grid=both, + grid=none, + legend pos=outer north east, + axis y line=middle, + axis x line=middle, + every axis x label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=north, + }, + every axis y label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=east, + }, + xmin=-0.5, + xmax=9.5, + ymin=-1.7, + ymax=1.7, + %xtick={0,0.125,...,1}, + %xticklabels={$- \omega_S$, $- \frac{\omega_S}{2}$, $0$, $\frac{\omega_S}{2}$, $\omega_S$}, + %ytick={0}, + ] + \addplot[red, smooth, domain=0:2, samples=50] plot(\x, {cos(deg(2*pi*1*\x))}); + \addplot[red, smooth, domain=2:4, samples=50] plot(\x, {cos(deg(2*pi*1*\x)+270)}); + \addplot[red, smooth, domain=4:6, samples=50] plot(\x, {cos(deg(2*pi*1*\x)+90)}); + \addplot[red, smooth, domain=6:8, samples=50] plot(\x, {cos(deg(2*pi*1*\x)+180)}); + \addplot[red, smooth, domain=8:9, samples=50] plot(\x, {cos(deg(2*pi*1*\x))}); + + \draw[dashed] (axis cs:2,-1.6) -- (axis cs:2,1.2); + \draw[dashed] (axis cs:4,-1.6) -- (axis cs:4,1.2); + \draw[dashed] (axis cs:6,-1.6) -- (axis cs:6,1.2); + \draw[dashed] (axis cs:8,-1.6) -- (axis cs:8,1.2); + \draw[latex-latex] (axis cs:4,1.1) -- node[midway,above,align=center]{Symbol period $T_{sym}$} (axis cs:6,1.1); + + \draw (1,-1.5) node{0}; + \draw (3,-1.5) node{3}; + \draw (5,-1.5) node{1}; + \draw (7,-1.5) node{2}; + \end{axis} + \end{tikzpicture} + } + \hfill + \subfloat[Constellation diagram of the \acs{PSK} with $K_m = 4$]{ + \centering + \begin{tikzpicture} + \draw[->] (-2.2,0) -- (2.2,0) node[below right, align=left]{$\Re\left\{\underline{X}_{PSK}(t)\right\}$}; + \draw[->] (0,-2.2) -- (0,2.2) node[left, align=right]{$\Im\left\{\underline{X}_{PSK}(t)\right\}$}; + + \draw[black,thick,fill=gray!60] (0:1) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{0}; + \draw[black,thick,fill=gray!60] (90:1) ++(-0.2,0) arc(-180:180:0.2) node[left,align=right]{1}; + \draw[black,thick,fill=gray!60] (180:1) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{2}; + \draw[black,thick,fill=gray!60] (270:1) ++(-0.2,0) arc(-180:180:0.2) node[left,align=right]{3}; + \end{tikzpicture} + } + + \caption{\acs{PSK} with $K_m = 4$ discrete states (also known as \ac{QPSK}) capable of encoding 2 bit} +\end{figure} + +The two examples above depicted the phasor constellations in the complex plane besides the time-domain function of the \ac{PSK} signal. -\todo{Constellation Diagrams} +\begin{definition}{Constellation diagram} + The \index{symbol constellation} \textbf{symbol constellation} describes all possible phasor values in the complex plane with a symbol associated to it. + + The \index{constellation diagram} \textbf{constellation diagram} depicts the symbol constellation graphically. +\end{definition} \subsection{Quadrature Amplitude Modulation} -\todo{What is a symbol?} +Now, \ac{ASK} and \ac{PSK} techniques are combined. +\begin{itemize} + \item Both amplitude and phase of the carrier are altered. + \item Using these two dimensions enlarges the set of symbols. Consequently, more data can be transmitted in one symbol. + \item The modulation is called \index{quadrature amplitude modulation} \textbf{\acf{QAM}}. + \item The abbreviation \acs{QAM} is often prefixed like \emph{$K_m$-\acs{QAM}}, where $K_m$ is the number of symbols. + \begin{itemize} + \item $2$-\acs{QAM} is equivalent to the \ac{BPSK}. The amplitude is constant. + \item $4$-\acs{QAM} is equivalent to the \ac{QPSK}. The amplitude is constant. + \item $16$-\acs{QAM} encodes 4 bits in 16 symbols. Both amplitude and phase are used. + \item $64$-\acs{QAM} encodes 6 bits in 64 symbols. Both amplitude and phase are used. + \item $256$-\acs{QAM} encodes 8 bits (1 byte) in 256 symbols. Both amplitude and phase are used. + \item Any other value of can be selected. However, practical implementations only support powers of 2 because binary data (bits) is encoded. + \end{itemize} + \item The symbols are distributed with equal spacing to the neighbouring symbols in the complex plane. +\end{itemize} + +\begin{fact} + Because the phase is affected, coherent demodulation is required. +\end{fact} + +\begin{figure}[H] + \centering + \begin{adjustbox}{scale=1} + \begin{tikzpicture}[scale=1] + \draw[-latex] (-2.9,0) -- (2.9,0) node[below right, align=left]{$\Re\left\{\underline{X}_{QAM}(t)\right\}$}; + \draw[-latex] (0,-2.9) -- (0,2.9) node[left, align=right]{$\Im\left\{\underline{X}_{QAM}(t)\right\}$}; + + \draw[black,thick,fill=gray!60] (2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{0}; + \draw[black,thick,fill=gray!60] (2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{1}; + \draw[black,thick,fill=gray!60] (0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{2}; + \draw[black,thick,fill=gray!60] (0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{3}; + + \draw[black,thick,fill=gray!60] (2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{4}; + \draw[black,thick,fill=gray!60] (2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{5}; + \draw[black,thick,fill=gray!60] (0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{6}; + \draw[black,thick,fill=gray!60] (0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{7}; + + \draw[black,thick,fill=gray!60] (-2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{8}; + \draw[black,thick,fill=gray!60] (-2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{9}; + \draw[black,thick,fill=gray!60] (-0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{10}; + \draw[black,thick,fill=gray!60] (-0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{11}; + + \draw[black,thick,fill=gray!60] (-2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{12}; + \draw[black,thick,fill=gray!60] (-2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{13}; + \draw[black,thick,fill=gray!60] (-0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{14}; + \draw[black,thick,fill=gray!60] (-0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{15}; + \end{tikzpicture} + \end{adjustbox} + \caption{Example constellation diagram of a $16$-\acs{QAM}} +\end{figure} -\todo{Data to symbol mapping} +\begin{excursus}{Modulation of \ac{QAM} signals} + The IQ modulator (see Figure \ref{fig:ch05:iq_up_circuit}) can be used to modulate the \ac{QAM} symbols. + \begin{itemize} + \item The \underline{real part of the symbol} phasor $\Re\left\{\underline{X}_{PSK}(t)\right\}$ is converted to an analogue signal by a \ac{DAC} and \underline{directly used as the \ac{I} baseband signal}. + \item The \underline{imaginary part of the symbol} phasor $\Im\left\{\underline{X}_{PSK}(t)\right\}$ is converted to an analogue signal by a \ac{DAC} and \underline{directly used as the \ac{Q} baseband signal}. + \end{itemize} -\todo{signal chain: S/P -> constellation diagram -> iFFT -> IQ} + \vspace{0.5em} + + The IQ demodulation works vice versa. +\end{excursus} -\todo{IQ Imbalance} +The number $K_m$ of the $K_m$-\acs{QAM} selects the number of possible symbols in the constellation diagram. +\begin{itemize} + \item A higher value of $K_m$ enlarges the set of symbols. + \begin{itemize} + \item More data can be encoded in one symbol. + \item The data rate increases while the symbol period is kept constant. + \item The bandwidth of the transmitted signal remains constant while the data rate increases. + \end{itemize} + \item As a drawback, higher values of $K_m$ reduce the noise immunity. Signals need a higher \ac{SNR} to keep the data error after the demodulation low. + \item Lower values of $K_m$ + \begin{itemize} + \item are more immune to noise, + \item are capable of dealing with a poor \ac{SNR} better, + \item but can encode less data in one symbol, and + \item therefore have a lower data rate. + \end{itemize} +\end{itemize} -%\subsection{Coherent and Non-Coherent Demodulation} +\begin{excursus}{Signal bandwidth} + The bandwidth is matters! + \begin{itemize} + \item The electromagnetic spectrum is shared with many other applications and services. + \item \textbf{The electromagnetic spectrum is a sparse resource.} + \item Its important to use it efficiently. Therefore, each symbol should encode as much data as possible to obtain a high data rate at a moderately narrow bandwidth. + \item A trade-off must be made between + \begin{itemize} + \item a reasonable high value of $K_m$ increasing the data rate and + \item a reasonable low value of $K_m$ increasing the immunity to noise. + \end{itemize} + \item Modern digital communication system are capable of adapting the value of $K_m$ to the current propagation conditions to archive optimal results. + \end{itemize} +\end{excursus} \subsection{Inter-Symbol Interference} -\todo{Cyclic Prefixes? No -> OFDM} +\begin{figure}[H] + \centering + \begin{tikzpicture} + \begin{axis}[ + height={0.15\textheight}, + width=0.7\linewidth, + scale only axis, + xlabel={$t$}, + ylabel={$x_{sym}(t)$}, + %grid style={line width=.6pt, color=lightgray}, + %grid=both, + grid=none, + legend pos=outer north east, + axis y line=middle, + axis x line=middle, + every axis x label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=north, + }, + every axis y label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=east, + }, + xmin=-0.5, + xmax=8.5, + ymin=0, + ymax=1.7, + %xtick={0,0.125,...,1}, + %xticklabels={$- \omega_S$, $- \frac{\omega_S}{2}$, $0$, $\frac{\omega_S}{2}$, $\omega_S$}, + %ytick={0}, + ] + \draw[blue] (axis cs:0,0) -- (axis cs:0,1) -- (axis cs:2,1) -- (axis cs:2,0); + \draw[red] (axis cs:2,0) -- (axis cs:2,0.55) -- (axis cs:4,0.55) -- (axis cs:4,0); + \draw[green] (axis cs:4,0) -- (axis cs:4,0.85) -- (axis cs:6,0.85) -- (axis cs:6,0); + \draw[olive] (axis cs:6,0) -- (axis cs:6,0.7) -- (axis cs:8,0.7) -- (axis cs:8,0); + + \draw[dashed] (axis cs:2,0) -- (axis cs:2,1.2); + \draw[dashed] (axis cs:4,0) -- (axis cs:4,1.2); + \draw[latex-latex] (axis cs:2,1.1) -- node[midway,above,align=center]{Symbol period $T_{sym}$} (axis cs:4,1.1); + \end{axis} + \end{tikzpicture} + \caption{Series of four ideal symbols} +\end{figure} + +\begin{itemize} + \item \eqref{eq:ch05:sym_rect} defined the symbols as ideal rectangle shapes. + \item Real implementations this ideal shape does not exist. + \begin{itemize} + \item The Fourier transform of the rectangle function is a sinc-function, which indefinitely expands in the frequency domain. + \item Real system limit the bandwidth. Remember that \acp{LPF} should be applied after mixers and before \ac{ADC}. + \end{itemize} + \item Due to the bandwidth-limitation, the rectangle shape is flattened. The ideally steep edges become flattened. +\end{itemize} + +\begin{figure}[H] + \centering + \begin{tikzpicture} + \begin{axis}[ + height={0.15\textheight}, + width=0.7\linewidth, + scale only axis, + xlabel={$t$}, + ylabel={$x_{sym}(t)$}, + %grid style={line width=.6pt, color=lightgray}, + %grid=both, + grid=none, + legend pos=outer north east, + axis y line=middle, + axis x line=middle, + every axis x label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=north, + }, + every axis y label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=east, + }, + xmin=-0.5, + xmax=8.5, + ymin=0, + ymax=1.7, + %xtick={0,0.125,...,1}, + %xticklabels={$- \omega_S$, $- \frac{\omega_S}{2}$, $0$, $\frac{\omega_S}{2}$, $\omega_S$}, + %ytick={0}, + ] + \draw[blue,smooth] (axis cs:-0.25,0) -- (axis cs:0.25,1) -- (axis cs:1.75,1) -- (axis cs:2.25,0); + \draw[red,smooth] (axis cs:1.75,0) -- (axis cs:2.25,0.55) -- (axis cs:3.75,0.55) -- (axis cs:4.25,0); + \draw[green,smooth] (axis cs:3.75,0) -- (axis cs:4.25,0.85) -- (axis cs:5.75,0.85) -- (axis cs:6.25,0); + \draw[olive,smooth] (axis cs:5.75,0) -- (axis cs:6.25,0.7) -- (axis cs:7.75,0.7) -- (axis cs:8.25,0); + + \draw[dashed] (axis cs:2,0) -- (axis cs:2,1.2); + \draw[dashed] (axis cs:4,0) -- (axis cs:4,1.2); + \draw[latex-latex] (axis cs:2,1.1) -- node[midway,above,align=center]{Symbol period $T_{sym}$} (axis cs:4,1.1); + \end{axis} + \end{tikzpicture} + \caption[Series of four non-ideal symbols showing overlap]{Series of four non-ideal symbols where the edges are flattened. The symbols overlap due to \acs{ISI}.} +\end{figure} + +\begin{itemize} + \item Due to the flattened shape, the symbols overlap. + \item This effect is the \index{inter-symbol interference} \textbf{\acf{ISI}}. + \item To mitigate the \ac{ISI} a \index{guard interval} \textbf{guard interval} should be inserted between the symbols. + \begin{itemize} + \item The guard interval adds a spacing between the symbol pulses. + \item The guard interval reduces the \ac{ISI}. + \item The symbol period is prolonged. It is the sum of the guard interval and the symbol width (which used to equal the symbol period for ideal rectangle shapes)- + \end{itemize} + \item Reducing the symbol width by maintaining the symbol period $T_{sym}$ is not feasible, because the bandwidth of the signal would be increased. +\end{itemize} + +\begin{figure}[H] + \centering + \begin{tikzpicture} + \begin{axis}[ + height={0.15\textheight}, + width=0.7\linewidth, + scale only axis, + xlabel={$t$}, + ylabel={$x_{sym}(t)$}, + %grid style={line width=.6pt, color=lightgray}, + %grid=both, + grid=none, + legend pos=outer north east, + axis y line=middle, + axis x line=middle, + every axis x label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=north, + }, + every axis y label/.style={ + at={(ticklabel* cs:1.05)}, + anchor=east, + }, + xmin=-0.5, + xmax=10, + ymin=0, + ymax=1.9, + %xtick={0,0.125,...,1}, + %xticklabels={$- \omega_S$, $- \frac{\omega_S}{2}$, $0$, $\frac{\omega_S}{2}$, $\omega_S$}, + %ytick={0}, + ] + \draw[blue,smooth] (axis cs:-0.25,0) -- (axis cs:0.25,1) -- (axis cs:1.75,1) -- (axis cs:2.25,0); + \draw[red,smooth] (axis cs:2.25,0) -- (axis cs:2.75,0.55) -- (axis cs:4.25,0.55) -- (axis cs:4.75,0); + \draw[green,smooth] (axis cs:4.75,0) -- (axis cs:5.25,0.85) -- (axis cs:6.75,0.85) -- (axis cs:7.25,0); + \draw[olive,smooth] (axis cs:7.25,0) -- (axis cs:7.75,0.7) -- (axis cs:9.25,0.7) -- (axis cs:9.75,0); + + \draw[dashed] (axis cs:2.5,0) -- (axis cs:2.5,1.6); + \draw[dashed] (axis cs:4.5,0) -- (axis cs:4.5,1.4); + \draw[dashed] (axis cs:5,0) -- (axis cs:5,1.6); + \draw[latex-latex] (axis cs:2.5,1.5) -- node[midway,above,align=center]{Prolonged symbol period $T_{sym}$} (axis cs:5,1.5); + \draw[latex-latex] (axis cs:2.5,1.3) node[left,align=right]{Symbol width} -- (axis cs:4.5,1.3); + \draw[latex-latex] (axis cs:4.5,1.3) -- (axis cs:5,1.3) node[right,align=left]{Guard interval}; + \end{axis} + \end{tikzpicture} + \caption[Series of four non-ideal symbols with additional spacing]{Series of four non-ideal symbols where the edges are flattened. An additional spacing between the symbols (guard interval) is added to mitigate \acs{ISI}. The symbol period is prolonged by the guard interval.} +\end{figure} + +\subsection{IQ Imbalance} + +So far, we assumed ideal conditions for the IQ modulation and IQ demodulation (see Figure \ref{fig:ch05:iq_up_circuit} and \ref{fig:ch05:iq_down_circuit}). +\begin{itemize} + \item The phase-shift of the \ac{LO} signal was perfectly \SI{90}{\degree}. + \item The phasor of the \ac{LO} signal fed into the \ac{I}-mixer was ideally parallel to the real axis in the complex plane ($\arg\left(\underline{X}_{LO,I}\right) = 0$). + \item The phasor of the phase-shifted \ac{LO} signal fed into the \ac{Q}-mixer was ideally parallel to the imaginary axis in the complex plane ($\arg\left(\underline{X}_{LO,Q}\right) = \frac{\pi}{2}$). + \item Both phasors were perfectly orthogonal. +\end{itemize} + +\begin{figure}[H] + \centering + + \subfloat[Example constellation diagram of a $16$-\acs{QAM} under ideal conditions]{ + \centering + \begin{adjustbox}{scale=0.9} + \begin{tikzpicture}[scale=1] + \draw[-latex] (-2.9,0) -- (2.9,0) node[below right, align=left]{$\Re\left\{\underline{X}_{QAM}(t)\right\}$}; + \draw[-latex] (0,-2.9) -- (0,2.9) node[left, align=right]{$\Im\left\{\underline{X}_{QAM}(t)\right\}$}; + + \pgftransformcm{1}{0}{0}{1}{\pgfpoint{0cm}{0cm}} + + \foreach \x in {-2.25,-0.75,0.75,2.25}{ + \draw[dashed] (\x,-2.25) -- (\x,2.25); + \draw[dashed] (-2.25,\x) -- (2.25,\x); + } + + + \draw[black,thick,fill=gray!60] (2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{0}; + \draw[black,thick,fill=gray!60] (2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{1}; + \draw[black,thick,fill=gray!60] (0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{2}; + \draw[black,thick,fill=gray!60] (0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{3}; + + \draw[black,thick,fill=gray!60] (2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{4}; + \draw[black,thick,fill=gray!60] (2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{5}; + \draw[black,thick,fill=gray!60] (0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{6}; + \draw[black,thick,fill=gray!60] (0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{7}; + + \draw[black,thick,fill=gray!60] (-2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{8}; + \draw[black,thick,fill=gray!60] (-2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{9}; + \draw[black,thick,fill=gray!60] (-0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{10}; + \draw[black,thick,fill=gray!60] (-0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{11}; + + \draw[black,thick,fill=gray!60] (-2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{12}; + \draw[black,thick,fill=gray!60] (-2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{13}; + \draw[black,thick,fill=gray!60] (-0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{14}; + \draw[black,thick,fill=gray!60] (-0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{15}; + + \draw[-latex,red,thick] (0,0) -- (2.6,0) node[above right, align=left]{$\underline{X}_{LO,I}$}; + \draw[-latex,red,thick] (0,0) -- (0,2.6) node[above right, align=left]{$\underline{X}_{LO,Q}$}; + \draw[red] (0:0.4) arc(0:90:0.4) node[midway,right,align=left]{$\Delta \varphi_{IQ}$}; + \end{tikzpicture} + \end{adjustbox} + } + \hfill + \subfloat[Example constellation diagram of a $16$-\acs{QAM} subject to IQ imbalance]{ + \centering + \begin{adjustbox}{scale=0.9} + \begin{tikzpicture}[scale=1] + \draw[-latex] (-2.9,0) -- (2.9,0) node[below right, align=left]{$\Re\left\{\tilde{\underline{X}}_{QAM}(t)\right\}$}; + \draw[-latex] (0,-2.9) -- (0,2.9) node[left, align=right]{$\Im\left\{\tilde{\underline{X}}_{QAM}(t)\right\}$}; + + \pgftransformcm{1}{0.1}{0.1}{1}{\pgfpoint{0cm}{0cm}} + + \foreach \x in {-2.25,-0.75,0.75,2.25}{ + \draw[dashed] (\x,-2.25) -- (\x,2.25); + \draw[dashed] (-2.25,\x) -- (2.25,\x); + } + + + \draw[black,thick,fill=gray!60] (2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{0}; + \draw[black,thick,fill=gray!60] (2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{1}; + \draw[black,thick,fill=gray!60] (0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{2}; + \draw[black,thick,fill=gray!60] (0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{3}; + + \draw[black,thick,fill=gray!60] (2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{4}; + \draw[black,thick,fill=gray!60] (2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{5}; + \draw[black,thick,fill=gray!60] (0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{6}; + \draw[black,thick,fill=gray!60] (0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{7}; + + \draw[black,thick,fill=gray!60] (-2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{8}; + \draw[black,thick,fill=gray!60] (-2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{9}; + \draw[black,thick,fill=gray!60] (-0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{10}; + \draw[black,thick,fill=gray!60] (-0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{11}; + + \draw[black,thick,fill=gray!60] (-2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{12}; + \draw[black,thick,fill=gray!60] (-2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{13}; + \draw[black,thick,fill=gray!60] (-0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{14}; + \draw[black,thick,fill=gray!60] (-0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{15}; + + \draw[-latex,red,thick] (0,0) -- (2.6,0) node[above right, align=left]{$\underline{X}_{LO,I}$}; + \draw[-latex,red,thick] (0,0) -- (0,2.6) node[above right, align=left]{$\underline{X}_{LO,Q}$}; + \draw[red] (0:0.4) arc(0:90:0.4) node[midway,right,align=left]{$\Delta \varphi_{IQ}$}; + \end{tikzpicture} + \end{adjustbox} + } + + \caption{Example constellation diagram of a $16$-\acs{QAM} under ideal conditions and while being subject to IQ imbalance} +\end{figure} + +Under real conditions, the phase-shift of the \ac{LO} signal is not precisely \SI{90}{\degree}. +\begin{itemize} + \item The phase-shift between the \ac{I} and \ac{Q} component of the \ac{LO} signal $\Delta \varphi_{IQ}$ differs from \SI{90}{\degree}. + \item The difference $\SI{90}{\degree} - \Delta \varphi_{IQ}$ is the \index{IQ imbalance} \textbf{IQ imbalance}. + \item The IQ imbalance will disturb the data detection, which reconstructs the symbols from the IQ demodulated \ac{I} and \ac{Q} baseband signals. + \item Data error might a corollary of the IQ imbalance. +\end{itemize} + +Countermeasures: +\begin{itemize} + \item The IQ imbalance is a linear coordinate transformation. + \begin{equation} + \underbrace{\left[\begin{matrix}\Re\left\{\tilde{\underline{X}}_{QAM}(t)\right\}\\ \Im\left\{\tilde{\underline{X}}_{QAM}(t)\right\}\end{matrix}\right]}_{\text{IQ imbalance applied}} = \mat{T}_{IQ} \cdot \underbrace{\left[\begin{matrix}\Re\left\{\underline{X}_{QAM}(t)\right\}\\ \Im\left\{\underline{X}_{QAM}(t)\right\}\end{matrix}\right]}_{\text{Ideal constellation}} + \end{equation} + where $\mat{T}_{IQ}$ is a $2 \times 2$ transformation matrix. + \item The IQ imbalance must be estimated to obtain knowledge about $\mat{T}_{IQ}$. + \item The IQ imbalance can then be compensated by applying the inverse transformation matrix $\mat{T}_{IQ}^{-1}$. +\end{itemize} \subsection{Synchronization 2: Carrier Recovery} -\todo{Frequency and phase offset} +\subsubsection{Phase Offset} + +Another problem is that the phase of the \ac{RF} signal is not known. +\begin{itemize} + \item The phases of the transmitter \ac{LO} and the receiver \ac{LO} are not synchronized. + \item They are phase-shifted by a \emph{phase offset} of $\Delta \varphi_{C}$ (``C'' stands for carrier). + \item A corollary is that the \ac{RF} carrier, which is synchronous to the transmitter \ac{LO}, is phase-shifted by $\Delta \varphi_{C}$ in relation to the receiver \ac{LO}. + \item The whole constellation diagram is rotated by $\Delta \varphi_{C}$. +\end{itemize} + +\textit{The IQ imbalance is neglected for the following considerations.} + +\begin{figure}[H] + \centering + \begin{adjustbox}{scale=1} + \begin{tikzpicture}[scale=1] + \draw[-latex] (-2.9,0) -- (2.9,0) node[below right, align=left]{$\Re\left\{\underline{X}_{QAM}(t)\right\}$}; + \draw[-latex] (0,-2.9) -- (0,2.9) node[left, align=right]{$\Im\left\{\underline{X}_{QAM}(t)\right\}$}; + + \begin{scope}[rotate=30] + \foreach \x in {-2.25,-0.75,0.75,2.25}{ + \draw[dashed] (\x,-2.25) -- (\x,2.25); + \draw[dashed] (-2.25,\x) -- (2.25,\x); + } + + \draw[black,thick,fill=gray!60] (2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{0}; + \draw[black,thick,fill=gray!60] (2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{1}; + \draw[black,thick,fill=gray!60] (0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{2}; + \draw[black,thick,fill=gray!60] (0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{3}; + + \draw[black,thick,fill=gray!60] (2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{4}; + \draw[black,thick,fill=gray!60] (2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{5}; + \draw[black,thick,fill=gray!60] (0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{6}; + \draw[black,thick,fill=gray!60] (0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{7}; + + \draw[black,thick,fill=gray!60] (-2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{8}; + \draw[black,thick,fill=gray!60] (-2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{9}; + \draw[black,thick,fill=gray!60] (-0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{10}; + \draw[black,thick,fill=gray!60] (-0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{11}; + + \draw[black,thick,fill=gray!60] (-2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{12}; + \draw[black,thick,fill=gray!60] (-2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{13}; + \draw[black,thick,fill=gray!60] (-0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{14}; + \draw[black,thick,fill=gray!60] (-0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{15}; + + \draw[-latex,red,thick] (0,0) -- (2.6,0) node[above right, align=left]{$\underline{X}_{LO,Tx,I}$}; + \draw[-latex,red,thick] (0,0) -- (0,2.6) node[above right, align=left]{$\underline{X}_{LO,Tx,Q}$}; + \end{scope} + + \draw[-latex,green,thick] (0,0) -- (2.6,0) node[above right, align=left]{$\underline{X}_{LO,Rx,I}$}; + \draw[-latex,green,thick] (0,0) -- (0,2.6) node[above right, align=left]{$\underline{X}_{LO,Rx,Q}$}; + + \draw[blue] (0:0.4) arc(0:30:0.4) node[midway,right,align=left]{$\Delta \varphi_{C}$}; + \end{tikzpicture} + \end{adjustbox} + \caption{Example constellation diagram of a $16$-\acs{QAM} rotated by a phase offset of $\Delta \varphi_{C} = \SI{30}{\degree}$} +\end{figure} + +\textbf{The data detection will fail, because the detector expects a perfectly adjusted symbol constellation.} + +\subsubsection{Frequency Offset} + +In addition to the phase offset, the frequency of the transmitter \ac{LO} and receiver \ac{LO} might differ. +\begin{itemize} + \item The difference is the \emph{frequency offset} $\Delta \omega_{C}$. + \item The \ac{RF} carrier is synchronized to the transmitter \ac{LO}. Its frequency differs by $\Delta \omega_{C}$ from the receiver \ac{LO}. + \item A corollary is that the phase offset integrates over time. + \begin{equation} + \Delta \varphi_{C}(t) = \underbrace{\Delta \varphi_{C,0}}_{\text{Initial offset}} + \int\limits_{t_0}^{t} \omega_{C} \, \mathrm{d} t + \end{equation} + \item The constellation diagram rotates at $\omega_{C}$ and constantly changes its angle. +\end{itemize} + +\begin{figure}[H] + \centering + \begin{adjustbox}{scale=1} + \begin{tikzpicture}[scale=1] + \draw[-latex] (-2.9,0) -- (2.9,0) node[below right, align=left]{$\Re\left\{\underline{X}_{QAM}(t)\right\}$}; + \draw[-latex] (0,-2.9) -- (0,2.9) node[left, align=right]{$\Im\left\{\underline{X}_{QAM}(t)\right\}$}; + + \begin{scope}[rotate=30] + \foreach \x in {-2.25,-0.75,0.75,2.25}{ + \draw[dashed] (\x,-2.25) -- (\x,2.25); + \draw[dashed] (-2.25,\x) -- (2.25,\x); + } + + \draw[black,thick,fill=gray!60] (2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{0}; + \draw[black,thick,fill=gray!60] (2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{1}; + \draw[black,thick,fill=gray!60] (0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{2}; + \draw[black,thick,fill=gray!60] (0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{3}; + + \draw[black,thick,fill=gray!60] (2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{4}; + \draw[black,thick,fill=gray!60] (2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{5}; + \draw[black,thick,fill=gray!60] (0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{6}; + \draw[black,thick,fill=gray!60] (0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{7}; + + \draw[black,thick,fill=gray!60] (-2.25,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{8}; + \draw[black,thick,fill=gray!60] (-2.25,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{9}; + \draw[black,thick,fill=gray!60] (-0.75,2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{10}; + \draw[black,thick,fill=gray!60] (-0.75,0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{11}; + + \draw[black,thick,fill=gray!60] (-2.25,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{12}; + \draw[black,thick,fill=gray!60] (-2.25,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{13}; + \draw[black,thick,fill=gray!60] (-0.75,-2.25) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{14}; + \draw[black,thick,fill=gray!60] (-0.75,-0.75) ++(0,-0.2) arc(-90:270:0.2) node[below,align=center]{15}; + + \draw[-latex,red,thick] (0,0) -- (2.6,0) node[above right, align=left]{$\underline{X}_{LO,Tx,I}$}; + \draw[-latex,red,thick] (0,0) -- (0,2.6) node[above right, align=left]{$\underline{X}_{LO,Tx,Q}$}; + + \draw[-latex,red,thick] (70:1.2) arc(70:110:1.2) node[left, align=right]{$\omega_{C}$}; + \end{scope} + + \draw[-latex,green,thick] (0,0) -- (2.6,0) node[above right, align=left]{$\underline{X}_{LO,Rx,I}$}; + \draw[-latex,green,thick] (0,0) -- (0,2.6) node[above right, align=left]{$\underline{X}_{LO,Rx,Q}$}; + + \draw[blue] (0:0.4) arc(0:30:0.4) node[midway,right,align=left]{$\Delta \varphi_{C}$}; + \end{tikzpicture} + \end{adjustbox} + \caption{Example constellation diagram of a $16$-\acs{QAM} rotating at a frequency offset of $\Delta \omega_{C}$} +\end{figure} + +\textbf{The frequency offset and the rotation symbol constellation makes a data detection impossible.} + +\subsubsection{Carrier Recovery} + +\begin{fact} + The receiver \ac{LO} must be synchronized to the \ac{RF} carrier phase and frequency. +\end{fact} + +The synchronization is called \index{carrier recovery} \textbf{carrier recovery} and is usually implemented as a closed control loop. +\begin{itemize} + \item The control loop adjusts the \ac{LO} phase so that it is synchronous to the \ac{RF} carrier ($\Delta \omega_{C} \rightarrow 0$). + \item A synchronization usually requires data (pilot, preamble) to estimate the phase offset from the current symbol constellation. + \item The phase offset correction is usually sufficient, because the frequency offset is related to that error via the integral. Because of the frequency offset, the synchronization is only short-term stable and must be repeated regularly. + \item The estimated phase error is than fed via a loop filter to the \ac{LO} (hybrid approach). + \item An alternative approach is all-digital: The digital \ac{I} and \ac{Q} signals are digitally mixed to compensate the phase and frequency offset. +\end{itemize} + +\textit{Remark:} In contrast to the similar timing recovery, which adjusts the sampling clock, the carrier recovery adjusts the \ac{LO}. + +\begin{figure}[H] + \centering + \begin{adjustbox}{scale=0.6} + \begin{circuitikz} + \node[draw, block] at(0,0) (Mixer){Mixer}; + \node[oscillator, below=4cm of Mixer](LO){}; + \node[draw, block, right=of Mixer](Sampler){Sampler}; + \node[oscillator, below=of Sampler](Clock){}; + \node[draw, block, right=of Clock] (Filter){Loop filter}; + \node[draw, block, right=of Filter] (Pred){Timing error\\ estimator}; + \node[draw, block, right=5cm of LO] (CarrierFilter){Loop filter}; + \node[draw, block, right=of CarrierFilter] (CarrierPred){Phase error\\ estimator}; + + \draw[dashed] (Sampler.north) -- ++(0, 2cm) node[below left, align=right]{Analogue\\ domain} node[below right, align=left]{Digital\\ domain}; + \node[left=2mm of LO, align=right]{\acs{LO}}; + \node[left=2mm of Clock, align=right]{Sampling\\ clock}; + + \draw[o->] (-2.5,0) node[left,align=right]{Input} -- (Mixer.west); + \draw[->] (Mixer.east) -- (Sampler.west); + \draw[->] (Sampler.east) -- ++(11,0) node[right,align=left]{Further signal\\ processing}; + + \draw[*->] ([xshift=9cm] Sampler.east) |- (Pred.east); + \draw[->] (Pred.west) -- (Filter.east); + \draw[->] (Filter.west) -- (Clock.east); + + \draw[*->] ([xshift=9.5cm] Sampler.east) |- (CarrierPred.east); + \draw[->] (CarrierPred.west) -- (CarrierFilter.east); + \draw[->] (CarrierFilter.west) -- (LO.east); + + \draw[->] (LO.north) -- (Mixer.south); + \draw[->] (Clock.north) -- (Sampler.south); + \end{circuitikz} + \end{adjustbox} + \caption{Hybrid timing recovery and carrier recovery} +\end{figure} + +\begin{figure}[H] + \centering + \begin{adjustbox}{scale=0.6} + \begin{circuitikz} + \node[draw, block] at(0,0) (Mixer){Mixer}; + \node[oscillator, below=3cm of Mixer](LO){}; + \node[draw, block, right=of Mixer](Sampler){Sampler}; + \node[oscillator, below=of Sampler](Clock){}; + \node[draw, block, right=of Sampler] (DigiMix){Digital\\ mixer}; + \node[oscillator, below=4.5cm of DigiMix](NCO){}; + \node[draw, block, right=of DigiMix] (Resampler){Interpolation\\ and resampling}; + \node[draw, block, below=of Resampler] (Filter){Loop filter}; + \node[draw, block, right=of Filter] (Pred){Timing error\\ estimator}; + \node[draw, block, right=of NCO] (CarrierFilter){Loop filter}; + \node[draw, block, right=of CarrierFilter] (CarrierPred){Phase error\\ estimator}; + + \draw[dashed] (Sampler.north) -- ++(0, 2cm) node[below left, align=right]{Analogue\\ domain} node[below right, align=left]{Digital\\ domain}; + \node[below=2mm of LO, align=center]{Free-running\\ \acs{LO}}; + \node[below=2mm of Clock, align=center]{Free-running\\ sampling clock}; + \node[left=2mm of NCO, align=right]{Digital\\ oscillator}; + + \draw[o->] (-2.5,0) node[left,align=right]{Input} -- (Mixer.west); + \draw[->] (Mixer.east) -- (Sampler.west); + \draw[->] (Sampler.east) -- (DigiMix.west); + \draw[->] (DigiMix.east) -- (Resampler.west); + \draw[->] (Resampler.east) -- ++(6,0) node[right,align=left]{Further signal\\ processing}; + + \draw[*->] ([xshift=5cm] Resampler.east) |- (Pred.east); + \draw[->] (Pred.west) -- (Filter.east); + \draw[->] (Filter.north) -- (Resampler.south); + + \draw[*->] ([xshift=5.5cm] Resampler.east) |- (CarrierPred.east); + \draw[->] (CarrierPred.west) -- (CarrierFilter.east); + \draw[->] (CarrierFilter.west) -- (NCO.east); + + \draw[->] (LO.north) -- (Mixer.south); + \draw[->] (Clock.north) -- (Sampler.south); + \draw[->] (NCO.north) -- (DigiMix.south); + \end{circuitikz} + \end{adjustbox} + \caption{Digital timing recovery and carrier recovery} +\end{figure} \phantomsection -- cgit v1.1