MATLAB: Does the Viterbi Decoder block give wrong results when it is fed values of +/- Inf in Communication Blockset (R2007b)

blocksetcommunicationscommunications blocksetinfviterbi

The Viterbi Decoder block yields wrong results when it is fed values of +/- Inf. These values could result from a demodulation block when the SNR is very high. This is because the LLR (log-likelihood ratio) becomes impossible to compute with finite-precision arithmetic.

Best Answer

This is a limitation of Viterbi Decoder block in Communication Blockset (R2007b).
To workaround this issue, put a saturation block in the model immediately before the Viterbi Decoder block. By setting appropriate high and low thresholds, the values of +/- Inf are effectively prevented from propogating into the Viterbi block.