• No results found

Joint Factor Graph Detector Decoder

5.1.1 Factor Graph-Based Detector

This section proposes the implementation of the SPA over a channel factor graph in a factor graph-based detector. The factor-graph based detection algorithm is formulated through a factorization of a global function that represents a conditional probability density function (PDF) used in making an estimate of transmitted sequences. The detection algorithm is as follows:

Given a coded sequence 𝒙 and a channel with coefficients β„Žπ‘˜ and length π‘β„Ž, the readback sequence 𝒛 can be expressed as

π‘§π‘˜= βˆ‘ β„Žπ‘™π‘₯π‘˜βˆ’π‘™+ π‘€π‘˜

π‘β„Žβˆ’1

𝑙=0

(5.1)

where π’˜ is a noise vector. For the simplest system, the noise vector is usually modeled as Additive White Gaussian Noise (AWGN) with zero mean and variance πœŽπ‘›π‘œπ‘–π‘ π‘’2 . The joint A Posteriori Probability (APP) of the written sequence, P(𝒙|𝒛), can be expressed using Bayes’

Theorem as

P(𝒙|𝒛) =p(𝒛|𝒙)P(𝒙) P(𝒛)

∝ p(𝒛|𝒙)P(𝒙) (5.2)

116

where P(𝒙) is the a priori distribution of the coded sequence, p(𝒛|𝒙) is the conditional PDF for z when x was transmitted, and gi(xi, … , xiβˆ’Nh+1) represents local functions that make up the factors of the global function in equation (5.3). These local functions can be expressed as

𝑔𝑖(π‘₯𝑖, … , π‘₯π‘–βˆ’π‘β„Ž+1) = 𝑝(𝑧𝑖|π‘₯𝑖, … , π‘₯π‘–βˆ’π‘β„Ž+1) (5.4) For a channel with AWGN noise, equation (5.4) can be written as

𝑔𝑖(π‘₯𝑖, … , π‘₯π‘–βˆ’π‘β„Ž+1) = 1 coefficients is shown. Functions 𝑔𝑖 in the equations above are represented as channel nodes, 𝑔, on a factor graph, as illustrated by the square nodes of Figure 5.3. Variable nodes, π‘₯, are represented by circles and corresponds to the channel input sequence. An edge connects a variable node to a channel node if and only if the variable is an argument of that function. Short cycles of length-4 commonly occur in factor graphs, as illustrated by the red loop in the figure below, and are known to give rise to performance degradation. This will be addressed in greater detail in section 5.2.

117

Figure 5.3: A channel factor graph consisting of channel and variable nodes.

To implement the MAP symbol detection over a factor graph, marginal APPs in the form of P(π‘₯𝑛|𝒛) needs to be computed. This can be done by applying the sum product rule to the factor graph. The SPA operates based on the following rule:

The Sum-Product Update Rule

The message sent from a node v on an edge e is the product of the local function at v with all messages received at v on edges other than e, summed up for the variable associated with e [79].

Using this rule, the SPA computes two messages for each edge in the channel factor graph of the detector. One message is sent from a variable node to a channel node and the second message is sent from the channel node to the variable node. A message sent from a variable node, π‘₯𝑖, to a channel node, 𝑔𝑗, is denoted as 𝑒𝑖𝑗 and can be computed as follow:

𝑒𝑖𝑗 = ∏ 𝑣𝑗′𝑖

π‘—β€²βˆˆπ‘(𝑖)\𝑗 (5.6)

In the equation above, 𝑁(𝑖) represents the set of nodes that are connected by an edge to variable node π‘₯𝑖. Here, the message 𝑒𝑖𝑗 sent is derived by gathering messages received from the variable node’s neighbors in the previous iteration step. This however excludes the message received from channel node 𝑔𝑗, as illustrated in Figure 5.4(a).

118

Denoting the message sent from a channel node to a variable node as 𝑣𝑗𝑖, its computation can be expressed mathematically as

𝑣𝑗𝑖 = βˆ‘ [𝑔(𝐼) ∏ 𝑒𝑖′𝑗

π‘–β€²βˆˆπ‘(𝑗)\𝑖

]

