1566 lines
74 KiB
TeX
1566 lines
74 KiB
TeX
\section{Examination Results}%
|
|
\label{sec:Examination Results}
|
|
|
|
|
|
\subsection{Proximal Decoding}%
|
|
\label{sub:Ex Proximal Decoding}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Bit Error Rate and Performance}
|
|
\begin{itemize}
|
|
\item Comparison of simulation
|
|
\footnote{(3,6) regular LDPC Code with $n=204, k=102$
|
|
\cite[\text{204.33.484}]{mackay_enc}}
|
|
with results of Wadayama and Takabe
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
|
|
\begin{subfigure}{0.5\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.45]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$ (dB)}, ylabel={Bit Error Rate},
|
|
ymode=log,
|
|
legend style={at={(0.05,0.05)},anchor=south west},
|
|
width=11.5cm,
|
|
height=8cm,
|
|
ytick={0, 1e-1, 1e-2, 1e-3, 1e-4},
|
|
xtick={1, 2, 3, 4, 5},
|
|
ymax=1.2, ymin=0.8e-4,
|
|
xmin=0.9, xmax=5.6,
|
|
]
|
|
\addplot table [x=SNR, y=BER, col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.15$}
|
|
\addplot table [x=SNR, y=BER, col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.01$}
|
|
\addplot table [x=SNR, y=BER, col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{Simulation results for $\omega = 0.05, K=100$}
|
|
\label{fig:sim_results_prox}
|
|
\end{subfigure}%
|
|
\begin{subfigure}{0.5\textwidth}
|
|
\centering
|
|
|
|
\includegraphics[scale=0.6]{res/ber_paper}
|
|
|
|
\caption{Results from ``Proximal Decoding for LDPC Codes''}
|
|
\label{fig:paper_results_prox}
|
|
\end{subfigure}%
|
|
|
|
\end{figure}
|
|
|
|
\item $\mathcal{O}\left(n \right) $ time complexity - same as BP;
|
|
only multiplication and addition necessary \cite{proximal_paper}
|
|
\item Measured Performance: $\sim\SI{10000}{}$ frames/s
|
|
- Intel Core i7-7700HQ @ 2.80GHz; $n=204$
|
|
\end{itemize}
|
|
\vspace{3mm}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Choice of $\gamma$}
|
|
\setcounter{footnote}{0}
|
|
|
|
\begin{itemize}
|
|
\item Analysis of simulation
|
|
\footnote{(3,6) regular LDPC code with $n=204, k=102$
|
|
\cite[\text{204.33.484}]{mackay_enc}}
|
|
results for different values of $\gamma$
|
|
\end{itemize}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
|
|
\begin{subfigure}[c]{0.5\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.52]
|
|
\begin{semilogyaxis}[xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
|
|
grid=both, grid style={line width=.1pt},
|
|
legend style={at={(0.05,0.05)},anchor=south west},
|
|
ymin=3e-7, ymax=1.5,]
|
|
\foreach \gamma in {0.01, 0.05, 0.15}{
|
|
\addplot table [x=SNR, y=BER,
|
|
col sep=comma, discard if not={gamma}{\gamma}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\legend{\gamma}
|
|
}
|
|
\legend{$\gamma=0.01$, $\gamma=0.05$, $\gamma=0.15$}
|
|
\end{semilogyaxis}
|
|
\end{tikzpicture}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.5\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.55]
|
|
\begin{axis}[view={75}{30},
|
|
zmode=log,
|
|
xlabel={$E_b / N_0$ (dB)},
|
|
ylabel={$\gamma$},
|
|
zlabel={BER},
|
|
legend pos=outer north east,]
|
|
\addplot3[surf,
|
|
mesh/rows=17, mesh/cols=14,
|
|
colormap/viridis] table [col sep=comma,
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = \left[ 0\text{:}0.01\text{:}0.16 \right] $}
|
|
\addplot3[red, line width=1.5] table [col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.05$}
|
|
\addplot3[blue, line width=1.5] table [col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.01$}
|
|
\addplot3[brown, line width=1.5] table [col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.15$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\end{subfigure}
|
|
|
|
\caption{BER for $\omega = 0.05, K=100$}
|
|
\label{fig:ber_3d}
|
|
\end{figure}
|
|
|
|
\begin{itemize}
|
|
\item Not great benefit in finding the optimal value for $\gamma$
|
|
\end{itemize}
|
|
\vspace{3mm}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Choice of $\gamma$}
|
|
|
|
\begin{minipage}[c]{0.9\textwidth}
|
|
\centering
|
|
|
|
\begin{figure}[H]
|
|
\vspace*{-0.5cm}
|
|
\centering
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.4]
|
|
\begin{axis}[view={75}{30},
|
|
zmode=log,
|
|
xlabel={$E_b / N_0$ (dB)},
|
|
ylabel={$\gamma$},
|
|
zlabel={BER},]
|
|
\addplot3[surf,
|
|
mesh/rows=17, mesh/cols=10,
|
|
colormap/viridis] table [col sep=comma,
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_963965.csv};
|
|
\addplot3[red, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_963965.csv};
|
|
\addplot3[blue, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_963965.csv};
|
|
\addplot3[brown, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_963965.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \cite[\text{96.3.965}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.4]
|
|
\begin{axis}[view={75}{30},
|
|
zmode=log,
|
|
xlabel={$E_b/N_0$ (dB)},
|
|
ylabel={$\gamma$},
|
|
zlabel={BER},]
|
|
\addplot3[surf,
|
|
mesh/rows=17, mesh/cols=14,
|
|
colormap/viridis] table [col sep=comma,
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addplot3[red, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addplot3[blue, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addplot3[brown, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.33.484}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.4]
|
|
\begin{axis}[view={75}{30},
|
|
zmode=log,
|
|
xlabel={$E_b / N_0$ (dB)},
|
|
ylabel={$\gamma$},
|
|
zlabel={BER},]
|
|
\addplot3[surf,
|
|
mesh/rows=17, mesh/cols=10,
|
|
colormap/viridis] table [col sep=comma,
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_40833844.csv};
|
|
\addplot3[red, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_40833844.csv};
|
|
\addplot3[blue, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_40833844.csv};
|
|
\addplot3[brown, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_40833844.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \cite[\text{408.33.844}]{mackay_enc}}
|
|
\end{subfigure}
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.4]
|
|
\begin{axis}[view={75}{30},
|
|
zmode=log,
|
|
xlabel={$E_b / N_0$ (dB)},
|
|
ylabel={$\gamma$},
|
|
zlabel={BER},]
|
|
\addplot3[surf,
|
|
mesh/rows=17, mesh/cols=10,
|
|
colormap/viridis] table [col sep=comma,
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addplot3[red, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addplot3[blue, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addplot3[brown, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{BCH code with $n=31, k=26$\\[2\baselineskip]}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.4]
|
|
\begin{axis}[view={75}{30},
|
|
zmode=log,
|
|
xlabel={$E_b / N_0$ (dB)},
|
|
ylabel={$\gamma$},
|
|
zlabel={BER},]
|
|
\addplot3[surf,
|
|
mesh/rows=17, mesh/cols=10,
|
|
colormap/viridis] table [col sep=comma,
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20455187.csv};
|
|
\addplot3[red, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20455187.csv};
|
|
\addplot3[blue, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20455187.csv};
|
|
\addplot3[brown, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_20455187.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.55.187}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.4]
|
|
\begin{axis}[view={75}{30},
|
|
zmode=log,
|
|
xlabel={$E_b / N_0$ (dB)},
|
|
ylabel={$\gamma$},
|
|
zlabel={BER},]
|
|
\addplot3[surf,
|
|
mesh/rows=17, mesh/cols=10,
|
|
colormap/viridis] table [col sep=comma,
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addplot3[red, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addplot3[blue, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addplot3[brown, line width=1.5] table[col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
x=SNR, y=gamma, z=BER]
|
|
{res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{LDPC code (Progressive Edge Growth Construction) with $n=504, k=252$ \cite[\text{PEGReg252x504}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\end{figure}
|
|
\end{minipage}%
|
|
\begin{minipage}[c]{0.1\textwidth}
|
|
\centering
|
|
|
|
\begin{figure}[H]
|
|
\vspace*{-1.5cm}
|
|
\hspace*{-0.4cm}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.6]
|
|
\begin{axis}[hide axis,
|
|
xmin=10, xmax=50,
|
|
ymin=0, ymax=0.4,
|
|
legend style={draw=white!15!black,legend cell align=left}]
|
|
\addlegendimage{surf, colormap/viridis}
|
|
\addlegendentry{$\gamma = \left[ 0\text{ : }0.01\text{ : }0.16 \right] $};
|
|
\addlegendimage{red, line width=1.5pt}
|
|
\addlegendentry{$\gamma = 0.05$};
|
|
\addlegendimage{blue, line width=1.5pt}
|
|
\addlegendentry{$\gamma = 0.01$};
|
|
\addlegendimage{Brown, line width=1.5pt}
|
|
\addlegendentry{$\gamma = 0.15$};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\end{figure}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t, fragile]
|
|
\frametitle{Proximal Decoding: Frame Error Rate}
|
|
\setcounter{footnote}{0}
|
|
|
|
\begin{itemize}
|
|
\item Analysis of simulated
|
|
\footnote{(3,6) regular LDPC code with $n=204, k=102$
|
|
\cite[\text{204.33.484}]{mackay_enc}}
|
|
BER and FER
|
|
\end{itemize}
|
|
|
|
\begin{minipage}{.4\textwidth}
|
|
\centering
|
|
|
|
\begin{figure}[htpb]
|
|
\centering
|
|
|
|
\begin{algorithm}[caption={}, label={}]
|
|
$\boldsymbol{s} \leftarrow \boldsymbol{0}$
|
|
for $K$ iterations do
|
|
$\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
|
|
$\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
|
|
$\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
|
|
If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$
|
|
end for
|
|
return $\boldsymbol{\hat{c}}$
|
|
\end{algorithm}
|
|
|
|
\caption{Proximal decoding algorithm \cite{proximal_paper}}
|
|
\end{figure}
|
|
\end{minipage}%
|
|
\begin{minipage}{.6\textwidth}
|
|
\centering
|
|
\begin{figure}[H]
|
|
\vspace*{-8mm}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.42]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
|
|
ymode=log,
|
|
legend style={at={(0.05,0.05)},anchor=south west},
|
|
ymax=1.5, ymin=3e-7,
|
|
]
|
|
\addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.15$}
|
|
\addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.01$}
|
|
\addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\begin{tikzpicture}[scale=0.42]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
|
|
ymode=log,
|
|
legend style={at={(0.05,0.05)},anchor=south west},
|
|
ymax=1.5, ymin=3e-7,
|
|
]
|
|
\addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.15$}
|
|
\addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.01$}
|
|
\addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}\\
|
|
\begin{tikzpicture}[scale=0.42]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$ (dB)}, ylabel={Decoding Failure Rate},
|
|
ymode=log,
|
|
legend style={at={(0.05,0.05)},anchor=south west},
|
|
ymax=1.5, ymin=3e-7,
|
|
]
|
|
\addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.15$}
|
|
\addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.01$}
|
|
\addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{$\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{Simulation results for $\omega = 0.05, K=100$}
|
|
\label{fig:simulation_results_ber_fer_dfr}
|
|
\end{figure}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Oscillation of Estimate}
|
|
\setcounter{footnote}{0}
|
|
|
|
\begin{itemize}
|
|
\item $\nabla L \left( \boldsymbol{y} \mid \boldsymbol{x} \right) $
|
|
and $\nabla h \left( \boldsymbol{x} \right) $ generally end up in an equilibrium
|
|
\end{itemize}
|
|
|
|
\todo{Fix $K=100\ne 200$}
|
|
|
|
\begin{figure}[H]
|
|
\begin{minipage}[c]{0.25\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale = 0.35]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_1]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_1]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_1]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 2 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 2 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}\\
|
|
\begin{tikzpicture}[scale = 0.35]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_2]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_2]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_2]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 3 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 3 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}\\
|
|
\begin{tikzpicture}[scale = 0.35]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_3]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_3]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_3]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 4 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 4 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\end{minipage}%
|
|
\begin{minipage}[c]{0.5\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale = 0.85]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_0]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_0]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_0]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 1 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 1 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\end{minipage}%
|
|
\begin{minipage}[c]{0.25\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale = 0.35]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_4]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_4]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_4]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 5 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 5 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}\\
|
|
\begin{tikzpicture}[scale = 0.35]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_5]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_5]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_5]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 6 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 6 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}\\
|
|
\begin{tikzpicture}[scale = 0.35]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_6]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_6]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_6]
|
|
{res/proximal/comp_bch_7_4_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 7 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 7 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\end{minipage}
|
|
|
|
\caption{Internal variables of proximal decoder
|
|
as a function of the iteration ($n=7$)\footnotemark}
|
|
|
|
\footnotetext{A single decoding is shown, using the BCH$\left( 7,4 \right) $ code;
|
|
$\gamma = 0.05, \omega = 0.05, E_b / N_0 = \SI{5}{dB}$}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Visualization of Gradients}
|
|
\setcounter{footnote}{0}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
|
|
\begin{subfigure}[c]{0.5\textwidth}
|
|
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.8]
|
|
\begin{axis}[xmin = -1.25, xmax=1.25,
|
|
ymin = -1.25, ymax=1.25,
|
|
xlabel={$x_1$}, ylabel={$x_2$},
|
|
grid=major, grid style={dotted},
|
|
view={0}{90}]
|
|
\addplot3[point meta=\thisrow{grad_norm},
|
|
point meta min=1,
|
|
point meta max=3,
|
|
quiver={u=\thisrow{grad_0},
|
|
v=\thisrow{grad_1},
|
|
scale arrows=.05,
|
|
every arrow/.append style={%
|
|
line width=.3+\pgfplotspointmetatransformed/1000,
|
|
-{Latex[length=0pt 5,width=0pt 3]}
|
|
},
|
|
},
|
|
quiver/colored = {mapped color},
|
|
colormap/rocket,
|
|
-stealth,
|
|
]
|
|
table[col sep=comma] {res/proximal/2d_grad_L.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{$\nabla L \left(\boldsymbol{y} \mid \boldsymbol{x} \right) $ for a repetition code with $n=2$
|
|
\footnotemark}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.5\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.8]
|
|
\begin{axis}[xmin = -1.25, xmax=1.25,
|
|
ymin = -1.25, ymax=1.25,
|
|
xlabel={$x_1$}, ylabel={$x_2$},
|
|
grid=major, grid style={dotted},
|
|
view={0}{90}]
|
|
\addplot3[point meta=\thisrow{grad_norm},
|
|
point meta min=1,
|
|
point meta max=4,
|
|
quiver={u=\thisrow{grad_0},
|
|
v=\thisrow{grad_1},
|
|
scale arrows=.03,
|
|
every arrow/.append style={%
|
|
line width=.3+\pgfplotspointmetatransformed/1000,
|
|
-{Latex[length=0pt 5,width=0pt 3]}
|
|
},
|
|
},
|
|
quiver/colored = {mapped color},
|
|
colormap/rocket,
|
|
-stealth,
|
|
]
|
|
table[col sep=comma] {res/proximal/2d_grad_h.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{$\nabla h \left( \boldsymbol{x} \right) $ for a repetition code with $n=2$}
|
|
\end{subfigure}%
|
|
\end{figure}
|
|
|
|
\footnotetext{In an AWGN Channel $\nabla L\left( \boldsymbol{y} \mid \boldsymbol{x}\right)
|
|
\propto \left( \boldsymbol{x} - \boldsymbol{y} \right)$
|
|
\cite[Sec. 4.1]{proximal_paper}}
|
|
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoder: Oscillation of $\nabla h\left( \boldsymbol{x} \right) $}
|
|
\setcounter{footnote}{0}
|
|
|
|
\begin{itemize}
|
|
\item For larger $n$, the gradient itself starts to oscillate
|
|
\item The amplitude of the oscillation seems to be highly correlated
|
|
with the probability of a bit error
|
|
\end{itemize}
|
|
|
|
\todo{Fix $K=200\ne 400$}
|
|
|
|
\begin{figure}
|
|
\centering
|
|
|
|
\begin{subfigure}[c]{0.5\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale = 0.85]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={Iterations},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
]
|
|
\addplot +[mark=none, line width=0.7pt]
|
|
table [col sep=comma, x=k, y=comb_r_s_0]
|
|
{res/proximal/extreme_components_20433484_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_L_0]
|
|
{res/proximal/extreme_components_20433484_combined.csv};
|
|
\addplot +[mark=none]
|
|
table [col sep=comma, x=k, y=grad_h_0]
|
|
{res/proximal/extreme_components_20433484_combined.csv};
|
|
\addlegendentry{est}
|
|
\addlegendentry{$\nabla L \left[ 1 \right] $}
|
|
\addlegendentry{$\nabla h \left[ 1 \right] $}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{Internal variables of proximal decoder as a function of the iteration
|
|
($n=204$)\footnotemark}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.5\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale = 0.85]
|
|
\begin{axis}[
|
|
point meta min = -1,
|
|
point meta max = 1,
|
|
grid=both,
|
|
xlabel={$Var\left( \nabla h\left( \boldsymbol{x} \right) \right) $},
|
|
ylabel={bit error (bool)},
|
|
ytick={0, 1},
|
|
width=8cm,
|
|
height=3cm,
|
|
scale only axis,
|
|
% colormap/viridis,
|
|
]
|
|
\addplot [Brown, only marks,]
|
|
table [col sep=comma, x=grad_h_vars, y=bit_error]
|
|
{res/proximal/extreme_components_20433484_variance.csv};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{Correlation between bit error and amplitude of oscillation}
|
|
\end{subfigure}
|
|
\end{figure}
|
|
|
|
|
|
\footnotetext{A single decoding is shown, using a (3,6) regular LDPC code
|
|
with $n=204, k=102$ \cite[\text{204.33.484}]{mackay_enc};
|
|
$\gamma = 0.05, \omega = 0.05, E_b / N_0 = \SI{5}{dB}$}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%\newcommand{\tikzbracemark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
|
|
%
|
|
%\newcommand*{\AddNote}[4]{%
|
|
% \begin{tikzpicture}[overlay, remember picture]
|
|
% \draw [decoration={brace,amplitude=0.5em},decorate,ultra thick]
|
|
% ($(#3)!([yshift=1.5ex]#1)!($(#3)-(0,1)$)$) --
|
|
% ($(#3)!(#2)!($(#3)-(0,1)$)$)
|
|
% node [align=center, text width=2cm, pos=0.5, anchor=west] {#4};
|
|
% \end{tikzpicture}
|
|
%}%
|
|
%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%\begin{frame}[t, fragile]
|
|
% \frametitle{Proximal Decoding: Improvement using ``ML-on-List''}
|
|
% \setcounter{footnote}{0}
|
|
%
|
|
% \begin{itemize}
|
|
% \item Comparison of proximal \& hybrid-proximal-ML\\
|
|
% decoding simulation
|
|
% \footnote{(3,6) regular LDPC Code with $n=204, k=102$
|
|
% \cite[Code: 204.33.484]{mackay_enc}}
|
|
% results
|
|
% \end{itemize}
|
|
%
|
|
% \begin{minipage}{.4\textwidth}
|
|
% \centering
|
|
%
|
|
% \begin{algorithm}[caption={}, label={},
|
|
% basicstyle=\fontsize{6.5}{7.5}\selectfont
|
|
% ]
|
|
%$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$$\hspace{4.185cm}\tikzbracemark{prox-start}$
|
|
%for $k=0$ to $K-1$ do
|
|
% $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $
|
|
% Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$
|
|
% $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $
|
|
% $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $
|
|
% If $\boldsymbol{\hat{x}}$ passes the parity check condition, output $\boldsymbol{\hat{x}}$
|
|
%end for $\tikzbracemark{prox-end}$
|
|
%Find $N$ most probably wrong bits $\hspace{2cm}\tikzbracemark{ml-start}$
|
|
%Generate variations $\boldsymbol{\tilde{x}}_n$ of $\boldsymbol{\hat{x}}$ with the $N$ bits modified
|
|
%Compute $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right] $
|
|
%Output $\boldsymbol{\tilde{x}}_n$ with lowest $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)$ $\tikzbracemark{ml-end}$
|
|
% \end{algorithm}
|
|
%
|
|
% \AddNote{prox-start}{prox-end}{prox-start}{\small Proximal\\Decoding}
|
|
% \AddNote{ml-start}{ml-end}{ml-start}{\small ML-on-List}
|
|
% \end{minipage}%
|
|
% \begin{minipage}{.6\textwidth}
|
|
% \centering
|
|
% \begin{figure}[H]
|
|
% \centering
|
|
% \vspace*{-12mm}
|
|
%
|
|
% \begin{tikzpicture}[scale=0.42]
|
|
% \begin{axis}[
|
|
% grid=both,
|
|
% xlabel={SNR}, ylabel={BER},
|
|
% ymode=log,
|
|
% legend style={at={(0.05,0.05)},anchor=south west},
|
|
% ymax=1.5, ymin=3e-8,
|
|
% ]
|
|
%
|
|
% \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
|
|
% {res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
% \addlegendentry{proximal}
|
|
% \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
|
|
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
% \addlegendentry{hybrid prox. \& ML}
|
|
% \end{axis}
|
|
% \end{tikzpicture}
|
|
% \begin{tikzpicture}[scale=0.42]
|
|
% \begin{axis}[
|
|
% grid=both,
|
|
% xlabel={SNR}, ylabel={FER},
|
|
% ymode=log,
|
|
% legend style={at={(0.05,0.05)},anchor=south west},
|
|
% ymax=1.5, ymin=3e-8,
|
|
% ]
|
|
%
|
|
% \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
% {res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
% \addlegendentry{proximal}
|
|
% \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
% \addlegendentry{hybrid prox. \& ML}
|
|
% \end{axis}
|
|
% \end{tikzpicture}\\
|
|
% \begin{tikzpicture}[scale=0.42]
|
|
% \begin{axis}[
|
|
% grid=both,
|
|
% xlabel={SNR}, ylabel={Decoding Failure Rate},
|
|
% ymode=log,
|
|
% legend style={at={(0.05,0.05)},anchor=south west},
|
|
% ymax=1.5, ymin=3e-8,
|
|
% ]
|
|
%
|
|
% \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
|
|
% {res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
% \addlegendentry{proximal}
|
|
% \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
|
|
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
% \addlegendentry{hybrid prox. \& ML}
|
|
% \end{axis}
|
|
% \end{tikzpicture}
|
|
%
|
|
% \caption{Simulation results for $\gamma = 0.05, \omega = 0.05, K=200, N=12$}
|
|
% \label{fig:simulation_results_hybrid}
|
|
% \end{figure}
|
|
% \end{minipage}
|
|
%\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t, fragile]
|
|
\frametitle{Proximal Decoding: Improvement using ``ML-on-List''}
|
|
\setcounter{footnote}{0}
|
|
|
|
\begin{itemize}
|
|
\item Improvement of proximal decoding by adding an ``ML-on-list'' step after iterating
|
|
\end{itemize}
|
|
|
|
\begin{minipage}[t]{.48\textwidth}
|
|
\centering
|
|
|
|
\begin{figure}
|
|
\centering
|
|
|
|
\begin{algorithm}[caption={}, label={}]
|
|
$\boldsymbol{s} \leftarrow \boldsymbol{0}$
|
|
for $K$ iterations do
|
|
$\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
|
|
$\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
|
|
$\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
|
|
If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$
|
|
end for
|
|
return $\boldsymbol{\hat{c}}$
|
|
\end{algorithm}
|
|
|
|
\caption{Proximal decoding algorithm \cite{proximal_paper}}
|
|
\end{figure}
|
|
|
|
\end{minipage}%
|
|
\hfill\begin{minipage}[t]{.48\textwidth}
|
|
\centering
|
|
\begin{figure}
|
|
\centering
|
|
|
|
\begin{algorithm}[caption={}, label={}]
|
|
$\boldsymbol{s} \leftarrow \boldsymbol{0}$
|
|
for $K$ iterations do
|
|
$\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
|
|
$\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
|
|
$\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
|
|
If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$
|
|
end for
|
|
$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$
|
|
$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{c}}_n\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$
|
|
$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{c}}_n, \boldsymbol{\hat{c}} \right) \forall n \in \left[ 1 : N-1 \right]}$
|
|
$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_n\text{ with lowest }d_H\left( \boldsymbol{ \tilde{c}}_n, \boldsymbol{\hat{c}} \right)}$
|
|
\end{algorithm}
|
|
|
|
\caption{Hybrid proximal \& ML decoding algorithm}
|
|
\end{figure}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Improvement using ``ML-on-List''}
|
|
|
|
\begin{itemize}
|
|
\item Comparison of proximal \& hybrid proximal-ML (correction of $N = \SI{12}{\bit}$)
|
|
decoding simulation
|
|
\footnote{(3,6) regular LDPC Code with $n=204, k=102$
|
|
\cite[Code: 204.33.484]{mackay_enc}}
|
|
results
|
|
\end{itemize}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.55]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={BER},
|
|
ymode=log,
|
|
legend columns=2,
|
|
legend style={at={(0.5,-0.45)},anchor=south},
|
|
ymax=1.5, ymin=3e-8,
|
|
]
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\begin{tikzpicture}[scale=0.55]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={FER},
|
|
ymode=log,
|
|
legend columns=2,
|
|
legend style={at={(0.5,-0.45)},anchor=south},
|
|
ymax=1.5, ymin=3e-8,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\begin{tikzpicture}[scale=0.55]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={Decoding Failure Rate},
|
|
ymode=log,
|
|
legend columns=2,
|
|
legend style={at={(0.5,-0.45)},anchor=south},
|
|
ymax=1.5, ymin=3e-8,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{Simulation results for $\gamma = 0.05, \omega = 0.05, K=200, N=12$}
|
|
\label{fig:simulation_results_hybrid}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Improvement using ``ML-on-List''}
|
|
|
|
\begin{figure}[H]
|
|
\vspace*{-0.5cm}
|
|
\centering
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.37]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={FER},
|
|
ymode=log,
|
|
legend columns=1,
|
|
legend pos=outer north east,
|
|
%legend columns=2,
|
|
%legend style={at={(0.5,-0.45)},anchor=south},
|
|
ymax=1.5, ymin=8e-4,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_963965.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_963965.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_963965.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \cite[\text{96.3.965}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.37]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={FER},
|
|
ymode=log,
|
|
legend columns=1,
|
|
legend pos=outer north east,
|
|
xmin=0.5, xmax=6, xtick={1, ..., 5},
|
|
ymax=1.5, ymin=8e-5,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid,]
|
|
table [x=SNR, y=FER, col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma,
|
|
discard if not={gamma}{0.15},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma,
|
|
discard if not={gamma}{0.01},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/proximal/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma,
|
|
discard if not={gamma}{0.05},
|
|
discard if gt={SNR}{5.5},]
|
|
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.33.484}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.37]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={FER},
|
|
ymode=log,
|
|
legend columns=1,
|
|
legend pos=outer north east,
|
|
%legend columns=2,
|
|
%legend style={at={(0.5,-0.45)},anchor=south},
|
|
ymax=1.5, ymin=8e-5,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_40833844.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_40833844.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_40833844.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_40833844.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_40833844.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_40833844.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \cite[\text{408.33.844}]{mackay_enc}}
|
|
\end{subfigure}
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.37]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={FER},
|
|
ymode=log,
|
|
legend columns=1,
|
|
legend pos=outer north east,
|
|
%legend columns=2,
|
|
%legend style={at={(0.5,-0.45)},anchor=south},
|
|
ymax=1.5, ymin=8e-5,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_bch_31_26.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{BCH code with $n=31, k=26$\\[\baselineskip]}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.37]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={FER},
|
|
ymode=log,
|
|
legend columns=1,
|
|
legend pos=outer north east,
|
|
%legend columns=2,
|
|
%legend style={at={(0.5,-0.45)},anchor=south},
|
|
ymax=1.5, ymin=8e-5,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_20455187.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_20455187.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_20455187.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_20455187.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_20455187.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_20455187.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.55.187}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\begin{subfigure}[c]{0.33\textwidth}
|
|
\centering
|
|
\begin{tikzpicture}[scale=0.37]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$E_b / N_0$}, ylabel={FER},
|
|
ymode=log,
|
|
legend columns=1,
|
|
legend pos=outer north east,
|
|
ymax=1.5, ymin=8e-5,
|
|
]
|
|
|
|
\addplot[ForestGreen, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.15$}
|
|
\addplot[Emerald, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
|
|
{res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.15$}
|
|
|
|
\addplot[NavyBlue, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.01$}
|
|
\addplot[RoyalPurple, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
|
|
{res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.01$}
|
|
|
|
\addplot[RedOrange, mark=*, solid]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addlegendentry{proximal, $\gamma = 0.05$}
|
|
\addplot[red, mark=triangle, densely dashed]
|
|
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
|
|
{res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv};
|
|
\addlegendentry{hybrid, $\gamma = 0.05$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
\caption{LDPC code (Progressive Edge Growth Construction) with $n=504, k=252$ \cite[\text{PEGReg252x504}]{mackay_enc}}
|
|
\end{subfigure}%
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Average Error}
|
|
\setcounter{footnote}{0}
|
|
|
|
\begin{figure}[H]
|
|
\vspace*{-0.5cm}
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.7]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={k},
|
|
ylabel={Average $\left| \boldsymbol{x}-\boldsymbol{\hat{x}} \right|$},
|
|
]
|
|
\addplot table [col sep=comma,
|
|
discard if not={omega}{0.0774263682681127},
|
|
x=k, y=err, mark=none]
|
|
{res/proximal/2d_avg_error_20433484_1db.csv};
|
|
\addlegendentry{$E_b / N_0 = \SI{1}{dB}$}
|
|
\addplot table [col sep=comma,
|
|
discard if not={omega}{0.0774263682681127},
|
|
x=k, y=err, mark=none]
|
|
{res/proximal/2d_avg_error_20433484_3db.csv};
|
|
\addlegendentry{$E_b / N_0 = \SI{3}{dB}$}
|
|
\addplot table [col sep=comma,
|
|
discard if not={omega}{0.052233450742668434},
|
|
x=k, y=err, mark=none]
|
|
{res/proximal/2d_avg_error_20433484_5db.csv};
|
|
\addlegendentry{$E_b / N_0 = \SI{5}{dB}$}
|
|
\addplot table [col sep=comma,
|
|
discard if not={omega}{0.052233450742668434},
|
|
x=k, y=err, mark=none]
|
|
{res/proximal/2d_avg_error_20433484_8db.csv};
|
|
\addlegendentry{$E_b / N_0 = \SI{8}{dB}$}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{Average error for $\SI{500000}{}$ decodings,$
|
|
\omega = 0.05, \gamma = 0.05, K=200$\footnotemark}
|
|
\end{figure}
|
|
|
|
\footnotetext{Simulation performed with (3,6) regular LDPC code with $n=204, k=102$
|
|
\cite[Code: 204.33.484]{mackay_enc}}
|
|
|
|
\begin{itemize}
|
|
\item For large $k$, the average error asymptotically approaches a minimum, non-zero value
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{frame}[t]
|
|
\frametitle{Proximal Decoding: Time Complexity}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
|
|
\begin{tikzpicture}[scale=0.7]
|
|
\begin{axis}[
|
|
grid=both,
|
|
xlabel={$n$}, ylabel={time per frame (s)},
|
|
legend style={at={(0.05,0.77)},anchor=south west},
|
|
]
|
|
\addplot[only marks, red] table [col sep=comma,
|
|
x=n, y=spf] {res/proximal/fps_vs_n.csv};
|
|
\addlegendentry{proximal}
|
|
|
|
\addplot[only marks, blue] table [col sep=comma,
|
|
x=n, y=spf] {res/hybrid/fps_vs_n.csv};
|
|
\addlegendentry{hybrid prox \& ML ($\SI{12}{\bit}$)}
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\caption{Time Complexity of Proximal Decoding and Modified Implementation\footnotemark}
|
|
\label{fig:fps_vs_n}
|
|
\end{figure}
|
|
|
|
\footnotetext{The points shown were calculated by evaluating the metadata
|
|
of BER simulation results from the following codes:
|
|
BCH $\left( 31, 11 \right)$;
|
|
BCH $\left( 31, 26 \right)$;
|
|
\cite[\text{96.3.965; 204.33.484;
|
|
204.55.187; 408.33.844; PEGReg252x504}]{mackay_enc}
|
|
}
|
|
|
|
\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%\begin{frame}[t, fragile]
|
|
% \frametitle{Proximal Decoding: Improvement using ``ML-on-List''}
|
|
% \setcounter{footnote}{0}
|
|
%
|
|
% \begin{itemize}
|
|
% \item Improvement of proximal decoding by adding an ``ML-on-list'' step after iterating
|
|
% \end{itemize}
|
|
%
|
|
% \begin{minipage}[t]{.48\textwidth}
|
|
% \centering
|
|
%
|
|
% \begin{figure}
|
|
% \centering
|
|
%
|
|
% \begin{algorithm}[caption={}, label={},
|
|
% basicstyle=\fontsize{7.5}{9.5}\selectfont
|
|
% ]
|
|
%$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$
|
|
%for $k=0$ to $K-1$ do
|
|
% $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $
|
|
% Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$
|
|
% $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $
|
|
% $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $
|
|
% If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop.
|
|
%end for
|
|
%Output $\boldsymbol{\hat{x}}$
|
|
% \end{algorithm}
|
|
%
|
|
% \caption{Proximal decoding algorithm \cite{proximal_paper}}
|
|
% \end{figure}
|
|
%
|
|
% \end{minipage}%
|
|
% \hfill\begin{minipage}[t]{.48\textwidth}
|
|
% \centering
|
|
% \begin{figure}
|
|
% \centering
|
|
%
|
|
% \begin{algorithm}[caption={}, label={},
|
|
% basicstyle=\fontsize{7.5}{9.5}\selectfont
|
|
% ]
|
|
%$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$
|
|
%for $k=0$ to $K-1$ do
|
|
% $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $
|
|
% Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$
|
|
% $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $
|
|
% $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $
|
|
% $\textcolor{KITblue}{\text{If }\boldsymbol{\hat{x}}\text{ passes the parity check condition, output }\boldsymbol{\hat{x}}}$
|
|
%end for
|
|
%$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$
|
|
%$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{x}}_n\text{ of }\boldsymbol{\hat{x}}\text{ with the }N\text{ bits modified.}}$
|
|
%$\textcolor{KITblue}{\text{Compute }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle \forall n \in \left[ 1 : N-1 \right]}$
|
|
%$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle}$
|
|
% \end{algorithm}
|
|
%
|
|
% \caption{Hybrid proximal \& ML decoding algorithm}
|
|
% \end{figure}
|
|
% \end{minipage}
|
|
%\end{frame}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%\subsection{ADMM: Examination Results}%
|
|
%\label{sub:Ex ADMM}
|
|
%
|
|
%\begin{frame}[t]
|
|
% \frametitle{ADMM}
|
|
%
|
|
% \todo{TODO}
|
|
%\end{frame}
|
|
|