79 lines
3.9 KiB
TeX

\section{Codes}
\subsection{Tetraden-Codes}
\begin{itemize}
\item \textbf{BCD}: Häufig benutzt, keine Rundungsfehler!
\item \textbf{Excess-3 und Aiken}: Ziffern liegen symmetrisch im Binärfeld, günstige Verteilung für dezimale Rechenwerke
\item \textbf{4-2-2-1}: Interessante Gewichtung für A/D Wandler
\item \textbf{Gray und O'Brien}: Einschrittige Codes (Schwächere Auswirkung von Übertragungsfehlern), keine Fehlinformation bei Übergängen (Winkelkodierung)
\end{itemize}
\begin{center}
\includegraphics[width = 0.32\textwidth]{images/TetradenCodes.jpg}
\end{center}
\subsection{Parity-Bits}
Redundante Kodierung, welche Übertragungsfehler erkennen kann, solange \emph{höchstens} ein Fehler pro Bitgruppe geschieht. \medskip
Bitgruppe wird durch ein Parity-Bit ergänzt, welches die Bitgruppe auf geradzähligkeit ($P_E$) oder ungeradzähligkeit ($P_O$) überprüft. Der Datenempfänger kann so die Richtigkeit der Datenübertragung überprüfen.
\begin{center}
\begin{minipage}{0.45\linewidth}
\subsubsection{Korrekt mit $P_E$}
\begin{center}
\begin{tikzpicture}
\begin{pgfonlayer}{l1}
\matrix (pm) [
matrix of nodes,
nodes in empty cells
]{
0 & 1 & 0 & 1 & 0 \\
1 & 1 & 0 & 1 & 1 \\
1 & 0 & 1 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 \\
0 & 0 & 0 & 1 & 1 \\
};
\end{pgfonlayer}
\begin{pgfonlayer}{l1}
\draw[] (pm-4-1.south west) -- (pm-4-4.south east) -- (pm-1-4.north east);
\end{pgfonlayer}
\fill[draw, thick, darkgreen!80, rounded corners = 3pt, fill opacity = 0.3] ($(pm-5-1.north west) + (1.5pt, -1.5pt)$) rectangle ($(pm-5-5.south east) + (-1.5pt, 1.5pt)$);
\begin{pgfonlayer}{bg}
\fill[draw, thick, blue!80, rounded corners = 3pt, fill opacity = 0.3] ($(pm-1-5.north west) + (1.5pt, -1.5pt)$) rectangle ($(pm-5-5.south east) + (-1.5pt, 1.5pt)$);
\end{pgfonlayer}
\end{tikzpicture}
\end{center}
\end{minipage}
\begin{minipage}{0.45\linewidth}
\subsubsection{Fehler mit $P_E$}
\begin{center}
\begin{tikzpicture}
\begin{pgfonlayer}{l2}
\matrix (pm) [
matrix of nodes,
nodes in empty cells
]{
0 & 1 & 0 & 1 & 0 \\
1 & 1 & 1 & 1 & \node[text = blue] {\bfseries 1}; \\
1 & 0 & 1 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 \\
0 & 0 & \node[text = blue] {\bfseries 0}; & 1 & 1 \\
};
\end{pgfonlayer}
\begin{pgfonlayer}{l1}
\draw[] (pm-4-1.south west) -- (pm-4-4.south east) -- (pm-1-4.north east);
\end{pgfonlayer}
\begin{pgfonlayer}{bg}
\fill[mred, draw, thick, fill opacity = 0.3, rounded corners = 3pt] (pm-1-3.north west) rectangle (pm-5-3.south east);
\fill[mred, draw, thick, fill opacity = 0.3, rounded corners = 3pt] (pm-2-1.north west) rectangle (pm-2-5.south east);
\end{pgfonlayer}
\end{tikzpicture}
\end{center}
\end{minipage}
\end{center}
\vfill
Für eine Fehlerkorrektur muss zusätzlich ein Prüfwort übertragen werden, welches Spaltenweise ein Parity-Bit bildet. Der Empfänger kann so das fehlerbehaftete Bit in der Matrixdarstellung (siehe Bsp.) erkennen und korrigieren.