• 沒有找到結果。

Decoding Algorithm for LDPC Convolutional Codes

2.3 LDPC Convolutional Codes

2.3.2 Decoding Algorithm for LDPC Convolutional Codes

determined by solving the equations. Therefore, we can use a shift-register in Figure 3.1 to solve the equation and encode the pairty-bits. From Example 3, we know that as the time delay zero submatrix is full rank, we can encode the corresponding paritybits by solving the equations.

2.3.2 Decoding Algorithm for LDPC Convolutional Codes

We use BP algorithm to decode LDPC convolutional codes. Because the nature of the convolutional code, we can use a decoding window to slide through the Tanner graph cor-responding to the LDPC convolutional code and have continuous outputs after an initial delay.

Figure 2.3: A shift register for encoding LDPC convolutional code.[6]

Example: 4 Decoding window for a LDPC convolutional code.

A rate R = b/c = 1/3 (3, 2, 3) LDPC convolutional code is specified by the parity-check matrix

HT(D) =

1 D3 D D2 D3 1

From the parity-check matrix, we have a corresponding Tanner graph The black or gray

Figure 2.4: Tanner graph for LDPC convolutional codes of Example 5[6]

Figure 2.5: Decoding window for LDPC convolutional codes of Example 5[6]

circles represent bit nodes while the white circles stand for check nodes. Each time instant the code generates three coded bits, i.e. three bit nodes, and has two parity-checks, i.e.

two check nodes. Therefore, at the right most of the Tanner graph there is a rectangle surrounding three bit nodes and two check nodes and that means those five nodes are in one time instant. We can find that the Tanner graph of LDPC convolutional codes is periodic with period one time instant.

The memory of this code is ms = 3 and that means every bit node whose associated check nodes must all appear in three time instants. This nature gives a decoding window to decode the Tanner graph in pipeline. The decoding window has I processors corresponding I maximum iterations and the size of window is I(ms+ 1) time instants. The Tanner graph flow through the decoding window from the right side, and is popped out from the left side.

The nodes popped out are updated I times and can be decoded after hard decision for the LLR. That means once the nodes are processed by a processor, the LLR of the nodes are updated once. The ith processor performs ith iteration of message passing, i = 1, 2, · · · , I.

The influence of one processor is those bit nodes and check nodes in (ms+ 1) time instants.

Suppose that each edge of the Tanner graph has associated with it a memory element to store the message passed along that edge during iterations. Channel messages are stored

in memory elements associated with the symbol nodes. A processor can access the memory elements along edges connected to constraint nodes under its influence.

Each processor first activates the c − b = 2 check nodes and then c = 3 bit nodes referred to as ”active” nodes in Figure 3.3. The check nodes are updated corresponding to those that just enter into the influence of the ith processor and the bit nodes are those will exit the influence of the ith processor once updated. When a check node is activated, it reads the memory locations corresponding to the edges which it connects to and updates these locations with new messages. Activating a symbol node leads to exactly the same set of operations. In this case access to the memory locations containing the channel values is also needed to update messages. The message updates are calculated according to the particular message passing algorithm being used, for example in the case of the BP algorithm the update equations are as in Chapter 2.

Consider the part of the Tanner graph under the influence of the first processor in Figure 3.3, i.e., the interval [t + 4(I − 1) − 1, t + 4I − 1]. The bottom of the two active check nodes at time t + 4I − 1 is connected to three bit nodes, the first at time t + 4I − 1, the second at time t + 4I − 3, and the third at time t + 4(I − 1). The corresponding edges are shown using dashed lines in Figure 3.3. Consider the situation just before the check nodes at time t + 4I − 1 are activated by processor 1. The edges corresponding to bit nodes in the past (shaded arrows) already contain the channel values (in general the values from the previous iteration). The check node only needs the channel value along the edge (in general the value from previous iteration) corresponding to the symbol node at t + 4I − 1 to be able to update messages along its connecting edges.

The last of the three active bit nodes at t + 4(I − 1) connects to two check nodes, one at time t + 4(I − 1), and the other at time t + 4I − 1. The corresponding edges are shown using dashed lines. Once more let us look at the situation just before the check nodes at t + 4I − 1 are activated by processor 1. Since the check node at time t + 4(I − 1) was activated earlier (in fact 3 time units back) this edge (shaded arrow) contains an updated message. The symbol node only lacks the message along the other edge (empty arrow), i.e.,

from the check node three time units away.

Once processor 1 activates the two check nodes at t + 4I − 1 each of them can use the values along the edges to which it connects and calculate the new message for each edge.

Thus, all edges connected to the two check nodes now contain updated messages. When the bit nodes are then activated all its edges contain updated messages from the associated check nodes. The symbol nodes can now calculate the new messages to be output along each of the connecting edges and the first iteration is complete for bit nodes at time t + 4(I − 1).

Observe that each processor can operate independent of the other processors. The Ith processor calculates APP values and outputs the final decoded values for the three active bit under its influence. This process is now repeated as the decoder slides along the Tanner graph.

相關文件