<sub class="descriptionSection">19-11-2024 09:02:am // #Basics // [[TI]]</sub>
____
## Redundanz
Redundanz bedeutet mehr Zeichen (Bit) als zur Übertragung notwending. Bei **nicht** redundanten Codes ist keine Fehlererkennung möglich. Eine geringe Fehlererkennung erfordert keine hohe Redundanz.
## Prüfbit Methode (Parity Check)
Jedem Codewort wird 1 Bit so hinzugefügt, dass die Summe der im Wort (Wort = Speicherwort, also die folge von Bits im Speicher) vorkommenden 1er entweder auf eine gerade (even) oder ungerade (odd) Zahl ergänzt.
### Beispiel Hex-Ziffern (odd-parity-check)
Es geht darum wieviele Bits es gibt, nicht den wert der Zahl
| Zahl | Code | Prüfbit |
| ---- | ---- | ------- |
| 0 | 0000 | 1 |
| 1 | 0001 | 0 |
| 2 | 0010 | 0 |
| 3 | 0011 | 1 |
| 4 | 0100 | 0 |
| 5 | 0101 | 1 |
| 6 | 0110 | 1 |
| 7 | 0111 | 0 |
| 8 | 1000 | 0 |
| 9 | 1001 | 1 |
| A | 1010 | 1 |
| B | 1011 | 0 |
| C | 1100 | 1 |
| D | 1101 | 0 |
| E | 1110 | 0 |
| F | 1111 | 1 |
- Nur 1 Fehler erkennbar
- nicht erkennbar, wo der Fehler ist
- 2 oder mehrere Fehler sind nicht erkennbar
## Blockweise Übertragung
Zeichen werden in Zeilen und Spalten angeordnet. Jede Zeilie und jede Spalte wird mit einem Prüfbit versehen.
### Beispiel:
(odd-parity-check)
Übertragene Bitfolge:
| | | | | <span>↓</span> Zeilenprüfbit |
| ----- | ----- | ----- | ----- | ---------------------------- |
| 0 | 1 | 1 | 0 | **1** |
| 1 | 0 | 1 | 1 | **0** |
| 0 | 0 | 0 | 1 | **0** |
| 0 | 1 | 1 | 1 | **0** |
| **0** | **1** | **0** | **0** | **<- Spaltenprüfbit** |
> [!NOTE] Info
> Mit dieser Methode können:
> - 1 Bit fehler im Block erkannt und lokalisiert werden
> - 2 Bitfehler im Block können erkannt aber nicht lokalisiert werden (Siehe Beispiele: [[#Beispiele für Zwei bitfehler]])
// ↓ Übertragung zum Empfänger ↓ //
| | | | | <span>↓</span> Zeilenprüfbit |
| ----- | ----- | ------------------------------------ | ----- | --------------------------------------- |
| 0 | 1 | 1 | 0 | **1** |
| 1 | 0 | 1 | 1 | **0** |
| 0 | 0 | **==1==** | 1 | **0** => Zeilenprüfbit passt nicht mehr |
| 0 | 1 | 1 | 1 | **0** |
| **0** | **1** | **0** => Spaltenbit passt nicht mehr | **0** | **<- Spaltenprüfbit** |
> [!abstract] Merke
> Der Schnittpunkt der falschen Prüfbits (Zeile + Spalte) ergibt die position des Fehlers.
> Die 1 im Schnittpunkt muss eine 0 sein
### Beispiele für Zwei bitfehler
| | | | | <span>↓</span> Zeilenprüfbit |
| ----- | ----- | ----- | ----- | ---------------------------- |
| 0 | 0 | 1 | 1 | **1** |
| 1 | 1 | 1 | 1 | **0** => Falsch |
| 0 | 1 | 1 | 0 | **1** |
| 1 | 0 | 1 | 1 | **1** => Falsch |
| **1** | **1** | **1** | **0** | **<- Spaltenprüfbit** |
=> nicht zuordbar, da keine Schnittstelle zwischen Zeile und Spalte
___
| | | | | <span>↓</span> Zeilenprüfbit |
| ----- | -------------- | ----- | -------------- | ---------------------------- |
| 1 | 0 | 1 | 0 | **0** => Falsch |
| 0 | 0 | 0 | 0 | **1** |
| 0 | 1 | 0 | 1 | **0** => Falsch |
| 1 | 0 | 1 | 1 | **0** |
| **1** | **1** =>Falsch | **1** | **0** =>Falsch | **<- Spaltenprüfbit** |
=> Fehler nicht zuordbar, da es Vier Schnittstellen gibt