BCJR Algorithm
Understanding the BCJR Algorithm
The BCJR algorithm was published in 1974 but remained largely academic until the invention of turbo codes in 1993 by Berrou, Glavieux, and Thitimajshima. Turbo codes use two BCJR decoders that exchange soft information iteratively, approaching the Shannon capacity limit within 0.5 to 1.0 dB. The key insight is that BCJR produces exact posterior probabilities for each bit, not just the most likely sequence (which Viterbi provides).
The difference between "most likely sequence" (Viterbi) and "most likely bit" (BCJR) becomes critical in iterative decoding. Soft LLR outputs from BCJR serve as prior information for the next decoder iteration. Each iteration refines the probability estimates, progressively eliminating uncertainty until the decoder converges to the correct codeword.
BCJR Recursions
αk(s) = ∑s' αk−1(s') × γk(s',s)
Backward Recursion:
βk(s) = ∑s' βk+1(s') × γk+1(s,s')
LLR Output:
L(dk) = ln[∑d=1 αγβ] − ln[∑d=0 αγβ]
Log-MAP (practical):
ln(ea+eb) = max(a,b) + ln(1+e−|a−b|)
Max-Log-MAP: drop correction term (−0.2 dB)
Decoding Algorithm Comparison
| Algorithm | Criterion | Output | Passes | Used In |
|---|---|---|---|---|
| Viterbi | ML sequence | Hard / SOVA | 1 (forward) | 3G conv., GSM |
| BCJR (MAP) | MAP bit | Exact soft LLR | 2 (fwd + bwd) | Turbo (3G/4G) |
| Max-Log-MAP | Approx MAP | Approx soft LLR | 2 | HW turbo decoders |
| Belief Prop. | MAP (graph) | Soft LLR | Iterative | LDPC (5G, Wi-Fi) |
Frequently Asked Questions
How does BCJR work?
Three passes on trellis: forward (α), backward (β), combine with branch metrics (γ). Computes posterior probability per bit. LLR = ln(P1/P0). Log-MAP uses log domain. Max-Log-MAP approximates (~0.2 dB loss).
BCJR vs. Viterbi?
Viterbi: most likely sequence, 1 pass, hard/SOVA output. BCJR: most likely bit, 2 passes, exact soft LLR. BCJR = 2x complexity. Standalone: <0.1 dB difference. Iterative: BCJR converges within 0.5 to 1.0 dB of Shannon.
Modern RF applications?
3G/4G turbo decoder (6 to 8 iterations). DVB-RCS2 satellite. LDPC belief propagation (generalized BCJR). Turbo equalization. MIMO joint detection-decoding. Every modern iterative receiver derives from BCJR.