Move figures to next chapter

This commit is contained in:
2026-04-25 17:40:43 +02:00
parent 4da37dbddc
commit 163ef926e7
3 changed files with 416 additions and 408 deletions

View File

@@ -45,8 +45,8 @@
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=4mm]
& \xyzerr & \ctrl{3} & & & & & \\
\lstick{$\ket{\psi}$} & \xyzerr & & \ctrl{2} & \ctrl{3} & & & \\
\lstick[3]{$\ket{\psi}$} & \xyzerr & \ctrl{3} & & & & & \\
& \xyzerr & & \ctrl{2} & \ctrl{3} & & & \\
& \xyzerr & & & & \ctrl{2} & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & \meter{} & \setwiretype{c} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & \meter{} & \setwiretype{c}
@@ -59,8 +59,8 @@
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=4mm]
& \xerr & \ctrl{3} & & & & & & \\
\lstick{$\ket{\psi}$} & \xerr & & \ctrl{2} & \ctrl{3} & & & & \\
\lstick[3]{$\ket{\psi}$} & \xerr & \ctrl{3} & & & & & & \\
& \xerr & & \ctrl{2} & \ctrl{3} & & & & \\
& \xerr & & & & \ctrl{2} & & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & \xerr & \meter{} & \setwiretype{c} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & \xerr & \meter{} & \setwiretype{c}
@@ -76,8 +76,8 @@
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=2mm]
& \xyzerr & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & & & & & \\
\lstick{$\ket{\psi}$} & \xyzerr & & & \ctrl{2} & \xyzerr \wire[d][2]{q} & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & \\
\lstick[3]{$\ket{\psi}$} & \xyzerr & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & & & & & \\
& \xyzerr & & & \ctrl{2} & \xyzerr \wire[d][2]{q} & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & \\
& \xyzerr & & & & & & & \ctrl{2} & \xyzerr \wire[d][2]{q} & & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & \xyzerr & \targ{} & \xyzerr & \targ{} & \xyzerr & & & & & \xerr & \meter{} & \setwiretype{c} \\
\lstick{$\ket{0}_{\text{A}_2}$} & \xyzerr & & & & & \targ{} & \xyzerr & \targ{} & \xyzerr & \xerr & \meter{} & \setwiretype{c}
@@ -358,7 +358,7 @@
% tex-fmt: on
\caption{
Repeated syndrome extraction circuit for the two-qubit
Repeated syndrome extraction circuit for the three-qubit
repetition code under phenomenological noise.
}
\end{figure}
@@ -442,397 +442,3 @@
\caption{Construction of detectors from measurements in the general case.}
\end{figure}
\begin{figure}[t]
\centering
\hspace*{-114mm}%
\begin{tikzpicture}
\draw[decorate, decoration={brace, amplitude=10pt}, line width=1pt]
(0,0) -- (3.1,0) node[midway, above=4mm] {Commit region};
\end{tikzpicture}
\centering
\includegraphics[scale=0.75]{res/72_bb_dem.pdf}
\vspace*{-25.3mm}
\hspace*{-98mm}%
\begin{tikzpicture}
\draw[{Latex}-{Latex}, line width=.7pt] (0, -0.75mm) -- (0, 5mm);
\draw[line width=1pt] (-1mm,-0.75mm) -- (3mm,-0.75mm);
\draw[line width=1pt] (-1mm,5mm) -- (3mm,5mm);
\node[left] at (-2mm,2.125mm) {$\sim W$};
\draw[{Latex}-{Latex}, line width=.3pt] (6.5cm,1.6mm) -- (6.5cm,5mm);
\draw[line width=1pt] (6.5cm,4.9mm) -- (6.5cm,7mm);
\node[above] at (6.5cm,7mm) {$\sim F$};
\end{tikzpicture}
\vspace*{10mm}
\caption{
Visualization of the windowing process on the detector
error matrix.
}
\label{fig:windowing_pcm}
\end{figure}
\begin{figure}[t]
\centering
\tikzset{
VN/.style={
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
},
CN/.style={
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
},
}
\begin{tikzpicture}[node distance = 5mm]
\node[VN] (vn00) {};
\node[VN, below = of vn00] (vn01) {};
\node[VN, below = of vn01] (vn02) {};
\node[VN, below = of vn02] (vn03) {};
\node[VN, below = of vn03] (vn04) {};
\coordinate (temp) at ($(vn01)!0.5!(vn02)$);
\node[CN, left =10mm of temp] (cn00) {};
\node[CN, below = of cn00] (cn01) {};
\draw (vn00) -- (cn00);
\draw (vn01) -- (cn00);
\draw (vn03) -- (cn00);
\draw (vn01) -- (cn01);
\draw (vn02) -- (cn01);
\draw (vn04) -- (cn01);
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\node[VN, right = 25mm of vn\prev 0] (vn\i0) {};
\node[VN, below = of vn\i0] (vn\i1) {};
\node[VN, below = of vn\i1] (vn\i2) {};
\node[VN, below = of vn\i2] (vn\i3) {};
\node[VN, below = of vn\i3] (vn\i4) {};
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
\node[CN, left = 10mm of temp] (cn\i0) {};
\node[CN, below = of cn\i0] (cn\i1) {};
\draw (vn\i0) -- (cn\i0);
\draw (vn\i1) -- (cn\i0);
\draw (vn\i3) -- (cn\i0);
\draw (vn\i1) -- (cn\i1);
\draw (vn\i2) -- (cn\i1);
\draw (vn\i4) -- (cn\i1);
}
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\draw (vn\prev 3) -- (cn\i 0);
\draw (vn\prev 4) -- (cn\i 1);
}
\node[
draw, inner sep=5mm,line width=1pt,
fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
]
(box1) {};
\node[
draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
]
(box2) {};
% Marker for W on the bottom
\draw[line width=1pt]
([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm)
coordinate (dim1l);
\draw[line width=1pt]
([yshift=-5mm]box1.south east) -- ++(0,-4mm)
coordinate (dim1r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=1mm]dim1l) -- ([yshift=1mm]dim1r)
node[midway, below=2pt] {$W$};
% Marker for F on top
\draw[line width=1pt]
([yshift=3mm]box2.north west) -- ++(0,4mm)
coordinate (dim3l);
\draw[line width=1pt]
([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm)
coordinate (dim3r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=-1mm]dim3l) -- ([yshift=-1mm]dim3r)
node[midway, above=2pt] {$F$};
% Arrow on the top right
\draw[-{Latex}, line width=1pt]
([yshift=8mm] box1.north east) -- ++(28mm,0);
\end{tikzpicture}
\caption{Visualization of the windowing process on the Tanner graph.}
\label{fig:windowing_tanner}
\end{figure}
\begin{figure}[t]
\centering
\tikzset{
VN/.style={
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
},
CN/.style={
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
},
}
\begin{tikzpicture}[node distance = 5mm]
\node[VN] (vn00) {};
\node[VN, below = of vn00] (vn01) {};
\node[VN, below = of vn01] (vn02) {};
\node[VN, below = of vn02] (vn03) {};
\node[VN, below = of vn03] (vn04) {};
\coordinate (temp) at ($(vn01)!0.5!(vn02)$);
\node[CN, left =10mm of temp] (cn00) {};
\node[CN, below = of cn00] (cn01) {};
\draw (vn00) -- (cn00);
\draw (vn01) -- (cn00);
\draw (vn03) -- (cn00);
\draw (vn01) -- (cn01);
\draw (vn02) -- (cn01);
\draw (vn04) -- (cn01);
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\node[VN, right = 25mm of vn\prev 0] (vn\i0) {};
\node[VN, below = of vn\i0] (vn\i1) {};
\node[VN, below = of vn\i1] (vn\i2) {};
\node[VN, below = of vn\i2] (vn\i3) {};
\node[VN, below = of vn\i3] (vn\i4) {};
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
\node[CN, left = 10mm of temp] (cn\i0) {};
\node[CN, below = of cn\i0] (cn\i1) {};
\draw (vn\i0) -- (cn\i0);
\draw (vn\i1) -- (cn\i0);
\draw (vn\i3) -- (cn\i0);
\draw (vn\i1) -- (cn\i1);
\draw (vn\i2) -- (cn\i1);
\draw (vn\i4) -- (cn\i1);
}
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\draw (vn\prev 3) -- (cn\i 0);
\draw (vn\prev 4) -- (cn\i 1);
}
\node[
draw, inner sep=5mm,line width=1pt,
fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
]
(box1) {};
\node[
draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
]
(box2) {};
\draw[KITorange, line width=2pt] (cn10) -- (vn10);
\draw[KITorange, line width=2pt] (cn10) -- (vn11);
\draw[KITorange, line width=2pt] (cn10) -- (vn13);
\draw[KITorange, line width=2pt] (cn11) -- (vn11);
\draw[KITorange, line width=2pt] (cn11) -- (vn12);
\draw[KITorange, line width=2pt] (cn11) -- (vn14);
\draw[KITorange, line width=2pt] (vn13) -- (cn20);
\draw[KITorange, line width=2pt] (vn14) -- (cn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn20);
\draw[KITorange, line width=2pt] (cn20) -- (vn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn23);
\draw[KITorange, line width=2pt] (cn21) -- (vn21);
\draw[KITorange, line width=2pt] (cn21) -- (vn22);
\draw[KITorange, line width=2pt] (cn21) -- (vn24);
% Marker for W on the bottom
\draw[line width=1pt]
([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm)
coordinate (dim1l);
\draw[line width=1pt]
([yshift=-5mm]box1.south east) -- ++(0,-4mm)
coordinate (dim1r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=1mm]dim1l) -- ([yshift=1mm]dim1r)
node[midway, below=2pt] {$W$};
% Marker for F on top
\draw[line width=1pt]
([yshift=3mm]box2.north west) -- ++(0,4mm)
coordinate (dim3l);
\draw[line width=1pt]
([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm)
coordinate (dim3r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=-1mm]dim3l) -- ([yshift=-1mm]dim3r)
node[midway, above=2pt] {$F$};
% Arrow on the top right
\draw[-{Latex}, line width=1pt]
([yshift=8mm] box1.north east) -- ++(28mm,0);
\end{tikzpicture}
\caption{
Visualization of the messages used for the
initialization of the next window.
}
\label{fig:messages_tanner}
\end{figure}
\begin{figure}[t]
\centering
\tikzset{
VN/.style={
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
},
CN/.style={
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
},
}
\begin{tikzpicture}[node distance = 5mm]
\node[VN] (vn00) {};
\node[VN, below = of vn00] (vn01) {};
\node[VN, below = of vn01] (vn02) {};
\node[VN, below = of vn02] (vn03) {};
\node[VN, below = of vn03] (vn04) {};
\coordinate (temp) at ($(vn01)!0.5!(vn02)$);
\node[CN, left =10mm of temp] (cn00) {};
\node[CN, below = of cn00] (cn01) {};
\draw (vn00) -- (cn00);
\draw (vn01) -- (cn00);
\draw (vn03) -- (cn00);
\draw (vn01) -- (cn01);
\draw (vn02) -- (cn01);
\draw (vn04) -- (cn01);
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\node[VN, right = 25mm of vn\prev 0] (vn\i0) {};
\node[VN, below = of vn\i0] (vn\i1) {};
\node[VN, below = of vn\i1] (vn\i2) {};
\node[VN, below = of vn\i2] (vn\i3) {};
\node[VN, below = of vn\i3] (vn\i4) {};
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
\node[CN, left = 10mm of temp] (cn\i0) {};
\node[CN, below = of cn\i0] (cn\i1) {};
\draw (vn\i0) -- (cn\i0);
\draw (vn\i1) -- (cn\i0);
\draw (vn\i3) -- (cn\i0);
\draw (vn\i1) -- (cn\i1);
\draw (vn\i2) -- (cn\i1);
\draw (vn\i4) -- (cn\i1);
}
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\draw (vn\prev 3) -- (cn\i 0);
\draw (vn\prev 4) -- (cn\i 1);
}
\node[
draw, inner sep=5mm,line width=1pt,
fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
]
(box1) {};
\node[
draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
]
(box2) {};
\draw[KITorange, line width=2pt] (cn10) -- (vn10);
\draw[KITorange, line width=2pt] (cn10) -- (vn11);
\draw[KITorange, line width=2pt] (cn10) -- (vn13);
\draw[KITorange, line width=2pt] (cn11) -- (vn11);
\draw[KITorange, line width=2pt] (cn11) -- (vn12);
\draw[KITorange, line width=2pt] (cn11) -- (vn14);
\draw[KITorange, line width=2pt] (vn13) -- (cn20);
\draw[KITorange, line width=2pt] (vn14) -- (cn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn20);
\draw[KITorange, line width=2pt] (cn20) -- (vn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn23);
\draw[KITorange, line width=2pt] (cn21) -- (vn21);
\draw[KITorange, line width=2pt] (cn21) -- (vn22);
\draw[KITorange, line width=2pt] (cn21) -- (vn24);
\node[VN, draw=KITorange, fill=KITorange] at (vn10) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn11) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn12) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn13) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn14) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn20) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn21) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn22) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn23) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn24) {};
% Marker for W on the bottom
\draw[line width=1pt]
([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm)
coordinate (dim1l);
\draw[line width=1pt]
([yshift=-5mm]box1.south east) -- ++(0,-4mm)
coordinate (dim1r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=1mm]dim1l) -- ([yshift=1mm]dim1r)
node[midway, below=2pt] {$W$};
% Marker for F on top
\draw[line width=1pt]
([yshift=3mm]box2.north west) -- ++(0,4mm)
coordinate (dim3l);
\draw[line width=1pt]
([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm)
coordinate (dim3r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=-1mm]dim3l) -- ([yshift=-1mm]dim3r)
node[midway, above=2pt] {$F$};
% Arrow on the top right
\draw[-{Latex}, line width=1pt]
([yshift=8mm] box1.north east) -- ++(28mm,0);
\end{tikzpicture}
\caption{
Visualization of the messages and decimation information used for the
initialization of the next window.
}
\label{fig:messages_decimation_tanner}
\end{figure}

