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/figures/tikz/psk-constellation.tex | 23 ++++++++++ doc/thesis/figures/tikz/qam-modulator.tex | 58 +++++++++++++++++++++++--- doc/thesis/figures/tikz/qpsk-constellation.tex | 23 ---------- 3 files changed, 76 insertions(+), 28 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/figures/tikz') 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} -- 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 --- .../figures/tikz/multipath-impulse-response.tex | 34 ++++++++++++++++++++ doc/thesis/figures/tikz/multipath-sketch.tex | 37 ++++++++++++++++++++++ 2 files changed, 71 insertions(+) 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/figures/tikz') 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/figures/tikz/multipath-impulse-response.tex | 4 ++-- doc/thesis/figures/tikz/multipath-sketch.tex | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'doc/thesis/figures/tikz') 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} -- 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 --- .../tikz/multipath-frequency-response-plots.tex | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 doc/thesis/figures/tikz/multipath-frequency-response-plots.tex (limited to 'doc/thesis/figures/tikz') 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/figures/tikz/qam-constellation.tex | 3 ++ doc/thesis/figures/tikz/qam-example.tex | 49 +++++++++++++++++++++++++++ doc/thesis/figures/tikz/qam-modulator.tex | 45 ------------------------ 3 files changed, 52 insertions(+), 45 deletions(-) create mode 100644 doc/thesis/figures/tikz/qam-example.tex (limited to 'doc/thesis/figures/tikz') 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