Hi Jose,

There are 2 LDPC decoders in gr-fec. One is a hard decision bit flip decoder, and I've only tested it on code lengths up to n=2400. The other one is a message passing decoder but I'm not sure of its capabilities/limits.

There's no special reason that the biggest matrix is size n=2400. Those matrices in the ldpc directory (with "gap" in the filename) are of a particular format required for a LDPC encoding method described by Richardson and Urbanke in their book Modern Coding Theory. It's a bit of trial and error to create these matrices, and 2400 was just the biggest I could create.

Anyway, some general thoughts for you in regards to creating a decoder: Consider using the "dummy" decoder as a template for how to "plug into" the FEC API. Also, I used the matrix structure of the GSL, so you will see GSL function calls if you poke around some of the LDPC code, but ultimately we'd like to remove these dependencies on GSL and use the VOLK library instead. GSL does have routines for sparse matrices [1]; maybe that will help you speed things up? And from my understanding, the decoder used for LDPC is not dependent on the encoder used, so you may have some options for the decoder algorithm? Sorry, I'm not familiar with the DVB-S2 standard to make any smarter replies to your questions about what will work beyond "give it a try."

Also, if you haven't found your way to the FEC API page in the manual [2], I think it gives a great high-level introduction to gr-fec.

Good luck, and let us know how it goes,
~ tracie

[1] www.gnu.org/software/gsl/manual/html_node/Overview-of-Sparse-Matrices.html
[2] gnuradio.org/doc/doxygen/page_fec.html


On 04/05/2016 03:07 PM, Jose Ruvalcaba wrote:
Hi Martin,

In fact I did take a look into the gr-FEC folder and the different .cc and .h files available in GNU radio. I was actually looking at the ldpc_decoder .cc and .h files and took note on how it did its decoding process. In fact I had some questions regarding the implementation of the ldpc decoder which maybe can help me in the construction of my block. Is there a specific reason why the sizes of the available alist parity check matrices go up as high as N = 2400 ? Would this LDPC decoder be able to handle large codeword lengths? Also is would this code work with different parity check matrix constructions such as with repeat accumulate codes?
Thanks,
Jose

On Mon, Apr 4, 2016 at 10:20 PM, Martin Braun <mar...@gnuradio.org <mailto:mar...@gnuradio.org>> wrote:

    Jose,

    we have a *lot* of smart FEC stuff, including LDPC codes, in gr-fec. I
    suggest you take a look there.

    Cheers,
    M

    On 04/04/2016 04:41 PM, Jose Ruvalcaba wrote:
    > Hello,
    >
    > I am new to GNU radio and to SDR's and I am trying to implement
    a DVB-S2
    > LDPC decoder block that can be used with the LDPC DVB-S2 encoder
    > available in GNU radio. I have been able to write an LDPC
    decoder which
    > uses a 16,200 long parity check matrix used only for a DVB-S2  short
    > frame, rate = 1/4 code. The problem is that when running my written
    > block it's taking a long time to decode one iteration of
    data(about an
    > hour long). I was wondering if anyone has any advice in how to
    go about
    > writing code for FEC blocks, especially LDPC codes, which will
    be used
    > in GNU radio and eventually in an SDR? In other words, are there
    certain
    > libraries that should be used when trying to write FEC decoders
    in gnu
    > radio? How could I make a GNU radio FEC block which takes in a
    codeword
    > length 16,200, like the one in DVB-s2, to work in a USRP? Is it
    smart to
    > make my large (12960 x 16,200) parity check matrix using the
    standard
    > 'vector' library in C++?   Any advice, tips and suggestions will be
    > greatly appreciated.
    >
    > Thanks,
    > Jose
    >
    >
    >
    > _______________________________________________
    > Discuss-gnuradio mailing list
    > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org>
    > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
    >


    _______________________________________________
    Discuss-gnuradio mailing list
    Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org>
    https://lists.gnu.org/mailman/listinfo/discuss-gnuradio




_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to