This numerical simulator implements an encoder and three different decoders for the performance analysis of the Low Density Parity Check (LDPC) code described in the NASA GSFC-STD-9100 standard. In particular, the software implements the (8176,7154) code described in Chapter 7 of the «CCSDS Recommended Standards for TM synchronization and channel coding».
This code is designed for any space communications link although it was initially targeted for communications links between spacecraft to ground elements. Current advances in space qualified field programmable gate array (FPGA) technology has potentially given rise to implementations for space to space communication links as well. As a result, this code can apply to any space link that requires bandwidth efficient communications.
An an example of application, this code is used by the Landsat Data Continuity Mission (Launched: February, 2013). In particular, it is adopted to downlink data transmission in the X-band. This 384 Mbps data rate communications link is NASA’s first operational use of an LDPC and is the first use of an LDPC code for a space to ground link for any agency or company.
The decoding is done using a message-passing algorithm. This is an iterative decoding technique as the messages pass back and forward between the bit and check nodes iteratively until a result is achieved (or the process halted). The sent messages are probabilities which represent a level of belief about the value of the codeword bits. It is convenient to represent probability values as log likelihood ratios (LLRs). This kind of decoding is called sum-product decoding since the use of LLRs allows the calculations at the bit and check nodes to be computed using sum and product operations.
Check nodes computation can be optimized in terms of complexity, considering than in the output message computation, the term corresponding to the smallest LLR, dominates the product term, so the product can be approximated by a minimum. This variant is called min-sum.
./generator.m
- create the LDPC code generator matrix and export it to the data.mat file/SP/
- sum-product decoder with soft decision (implemented both in MATLAB and C)./SP-H/
- sum-product decoder with hard decision (implemented both in MATLAB and C)./MS/
- min-sum decoder (implemented in MATLAB)./plots/
- code for plotting the pre-computed performance
In the following, we provide the achieved performance, measured as bit error probability (Pbit) for different values of SNR (measured as Eb/N0).
Fig. 1. Performance achieved by the sum-product and min-sum decoders.
Fig. 2. Comparison between sum-product/min-sum with soft-decision and sum-product with hard decision.