## 2 The Information Bottleneck Method and Coarsely Quantized Information Bottleneck Signal Processing
### An Example of Information Bottleneck Receiver Design with Iterative Detection and Decoding
#### 2.3.3 Information Bottleneck LDPC Decoder Design  
As briefly mentioned above, the design of an information bottleneck LDPC decoder requires knowledge of the joint probability distribution \(p(s_{k},t_{k})\). Luckily, this distribution is delivered inherently by the information bottleneck algorithm used to design the detection scheme from the previous section. This probability distribution is iteratively processed in a discretized density evolution algorithm [12; 18; 61] to construct a coarsely quantized information bottleneck LDPC decoder. The density evolution algorithm is needed to determine the input distributions of the information bottleneck algorithms used to design the lookup tables that implement the variable and the check node operations of a message passing LDPC decoder in the subsequent decoder iterations. The lookup tables only process and deliver integer indices and therefore are fundamentally different in their operation than conventional LDPC decoders, which process real-valued LLRs. Figure 9 gives an overview of the notation used to describe the design of the information bottleneck LDPC decoder. We consider a regular LDPC code with a variable node degree \(d_{v}\) and check node degree \(d_{c}\). In decoder iteration \(i\), the variable nodes pass quan  
tized messages (i.e., unsigned integers \(y_{k}^{(i)}\)) to the check nodes. The check nodes generate outgoing integer messages \(t_{\mathrm{c}\to\mathrm{v}}^{(i)}\) for all their connected edges from these incoming messages. This process is illustrated for one particular target edge at the top of Figure 9. The check node operation is designed such that the mutual information shared between the outgoing message and the codeword bit that this message represents in the LDPC codeword is maximized with the information bottleneck method. This codeword bit is denoted by \(x\) in the upper part of Figure 9. The other \(d_{\mathrm{c}}-1\) codeword bits connected to the check node are denoted by \(b_{0},b_{1},\ldots,b_{d_{\mathrm{c}}-2}\). As the variable nodes pass the received messages from the channel to the check nodes in the first decoding iteration, in principle, the check node operation could be designed in a straightforward manner by feeding the joint probability distribution  
\[p\Big{(}x,y_{0}^{(i)},y_{1}^{(i)},\ldots,y_{d_{\mathrm{c}}-2}^{(i)}\Big{)}= \sum_{ \begin{subarray}{c}(b_{0},b_{1},\ldots,b_{d_{\mathrm{c}}-2}):\\ x=b_{0}\oplus b_{1}\oplus\ldots\oplus b_{d_{\mathrm{c}}-2}\end{subarray} }\prod_ {k=0}^{d_{\mathrm{c}}-2}p(b_{k},y_{k}) \tag{19}\]  
to an information bottleneck algorithm. This approach, however, suffers from intractable complexity, as the number of input configurations \((y_{0}^{(i)},y_{1}^{(i)},\ldots,y_{d_{\mathrm{c}}-2}^{(i)})\) grows exponentially with the node degree \(d_{\mathrm{c}}\). As a result, the authors of [12] proposed splitting the check node operation into a series of concatenated two-input operations, exactly as was performed in Section 2.3.1 for the channel estimation scheme to reduce the complexity. In this way, a series of concatenated two-input lookup tables can be designed with an information  
Figure 9: Message generation of a check node and a variable node in an iterative information bottleneck LDPC decoder. The nodes generate integer messages for their connected edges. bottleneck algorithm that processes unsigned integers and aims to maximize the preserved relevant information \(\mathrm{I}(\mathrm{X};\mathrm{T}^{(i)}_{\mathrm{c}\to\mathrm{v}})\). The information bottleneck algorithm used for the design of the check node operation finally delivers \(p(x,t^{(i)}_{\mathrm{c}\to\mathrm{v}})\). Based on this distribution, a very similar process can be used to design the variable node operation depicted in the bottom part of Figure 9. The variable nodes create outgoing messages \(t^{(i)}_{\mathrm{v}\to\mathrm{c}}\) that shall be highly informative of their corresponding codeword bit \(x\) (i.e., \(\mathrm{I}(\mathrm{X};\mathrm{T}^{(i)}_{\mathrm{v}\to\mathrm{c}})\to\mathrm{ max}\)).