Was ist FEC und wie verwende ich es?

Dec 28, 2021

Eine Nachricht hinterlassen

Was ist FEC und wie verwende ich es?

In Kommunikationssystemen, Informationstheorie und Codierungstheorie ist die Vorwärtsfehlerkorrektur (FEC) eine Technik, die zum Steuern von Fehlern bei der Datenübertragung über unzuverlässige oder verrauschte Kommunikationskanäle verwendet wird. FEC verdankt seine Anfänge der Pionierarbeit von Claude Shannon im Jahr 1948 zur zuverlässigen Kommunikation über verrauschte Übertragungswege. Shannons zentrales Thema war, dass, wenn die Signalisierungsrate des Systems geringer als die Kanalkapazität ist, eine zuverlässige Kommunikation erreicht werden kann, wenn man die richtigen Codierungs- und Decodierungstechniken wählt.

FEC-2

Abbildung 1 zeigt ein vereinfachtes Modell eines codierten Systems. Die rohen Übertragungsdaten werden als Nachrichtensequenz dargestelltu. Der FEC-Encoder transformiert die Nachrichtuin ein Codewortdurch Hinzufügen redundanter Daten vor dem Eintritt in den unzuverlässigen oder verrauschten Kanal. Die hinzugefügte Redundanz ermöglicht es dem Empfängerdecoder, eine begrenzte Anzahl von Fehlern zu erkennen, die in der Nachricht auftreten können, und diese Fehler häufig ohne erneute Übertragung zu korrigieren, mit dem Ziel, dass die ursprüngliche Nachrichtensequenz erhalten bleibtuam Ausgang des Decoders erfolgreich zurückgewonnen wird.

 

Arten von FEC-Codes

Heute sind zwei strukturell unterschiedliche Arten von Codes gebräuchlich: Blockcodes und Faltungscodes. Der Codierer für einen Blockcode teilt die Informationssequenzuin Nachrichtenblöcke vonkInformationsbits (Symbole) und wandelt jede Nachricht umuunabhängig in ein Codewort,n-bit (Symbole)v. Das VerhältnisR = k/nwird Coderate genannt. Die redundanten Bits (Symbole),n-k, den Code mit der Fähigkeit versehen, das Kanalrauschen zu bekämpfen.

Ein wichtiger Parameter eines Blockcodes ist der Mindestabstand,dMindest, dies ist der Abstand zwischen zwei am nächsten liegenden Codewörtern, der die minimale Anzahl von Datenänderungen darstellt, die erforderlich sind, um ein gültiges Codewort in ein anderes umzuwandeln. Dieser Parameter bestimmt die Fehlererkennungs- und Korrekturfähigkeiten eines Codes. Normalerweise ist ein FEC-Code in der Lage zu erkennendMindest-1 Fehler pro Codewort und korrigiere bis zu (dMindest-1)/2 Fehler pro Codewort. Beispiel: Reed-Solomon-Code, RS (544, 514,t=15, m=10), ist ein Blockcode mit 514 Informationssymbolen und 30 redundanten Symbolen. Jedes Symbol hat 10 Bit. Sein Mindestabstand beträgtdMindest=31 so, dass es bis zu (dMindest-1)/2=15 Symbolfehler pro Codewort.

Der Codierer für einen Faltungscode akzeptiert ebenfalls k-Bit-Blöcke der Informationsfolgeuund erzeugt eine codierte Sequenzvvonn-Symbolblöcke. Jeder codierte Block hängt jedoch nicht nur von dem entsprechenden abk-Bit Nachrichtenblock gleichzeitig Zeiteinheit aber auch aufmvorherige Nachrichtenblöcke. Neben redundanten Bitsn-k, wird mehr Redundanz hinzugefügt, indem die Speicherreihenfolge erhöht wirdmdes Codes, um eine zuverlässige Übertragung über einen verrauschten Kanal zu erreichen.

Basierend auf der Shannon-Theorie [1], je länger das Codewort ist, desto leistungsfähiger ist die Fehlerkorrekturfähigkeit, die es bietet. Die Codierungskomplexität nimmt jedoch auch mit der Codewortlänge zu. Um einen besseren Kompromiss zwischen Komplexität und Codierungsleistung zu erzielen, gibt es einige Techniken zum Konstruieren langer leistungsfähiger Codes aus kurzen Komponentencodes, wie etwa Produktcodes, verketteten Codes und verschachtelten Codes.

