Controversial Variable Node Selection-Based Adaptive Belief Propagation Decoding Algorithm Using Bit Flipping Check for JSCC Systems

An end-to-end joint source–channel (JSC) encoding matrix and a JSC decoding scheme using the proposed bit flipping check (BFC) algorithm and controversial variable node selection-based adaptive belief propagation (CVNS-ABP) decoding algorithm are presented to improve the efficiency and reliability of the joint source–channel coding (JSCC) scheme based on double Reed–Solomon (RS) codes. The constructed coding matrix can realize source compression and channel coding of multiple sets of information data simultaneously, which significantly improves the coding efficiency. The proposed BFC algorithm uses channel soft information to select and flip the unreliable bits and then uses the redundancy of the source block to realize the error verification and error correction. The proposed CVNS-ABP algorithm reduces the influence of error bits on decoding by selecting error variable nodes (VNs) from controversial VNs and adding them to the sparsity of the parity-check matrix. In addition, the proposed JSC decoding scheme based on the BFC algorithm and CVNS-ABP algorithm can realize the connection of source and channel to improve the performance of JSC decoding. Simulation results show that the proposed BFC-based hard-decision decoding (BFC-HDD) algorithm (ζ = 1) and BFC-based low-complexity chase (BFC-LCC) algorithm (ζ = 1, η = 3) can achieve about 0.23 dB and 0.46 dB of signal-to-noise ratio (SNR) defined gain over the prior-art decoding algorithm at a frame error rate (FER) = 10−1. Compared with the ABP algorithm, the proposed CVNS-ABP algorithm and BFC-CVNS-ABP algorithm achieve performance gains of 0.18 dB and 0.23 dB, respectively, at FER = 10−3.


Introduction
Compared to separate source-channel coding (SSCC) schemes, joint source-channel coding (JSCC) can improve the coding gain of the channel decoder by exploiting the redundant information of the source [1]. The source redundancy can provide more effective protection for data transmission under the condition of resource-constrained. In addition, JSCC technology can significantly reduce end-to-end latency [2]. Therefore, it is suitable for the industrial Internet of Things (IoT) scenarios with limited resources, low error coding, and high real-time requirements [3][4][5].
The JSCC schemes based on low-density parity-check (LDPC) codes [1] uses a fixedto-fixed length source encoder to compress the independent and identically distributed (i.i.d.) Bernoulli source and an LDPC code to protect the compressed source against channel errors. In [6,7], many works have been made in establishing the matching relationship between the basic modules in the transmission scheme based on double protograph LDPC (DP-LDPC) code and optimizing the JSCC system to obtain greater coding gain. The JSCC scheme of correlated sources based on systematic polar codes is proposed in [8], which uses the correlation between sources to improve the decoding performance. In [9], a distributed JSCC scheme based on polar codes is proposed, which can achieve high decoding performance without increased complexity. A joint source-channel (JSC) decoder based on belief propagation [10] is proposed to improve the efficiency of channel decoding when using the source information residual in the compressed bits. Although the JSCC scheme based on LDPC codes shows excellent decoding performance in wireless communication systems, it also has some shortcomings. The current source data is limited to i.i.d. Bernoulli source, and the code rate adjustment of LDPC codes is not flexible enough resulting in the en/decoder of each code rate not being universal. Recently, the source compression scheme based on RS codes is proved to have high speed [11] and coding flexibility [12]. Moreover, the JSCC scheme based on Reed-Solomon (RS) codes [13] can realize the efficient configuration of hardware resources and has high hardware efficiency. Although the JSCC scheme based on RS codes has the advantages of flexible parameters and outstanding hardware performance, there has been no relevant report on the efficiency and reliability of transmission. How to design an efficient JSC coding mode and apply the high-performance decoding algorithms of RS codes, such as the adaptive belief propagation (ABP) algorithm [14] and low-complexity chase (LCC) algorithm [15], to JSC decoding in order to further establish the relationship between source and channel decoding and realize high-performance decoding have become new challenges.
In coding theory, the bit flipping (BF) algorithm is normally used for the LDPC decoder proposed by Gallager [16], which is the simplest but most practical decoding algorithm for LDPC codes. In the last few years, BF has received renewed attention due to its usage in cryptosystems, in which one must guarantee a provably low failure rate [17,18]. This paper attempts to realize the BF of unreliable bits through source redundancy check and further realize the error detection and error correction of compressed source blocks. To date, a method to establish the connection between source and channel decoding with higher coding gain than the independent coding is missing, and little is known for further improving the efficiency of JSC coding. In this paper, we focus on the high-efficient encoding scheme and high-performance decoding algorithm for JSCC systems based on RS codes. The main contribution of this paper is summarized as follows: (1) A novel joint coding matrix is constructed through which the source compression and channel coding can be realized simultaneously to improve the coding efficiency. (2) A bit flipping check (BFC) algorithm is proposed to check and correct the errors of the compressed source block. The unreliable bits of each source block are selected by using the channel soft information to flip. If the reconstruction results of partial and all the source information are the same, the verification is successful. (3) A controversial variable node selection-based ABP (CVNS-ABP) algorithm is presented for JSC decoding. The proposed CVNS-ABP algorithm reduces the influence of error bits on decoding by selecting error variable nodes (VNs) from controversial VNs and adding them to the sparsity of the parity-check matrix. Based on the BFC algorithm and CVNS-ABP algorithm, several JSC decoding algorithms are proposed. By making full use of the redundancy of the source, the performance of JSC decoding is greatly improved.
The rest of the paper is as follows. Section 2 introduces the JSC encoding using the proposed joint coding matrix and the JSC decoding schemes using the proposed BFC algorithm and CVNS-ABP algorithm. The simulation and comparison results are shown in Section 3. Section 4 draws the conclusion.