~𝑖

(5.7)

where 𝑁(𝑗) represents the set of nodes that are connected by an edge to channel node 𝑔𝑗, I is the set of variables that make up the argument of function g and βˆ‘~𝑖0is a summation operator representing a summation over all variables of 𝑔(𝐼) excluding 𝑖. As depicted in Figure 5.4(b), the message sent from channel node 𝑔𝑗 to variable node π‘₯𝑖 comprises of messages gathered from the neighbors of 𝑗, excluding that received by node 𝑖 in the previous iteration step. In other words, only extrinsic information is exchanged between the channel and variable nodes of the channel factor graph.

(a) (b)

Figure 5.4: Message passing from (a) variable node to channel node and from (b) channel node to variable node in a channel factor graph.

The multiplications involved in the equations above would be costly to implement in hardware.

Converting the multiplications to additions through the use of logarithms is therefore more favorable. Computation of the messages in logarithmic domain can be represented as follows:

119 𝑒𝑖𝑗

Μ…Μ…Μ…Μ… = ln 𝑒𝑖𝑗 = βˆ‘ 𝑣𝑗′𝑖

π‘—β€²βˆˆπ‘(𝑖)\𝑗 (5.8)

𝑣𝑗𝑖

Μ…Μ…Μ… = ln 𝑣𝑗𝑖 = ln {βˆ‘ exp [ln 𝑔(𝐼) + βˆ‘ 𝑒̅̅̅̅̅𝑖′𝑗

π‘–β€²βˆˆπ‘(𝑗)\𝑖

]

~𝑖

} (5.9)

Message passing between the channel and variable nodes are repeated for a pre-defined number of detector iterations, 𝐼𝑑𝑒𝑑. The performance of the factor graph detector improves with increasing 𝐼𝑑𝑒𝑑 and eventually reaches a saturation point, as can be seen in the BER plot of Figure 5.5.

Figure 5.5: Varying number of iterations in a binary factor graph detector.

With the implementation of the SPA over a channel factor graph, a factor-graph based detector was formulated. To enable joint detection and decoding, information on the channel and the code has to be represented on a single structure. As such, an integration of the channel factor graph of the factor-graph based detector with the code factor graph of the LDPC decoder is required. The SPA can then be applied on the resulting super factor graph to enable a joint detection and decoding operation of the JFGDD. The next section proposes the joint detection and decoding algorithm for the JFGDD.

120

5.1.2 Joint Factor Graph Detector Decoder

Integrating the detector and decoder in a JFGDD system involves integrating the variable nodes from the channel factor graph and the code factor graph to obtain a super factor graph structure as shown in Figure 5.6. A JFGDD is therefore made up of three types of nodes – 𝑛 channel nodes, 𝑛 variable nodes and (𝑛 βˆ’ π‘˜) check nodes. With this structure, JFGDD now has information of both the code as well as the channel.

Figure 5.6: A super factor graph structure consisting of channel, variable and check nodes.

At each iteration step of the message passing, a variable node π‘₯𝑖 sends a message 𝑒𝑖𝑗 to channel node 𝑔𝑗 based on the messages it receives in the previous iteration step from the channel nodes as well as check nodes that are connected to its edges. In the computation of the message 𝑒𝑖𝑗 however, variable node π‘₯𝑖 ignores the message 𝑣𝑗𝑖 that was sent to it by channel node 𝑔𝑗 in the previous step. This is illustrated in Figure 5.7(a). Mathematically, this can be expressed as

𝑒𝑖𝑗 = βˆ‘ 𝑣𝑗′𝑖

π‘—β€²βˆˆπ‘π‘”(𝑖)\𝑗

+ βˆ‘ π‘Ÿπ‘˜π‘–

π‘˜βˆˆπ‘π‘(𝑖)

(5.10)

121

where 𝑁𝑔(𝑖) and 𝑁𝑐(𝑖) denotes the set of channel nodes and check nodes that are neighbors of variable node π‘₯𝑖 respectively. Likewise, when the variable node sends a message π‘žπ‘–π‘˜ to a check node, it ignores the message π‘Ÿπ‘˜π‘– that was sent to it by the check node, as depicted in Figure 5.7(b). The message sent can be formulated as

