Fehlerschutz
Verständnisaufgaben
- In welche Bereiche kann man Codierungsverfahren generell unterteilen?
- Was bedeutet der Begriff Kanalkapazität?
- Was sagt die Bezeichnung SNR aus?
- Wie unterscheiden sich die Kanalmodelle BSC, BEC und AWGN?
- Warum verliert man Korrekturfähigkeiten, wenn man den Ausgang des AWGN-Kanals binär quantisiert um mit binären Werten zu arbeiten?
- Was sagt der Begriff Restfehlerwahrscheinlichkeit aus?
- Was sagt der Begriff Codiergewinn aus?
- Warum ist in der Praxis die Paketfehlerwahrscheinlichkeit häufig wichtiger als die Bitfehlerwahrscheinlichkeit?
- Wieviele beliebig verteile Einzelfehler können durch einen CRC-Code sicher erkannt werden?
Kanalmodelle und Kanalkapazität
- Bestimmen Sie die Kanalkapazität für einen BSC und einen BEC-Kanal mit $P_b = 0,5$!
- Bestimmen Sie die Kanalkapazität für einen AWGN-Kanal mit einem SNR von 20 dB!
- Bestimmen Sie die Kanalkapazität für einen AWGN-Kanal mit einer Bandbreite von 1 kHz und einem SNR von 20 dB!
Fehlererkennung und Fehlerkorrektur
Es ist ein Kanalcode mit $(n, k, d_{min})_s = (31, 15, 5)_2$ gegeben.
- Wieviele Fehler kann dieser Code erkennen?
- Wieviele Fehler kann dieser Code korrigieren?
- Wieviele Ausfallstellen kann dieser Code korrigieren?
- Wie hoch ist die Coderate R des Codes?
- Berechnen Sie die Blockfehlerwahrscheinlichkeit (ohne Korrektur) und die Restfehlerwahrscheinlichkeit bei Fehlerkorrektur und einer Übertragung über einen Binär-Kanal mit einer Bitfehlerwahrscheinlichkeit (BER) von $P_b = 10^{−2}$ .
Fehlerkorrektur
Gegeben ist folgender Kanalcode für die vier Zeichen A-D:
| Zeichen | Kanalcode x |
|---|---|
| A | 000000 |
| B | 111000 |
| C | 000111 |
| D | 111111 |
- Wie groß ist die Minimaldistanz des Codes?
- Wieviele Bitfehler lassen sich erkennen, wieviele unbekannte Fehler korrigieren und wieviele Ausfallstellen korrigieren?
Praktische Codes
Gegeben ist ein $(n, k, d_{min})$-Code als (127, 64, 21)-BCH-Code.
- Welche Parameter können Sie aus dem BCH-Code ableiten?
Anwendung von CRC-Codes
In einem lokalen Netz (LAN) mit 100 Mbit/s wird mit einer Blocklänge von 1000 Bit unter Vollast gearbeitet. Bei im Durchschnitt jedem 50 000. Block treten Fehler auf, wobei die Hälfte der Blöcke von max. 3 Einzelfehlern betroffen ist und die andere Hälfte von Bündelfehlern mit einer Länge l > 100.
- Geben Sie die Wahrscheinlichkeit an, das ein empfangener Block fehlerhaft ist!
- Berechnen Sie die Wahrscheinlichkeit, dass ein empfangener Block einen unerkannten Fehler bei Einsatz eines CRC8, CRC16 bzw. CRC32 hat!
- In welchen zeitlichen Abständen ist mit einem erkannten bzw. unerkannten Fehler bei der Übertragung zu rechnen?
Lösungen:
Kanal
- BSC: $C = 0$, BEC: $C = 1-P_b = 0,5$ bit/Kanalbenutzung
- 20dB -> 100, C = 1/2 · log(1+S/N) = 1 bit/Kanalbenutzung
- C = B · log(1+S/N) = 2000 bit/s
Fehlererkennung und -korrektur
- Fehlererkennung: \(t_E = d_{min} − 1 = 4\)
- Fehlerkorrektur: \(t_K = ⌊ (d_{min}−1) / 2 ⌋ = 2\)
- Ausfallstellen: 4
- $R = k/n = 15/31 = 0,48$
- Blockfehlerwahrscheinlichkeit: \(P_{block} = 1 − (1 − Pb)^{31} = 1 − 0,7323 = 0,2677\) -> ca. jeder 4. übertragende Block ist fehlerhaft!
Restfehlerwahrscheinlichkeit:
$P_r ≤ \sum^n_{i=t+1} {n \choose i} (1 − P_b)^{n−i} · P^i_b = 1 − \sum^t_{i=0} {n \choose i} (1 − P_b)^{n−i} · P^i_b$
$= 1 − [ (1 − P_b)^{31} + 31 · (1 − P_b)^{30} · P_b + 465 · (1 − P_b)^{29}·P^2_b ]$
$= 1 − (0,7323 + 0,2293 + 0,0347) = 1 − 0,9963 = 3,7 · 10^{−3}$
ca. jeder 270. übertragene Block wird falsch korrigiert (Restfehler)
Fehlerkorrektur
- Die Minimaldistanz beträgt dmin = 3.
- $t_e = d_{min} − 1 = 2, t_k = ⌊ (d_{min}−1) / 2 ⌋ = 1, t_A = 2$ Es lassen sich 2 Fehler sicher erkennen bzw. 1 Fehler sicher korrigieren
Praktische Codes
- Maximale Anzahl erkennbarer Fehler, \(t_E = 20\)
- Maximale Anzahl korrigierbarer Fehler, \(t_K = 10\)
- Coderate: \(R = k/n = 0,5\)
CRC-Codes
- Wahrscheinlichkeit für einen Blockfehler: Pe = 1/50.000 = 2 · 10⁻⁵
- Wahrscheinlichkeit für das Versagen eines CRC-Codes bei Auftritt eines Bündelfehlers größerer Länge als m ist $P_v=2^{−m}$ mit m der Anzahl an CRC-Bits. Nichterkannte Fehler (betrachtet werden nur die Bündelfehler, damit ist Pe = 10⁻⁵) :
- CRC8: $Pue = Pe · 2^{−8} = 3,9 · 10^{−8}$
- CRC16: $Pue = Pe · 2^{−16} = 1,5 · 10^{−10}$
- CRC32: $Pue = Pe · 2^{−32} = 2,3 · 10^{−15}$
- Blockrate bei Vollast: 100k Frames/s → 2 Fehler pro 1s.
- Zeitlicher Abstand erkannter Fehler ca. 0,5 s
- Zeitlicher Abstand von Bündelfehlern ca. 1 s
- Zeitlicher Abstand unerkannter Fehler
- CRC8: $1s/2^{−8}$ = 256 s
- CRC16: $1s/2^{−16}$ = 1092 min = 18h
- CRC32: $1s/2^{−32}$ = 136 Jahre
Fakultativ
∑ ₃ ✓€©¹⁻ せ
Letzte Änderung: 06. January 2026 16:27