aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2021-10-27 18:16:43 +0200
committerNao Pross <np@0hm.ch>2021-10-27 18:16:43 +0200
commit632037af518a9ebccc33a46e943bc949347d2306 (patch)
tree96a9e6b9852d38247903a0be474bcfe6a710aaa8 /doc
parentA bit of doc on M-ary QAM (diff)
downloadFading-632037af518a9ebccc33a46e943bc949347d2306.tar.gz
Fading-632037af518a9ebccc33a46e943bc949347d2306.zip
Continue M-ary QAM mixer
Diffstat (limited to '')
-rw-r--r--doc/thesis/Fading.pdfbin100248 -> 0 bytes
-rw-r--r--doc/thesis/chapters/theory.tex59
2 files changed, 39 insertions, 20 deletions
diff --git a/doc/thesis/Fading.pdf b/doc/thesis/Fading.pdf
deleted file mode 100644
index 354fdaf..0000000
--- a/doc/thesis/Fading.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/thesis/chapters/theory.tex b/doc/thesis/chapters/theory.tex
index 8812aa7..29fa789 100644
--- a/doc/thesis/chapters/theory.tex
+++ b/doc/thesis/chapters/theory.tex
@@ -15,7 +15,7 @@ In this section we will briefly give the mathematical background required by the
%% TODO: Par on notation m(n) = m(nT) = discrete time
-\section{Quadrature amplitude modulation}
+\section{Quadrature amplitude modulation (\(M\)-ary QAM)}
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 diagram showing the process is found in figure \ref{fig:quadrature-modulation}.
@@ -23,30 +23,49 @@ 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 takes 2 chunks of \(\sqrt{M}\) bits from the continuous data stream \(m(n)\). The two bit vectors of length \(\sqrt{M}\), denoted with \(\vec{m}_i\) and \(\vec{m}_q\) 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, 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\), are called in-phase and quadrature component respectively. The reason will become more clear later.
\paragraph{Binary to level converter}
%% TODO: explain why gray code
-Both bit vectors \(\vec{m}_i, \vec{m}_q \in \{0,1\}^{\sqrt{M}}\) are sent through a binary to level converter. It's purpose is to reinterpret the bit vector as a number, usually in gray code, and to convert them into an analog amplitude levels, which we will denote with \(m_i(t)\) and \(m_q(t)\). So at this point the analog amplitude level is already encoding \(\sqrt{M}\) bits per unit time. But it is possible to improve further.
-
-%% TODO: mention level converter pulse shaping
-
-\paragraph{Mixer}
-
-Having analog level signals, it is this now possible to mix them with a high frequency carrier. 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\). Now the clever part, the carrier functions are picked to be \emph{orthogonal} to each other, mathematically expressed as
+Both bit vectors \(\vec{m}_i, \vec{m}_q \in \{0,1\}^{\sqrt{M}}\) are sent through a binary to level converter. It's purpose is to reinterpret the bit vector as a number, usually in gray code, and to convert them into an analog waveform, which we will denote with \(m_i(t)\) and \(m_q(t)\) respectively. Mathematically the binary to level converter can be described as:
\begin{equation}
- \langle \phi_i | \phi_q \rangle
- = \int_T \phi_i^* \phi_q \, dt
- = 0,
+ m_i(t) = \text{Level}(\vec{m}_i) \cdot p(t),
\end{equation}
-i.e. their inner product is zero.
+i.e. with a pulse function \(p(t)\) (typically a root raised cosine to optimize for bandwidth) scaled by the interpreted binary value, which we will write here with 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.
+
+\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\). Now the clever part: the carrier functions are picked to be \emph{orthonormal}, mathematically this is expressed by the conditions
+\begin{subequations}
+ \begin{align}
+ \langle \phi_i | \phi_q \rangle
+ &= \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,
+ \text{ where } k \text{ can be either } i \text{ or } q.
+ \end{align}
+\end{subequations}
+
+These rather abstract conditions remarkably allow for something very special. By defining a new signal
\begin{equation}
- s(t) = m_i\cdot\phi_i + m_q\cdot\phi_q,
+ s = m_i\phi_i + m_q\phi_q,
\end{equation}
-without any issue.
+%% TODO: is this assumption correct?
+notice that assuming \(m_i\) and \(m_q\) are constant over the period 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,
+\end{align*}
+which effectively means that it is possible to isolate a single component of the signal out of \(s\). The same of course works with \(\phi_q\) as well resulting in \(\langle s | \phi_q \rangle = m_q\).
+
+% This formulation is rather abstract, in practice we usually pick \(\phi_i(t) = \cos(\omega_c t)\) and \(\phi_q(t) = j\sin(\omega_c t)\).
% \begin{figure}
% \centering
@@ -61,11 +80,11 @@ without any issue.
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
- % https://sites.google.com/site/billmahroukelec675/bipolar-phase-shift-keying
- \includegraphics[width=5cm]{./image/BPSK2.png}
-\end{figure}
+% \begin{figure}
+% % TODO: Better Image
+% % https://sites.google.com/site/billmahroukelec675/bipolar-phase-shift-keying
+% \includegraphics[width=5cm]{./image/BPSK2.png}
+% \end{figure}
\subsection{Quadrature Phase Shift Keying (QPSK)}