View File

@@ -1,5 +1,407 @@
\chapter{Decoding under Detector Error Models}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Sliding-Window Decoding}
\section{Treating Detector Error Matrices like SC-LDPC Codes}
\section{Soft-Information Aware Sliding-Window Decoding}
\section{Numerical Results and Analysis}
\label{sec:Sliding-Window Decoding}
\begin{figure}[t]
\centering
\hspace*{-114mm}%
\begin{tikzpicture}
\draw[decorate, decoration={brace, amplitude=10pt}, line width=1pt]
(0,0) -- (3.1,0) node[midway, above=4mm] {Commit region};
\end{tikzpicture}
\centering
\includegraphics[scale=0.75]{res/72_bb_dem.pdf}
\vspace*{-25.3mm}
\hspace*{-98mm}%
\begin{tikzpicture}
\draw[{Latex}-{Latex}, line width=.7pt] (0, -0.75mm) -- (0, 5mm);
\draw[line width=1pt] (-1mm,-0.75mm) -- (3mm,-0.75mm);
\draw[line width=1pt] (-1mm,5mm) -- (3mm,5mm);
\node[left] at (-2mm,2.125mm) {$\sim W$};
\draw[{Latex}-{Latex}, line width=.3pt] (6.5cm,1.6mm) -- (6.5cm,5mm);
\draw[line width=1pt] (6.5cm,4.9mm) -- (6.5cm,7mm);
\node[above] at (6.5cm,7mm) {$\sim F$};
\end{tikzpicture}
\vspace*{10mm}
\caption{
Visualization of the windowing process on the detector
error matrix.
}
\label{fig:windowing_pcm}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Warm-Start Sliding-Window Decoding under BP}
\label{sec:warm_start_bp}
\begin{figure}[t]
\centering
\tikzset{
VN/.style={
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
},
CN/.style={
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
},
}
\begin{tikzpicture}[node distance = 5mm]
\node[VN] (vn00) {};
\node[VN, below = of vn00] (vn01) {};
\node[VN, below = of vn01] (vn02) {};
\node[VN, below = of vn02] (vn03) {};
\node[VN, below = of vn03] (vn04) {};
\coordinate (temp) at ($(vn01)!0.5!(vn02)$);
\node[CN, left =10mm of temp] (cn00) {};
\node[CN, below = of cn00] (cn01) {};
\draw (vn00) -- (cn00);
\draw (vn01) -- (cn00);
\draw (vn03) -- (cn00);
\draw (vn01) -- (cn01);
\draw (vn02) -- (cn01);
\draw (vn04) -- (cn01);
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\node[VN, right = 25mm of vn\prev 0] (vn\i0) {};
\node[VN, below = of vn\i0] (vn\i1) {};
\node[VN, below = of vn\i1] (vn\i2) {};
\node[VN, below = of vn\i2] (vn\i3) {};
\node[VN, below = of vn\i3] (vn\i4) {};
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
\node[CN, left = 10mm of temp] (cn\i0) {};
\node[CN, below = of cn\i0] (cn\i1) {};
\draw (vn\i0) -- (cn\i0);
\draw (vn\i1) -- (cn\i0);
\draw (vn\i3) -- (cn\i0);
\draw (vn\i1) -- (cn\i1);
\draw (vn\i2) -- (cn\i1);
\draw (vn\i4) -- (cn\i1);
}
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\draw (vn\prev 3) -- (cn\i 0);
\draw (vn\prev 4) -- (cn\i 1);
}
\node[
draw, inner sep=5mm,line width=1pt,
fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
]
(box1) {};
\node[
draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
]
(box2) {};
% Marker for W on the bottom
\draw[line width=1pt]
([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm)
coordinate (dim1l);
\draw[line width=1pt]
([yshift=-5mm]box1.south east) -- ++(0,-4mm)
coordinate (dim1r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=1mm]dim1l) -- ([yshift=1mm]dim1r)
node[midway, below=2pt] {$W$};
% Marker for F on top
\draw[line width=1pt]
([yshift=3mm]box2.north west) -- ++(0,4mm)
coordinate (dim3l);
\draw[line width=1pt]
([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm)
coordinate (dim3r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=-1mm]dim3l) -- ([yshift=-1mm]dim3r)
node[midway, above=2pt] {$F$};
% Arrow on the top right
\draw[-{Latex}, line width=1pt]
([yshift=8mm] box1.north east) -- ++(28mm,0);
\end{tikzpicture}
\caption{Visualization of the windowing process on the Tanner graph.}
\label{fig:windowing_tanner}
\end{figure}
\begin{figure}[t]
\centering
\tikzset{
VN/.style={
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
},
CN/.style={
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
},
}
\begin{tikzpicture}[node distance = 5mm]
\node[VN] (vn00) {};
\node[VN, below = of vn00] (vn01) {};
\node[VN, below = of vn01] (vn02) {};
\node[VN, below = of vn02] (vn03) {};
\node[VN, below = of vn03] (vn04) {};
\coordinate (temp) at ($(vn01)!0.5!(vn02)$);
\node[CN, left =10mm of temp] (cn00) {};
\node[CN, below = of cn00] (cn01) {};
\draw (vn00) -- (cn00);
\draw (vn01) -- (cn00);
\draw (vn03) -- (cn00);
\draw (vn01) -- (cn01);
\draw (vn02) -- (cn01);
\draw (vn04) -- (cn01);
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\node[VN, right = 25mm of vn\prev 0] (vn\i0) {};
\node[VN, below = of vn\i0] (vn\i1) {};
\node[VN, below = of vn\i1] (vn\i2) {};
\node[VN, below = of vn\i2] (vn\i3) {};
\node[VN, below = of vn\i3] (vn\i4) {};
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
\node[CN, left = 10mm of temp] (cn\i0) {};
\node[CN, below = of cn\i0] (cn\i1) {};
\draw (vn\i0) -- (cn\i0);
\draw (vn\i1) -- (cn\i0);
\draw (vn\i3) -- (cn\i0);
\draw (vn\i1) -- (cn\i1);
\draw (vn\i2) -- (cn\i1);
\draw (vn\i4) -- (cn\i1);
}
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\draw (vn\prev 3) -- (cn\i 0);
\draw (vn\prev 4) -- (cn\i 1);
}
\node[
draw, inner sep=5mm,line width=1pt,
fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
]
(box1) {};
\node[
draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
]
(box2) {};
\draw[KITorange, line width=2pt] (cn10) -- (vn10);
\draw[KITorange, line width=2pt] (cn10) -- (vn11);
\draw[KITorange, line width=2pt] (cn10) -- (vn13);
\draw[KITorange, line width=2pt] (cn11) -- (vn11);
\draw[KITorange, line width=2pt] (cn11) -- (vn12);
\draw[KITorange, line width=2pt] (cn11) -- (vn14);
\draw[KITorange, line width=2pt] (vn13) -- (cn20);
\draw[KITorange, line width=2pt] (vn14) -- (cn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn20);
\draw[KITorange, line width=2pt] (cn20) -- (vn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn23);
\draw[KITorange, line width=2pt] (cn21) -- (vn21);
\draw[KITorange, line width=2pt] (cn21) -- (vn22);
\draw[KITorange, line width=2pt] (cn21) -- (vn24);
% Marker for W on the bottom
\draw[line width=1pt]
([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm)
coordinate (dim1l);
\draw[line width=1pt]
([yshift=-5mm]box1.south east) -- ++(0,-4mm)
coordinate (dim1r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=1mm]dim1l) -- ([yshift=1mm]dim1r)
node[midway, below=2pt] {$W$};
% Marker for F on top
\draw[line width=1pt]
([yshift=3mm]box2.north west) -- ++(0,4mm)
coordinate (dim3l);
\draw[line width=1pt]
([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm)
coordinate (dim3r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=-1mm]dim3l) -- ([yshift=-1mm]dim3r)
node[midway, above=2pt] {$F$};
% Arrow on the top right
\draw[-{Latex}, line width=1pt]
([yshift=8mm] box1.north east) -- ++(28mm,0);
\end{tikzpicture}
\caption{
Visualization of the messages used for the
initialization of the next window.
}
\label{fig:messages_tanner}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Warm-Start Sliding-Window Decoding under BPGD}
\label{sec:warm_start_bpgd}
\begin{figure}[t]
\centering
\tikzset{
VN/.style={
circle, fill=KITgreen, minimum width=1mm, minimum height=1mm,
},
CN/.style={
rectangle, fill=KITblue, minimum width=1mm, minimum height=1mm,
},
}
\begin{tikzpicture}[node distance = 5mm]
\node[VN] (vn00) {};
\node[VN, below = of vn00] (vn01) {};
\node[VN, below = of vn01] (vn02) {};
\node[VN, below = of vn02] (vn03) {};
\node[VN, below = of vn03] (vn04) {};
\coordinate (temp) at ($(vn01)!0.5!(vn02)$);
\node[CN, left =10mm of temp] (cn00) {};
\node[CN, below = of cn00] (cn01) {};
\draw (vn00) -- (cn00);
\draw (vn01) -- (cn00);
\draw (vn03) -- (cn00);
\draw (vn01) -- (cn01);
\draw (vn02) -- (cn01);
\draw (vn04) -- (cn01);
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\node[VN, right = 25mm of vn\prev 0] (vn\i0) {};
\node[VN, below = of vn\i0] (vn\i1) {};
\node[VN, below = of vn\i1] (vn\i2) {};
\node[VN, below = of vn\i2] (vn\i3) {};
\node[VN, below = of vn\i3] (vn\i4) {};
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
\node[CN, left = 10mm of temp] (cn\i0) {};
\node[CN, below = of cn\i0] (cn\i1) {};
\draw (vn\i0) -- (cn\i0);
\draw (vn\i1) -- (cn\i0);
\draw (vn\i3) -- (cn\i0);
\draw (vn\i1) -- (cn\i1);
\draw (vn\i2) -- (cn\i1);
\draw (vn\i4) -- (cn\i1);
}
\foreach \i in {1,2,3,4} {
\pgfmathtruncatemacro{\prev}{\i-1}
\draw (vn\prev 3) -- (cn\i 0);
\draw (vn\prev 4) -- (cn\i 1);
}
\node[
draw, inner sep=5mm,line width=1pt,
fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
]
(box1) {};
\node[
draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
]
(box2) {};
\draw[KITorange, line width=2pt] (cn10) -- (vn10);
\draw[KITorange, line width=2pt] (cn10) -- (vn11);
\draw[KITorange, line width=2pt] (cn10) -- (vn13);
\draw[KITorange, line width=2pt] (cn11) -- (vn11);
\draw[KITorange, line width=2pt] (cn11) -- (vn12);
\draw[KITorange, line width=2pt] (cn11) -- (vn14);
\draw[KITorange, line width=2pt] (vn13) -- (cn20);
\draw[KITorange, line width=2pt] (vn14) -- (cn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn20);
\draw[KITorange, line width=2pt] (cn20) -- (vn21);
\draw[KITorange, line width=2pt] (cn20) -- (vn23);
\draw[KITorange, line width=2pt] (cn21) -- (vn21);
\draw[KITorange, line width=2pt] (cn21) -- (vn22);
\draw[KITorange, line width=2pt] (cn21) -- (vn24);
\node[VN, draw=KITorange, fill=KITorange] at (vn10) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn11) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn12) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn13) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn14) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn20) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn21) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn22) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn23) {};
\node[VN, draw=KITorange, fill=KITorange] at (vn24) {};
% Marker for W on the bottom
\draw[line width=1pt]
([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm)
coordinate (dim1l);
\draw[line width=1pt]
([yshift=-5mm]box1.south east) -- ++(0,-4mm)
coordinate (dim1r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=1mm]dim1l) -- ([yshift=1mm]dim1r)
node[midway, below=2pt] {$W$};
% Marker for F on top
\draw[line width=1pt]
([yshift=3mm]box2.north west) -- ++(0,4mm)
coordinate (dim3l);
\draw[line width=1pt]
([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm)
coordinate (dim3r);
\draw[{Latex}-{Latex}, line width=1pt]
([yshift=-1mm]dim3l) -- ([yshift=-1mm]dim3r)
node[midway, above=2pt] {$F$};
% Arrow on the top right
\draw[-{Latex}, line width=1pt]
([yshift=8mm] box1.north east) -- ++(28mm,0);
\end{tikzpicture}
\caption{
Visualization of the messages and decimation information used for the
initialization of the next window.
}
\label{fig:messages_decimation_tanner}
\end{figure}

View File

@@ -100,11 +100,11 @@
\tableofcontents
\cleardoublepage
% \input{chapters/1_introduction.tex}
% \input{chapters/2_fundamentals.tex}
\input{chapters/1_introduction.tex}
\input{chapters/2_fundamentals.tex}
\input{chapters/3_fault_tolerant_qec.tex}
% \input{chapters/4_decoding_under_dems.tex}
% \input{chapters/5_conclusion_and_outlook.tex}
\input{chapters/4_decoding_under_dems.tex}
\input{chapters/5_conclusion_and_outlook.tex}
% \appendix
% \listoffigures