commpy.channelcoding.viterbi_decode

viterbi_decode(coded_bits, trellis, tb_depth=None, decoding_type='hard')

Decodes a stream of convolutionally encoded bits using the Viterbi Algorithm :param coded_bits: Stream of convolutionally encoded bits which are to be decoded. :type coded_bits: 1D ndarray :param generator_matrix: Generator matrix G(D) of the convolutional code using which the

input bits are to be decoded.
Parameters:
  • M (1D ndarray of ints) – Number of memory elements per input of the convolutional encoder.
  • tb_length (int) – Traceback depth (Typically set to 5*(M+1)).
  • decoding_type (str {'hard', 'unquantized'}) – The type of decoding to be used. ‘hard’ option is used for hard inputs (bits) to the decoder, e.g., BSC channel. ‘unquantized’ option is used for soft inputs (real numbers) to the decoder, e.g., BAWGN channel.
Returns:

decoded_bits – Decoded bit stream.

Return type:

1D ndarray

References

[1]Todd K. Moon. Error Correction Coding: Mathematical Methods and Algorithms. John Wiley and Sons, 2005.