BCJR-Algorithmus - BCJR algorithm
Der BCJR-Algorithmus ist ein Algorithmus zur maximalen a posteriori- Decodierung von Fehlerkorrekturcodes, die auf Spalieren definiert sind (hauptsächlich Faltungscodes ). Der Algorithmus ist nach seinen Erfindern benannt: Bahl, Cocke, Jelinek und Raviv. Dieser Algorithmus ist entscheidend für moderne iterativ decodierte Fehlerkorrekturcodes, einschließlich Turbocodes und Paritätsprüfcodes mit niedriger Dichte .
Schritte beteiligt
Basierend auf dem Gitter :
- Vorwärtswahrscheinlichkeiten berechnen
- Rückwärtswahrscheinlichkeiten berechnen
- Berechnen Sie geglättete Wahrscheinlichkeiten basierend auf anderen Informationen (dh Rauschvarianz für AWGN , Bitkreuzungswahrscheinlichkeit für binären symmetrischen Kanal ).
Variationen
SBGT BCJR
Vereinfachung von Berrou, Glavieux und Thitimajshima.
Log-Map BCJR
Implementierungen
- Das Susa- Framework implementiert den BCJR-Algorithmus für Vorwärtsfehlerkorrekturcodes und Kanalentzerrung in C ++.
Siehe auch
Verweise
- ^ L.Bahl, J.Cocke, F.Jelinek und J.Raviv, "Optimale Decodierung linearer Codes zur Minimierung der Symbolfehlerrate", IEEE Transactions on Information Theory, vol. IT-20 (2), S. 284–287, März 1974.
- ^ Sichun Wang und François Patenaude, "Ein systematischer Ansatz für modifizierte BCJR-MAP-Algorithmen für Faltungscodes", EURASIP Journal on Applied Signal Processing , vol. 2006, Artikel-ID 95360, 15 Seiten, 2006. doi : 10.1155 / ASP / 2006/95360
- ^ P. Robertson, P. Hoeher und E. Villebrun, "Optimale und suboptimale Maximum-A-Posteriori-Algorithmen, die für die Turbodecodierung geeignet sind", European Transactions on Telecommunications, Vol. 3, No. 8, 1997.
Externe Links
- Das Online-Lehrbuch: Informationstheorie, Inferenz und Lernalgorithmen von David JC MacKay behandelt den BCJR-Algorithmus in Kapitel 25.
- Die Implementierung des BCJR-Algorithmus im Susa-Signalverarbeitungs-Framework