Study of the block and convolutional code decoding efficiency using a turbo code decoder

An urgent task is to correct errors that occur during the transmission and storage of information. To solve this problem, various noise-resistant codes have recently been increasingly used. Turbo codes have the best correcting ability in data transmission channels with a high probability of an erroneous bit. To obtain the necessary characteristics, various combinations of codes and encoding and decoding methods are used. If another block of information bits is added to the codeword of a systematic block or systematic convolutional code, then it will be possible to implement decoding of such a codeword by a turbo code decoder. The disadvantage of the resulting combined code is its extremely low correcting ability in the presence of errors in the check bits of the codeword. The article shows that the correcting ability of the presented code can be significantly increased by multiplying the decoded values of the check bits by reduction factors.


Introduction
The rapid growth of volumes of digital data circulating in various information systems requires the formation of an infrastructure for their transportation and storage.At the same time, the requirements for data transfer speed, equipment speed, storage volume, etc. are constantly increasing.In the process of transferring and storing data, single and group errors occur.In order to correct errors, a variety of noise-resistant codes are used.When there is a high probability of an error occurring, turbo codes are considered the most effective among noise-resistant codes [1,2].During their use, turbo codes have established themselves as one of the most popular noise-resistant codes in modern telecommunication systems.They have shown their effectiveness in a variety of standards: CDMA-2000, INTELSAT, IEEE 802.16,WiMax, DVB-RCS, UMTS, 3GPP LTE, TIA-1008, DMR.
Let us consider the principles of constructing turbo codes, set out in numerous sources [2,3].There are only two basic principles: • construction of codes with codewords having quasi-random properties; • construction of decoders that implement iterative decoding algorithms, during which a soft decision is transferred from the output of one decoder to the input of another, repeating this procedure.The block diagram of the turbo code encoder is shown in Figure 1 [2,3].The turbo code encoder, using interleavers, generates codewords with quasi-random properties.The turbo code code word consists of a block of information bits and N blocks of check bits.If one or more blocks of information bits are added to the codeword of a systematic block code (SBC) or a systematic convolutional code (SCC), then the receiving device will be able to generate several variants of the codeword, the decoding of which can be done using a turbo code decoder.Let us call such a combined code as a code with repetition of information bits (CRIB).The block diagram of the CRIB encoder is presented in Figure 2. The CRIB code word consists of a block of check bits and N blocks of information bits.The CRIB encoder is not able to generate codewords with quasi-random properties, however, it is much simpler than the turbo code encoder, especially for large values of N. In this publication, the effectiveness of CRIB will be studied when decoding using a turbo code decoder.

Materials and methods
Let us consider the process of creating CRIB code sequences based on SCC and SBC and the features of their decoding using a common parallel turbo code decoder.For simplicity of calculations, we take N=2, thereby determining that the code sequence consists of two blocks of information bits and a block of check bits.Then the block diagram of the encoder takes the form shown in Figure 3.For CRIB, built on the basis of SCC, we will describe the process of creating a code sequence.As an SCC we will use a code whose encoder block diagram is shown in Figure 4, with the length of the encoded block of information equal to four bits.The SCC coding process is described in detail in various sources [4,5].Let the information sequence 0100 arrive at the encoder input.Then, at the encoder output, a sequence of bit pairs 00 11 01 01 is formed, where the first bit of the pair is information, and the second is verification.The sequence of check bits has the form: 0111.The CRIB code word is formed from check bits and a double repetition of information bits (see Fig. 5).Then, for the considered example, the KPIB code word has the form: 0111 0100 0100, which, when transmitted by bipolar signals, is converted to: -1111 -11-1-1 -11-1-1.Let us describe the process of creating a CRIB code sequence based on the SBC.The Hamming code will be used as the SBC.The code word consists of four information and three check bits.Encoding and decoding of the Hamming code can be carried out using a syndromic lattice, the structure of which is shown in Figure 6 [6,7].When using a syndromic lattice, it becomes possible to use the MAP algorithm used for decoding turbo codes to decode the KPIB code word based on the Hamming code [8].We will use the previously described parallel decoder as a turbo code decoder.The structure of the KPIB codeword, created on the basis of the Hamming code, is shown in Figure 7. Having the information sequence 0100, the check bits for which are 011, we form the output of the CRIB encoder: 011 0100 0100 or in bipolar form: -111 -11-1-1 -11 -1-1.Let us analyze the features of decoding the received CRIB codeword by the turbo code decoder.For decoding, we will use a common parallel decoder [2,9] with a removed deinterleaver, the block diagram of which is shown in Figure 8. Decoding will be carried out using the well-studied MAP algorithm [2,7,9].When applying the MAP algorithm, a soft decision is formed at the output of each of the two composite decoders.Based on the results of iterative decoding, the soft output of the turbo code decoder is formed: where dk -the value of k-th information symbol, L 1 e(dk) -the value of the logarithmic likelihood function at the output of the first decoder, L 2 e(dk ) -the value of the logarithmic likelihood function at the output of the second decoder, Lc(dk) -channel measurement of symbol value.
In the case of the proposed variant of constructing a codeword, there are two measurements of the value of the channel symbol from two blocks of information bits.Based on this, it is proposed to calculate Lc(dk) as their arithmetic mean.The decision on the meaning of an information symbol when transmitting symbols using bipolar signals is made in accordance with the following criterion: In order to study the corrective ability of CRIB based on SCC and SBC two software simulators were created in the Python programming language.Software simulators implement the creation of a code sequence, the introduction of errors into it with a given probability pB, and decoding using the turbo code decoder described in the article.

