commpy.channelcoding.turbo_decode

turbo_decode(sys_symbols, non_sys_symbols_1, non_sys_symbols_2, trellis, noise_variance, number_iterations, interleaver, L_int=None)

Turbo Decoder.

Decodes a stream of convolutionally encoded (rate 1/3) bits using the BCJR algorithm.

Parameters:
  • sys_symbols (1D ndarray) – Received symbols corresponding to the systematic (first output) bits in the codeword.
  • non_sys_symbols_1 (1D ndarray) – Received symbols corresponding to the first parity bits in the codeword.
  • non_sys_symbols_2 (1D ndarray) – Received symbols corresponding to the second parity bits in the codeword.
  • trellis (Trellis object) – Trellis representation of the convolutional codes used in the Turbo code.
  • noise_variance (float) – Variance (power) of the AWGN channel.
  • number_iterations (int) – Number of the iterations of the BCJR algorithm used in turbo decoding.
  • interleaver (Interleaver object.) – Interleaver used in the turbo code.
  • L_int (1D ndarray) –

    Array representing the initial intrinsic information for all received symbols.

    Typically all zeros, corresponding to equal prior probabilities of bits 0 and 1.

Returns:

decoded_bits – Decoded bit stream.

Return type:

1D ndarray of ints containing {0, 1}