ba-thesis/latex/figures/polar_nbit_decoder.tex

54 lines
1.4 KiB
TeX

\begin{tikzpicture}[node distance = 1.5cm, auto]
% \def\dist{1.5}
% \def\power{4}
\pgfmathparse{\power-1}
\newcount\powerleq
\let\powerleq\pgfmathresult
\pgfmathparse{int(2^\power)}
\newcount\blocksize
\let\blocksize\pgfmathresult
\pgfmathparse{\blocksize-1}
\newcount\blockleq
\let\blockleq\pgfmathresult
\foreach \j in {0,...,\powerleq}{
\pgfmathparse{int(-1*\j-1)}
\let\srow\pgfmathresult
\pgfmathparse{int(-1*\j)}
\let\drow\pgfmathresult
\pgfmathparse{int(2^(\j+1))}
\let\ccsize\pgfmathresult
\pgfmathparse{int(\ccsize/2)}
\let\cchalf\pgfmathresult
\foreach \i in {0,...,\blockleq}{
\pgfmathparse{int(mod(\i,\ccsize))}
\let\n\pgfmathresult
\ifnum\n<\cchalf
\path (\dist*\drow, \i) edge [dashed] (\dist*\srow, \i+\n);
\path (\dist*\drow, \i) edge [dashed] (\dist*\srow, \i+\n+1);
\else
\pgfmathparse{int(\ccsize * int(\i / \ccsize)) + int(mod(2* (\i + \cchalf), \ccsize) )}
\let\jumpsize\pgfmathresult
\path (\dist*\drow, \i) edge (\dist*\srow, \jumpsize);
\path (\dist*\drow, \i) edge (\dist*\srow, \jumpsize+1);
\fi
}
}
\foreach \i in {0,...,\blockleq}{
\node[draw=none] at (-0.3-\dist*\power, \blockleq-\i) {$y_{\i}$};
\node[draw=none] at (0.3, \blockleq-\i) {$\hat{u}_{\i}$};
}
\foreach \i in {0,...,\power}{
\node[draw=none] at (-1*\dist*\power+\dist*\i, \blocksize-0.5) {$S_{\i}$};
}
\end{tikzpicture}