# GSoC 2013 Status : Project - LDPC codes and more FEC in GNU Radio

**URL:** <https://www.ruby-forum.com/t/gsoc-2013-status-project-ldpc-codes-and-more-fec-in-gnu-radio/235720>\
**Category:** GNU Radio\
**Created:** [July 11, 2013, 11:18am UTC](https://www.ruby-forum.com/t/gsoc-2013-status-project-ldpc-codes-and-more-fec-in-gnu-radio/235720 "2013-07-11T11:18:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![alcina](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a587f6/32.png) [@alcina](https://www.ruby-forum.com/u/alcina)\
**Post date:** [July 11, 2013, 11:18am UTC](https://www.ruby-forum.com/t/gsoc-2013-status-project-ldpc-codes-and-more-fec-in-gnu-radio/235720/1 "2013-07-11T11:18:23Z")

</div>

Hi,

I’m Manu, one of the 5 GSoC students. I am working on LDPC codes, in  
parallel with Tracie, mentored by Jens. Going on is the 4th week of  
GSoC.

_Given below is a description of current status of the project._

I’m glad to inform that I was successful in making an out of tree module  
(in python) gr-ldpc which which implements encoding and decoding of LDPC  
codes.  
Some performance statistics is available  
here[http://home.iitb.ac.in/~manu.ts/output.txt](http://home.iitb.ac.in/~manu.ts/output.txt)  
.  
The codes are available here [https://github.com/manuts/ldpc](https://github.com/manuts/ldpc).  
The code used to generate the above mentioned performance statistics is  
available as an example in gr-ldpc/examples/ folder.

## Encoder operation.

Encoder takes an LDPC matrix as parameter, and reduces the matrix into  
form  
[I P].  
The codewords is the set of x which satisfy [I P]x = 0.  
A vector of length = # of columns of P is taken as data-word. Entries of  
data-word form the systematic part of the codeword, filling the entries  
corresponding to the columns of P.  
The entries of x corresponding to I form the parity check matrix and are  
formed by back-substitution.

## Decoder operation

Decoder takes an LDPC matrix as parameter.  
Decoder implements sum product algorithm.  
A decoder with likelihood messages[1] is implemented.  
A decoder with log-likelihood messages[2] is also implemented.

On testing against predefined codes available in good error correction  
is  
observed.

## LDPC Code construction

Option to read LDPC code defined as “alist” file[3] is provided.  
Thus many predefined codes can be used with the encoder and decoder.

Construction of LDPC codes based on Reed Solomon codes[4] is implemented  
It did not produce similar performance as the predefined code.

## _Goals to be achieved before midterm evaluation_.

Next some algorithms for construction of LDPC codes will be implemented.  
Namely progressive edge growth algorithm will be implemented.

## References

[1].  
[http://www.cs.utoronto.ca/~radford/ftp/LDPC-2012-02-11/decoding.html](http://www.cs.utoronto.ca/~radford/ftp/LDPC-2012-02-11/decoding.html)  
[2]. “Modern Coding Theory”  
[3]. [http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html](http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html)  
[4]. “A class of Low-Density Parity-Check codes constructed based on  
Reed-Solomon codes with Two information symbols”, IEEE communications  
letters, July 2003.

–  
Manu T S

PS. I very much want to talk to you all in the coming developers call,  
but  
the proxy in my university seems to be blocking hangout.  
I’m working on resolving this issue.
