79 lines
3.9 KiB
TeX
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. |