250 likes | 383 Views
Simulation of Finite Geometry LDPC code on the Packet Erasure channel. Wu Yuchun July 2007. Huawei Hisi Company Ltd. Contents. Abstract. A simple example of encoding and decoding of FG_LDPC code Performance Metrics and FEC parameters Simulation Result of Inefficient Ratio
E N D
Simulation of Finite Geometry LDPC code on the Packet Erasure channel Wu Yuchun July 2007 Huawei Hisi Company Ltd
Contents • Abstract. • A simple example of encoding and decoding of FG_LDPC code • Performance Metrics and FEC parameters • Simulation Result of Inefficient Ratio • Simulation of Decoding Complexity • Summary
Abstract In this document we firstly give an simple example of the encoding and decoding of FG_LDPC code. Then evaluate the FG_LDPC code by simulation results and analysis in terms of Inefficiency Ratio, Success Decoding Probability and Decoding Complexity. Finally we summarize the advantages and disadvantages of the FG_LDPC code.
A simple example of encoding and decoding of FG_LDPC code(1/5) • Here we show the encoding and decoding of FG_LDPC code by an simple example, i.e, the FG_LDPC code (15,7). Of course, this code will not be used in internet Erasure channel because its too small block size, I only use it as example because its small size and easy to show, the larger size FG_LDPC code can be encoded and decoded in the same way as this code.
A simple example of encoding and decoding of FG_LDPC code(2/5) • For the encoding, we use the generator polynomial and it’s just like to add CRC: Figure 5: Encoding of FG_LDPC code.
A simple example of encoding and decoding of FG_LDPC code(3/5) • From the above figure, we can see, the first source symbol was put into the encoders and was transmitted simultaneously. It’s the same for all other source symbols. After we transmitted all source symbols, the symbols saved in the encoder registers are the parity symbols (each register save one symbol), then we transmitted these parity symbols. So we only need memory (the register in the encoder) to save the parity symbols, for larger code rate, for example, the FG_LDPC with code rate about 0.8, the memory to save the parity symbols is only about 1/4 the memory needed to save source symbols.
A simple example of encoding and decoding of FG_LDPC code(4/5) • For decoding, we use the parity check matrix H:
A simple example of encoding and decoding of FG_LDPC code(5/5) • We can see that the ith row hi of H is the one element cyclically shift of the (i-1)th row hi-1. So, with this good structure of H, we only need to save the positions of “1” in the first row instead of all positions of “1” in H like other random LDPC codes. • For example, with FG_LDPC code (15,7), we only need to save the positions of “1” in the first row and which are {0, 8, 12, 14}. To check the ith equation, we only need to check whether there is only one Erasure symbols in the { (0+i)%15, (8+i)%15, (12+i)%15, (14+i)%15 } symbols, if yes, we can recover the erasure symbol, otherwise, continue to check the (i+1)th equation.
Performance Metrics and FEC parameters (1/3) • Performance Metrics: • Inef_ratio, this is a Metric to evaluate the Erasure-correct capability of the FEC code and defined as: The smaller the inef_ratio to achieve a predetermined success decoding probability, the better the FEC code is.
Performance Metrics and FEC parameters (2/3) • Performance Metrics: • Decoding Complexity: we use iterative decoding algorithm for the decoder. This Metric tells how many equations was needed for the decoder to search to recover one source packet in average, at a specific Inef_ratio and corresponding success decoding probability.
Performance Metrics and FEC parameters (3/3) Unlike other LDPC codes, the parameter K(Number of source packets) and N(Number of Coded packets) are very fixed for FG_LDPC codes. Here we mainly evaluate six FG_LDPC codes with (N,K) = (63,37) or (255,175) or (1023,781) or (4095,3367) or (16383,14197) or (65535,58975).
Simulation Result of Inefficient Ratio (1/4) In this part, we evaluate the Erasure-correct capability of the FG_LDPC codes. For a specific Failed Decoding probability, the smaller the corresponding Inef_ratio, the better. For example, at the 10-4 failed decoding probability point, the corresponding inef_ratio of code (63,57) is 1.3514, this means 13514 packets needed to be received to recover the 10000 source packets successfully with probability 99.99%. While the corresponding inef_ratio of code (255,175) is 1.1029, this means only 11029 packets needed to be received to recover the 10000 source packets successfully with probability 99.99%. So in this aspect, FG_LDPC code (255,175) is better than (63,57)
Simulation Result of Inefficient Ratio (2/4) Figure 1: Inef_Ratio Vs Failed Decoding Ratio of FG_LDPC code(63, 57) and (255, 175)
Simulation Result of Inefficient Ratio (3/4) Figure 2: Inef_Ratio Vs Failed Decoding Ratio of FG_LDPC code(1023,781), (4095,3367), (16383,14197) and (65535,58975).
Simulation Result of Inefficient Ratio (4/4) Table 1: Inef_Ratio of Correct Decoding Probability 99%, 99.99% and 100% for the six FG_LDPC codes. Note: the 100% Correct Decoding Probability is a result by theory. While 99% and 99.99% is a result by simulation
Simulation Result of Decoding Complexity (1/5) In this part, we evaluate the Decoding Complexity of the FG_LDPC codes. Our simulation is based on the Iterative Decoding method, i.e, to search all the parity check equations one by one, if there is a equation contains one and only one Erasure packet, then recover it by XOR all other packets related to this equation, otherwise, continue to search other equations. Usually, we may need to search all the equations by several iterations until 1)we recover all the packets, and declare a success decoding or 2) in the latest iteration, none of the packets was recovered and declare a failed decoding.
Simulation Result of Decoding Complexity (2/5) It’s natural that the smaller the complexity, the better. But here the complexity is related to the Inef_Ratio, usually, the larger the inef_ratio, the smaller the complexity. For example, With FG_LDPC code (4095,3367) and the Inef_Ratio of 1.0986 (coreresponding to 99.99 success decoding probability), the complexity is 2.9592, that means to recover each packet, we need to search 2.9592 equations in average.
Simulation Result of Decoding Complexity (3/5) Figure 3: Inef_Ratio Vs Decoding Complexity of FG_LDPC code(63, 57) and (255, 175)
Simulation Result of Decoding Complexity (4/5) Figure 4: Inef_Ratio Vs Decoding Complexity of FG_LDPC code(1023,781), (4095,3367), (16383,14197) and (65535,58975).
Simulation Result of Decoding Complexity (5/5) Table 2: Inef_Ratio of Correct Decoding Probability 99% and 99.99% for the six FG_LDPC codes.
Summary (1/3) • Advantages: • No need to save H in the sender side, the sender side only needs the generator polynomial (which needs much smaller memory than the memory needed to save one column of H) for encoding; • No need to save H in the receiver side, we only need to save one column of H, all equations can be generated by cyclically shift this column; • Quick search of the “1” in the equations because the cyclical property of H, for example, the position of “1”s in the nth equation is p1,p2,…pm, then the position of “1”s in the (n+1)th equation is (p1+1)%N, (p2+1)%N,… (pm+1)%N. This good property is important to accelerate the iterative decoding algorithm;
Summary (2/3) • Advantages: • On-the-fly Encoding, no need to save the source packets for generating the parity packets; • The FG_LDPC code is robust in the sense that no very poor Inef_ratio will appear, For example, for the FG_LDPC code (16383,14197), once the Inef_ratio is larger than 1.145, it’s guaranted that the source packets can be recovered.
Summary (3/3) • Disadvantages: • the length of the FG_LDPC code is not as flexible as other LDPC codes, however, the six FG_LDPC codes still cover a wide range of code length; • The code rate of FG_LDPC code is not as flexible as other LDPC codes, the code rate of all these FG_LDPC codes are all at the 0.8 level, we don’t have low rate codes yet.
End Thank you