Abbildung 2 zeigt einen zweidimensionalen Produktcode, der aus zwei Codes C gebildet wird1(n1, k1) und C2(n2, k2) mit Mindestabstanddmin1unddmin2, beziehungsweise. Jede Zeile des Produktcodes C1 x C2ist ein Codewort in C1und jede Spalte ist ein Codewort in C2. Der Produktcode kann jede Kombination von (dmin1dmin2-1)/2 Fehler.

FEC-3

Abbildung 3 zeigt einen einstufigen verketteten Code mit einem äußeren Code C1(n1, k1) mit Mindestabstanddmin1und einen inneren Code C2(n2, k2) mit Mindestabstanddmin2. Der Mindestabstand ihrer Verkettung beträgt mindestensdmin1dmin2.

FEC-4

Fig. 4 zeigt die Übertragung eines verschachtelten Codes. Bei einem gegebenen (n, k)-Blockcode C ist es möglich, einen (λn, λk)-Blockcode durch Verschachtelung zu konstruieren, d. h. einfach durch Anordnen von λ-Codewörtern in C in λ-Zeilen eines rechteckigen Arrays und dann Übertragen der Array-Spalte durch Säule. Obwohl der Mindestabstand des Interleaved-Codes immer noch bestehtdMindestals individueller Code C kann er die langen Burst-Fehler in λ verschiedene Codewörter zerlegen.

figure4

Fortgeschrittenere FEC-Codes wie Turbocodes und Low-Density-Parity-Check-(LDPC-)Codes wurden von Wissenschaftlern erfunden und in den letzten Jahrzehnten von der Industrie übernommen, um sich der Shannon-Grenze (oder Kanalkapazität) anzunähern. Ihre hervorragenden Leistungsgewinne werden jedoch normalerweise durch große Codierungs-/Decodierungskomplexität und Latenz bezahlt.

Bei der Auswahl eines geeigneten FEC-Codes und Codierungsschemas für ein bestimmtes Kommunikationssystem sind vier kritische Faktoren zu berücksichtigen. Um einen hohen Durchsatz aufrechtzuerhalten oder eine signifikante Erhöhung der Verbindungsrate zu vermeidenCoderatemuss hoch sein. Um Kanalverluste zu kompensieren oder Anforderungen an das Signal-Rausch-Verhältnis (SNR) oder die Bitfehlerrate (BER) an Entscheidungs-Slicer im Empfänger zu lockern, sind große Anforderungen zu erfüllenKodiergewinnist wünschenswert. Die Nachteile der FEC sind jedoch dieCodierungslatenzundCodierungskomplexitätdas erhöht die Übertragungszeit und die Systemleistung/-kosten.

FEC-Anwendungen für Serial-Link-Systeme

Die Landschaft der FEC-Technologie für drahtgebundene Kommunikationssysteme ist in Abbildung 5 dargestellt und umfasst sowohl elektrische als auch optische Verbindungen. Für elektrische Verbindungen hat die Industrie kürzlich während des Übergangs von Verbindungsdatenraten von 25 Gb/s auf 50 Gb/s Signalisierungsformataktualisierungen vom zweistufigen Signalisierungsformat (NRZ) zum vierstufigen Signalisierungsformat (PAM4) eingeführt.

Eine der größten Design-Herausforderungen von PAM4 SerDes ist die Erkennungsstrafe von PAM4 über NRZ, etwa 9,54 dB oder sogar noch größer, wenn man die Verschlechterung des horizontalen Spielraums aufgrund von Signalkreuzungen mit mehreren Pegeln berücksichtigt. Daher wird FEC zu einem wichtigen Bestandteil der PAM4-Systemlösung, um diesen Erkennungsnachteil auszugleichen. RS (544, 514, 15) FEC, auch bekannt als KP4 FEC, ist in PAM-4-Links weit verbreitet. Es bietet 200/400G-Ethernet-Systemen einen Codierungsgewinn von bis zu 7 dB, während eine Latenzstrafe von Hunderten von Nanosekunden (ns) als Kosten hinzukommt. FEC-Codes mit hoher Verstärkung, wie z. B. Low-Density-Parity-Check-(LDPC-)Codes und Turbo-Produktcodes (TPC), werden normalerweise für optische Langstrecken-Übertragungssysteme mit dem Preis größerer Codierlatenz und -komplexität in Betracht gezogen. Für Anwendungen mit niedriger Latenz könnten kurze einfache Blockcodes mit einem moderaten Codierungsgewinn und einer moderaten Komplexität verwendet werden.

FEC-5

Anfrage senden