Page MenuHomec4science

3_power.tex
No OneTemporary

File Metadata

Created
Thu, Mar 13, 17:19

3_power.tex

\documentclass[aspectratio=169]{beamer}
\def\stylepath{../styles}
\usepackage{\stylepath/com303}
\begin{document}
\begin{frame}
\frametitle{Overview:}
\begin{itemize}[<+->]
\item Noise and probability of error
\item Signaling alphabet and power
\item QAM signaling
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Transmission reliability}
\begin{itemize}[<+->]
\item transmitter sends a sequence of symbols $a[n]$
\item receiver obtaines a sequence $\hat{a}[n]$
\item even if no distortion we can't avoid noise: $\hat{a}[n] = a[n] + \eta[n]$
\item when noise is large, we make an error
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Probability of error}
depends on:
\begin{itemize}[<+->]
\item power of the noise wrt power of the signal
\item decoding strategy
\item {\em alphabet}\/ of transmission symbols
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Signaling alphabets}
\begin{itemize}[<+->]
\item we have a (randomized) bitstream coming in
\item we want to send some upsampled and interpolated samples over the channel
\item how do we go from bitstream to samples?
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Mappers and slicers}
mapper:
\begin{itemize}
\item split incoming bitstream into chunks
\item assign a symbol $a[n]$ from a finite alphabet $\mathcal{A}$ to each chunk
\end{itemize}
\vspace{2em}
slicer:
\begin{itemize}
\item receive a value $\hat{a}[n]$
\item decide which symbol from $\mathcal{A}$ is ``closest'' to $\hat{a}[n]$
\item piece back together the corresponding bitstream
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Example: two-level signaling}
mapper:
\begin{itemize}
\item split incoming bitstream into single bits
\item $a[n] = G$ if the bit is 1, $a[n] = -G$ if the bit is 0
\end{itemize}
\vspace{2em}
slicer:
\begin{itemize}
\item $n\mbox{-th bit} = \begin{cases} 1 & \mbox{if $\hat{a}[n] > 0$} \\ 0 & \mbox{otherwise} \end{cases}$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Example: two-level signaling}
\begin{figure}
\begin{dspPlot}[xout=true]{0, 32}{-2.1, 2.1}
\moocStyle
\only<1>{%
\dspTapsAt[linecolor=green!70]{0}{ 1 -1 -1 1 1 -1 1 1 1 1 1 1 -1 1 1 -1 1 -1 -1 -1 -1 -1 1 1 1 1 1 -1 -1 1 1 -1}}
\only<2->{%
\dspTapsAt[linecolor=green!10]{0}{1 -1 -1 1 1 -1 1 1 1 1 1 1 -1 1 1 -1 1 -1 -1 -1 -1 -1 1 1 1 1 1 -1 -1 1 1 -1}
\dspTapsAt[linecolor=blue!50]{0}{1.53 -0.95 -0.26 -0.34 -0.78 0.12 1.11 0.79 0.90 -0.37 0.00 0.39 -1.19 0.83 1.80 -0.98 1.15 -1.53 0.84 -1.47 -0.29 -1.12 1.01 0.51 0.46 1.80 -0.13 -0.55 1.80 -0.65 1.05 -1.58}}
\only<3->{%
\dspTapsAt[linecolor=blue!10]{0}{1.53 -0.95 -0.26 -0.34 -0.78 0.12 1.11 0.79 0.90 -0.37 0.00 0.39 -1.19 0.83 1.80 -0.98 1.15 -1.53 0.84 -1.47 -0.29 -1.12 1.01 0.51 0.46 1.80 -0.13 -0.55 1.80 -0.65 1.05 -1.58}
\dspTaps[linecolor=green!70]{0 1 1 -1 2 -1 6 1 7 1 8 1 10 1 11 1 12 -1 13 1 14 1 15 -1 16 1 17 -1 19 -1 20 -1 21 -1 22 1 23 1 24 1 25 1 27 -1 30 1 31 -1}
\dspTaps[linecolor=red]{ 3 -1 4 -1 5 1 9 -1 18 1 26 -1 28 1 29 -1}}
\end{dspPlot}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Example: two-level signaling}
let's look at the probability of error after making some hypotheses:
\begin{itemize}
\item $\hat{a}[n] = a[n] + \eta[n]$
\item bits in bitstream are equiprobable
\item noise and signal are independent
\item noise is additive white Gaussian noise with zero mean and variance $\sigma_0$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Example: two-level signaling}
\begin{align*}
P_{\mbox{err}} &= P[\,\,\eta[n] < -G \,\,\mid\,\, n\mbox{-th bit is 1}\,\,]\,P[\,\, n\mbox{-th bit is 1}\,\,] + \\
&\qquad P[\,\,\eta[n] > G \,\,\mid\,\, n\mbox{-th bit is 0}\,\,]\,P[\,\, n\mbox{-th bit is 0}\,\,] \\ \pause
&= (P[\,\,\eta[n] < -G\,\,] + P[\,\,\eta[n] > G\,\,])/2 \\ \pause
&= P[\,\,\eta[n] > G\,\,] \\ \pause
&= \int_G^{\infty} \frac{1}{\sqrt{2\pi\sigma_0^2}} e^{-\frac{\tau^2}{2\sigma_0^2}}d\tau \\ \pause
&= Q(G/\sigma_0) = \frac{1}{2}\mbox{erfc}((G/\sigma_0)/\sqrt{2})
\end{align*}
\end{frame}
\begin{frame}
\frametitle{Example: two-level signaling}
transmitted power
\begin{align*}
\sigma^2_s &= G^2\, P[n\mbox{-th bit is 1}] + G^2\,P[n\mbox{-th bit is 0}] \\ \pause
&= G^2
\end{align*}
\vspace{1em}
\pause
\[
P_{\mbox{err}} = Q(\sigma_s/\sigma_0) = Q(\sqrt{\mbox{SNR}})
\]
\end{frame}
% dB to linear
\def\dbLin{20 div 10 exch exp }
% approx to erfc
% Q(x) = (1/2)erfc(x/sqrt(2))
% Q(x) ~ exp(-x^2/2)/(1.64 + sqrt(0.76 x^2 + 4)
\def\QLog{
dup dup /s exch def mul /ss exch def
ss -2 div .4343 mul % log_10(exp(-x^2/2))
1.64 s mul 0.76 ss mul 4 add sqrt add log % log_10(1.64 + sqrt(0.76 x^2 + 4)
sub }
\begin{frame}
\frametitle{Probability of error}
\intro{Point out that it's a log-log scale}
\begin{center}
\begin{dspPlot}[sidegap=0,yticks=custom,xticks=10,ylabel={$P_{\mbox{err}}$},xlabel={SNR (dB)}]{0,22}{-25,0}
\moocStyle
\begin{dspClip}%
\dspFunc{x \dbLin \QLog}%
\end{dspClip}
%\dspCustomTicks[axis=x]{1 {$0$dB} 10 {$20$dB} 3.16 {$10$dB} 5.62 {$15$dB}}
\dspCustomTicks[axis=y]{0 $10^0$ -10 $10^{-10}$ -20 $10^{-20}$}
\end{dspPlot}
\end{center}
\end{frame}
\begin{frame}
\frametitle{Lesson learned:}
\begin{itemize}[<+->]
\item to reduce the probability of error increase SNR
\item can't control noise so we must increase $G$
\item increasing $G$ increases the power
\item we can't go above the channel's power constraint!
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Multilevel signaling}
\begin{itemize}[<+->]
\item binary signaling is not very efficient (one bit at a time)
\item to increase the throughput we can use multilevel signaling
\item many ways to do so, we will just scratch the surface
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{PAM}
mapper:
\begin{itemize}
\item split incoming bitstream into chunks of $M$ bits
\item chunks define a sequence of integers $k[n] \in \{0, 1, \ldots, 2^M-1\}$
\item $a[n] = G((-2^{M}+1) + 2k[n])$ (odd integers around zero)
\end{itemize}
\vspace{2em}
slicer:
\begin{itemize}
\item $a'[n] = \displaystyle\arg\min_{a\in \mathcal{A}}[|\hat{a}[n] - a|]$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{PAM, $M=2, G=1$}
\begin{figure}
\begin{dspConstellation}[width=10cm,pam=true]{2}
\dspFullConstellation{\dspDataPoint}
\end{dspConstellation}
\end{figure}
\begin{itemize}
\item<2-> distance between points is $2G$
\item<3-> using odd integers creates a zero-mean sequence
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{From PAM to QAM}
\begin{itemize}[<+->]
\item error analysis for PAM along the lines of binary signaling
\item can we increase the throughput even further?
\item here's a wild idea, let's use complex numbers
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{QAM}
\intro{it's unfortunate that the In-phase component (which is the real part) induces the subscript "I" - say that in the book the notation is I and Q...}
mapper:
\begin{itemize}
\item split incoming bitstream into chunks of $M$ bits, $M$ even
\item use $M/2$ bits to define a PAM sequence $a_r[n]$
\item use the remaining $M/2$ bits to define an independent PAM sequence $a_i[n]$
\item $a[n] = G(a_r[n] + ja_i[n])$
\end{itemize}
\vspace{2em}
slicer:
\begin{itemize}
\item $a'[n] = \displaystyle\arg\min_{a\in \mathcal{A}}[|\hat{a}[n] - a|]$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{QAM, $M=2, G=1$}
\begin{figure}
\center
\begin{dspConstellation}[width=6cm,decreg=false,ticks=true]{1}
\dspFullConstellation{\dspDataPoint}
\end{dspConstellation}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{QAM, $M=4, G=1$}
\begin{figure}
\center
\begin{dspConstellation}[width=6cm,decreg=false,ticks=true]{2}
\dspFullConstellation{\dspDataPoint}
\end{dspConstellation}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{QAM, $M=8, G=1$}
\begin{figure}
\center
\begin{dspConstellation}[width=6cm,decreg=false,ticks=false]{8}
\dspFullConstellation{\dspDataPoint}
\end{dspConstellation}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{QAM}
\begin{figure}
\center
\begin{dspConstellation}[width=6cm,decreg=true,ticks=false]{2}
\dspFullConstellation{\dspDataPoint}
\only<2->{\psset{linecolor=green!70}\dspDataPoint(1,1)}
\only<3>{\psset{linecolor=blue!50}\dspDataPoint[x](1.2,1.4)}
\only<4>{\psset{linecolor=blue!50}\dspDataPoint[x](0.2,0.9)}
\only<5>{\psset{linecolor=blue!50}\dspDataPoint[x](0.9,0.2)}
\only<6>{\psset{linecolor=blue!50}\dspDataPoint[x](2.1,1)\psset{linecolor=red}\dspDataPoint(3,1)}
\end{dspConstellation}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{QAM, probability of error}
\begin{align*}
\hat{a}[n] &= a[n] + \eta[n] \\ \\
P_{\mbox{err}} %&= P[|\Real(\eta[n])| > G] + P[|\Imag(\eta[n])| > G] \\ \pause
&= 1 - P[|\Real(\eta[n])| < G \, \wedge \, |\Imag(\eta[n])| < G] \\ \pause
&= 1-\int_{D} f_\eta(z)\,dz
\end{align*}
\end{frame}
\begin{frame}
\frametitle{QAM, probability of error, circular approximation}
\begin{figure}
\center
\psset{unit=.9cm,linewidth=0.4pt}%
\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
\psline(-3,1)(3,1) \psline(-3,-1)(3,-1)
\psline(-1,-3)(-1,3) \psline(1,-3)(1,3)
\pscircle[fillstyle=solid,fillcolor=lightgray](0,0){1}
\psline{->}(0,0)(1,0) \rput[B](0.5,0.1){$G$}
\psset{dotstyle=*,dotsize=6pt}
\psdot(0,0)
\psdot(-2,2)
\psdot( 0,2)
\psdot( 2,2)
\psdot(-2,0)
\psdot( 2,0)
\psdot(-2,-2)
\psdot( 0,-2)
\psdot( 2,-2)
\end{pspicture}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{QAM, probability of error}
\begin{align*}
\only<1->{P_{\mbox{err}} &\approx 1 - \int_{|z|<G} f_\eta(z)\,dz} \\
\only<2->{ &= 1 - \int_{0}^{2\pi}d\theta \int_{0}^{G}\frac{\rho}{\pi\sigma_0^2}e^{-\frac{\rho^2}{\sigma_0^2}} d\rho} \\
\only<3->{ &= e^{-\frac{G^2}{\sigma_0^2}}} \\ \\
%
\only<1->{f_\eta(z) &= \frac{1}{\pi\sigma_0^2}e^{-\frac{|z|^2}{\sigma_0^2}}} \\
\only<2->{z &\rightarrow \rho e^{j\theta}}
\end{align*}
\end{frame}
\begin{frame}
\frametitle{QAM, probability of error}
transmitted power (all symbols equiprobable and independent):
\begin{align*}
\sigma^2_s &= G^2\, \frac{1}{2^M}\sum_{a\in\mathcal{A}}|a|^2 \\ \pause
&= G^2\,\frac{2}{3}(2^M-1)
\end{align*}
\vspace{1em}
\pause
\[
P_{\mbox{err}} \approx e^{-\frac{G^2}{\sigma_0^2}} \approx e^{-3\,\mathsf{SNR}/2^{(M+1)}}
\]
\end{frame}
\def\peQAM#1{/s 10 x 10 div exp def 2 #1 1 add neg exp -3 mul s mul .4141 mul }
%\def\pePAM#1{x \dbLin 3 2 #1 2 mul 1 add exp div sqrt mul \erfcLog 0.301 add}
\def\pePAM#1{x \dbLin 3 #1 dup mul 1 sub div sqrt mul \QLog 2 #1 1 sub #1 div mul log add}
\begin{frame}
\frametitle{Probability of error}
\begin{center}
\begin{dspPlot}[sidegap=0,yticks=custom,xticks=10,ylabel={$P_{\mbox{err}}$},xlabel={SNR (dB)}]{0,35}{-25,0}
\begin{dspClip}%
\only<1->{\dspFunc[linecolor=blue!50]{\peQAM{1} }}%
\only<2->{\dspFunc[linecolor=green!50]{\peQAM{2} }}%
\only<3->{\dspFunc[linecolor=red!50]{\peQAM{4} }}%
% not using this in lectures. Also, verify PAM formulas
% \only<4->{\dspFunc[linecolor=blue!50,linestyle=dashed]{\pePAM{4} }
% \dspFunc[linecolor=green!50,linestyle=dashed]{\pePAM{16} }
% \dspFunc[linecolor=red!50,linestyle=dashed]{\pePAM{64} }}%
\end{dspClip}
\dspCustomTicks[axis=y]{0 $10^0$ -10 $10^{-10}$ -20 $10^{-20}$}
\only<1-3>{\dspLegend(2,-15){blue!50 {4-point QAM} green!50 {16-point QAM} red!50 {64-point QAM}}}
% \only<4>{\dspLegend(2,-15){blue!50 {4-point QAM (PAM)} green!50 {16-point QAM (PAM)} red!50 {64-point QAM (PAM)}}}
\end{dspPlot}
\end{center}
\end{frame}
\begin{frame}
\frametitle{QAM, the recipe}
\begin{itemize}[<+->]
\item pick a probability of error you can live with (e.g. $10^{-6}$)
\item find out the SNR imposed by the channel's power constraint
\item $\displaystyle M = \log_2\left(1 -\frac{3}{2} \frac{\mbox{SNR}}{\ln(p_e)} \right)$
\item final throughput will be $MW$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{QAM}
where we stand:
\begin{itemize}[<+->]
\item we know how to fit the bandwidth constraint
\item with QAM, we know how many bits per symbol we can use given the power constraint
\item we know the theoretical throughput of the transmitter
\end{itemize}
\vspace{1em}
\centering
\uncover<4->{but how do we transmit {\em complex}\/ symbols over a real channel?}
\end{frame}
\end{document}

Event Timeline