Results and discussion
Let us consider the results of the work of software simulators for options for constructing a CRIB based on the selected SCC and SBC, in comparison with the correcting ability of a turbo code built on the basis of the described SCC (TSCC) and a turbo code built on the basis of the described SBC (TSBC) [10].Table 1 shows the probability of occurrence of an erroneous bit in the decoded information message pD for the case of decoding a hard decision of the detector, and Table 2 shows the values of pD for the case of decoding a soft decision of the detector.Based on the results of the analysis of the results from both tables, we can come to the conclusion about relatively high values of the probability of the occurrence of an erroneous bit in the decoded information message when decoding CRIB.Let us assume that the reason for the high рD value when decoding the CRIB is the weak correcting ability in the presence of errors in the check bits of the codeword.To assess the correcting ability of the CRIB when errors are located in different bits of the code word, a decoder implementation was developed in MS Excel that allows decoding of one CRIB code word and operates on the basis of the MAP algorithm.Let us confirm the assumption made about the reasons for the high рD value by considering the results of decoding CRIB codewords.Decoding of CRIB codewords based on SBC and SCC will be carried out when two errors are located first in the check bits, then in the information bits.For decoding, we use the described simulator developed in MS Excel, calculating the soft output of the decoder with three decoding iterations.For research, we use the code word CRIB based on the SCC: −1111 −11−1−1 −11−1−1, the formation of which was described above.If there are two errors in the check bits, the code word takes the form: 11-11 −11−1−1 −11−1−1 (hereinafter, the erroneous bits are underlined).According to the decoding results shown in Table 3, bit No. 1 was decoded incorrectly.If there are two errors in the information bits, the code word takes the form: −1111 111−1 −11−1−1.According to the decoding results shown in Table 4, there are no errors in the decoded information bits.Now let us consider decoding the CRIB codeword based on the SBC.Let us choose the code word -111 -11-1-1 -11-1-1, the formation of which was described above.If there are two errors in the check bits, the code word takes the form: 11-1 -11-1-1 -11-1-1.According to the decoding results shown in Table 5, bit No. 4 was decoded incorrectly.If there are two errors in the information bits, the code word takes the form: -111 111-1 -11-1-1.According to the decoding results shown in Table 6, there are no errors in the decoded information bits.The examples considered confirmed the assumption that the reason for the high рD value for the CRIB is the weak correction ability in the presence of errors in the check bits.Let us hypothesize that it is possible to reduce the influence of the high sensitivity of check bits to errors and thus increase the corrective ability of the CRIB by multiplying the values of the check bits at the decoder input by a reduction factor K<1 [11].Let us confirm the hypothesis by considering the results of decoding the CRIB codeword based on the SCC in the presence of two errors in the check bits.Let K=0.5, then the decoded codeword has the form: 0.50.5-0.50.5 −11−1−1 −11−1−1.According to the decoding results shown in Table 7, there are no errors in the information bits.The hypothesis is confirmed by a practical example.Let us carry out repeated studies of the CRIB based on the selected SCC and SBC using the described software simulators when multiplying the values of the check bits at the decoder input by reduction factors.The results of the software simulators are shown in Table 8 for the case of decoding the hard decision of the detector and in Table 9 for the case of decoding the soft decision of the detector.The tables in parentheses show specific values of the coefficient K at which the minimum pD value was obtained.Compared to the results shown in Tables 1 and 2, there is a significant increase in the correction ability of the CRIB both for the case of decoding the hard decision of the detector and for the case of decoding the soft decision of the detector.

Conclusion
For block and convolutional codes, when retransmitting the information bits of a codeword at the receiving side, it becomes possible to generate several codewords and decode them using a turbo code decoder.The initial simulation showed the low efficiency of such a combined code, which was caused by the weak correcting ability of the code in the presence of errors in the check symbols.By multiplying the decoded values of the check symbols by reduction coefficients, a significant increase in decoding efficiency was obtained, as a result of which the resulting combined code is only slightly inferior in correcting ability to the turbo code.The elements of novelty in the presented publication include both the method of using a turbo code decoder for decoding block and convolutional codes, and the use of multiplying the decoded values of check symbols by coefficients.The results obtained during the study can be used in the development and construction of various systems for transmitting and processing information.

Figure 1 .
Figure 1.Block diagram of a turbo code encoder.

Figure 2 .
Figure 2. Block diagram of the CRIB encoder.

Figure 3 .
Figure 3. Block diagram of the CRIB encoder when N=2.

Figure 4 .
Figure 4. Block diagram of the SCC encoder.

Figure 5 .
Figure 5. Structure of the CRIB codeword based on the selected SCC.

Figure 7 .
Figure 7. Structure of the CRIB codeword based on the Hamming code.

Figure 8 .
Figure 8. Block diagram of a parallel turbo code decoder, adapted for CRIB.

Table 1 .
Probability of an erroneous bit appearing in a decoded information message when decoding a hard decision of the detector.

Table 2 .
Probability of an erroneous bit appearing in a decoded information message when decoding a soft decision of the detector.

Table 3 .
Turbo code decoder output values for two errors in check bits.

Table 4 .
Turbo code decoder output values for two errors in information bits.

Table 5 .
Turbo code decoder output values for two errors in check bits.

Table 6 .
Turbo code decoder output values for two errors in information bits.

Table 7 .
Turbo code decoder output values for two errors in check bits.

Table 8 .
Probability of an erroneous bit appearing in a decoded information message when decoding a hard decision of the detector.

Table 9 .
Probability of an erroneous bit appearing in a decoded information message when decoding a soft decision of the detector.