## Vorwärtsfehlerkorrektur (FEC) * Erkennt der Empfänger einen Fehler (z. B. mittels Prüfbits), kann er um eine erneute Übertragung bitten * Bei der Vorwärtsfehlerkorrektur wird zusätzliche Redundanz (z. B. weitere Prüfbits) hinzugefügt * So wird nicht nur erkannt, dass ein Fehler vorliegt, sondern auch an welcher Stelle → das fehlerhafte Bit kann berichtigt werden * Im Englischen spricht man von Forward Error Correction (FEC) --- [question:AE413] --- [question:AE414] --- ## Hamming-Code – Fehlerkorrektur im Detail * Der Hamming-Code nutzt mehrere Parity Bits, um nicht nur Fehler zu erkennen, sondern auch zu korrigieren * Ziel: Ein einzelner Bitfehler soll lokalisiert und berichtigt werden --- [picture:683:hamming1:Übertragung von 11 Bits] * Beispiel: Übertragung eines 11-Bit-Datenworts * Ziel: Fehlererkennung und -korrektur bei einem Bitfehler --- [picture:682:hamming2:Alphabetische Benennung der Bitpositionen] * Die Positionen der Bits werden alphabetisch benannt, um die einzelnen Bereiche zu identifizieren --- [picture:684:hamming3:Neuordnung mit zusätzlichen Bits] * Anordnung der Datenbits mit zusätzlichen Bit-Positionen für Parity Bits --- [picture:685:hamming4:Vier Parity Bits im Hamming-Code] * Anstelle eines einzelnen Prüfbit werden vier Parity Bits ($p_1$–$p_4$) eingesetzt * Diese decken unterschiedliche Bereiche der Datenbits ab – ähnlich einem Kreuzworträtsel --- [picture:686:hamming5:Zuweisung der Parity-Bereiche] * Jedes Parity Bit sichert einen bestimmten Bereich der Daten ab --- [picture:687:hamming6:Berechnung der Parity Bits (Even Parity)] * Für jeden Bereich wird das Parity Bit mittels Even Parity berechnet * Tritt ein Fehler auf, können die fehlerhaften Bereiche identifiziert und korrigiert werden --- [picture:687:hamming6:Berechnung der Parity Bits (Even Parity)] * Durch die Kombination der Parity-Bereiche lässt sich der fehlerhafte Bit-Standort bestimmen * Beispiel: Wird ein bestimmtes Bit (z. B. Bit k) während der Übertragung verändert, schlagen alle zugehörigen Paritätsprüfungen fehl – der Fehler liegt also bei Bit k