\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.