## 3 Incremental Redundancy
### Bundle Parity  
Similarly to Chase Combining, bundle parity bits can be used to increase the SNR for some of the bits in the failed codewords. Assume that a vector \(\mathbf{b}=[b_{1},b_{2},\cdots,b_{n}]\) of \(n\) bits from from different codewords is transmitted through an AWGN channel and that their XOR \(x=b_{1}\oplus\cdots\oplus b_{n}\) is transmitted through another AWGN channel with possibly different SNR. Denoting the received values for \(\mathbf{b}\) and \(x\) as \(\mathbf{r}\) and \(r_{x}\), respectively, the probability of a specific bit \(b_{k}\) being 0 conditioned on these received values can be found as  
\[p_{k}(0|\mathbf{r},r_{x})=\sum_{\begin{subarray}{c}\mathbf{d}\in\{0,1\}^{n}\\ d_{k}=0\end{subarray}}\frac{\left(\prod\limits_{j=1}^{n}p_{j}(d_{j}|r_{j}) \right)\,p_{x}(\bigoplus\mathbf{d}|r_{x})}{\sum\limits_{\mathbf{v}\in\{0,1\}^ {n}}\left(\prod\limits_{j=1}^{n}p_{j}(v_{j}|r_{j})\right)\,p_{x}(\bigoplus \mathbf{v}|r_{x})}, \tag{12}\]  
where \(\bigoplus\) represents the XOR operator and \(p_{x}(\bigoplus\mathbf{v}|r_{x})\) denotes the probability that \(x=v_{1}\oplus\cdots\oplus v_{n}\) given the received value \(r_{x}\). Equation (12) provides the exact probabilities required for the computation of the LLR values, but it is impractical to evaluate for large bundle sizes because the number of terms  
Figure 2: Types of incremental redundancy.  
increases exponentially. Hence, we adopt a similar approximation to that used in Min-Sum LDPC decoders [48] and calculate the updated LLR for bit \(b_{k}\) as  
\[\ell_{k}^{\text{new}}=\ell_{k}+\left(\prod_{\begin{subarray}{c}i=1\\ i\
eq k\end{subarray}}^{n+1}\text{sign}(\ell_{i})\right)\min_{\begin{subarray}{ c}i=1,..n+1\\ i\
eq k\end{subarray}}|\ell_{i}|, \tag{13}\]  
where \(\ell_{n+1}\) denotes the LLR value for \(x=\bigoplus\mathbf{b}\). The effect of this update can be modelled as an increase in the SNR of the bits using Equation (7). Specifically,  
\[\text{SNR}_{\text{new}}=\frac{E[\ell^{\text{new}}]^{2}}{\text{Var}[\ell^{ \text{new}}]}, \tag{14}\]  
where \(\ell^{\text{new}}\) corresponds to the LLRs conditioned on \(b=0\) being transmitted (The same formula would hold if \(b=1\) is being transmitted). The two terms in Equation (13) are independent, so the moments of \(\ell^{\text{new}}\) can be found by adding their corresponding moments. Characterizing the mean and variance of the minimum value among a set of Gaussians is possible, but requires tedious equations that add little value to this paper. Instead, Figure 3 illustrates the \(\text{SNR}_{\text{new}}\) as a function of the number of failed codewords and the SNR of the original bits, assuming a SNR of 0 dB for the IR. In a practical setting, that table would be computed offline and saved in memory to be used in the optimizations described in subsequent sections.  
LDPC decoders can occasionally fail to converge, but when they converge to a feasible codeword it is almost always the right one. Therefore, when the decoder fails to decode some of the codewords in a bundle, the receiver can set the LLR values for successfully decoded codewords to have infinite magnitude and update those for the failed codewords according to Equation (13) before attempting another decoding. If it succeeds in decoding any previously failed codewords, their LLRs can be scaled to have infinite magnitude and those for failed codewords can be updated again.