El algoritmo BCJR es un algoritmo para la decodificación máxima a posteriori de códigos de corrección de errores definidos en trellises (principalmente códigos convolucionales ). El algoritmo lleva el nombre de sus inventores: Bahl, Cocke, Jelinek y Raviv. [1] Este algoritmo es fundamental para los códigos modernos de corrección de errores decodificados de forma iterativa, incluidos los códigos turbo y los códigos de verificación de paridad de baja densidad .
Pasos involucrados
Basado en el enrejado :
- Calcular probabilidades futuras
- Calcular probabilidades hacia atrás
- Calcule probabilidades suavizadas basadas en otra información (es decir, variación de ruido para AWGN , probabilidad de cruce de bits para canal simétrico binario )
Variaciones
SBGT BCJR
Simplificación de Berrou, Glavieux y Thitimajshima. [2]
Mapa de registro BCJR
Implementaciones
- El marco de Susa implementa el algoritmo BCJR para códigos de corrección de errores directos y ecualización de canales en C ++.
Ver también
Referencias
- ^ L.Bahl, J.Cocke, F.Jelinek y J.Raviv, "Decodificación óptima de códigos lineales para minimizar la tasa de error de símbolo", IEEE Transactions on Information Theory, vol. IT-20 (2), págs. 284-287, marzo de 1974.
- ^ Sichun Wang y François Patenaude, "Un enfoque sistemático a los algoritmos modificados de BCJR MAP para códigos convolucionales", EURASIP Journal on Applied Signal Processing , vol. 2006, Id. De artículo 95360, 15 páginas, 2006. doi : 10.1155 / ASP / 2006/95360
- ^ P. Robertson, P. Hoeher y E. Villebrun, "Algoritmos máximos A posteriori óptimos y subóptimos adecuados para la decodificación turbo", Transacciones europeas en telecomunicaciones, vol. 8 de 1997.
enlaces externos
- El libro de texto en línea: Teoría de la información, inferencia y algoritmos de aprendizaje , de David JC MacKay , analiza el algoritmo BCJR en el capítulo 25.
- La implementación del algoritmo BCJR en el marco de procesamiento de señales de Susa