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 : 1D ndarray of ints containing {0, 1}

Decoded bit stream.

Previous topic

commpy.channelcoding.map_decode

Next topic

commpy.channelcoding.RandInterlv