System Description
The block diagram of the JSCC system in this paper is shown in Figure 1. The system is composed of double RS codes, in which the outer and the inner codes realize source compression and channel coding, respectively. The traditional JSC coding method [13] compresses the sparse source message x into a compressed source sequence s through the outer RS code source encoder, and then, it uses the inner RS code for channel coding.
However, the two-step implementation of coding affects the efficiency of the system. For the sender, we propose a one-step joint coding method of source compression and channel coding. Binary phase-shift keying (BPSK) is used to modulate codeword c before transmission over the additive white Gaussian noise (AWGN) channel. At the receiver, the BFP algorithm and CVNS-ABP algorithm are proposed to achieve significant coding gain to accurately reconstruct the source message x .

JSC Encoding
For a K-degree sparse source, with most of its symbols being non-zero symbols, where K represents the number of non-zero symbols, N represents the length of the source, the compressed source sequence s 1 = (s 1 , s 2 , . . . , s 2K , . . . , s P ) ∈ GF(2 m ) is computed by T , where P is a little greater than 2K, for example, P = 2K + 2. This means that there are P − 2K redundant symbols in s 1 . H s is a source compression matrix over Galois field GF(q) with Vandermonde structure and is given by where P < N, β is a primitive element of GF(2 m ). The (n, k) RS code over finite field GF(q) is used to complete the channel coding, which is constructed with the generator polynomial g(x) whose roots are 2t consecutive powers of β, where n = k + 2t is the code length, k is the number of information symbols, and 2t is the the number of parity symbols.
As described above and shown in Figure 2, the traditional SSCC scheme needs data compression first and then channel coding. However, in order to simplify the process of JSC coding, we construct a novel joint coding matrix, which can realize the source compression and channel coding of multiple strings of information simultaneously. Next, we will introduce the construction method of end-to-end JSC coding matrix. Firstly, the paritycheck matrix H c of channel coding can be expressed as follows. Secondly, the matrix (3) can be transformed into a new matrix by the Gaussian elimination method as The matrix (4) consists of 2t × 2t identity matrix I 2t and a Q matrix, where the elements of the Q matrix are the elements on the finite field GF(q = 2 m ) obtained by matrix transformation. Then, the generation matrix G c of the RS code can be constructed through matrix Q and a k × k identity matrix I k as To make the compressed information dimension consistent with the information dimension in channel coding, a novel source compression matrix Φ LP×LN can be constructed through the observation matrix H s (1) as where L represents the number of H s matrices.
Finally, the proposed JSC coding matrix Ψ, where k = LP, can be constructed as A plurality of information blocks x 1 , x 2 , x 3 , · · · , x L are constructed into a long information block x as Through the constructed JSC matrix Ψ, the JSC of long information blocks can be completed as the following:

