BCJR algorithm
The BCJR algorithm is an algorithm for decoding of defined on trellises (principally convolutional codes). The algorithm is named after its inventors: Bahl, Cocke, and Raviv. This algorithm is critical to modern iteratively-decoded error-correcting codes including turbo codes and low-density parity-check codes.
Contents
Steps involved
Based on the trellis:
- Compute forward probabilities <math>alpha</math>
- Compute backward probabilities <math>beta</math>
- Compute smoothed probabilities based on other information (i.e. noise variance for , bit crossover probability for )
Variations
SBGT BCJR
Berrou, Glavieux and Thitimajshima simplification.
Log-Map BCJR
Max-Log-Map BCJR
Implementations
- Susa framework implements BCJR algorithm for forward error correction codes and channel equalization in C++.
See Also on BitcoinWiki
External links
- The online textbook: Information Theory, Inference, and Learning Algorithms, by , discusses the BCJR algorithm in chapter 25.
- The implementation of BCJR algorithm in Susa signal processing framework