Indexing terms: Weight enumerator, âerror floorâ, deep space comm. The âerror floorâ ... verified by calculation of an upper bound to the bit error rate for the ensemble .... for Viterbi Decoded, Rate 1/N Convolutional Codesâ, Jet Propulsion Lab.
Turbo Codes Extended with Outer BCH Code
Jakob Dahl Andersen
Indexing terms: Weight enumerator, “error floor”, deep space comm.
The “error floor” observed in several simulations with the turbo codes is verified by calculation of an upper bound to the bit error rate for the ensemble of all interleavers. Also an easy way to calculate the weight enumerator used in this bound is presented. An extended coding scheme is proposed including an outer BCH code correcting a few bit errors.
Introduction: Several simulations [1,2] with parallel concatenated convolutional codes, i.e. turbo coding, using a large pseudo-random interleaver as first proposed in [3], have revealed a characteristic break in the performance. At high SNR’s the performance is dominated by a few words with low weight, occurring when low weight patterns for the component code are interleaved to similar patterns. We will refer to this part of the curve as the “error floor”, although it is not a floor in a true mathematical sense. At low SNR’s the main problem is lack of convergence in the iterated decoding process, giving a large number of erroneous bits in the lost frames. The “error floor” can be verified by calculation of upper bounds to the bit error rate, BER, when a uniform interleaver, i.e. the ensemble of all interleavers, is used and maximum likelihood decoding is assumed, like in [4].
1
If the turbo coding scheme is extended with an outer BCH code correcting a few bit errors, the error floor can be lowered significantly. This is illustrated with an example mainly relating to deep space communication.
Calculation of upper bounds: In [4] it is shown how upper bounds to the performance of the turbo coding scheme can be calculated based upon the weight enumerator polynomial for the block code obtained by truncating the component code to the interleaver length A C(w,Z) ' j Aw,jZ j C
j
where A C is the number of codewords with input weight w and output weight j. w,j (Notice that this definition is a little different from the one in [4], since we do not imply systematic codes). The calculation can not be performed for a specific interleaver, but for the uniform interleaver, i.e. the ensemble of all interleavers, defined as a probalistic device that maps a given input sequence of length N and weight w into all distinct N N permutations of it with equal probability 1/ . w w
The weight enumerator of the component code is easily found by iterative multiplication with the transition matrix as shown in [5]. Let < be the memory of the code. The transition matrix is then defined as the matrix representation of the transition from state i to state j. W(i,j), i,j=0,1, ... 2