Bit Flipping Check Algorithm
Compared with the traditional JSC decoding [13], the proposed scheme needs to check and correct the errors of each compressed source block first. As shown in Algorithm 1, the log-likelihood ratios (LLRs) (10) of each received compressed source bitŝ i,j are calculated and the ζ least reliable bits whose LLRs approach 0 are selected in step 1, where σ 2 is the variance of noise vector.
Calculate the LLR ofŝ i,j .

6
Pick and sort the ζ most unreliable positions. 7 end for 8 Step 2. Flip bit to generate test vectors 9 Flip the ζ unreliable bit positions to generate the test vector set Θ ={s 1 , s 2 , . . . , s 2 ζ } test vectors. 10 Step 3. Error checking of test vectors 11 for num = 1 to 2 ζ do 12 The source message x A is reconstructed by s num = (s 1 , s 2 , . . . , s P ) using (N, N − P) RS decoder. 13 The source message x B is reconstructed by s num = (s 1 , s 2 , . . . , s 2K ) using (N, N − 2K) RS decoder.  In step 2, the selected ζ unreliable bits are flipped to obtain 2 ζ test vectors for checking and decoding. The larger the ζ value, the more source test vectors are selected, and the better the decoding performance. For the correct source test vector, the compressed source symbol s i (i = 1, 2, . . . , 2K, . . . , P), source sequence location χ, and value δ satisfy the following equation: Obviously, due to the redundancy of compressed source symbols, only 2K compressed source symbols are needed to reconstruct the source sequence with sparsity K. Assume that the source sequence has K non-zero symbols in positions o 1 , o 2 , . . . , o K . The polynomial of source sequence positions is defined as where β j = α o j are related to the target symbol locations. The polynomial of source sequence values is defined as where u j represents the target symbol values. We can get the following parameter equation which can be solved by the reformulated inversionless Berlekamp-Massey (RiBM) algorithm [19], and then, the source information can be reconstructed by the Forney algorithm.
Similarly, the source information x B can be reconstructed by using all the P compressed source symbols. If there is no error in the compressed source block, the reconstruction results using the first 2K symbols and P symbols should be the same. Therefore, we can use this method to verify whether there are errors in the received source sequence. If the reconstructed source message x A and x B are the same, it means that the test vector is the correct source sequence. Moreover, the more unreliable bit positions are selected, the greater the probability of successful source error correction.

Controversial Variable Node Selection Based Adaptive Belief Propagation Decoding Algorithm
In order to further improve the performance of the JSC decoder, it is necessary to introduce the ABP algorithm to reduce or eliminate error bits. The ABP algorithm uses the idea of hierarchical statistics to adjust the parity-check matrix to avoid error transmission in the process of BP decoding. According to the LLRs, some unreliable VNs with small LLRs can be determined. However, there are some controversial nodes with small LLRs between unreliable VNs and reliable VNs. Since their LLRs have a slight difference to determine whether they are reliable, they are called controversial VNs. If they are only distinguished according to the little LLR difference, some error VNs may be determined as reliable VNs, resulting in the wide-range transmission of error information to many check nodes (CNs).
The proposed CVNS-ABP algorithm in Algorithm 2 improves the performance of the ABP algorithm in joint decoding by selecting VNs with high error probability among controversial VNs. As shown in Figure 3, firstly, we select the ρ unreliable VNs with the smallest absolute LLRs. For some VNs whose unreliability is second only to the selected ρ unreliable VNs, their unreliability has little difference, which is called controversial VNs. If θ sub unreliable nodes are selected from the controversial VNs only according to their slight unreliability difference, some possible error nodes will degrade the decoding performance. The unreliable source block is selected by the BFC algorithm, and then, θ unreliable VNs are selected in the unreliable source block. With the increase of signalto-noise ratio (SNR), the controversial VNs will decrease, and the value of θ should be reduced accordingly to obtain good performance. Our proposed CVNS-ABP algorithm reduces the propagation of error information and improves the performance of iterative decoding by accurately selecting unreliable VNs and controversial VNs that may have errors and comparing them with the corresponding parity-check matrix columns.