π‘’π‘–π‘˜ = βˆ‘ 𝑣𝑗𝑖

π‘—βˆˆπ‘π‘”(𝑖)

+ βˆ‘ π‘Ÿπ‘˜β€²π‘–

π‘˜β€²βˆˆπ‘π‘(𝑖)\π‘˜

(5.11)

At the end of every iteration step, the LLR is given by the summation of messages received at the variable nodes. Message passing is carried out on the super factor graph of the JFGDD until the parity check equations are satisfied or a pre-defined number of iterations has been executed.

(a) (b)

Figure 5.7: Message passing in JFGDD from (a) variable node to channel node and from (b) variable node to check node in the JFGDD.

122

Performing detection and decoding jointly in this manner avoids any increase in complexity that is associated with the separate task of detection and decoding currently used in the state-of-the-art iterative detector-decoder. It also eliminates the sub-optimality associated with the iterative process of message passing between the detector and decoder. The performance of JFGDD however, is susceptible to the presence of short cycles (length-4 and length-6). Length-4 cycle for instance is present in the channel factor graph of the detector as highlighted in Figure 5.3. It is commonly present in the code factor graph of the decoder as well as explained in section 2.3.1. The existence of such short cycles in factor graphs has been widely known in the literature to significantly degrade the performance of the system [71][79]. For the factor graph-based detector for example, the computation of messages was carried out graph-based on the condition that the extrinsic information exchanged between successive iterations should be independent. The presence of short cycles renders this condition as invalid and as a result the computation of marginal APPs represents approximated values instead of exact ones.

Factor graphs should therefore be inspected for short cycles and measures to reduce its occurrence should be put in place. In general, the number of length-4 cycles in any factor graph can be computed mathematically, similar to the existing technique commonly used in a SPA decoder. To check for short cycles in a channel factor graph, the channel can first be expressed as a matrix, π‡πœπ‘πšπ§π§πžπ₯, such that

π’š = 𝒄 βˆ™ π‡πœπ‘πšπ§π§πžπ₯+ π’˜ (5.12)

where 𝒄 and π’š are the channel input and output vectors respectively and w is the noise vector associated with the channel. In the simplest system, π’˜ is modeled as AWGN with mean 0 and variance πœŽπ‘›π‘œπ‘–π‘ π‘’2 .

4-cycles are formed when bits of β€˜1’ in matrix π‡πœπ‘πšπ§π§πžπ₯ form a closed loop on two consecutive rows and column as shown in Figure 5.8. This can be inspected by summing up the bits in every two consecutive rows in the matrix as illustrated in the figure. 4-cylces are present if consecutive β€˜2’ are obtained in any of the summation. Subsequently, computing the exact

123

number of length-4 cycles involves finding the summation of number of 4-cycles in all possible combinations of two rows of π‡πœπ‘πšπ§π§πžπ₯.

Figure 5.8: Detecting presence of length-4 cycles in a channel matrix.

Length-6 cycles on the other hand occur when there are six β€˜1’ bits in π‡πœπ‘πšπ§π§πžπ₯ that occupy three consecutive rows and columns, as depicted in Figure 5.9. In general, length-6 cycle exists in a factor graph if the differences between the indexes of the non-zero channel coefficients, β„Žπ‘˜, are all different.

Figure 5.9: Detecting presence of length-6 cycles in a channel matrix.

To prevent significant performance deterioration of JFGDD, short cycles should be mitigated in the channel factor graph as well as the code factor graph. As length-4 cycles are known to degrade performance of a system more severely than length-6 cycles, this thesis focuses on the elimination of length-4 cycles. Mitigating length-4 cycles in a code factor graph can be carried out using existing ECC technique such as that implemented by Neal Radford [79]. The Neal Ranford’s method is adopted in this thesis for reducing short cycles in the code factor graph of the JFGDD. To reduce the occurrence of length-4 cycles in the channel factor graph, this thesis proposes two novel methods of doing so. This is presented in the next section.

124