202 lines
6.8 KiB
TeX
202 lines
6.8 KiB
TeX
\section{Codierung}
|
|
|
|
\subsection{Arten von Codierungen}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Zeichencodierung:} Darstellung von Schriftzeichen
|
|
\item \textbf{Zahlencodierung:} Darstellung von Zahlenwerten
|
|
\item \textbf{Anwendungscodierung:} Darstellung von Informationen einer Anwendung
|
|
\item \textbf{Verschlüsselung:} Umcodierung, sodass die Daten nur mit zusätzlichen Informationen entschlüsselt werden können
|
|
\item \textbf{Komprimierung:} Reduzierung der Datenmenge durch Umcodierung
|
|
\item \textbf{Signalcodierung:} Darstellung abstrakter Info als \\Signal/Signalfolge
|
|
\end{itemize}
|
|
|
|
\subsection{Zeichencodierung}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{ASCII:} 7-Bit-Zeichensatz, viele nationale Zeichen nicht enthalten
|
|
\item \textbf{ISO 8859-X:} 8-Bit-Zeichensatz, erweitert ASCII um nationale Zeichen
|
|
\item \textbf{Unicode:} 8/16/32-Bit-Zeichensatz, enthält fast alle Schriftzeichen, enthält Fortsetzungszeichen
|
|
\end{itemize}
|
|
|
|
\subsection{Zahlencodierung}
|
|
|
|
\subsubsection{Abzählsysteme}
|
|
|
|
Jedes Symbol hat einen Symbolwert, aufaddieren der Symbolwerte ergibt den Zahlenwert.
|
|
|
|
\subsubsection{Fingerabzählsystem}
|
|
|
|
$A = \{\mathrm{Finger}\}$ \\
|
|
$S(\mathrm{Finger}) = 1$ \\
|
|
Wertebereich $[0, 10[$ \\
|
|
Keine negativen Zahlen möglich, sehr einfach
|
|
|
|
\subsubsection{Einfache Strichliste}
|
|
|
|
$A = \{\mid\}$ \\
|
|
$S(\mid) = 1$ \\
|
|
Wertebereich $[0, \infty[$ \\
|
|
Keine negativen Zahlen möglich, sehr einfach, keine Subtraktion möglich, Übersichtlich bis ca. $10$
|
|
|
|
\subsubsection{erweiterte Strichliste}
|
|
|
|
$A = \{\mid, \cancel{\mid\mid\mid\mid}\}$ \\
|
|
$S(\mid) = 1$ \\
|
|
$S(\cancel{\mid\mid\mid\mid}) = 5$ \\
|
|
Wertebereich $[0, \infty[$ \\
|
|
Sortieren und zusammenfassen wenn möglich \\
|
|
Keine negativen Zahlen möglich, einfach, keine Subtraktion möglich, Übersichtlich bis ca. $50$
|
|
|
|
\subsubsection{Römisches Zahlensystem}
|
|
|
|
$A = \{I, V, X, L, C, D, M\}$ \\
|
|
$S(I) = 1$ \\
|
|
$S(V) = 5$ \\
|
|
$S(X) = 10$ \\
|
|
$S(L) = 50$ \\
|
|
$S(C) = 100$ \\
|
|
$S(D) = 500$ \\
|
|
$S(M) = 1000$ \\
|
|
Wertebereich $[0, 3999]$ \\
|
|
Keine negativen Zahlen möglich, keine Subtraktion möglich, wenig verständlich, nicht einfach
|
|
|
|
\subsection{Stellenwertsysteme}
|
|
|
|
Gängige Stellenwertsysteme:
|
|
|
|
\begin{itemize}
|
|
\item Dezimalsystem: Basis 10
|
|
\item Binärsystem: Basis 2
|
|
\item Oktalsystem: Basis 8
|
|
\item Hexadezimalsystem: Basis 16
|
|
\end{itemize}
|
|
|
|
Darstellung von negativen Zahlen:
|
|
|
|
\begin{itemize}
|
|
\item Vorzeichen und Betrag
|
|
\item Einerkomplement
|
|
\item Zweierkomplement
|
|
\end{itemize}
|
|
|
|
Darstellung von Kommazahlen:
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Bruchdarstellung:} Unendlich viele Möglichkeiten
|
|
\item \textbf{Festkommadarstellung:} Feste Anzahl an Nachkommastellen (Verschiebung des Kommas)
|
|
\item \textbf{Gleitkommadarstellung:} Mantisse und Exponent
|
|
\end{itemize}
|
|
|
|
\subsubsection{IEEE 754}
|
|
|
|
Sign Bit $S$ statt 2er Komplement. Manitisse $M$ und Exponent $E$. \\
|
|
$S \cdot M \cdot 2^E$
|
|
|
|
\paragraph{Normalisierte Darstellung} \ \\
|
|
\textbf{Zwei Optionen:} \\
|
|
Mantisse mit genau einer Ziffer vor dem Komma ODER
|
|
Manitisse mit $0$ vor dem Komma und erstem Nachkommastellenzeichen $1$
|
|
|
|
\paragraph{reservierte Bitmuster} \ \\
|
|
Exponent $0$: keine Normalisierung, kein Hidden Bit $\to$ Exponent = 1 - Bias \\
|
|
$\to$ Mantisse $0$: $\pm 0$ \\
|
|
Exponent $2^e - 1$: Zahl nicht darstellbar \\
|
|
$\to$ Mantisse $0$: $\pm \infty$ \\
|
|
$\to$ Mantisste $\neq 0$: NaN
|
|
|
|
\paragraph{Umrechnung}
|
|
\begin{enumerate}
|
|
\item Vorzeichen merken, weiter mit Betrag
|
|
\item Darstellung als Festkommazahl also Exponent (Basis 10) = 0
|
|
\item Umrechnung als Festkommazahl ins Binärsystem (Mantisse (bei 16 Bit → 10) Stellen nach der 1. “1” berechnen)
|
|
\item Bestimmung von Exponent real durch Kommaverschiebung bei der Mantisse hinter die erste “1” (Normalisierung)
|
|
\item Bestimmung von Exponent gespeichert (Exponent reals + Bias)
|
|
\item Umrechnung Exponent gespeichert ins Binärsystem
|
|
\item Notation des Bitmusters (fehlende Stellen bei Exponent mit führenden “0”, bei Mantisse mit “0” am ende auffüllen, bei zu großen Zahlen → Bitmuster für Unendlich)
|
|
\end{enumerate}
|
|
|
|
\subsubsection{Codierungsmethoden}
|
|
|
|
\begin{itemize}
|
|
\item Wertecodierung: Wert wird insgesamt codiert
|
|
\item Zifferncodierng: Ziffern werden einzeln codiert
|
|
\end{itemize}
|
|
|
|
\paragraph{BCD (Binary Coded Decimal)} \ \\
|
|
4-Bit-Code für jede Dezimalziffer, 0-9 codiert, 1010-1111 reserviert
|
|
|
|
\paragraph{Gray-Code} \ \\
|
|
Wechsel nur einer Bitstelle bei aufeinanderfolgenden Zahlen, um lesefehler zu vermindern.\\
|
|
Beginend mit $0\dots0$ je das rechteste Bit invertieren, sodass ein bislang nicht vorkommender Code entsteht.
|
|
|
|
\subsection{Signalcodierung}
|
|
|
|
Mögliche Signalarten:
|
|
|
|
\begin{itemize}
|
|
\item elektrische Signale (z.B. in Computern verwendet)
|
|
\item optische Signale
|
|
\item mechanische Signale
|
|
\end{itemize}
|
|
|
|
\subsubsection{NRZ (Non Return to Zero)}
|
|
|
|
symmetrische oder single-ended Pegel \\
|
|
Während eines Bitintervalls wird ein Signalpegel gehalten.
|
|
|
|
\begin{itemize}
|
|
\item \textbf{TRG}: Bei jedem Pegelwechsel ist Taktrückgewinnung möglich
|
|
\item \textbf{GSF}: Nur bei symmetrischen Pegel und gleichverteiltung von 0 und 1 Gleichstromfrei.
|
|
\item \textbf{SSH}: Störsicherheit optimal, da nur 2 Pegel
|
|
\item \textbf{BBB}: Halbe Schrittweite, also optimaler Bandbreitenbedarf
|
|
\end{itemize}
|
|
|
|
\subsubsection{RZ (Return to Zero)}
|
|
|
|
symmetrische oder single-ended Pegel \\
|
|
Während eines Bitintervalls wird ein Signalpegel gehalten, in der Mitte des Intervalls wird der Pegel auf 0 zurückgesetzt.
|
|
|
|
\begin{itemize}
|
|
\item \textbf{TRG}: Bei jeder 1 ist Taktrückgewinnung möglich
|
|
\item \textbf{GSF}: in der Praxis nie Gleichstromfrei.
|
|
\item \textbf{SSH}: Störsicherheit optimal, da nur 2 Pegel
|
|
\item \textbf{BBB}: schlecht (vorallem bei vielen 1)
|
|
\end{itemize}
|
|
|
|
\subsubsection{AMI (Alternate Mark Inversion)}
|
|
|
|
symmetrische Pegel + 0-Pegel. \\
|
|
Zwei Signalpegel für die $1$-Darstellung. \\
|
|
Die beiden Signalpegel wechseln sich ab.
|
|
|
|
\begin{itemize}
|
|
\item \textbf{TRG}: Bei jeder 1 ist Taktrückgewinnung möglich
|
|
\item \textbf{GSF}: nach jeder 2ten 1 Gleichstromfrei (in der Praxis immer)
|
|
\item \textbf{SSH}: Störsicherheit schlecht, da 3 Pegel
|
|
\item \textbf{BBB}: Halbe Schrittweite, also optimaler Bandbreitenbedarf
|
|
\end{itemize}
|
|
|
|
\subsubsection{Manchester}
|
|
|
|
symmetrische Pegel \\
|
|
Darstellung eines Bits mithilfe eines Pegelwechsels in der Mitte des Bitintervalls.\\
|
|
z.B. $0 \to 01$ und $1 \to 10$
|
|
|
|
\begin{itemize}
|
|
\item \textbf{TRG}: immer Taktrückgewinnung möglich
|
|
\item \textbf{GSF}: immer Gleichstromfrei
|
|
\item \textbf{SSH}: optimal, da nur 2 Pegel
|
|
\item \textbf{BBB}: schlecht
|
|
\end{itemize}
|
|
|
|
\subsubsection{TRG ermöglichen}
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Startbitsequenz}: \\
|
|
Vor jedem Datenblock eine Startbitsequenz, die eine Taktrückgewinnung ermöglicht.
|
|
\item \textbf{Bit-Stuffing}: \\
|
|
Wenn zu viele gleiche Bits hintereinander auftreten, wird ein zusätzliches Bit eingefügt.
|
|
\item \textbf{Blockcodierung}: \\
|
|
Daten werden in Blöcke der länge n+1 umcodiert, die eine Taktrückgewinnung ermöglichen.
|
|
\end{enumerate}
|