Algorithm 2: The CVNS-ABP Algorithm
Initialize: Set damping factor α, the maximum iteration number i max , the LLR of the i-th iteration L (i) .

Step 1. BFC for each source block
Calculate the x A and x B for each source block. if x A = x B then Declare the checked source block is reliable. else Declare the checked source block is unreliable.

Step 2. Unreliable VN selection
Sort the bit sequence according to L (i) and select ρ unreliable VNs with the smallest absolute value.
Step 4. Parity-check matrix update Implement Gaussian elimination to unitize the ρ + θ unreliable positions selected in the parity-check matrix.
Step 5. Extrinsic information generation Calculate the extrinsic LLR vector L where v n is the n-th coded bit of the sequence c and c m is the m-th check node, M(v n ) and N (c m ) denote the set of v n and c m , respectively. N (c m )\v n denotes the subset M(v n ) without v n .
else if i = i max then output the estimated bits.
else return to Step 1.

High-Performance JSC Decoding Scheme
The main advantage of JSCC is to apply the redundancy of the compressed source sequence to improve the coding gain of channel decoding. However, the previous JSCC schemes [13] for RS codes pay more attention to the integration of decoders, and there are no relevant reports on the scheme of improving channel coding gain. The proposed BFC algorithm and CVNS-ABP algorithm provide high-performance decoding methods for the JSCC scheme based on double RS codes. A novel high-performance JSC decoding algorithm called BFC-CVNS-ABP is obtained by combining the two algorithms, and its flow chart is shown in Figure 4. The proposed JSC decoding scheme reduces or eliminates the error bits through the CVNS-ABP algorithm, and it outputs the decoding result when the parity checks are all zero. Otherwise, when the maximum number of iterations is reached, the BFC algorithm is performed to flip and correct some errors. Each source block is verified by the BFC algorithm. If the verification is successful, the reconstructed signal x 1 is output. Then, we execute hard-decision decoding (HDD) to solve the remaining errors. After successful channel decoding, the BM algorithm is used to reconstruct the source information. Finally, we select the compressed source block that cannot be successfully decoded by the BFC algorithm for reconstruction.

Simulation Results and Discussion
In this section, we illustrate the advantages of the proposed JSC algorithms through simulation. We combine the proposed BFC algorithm and CVNS-ABP algorithm with other algorithms to obtain several novel JSC decoding algorithms for comparison. The JSC coding parameters are q = 256, m = 8, K = 7, P = 16, L = 14, n = 240, k = 224. The encoded codewords are transmitted in the AWGN channel. In Figure 5, we compare the frame error rate (FER) performances of the three previous algorithms with the five proposed algorithms. As shown in Figure 5, the proposed BFC-HDD algorithm (ζ = 1) and BFC-LCC algorithm (ζ = 1, η = 3) can achieve about 0.55 dB and 0.78 dB of SNR gain over the decoding scheme in [13] at FER = 10 −1 , where η is the selected unreliable positions of the channel RS code. In order to further improve the performance of JSC decoding, the ABP algorithm is improved. The combination of the proposed BFC algorithm and ABP algorithm has a little performance improvement. Compared with the ABP algorithm [14], with a maximum iteration number of i max = 60, the proposed CVNS-ABP algorithm and BFC-CVNS-ABP algorithm achieve performance gains of 0.18 dB and 0.23 dB, respectively, at FER = 10 −3 .

Conclusions
This paper proposes a novel JSCC scheme based on double RS codes. We construct a new JSC coding matrix, which can synchronously realize source compression and channel decoding to reduce system latency. In order to improve the coding gain of JSC decoding, the BFC algorithm and CVNS-ABP algorithm are proposed, where the BFC algorithm can check and correct the source error bits by making full use of a little source redundancy, and the CVNS-ABP algorithm realizes high-performance decoding by selecting the controversial VNs of the error source block and sparsifying the corresponding parity-check matrix columns. Simulation results show that the JSC decoding algorithm based on the BFC algorithm and CVNS-ABP algorithm can significantly improve the coding gain. Future work will focus on exploring the implementation of JSC decoding based on LDPC codes for sparse sources.