# FEC in gnruadio

**URL:** <https://www.ruby-forum.com/t/fec-in-gnruadio/242332>\
**Category:** GNU Radio\
**Created:** [June 16, 2015, 8:27am UTC](https://www.ruby-forum.com/t/fec-in-gnruadio/242332 "2015-06-16T08:27:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [June 16, 2015, 8:27am UTC](https://www.ruby-forum.com/t/fec-in-gnruadio/242332/1 "2015-06-16T08:27:45Z")

</div>

Hi,

I just stared working on FEC in gnuradio. I found that there is gr-fec.  
I  
want to know that which literature , books/papers, was followed during  
the  
implementation of the gr-fec so that I can go through the c++  
implementation more productively and add something.

---

<div class="post-metadata">

**Author:** ![bob\_wole](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b4bc9f/32.png) [@bob\_wole](https://www.ruby-forum.com/u/bob_wole)\
**Post date:** [June 16, 2015, 3:23pm UTC](https://www.ruby-forum.com/t/fec-in-gnruadio/242332/2 "2015-06-16T15:23:06Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

Hey Bob,

the main idea is to have drop-in blocks for different codes. Have a  
look at ‘encoder.h’ and the ‘\_impl.\*’ files. They describe the  
framework. In ‘generic\_encoder.h’ is a description for all the  
required and available functions for all the different codes. So your  
encoder/decoder just inherits from ‘generic\_encoder’. Your inherited  
coder class implements a code and exposes all necessary information  
for the block which may be part of the stream based GNU Radio  
framework or may use message passing. For details see [1]

I hope this helps.

Cheers  
Johannes

[1] [GNU Radio Manual and C++ API Reference: Forward Error Correction](http://gnuradio.org/doc/doxygen/page_fec.html)

On 16.06.2015 08:26, bob wole wrote:

> 

-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v2.0.22 (GNU/Linux)

iQIcBAEBAgAGBQJVgCK7AAoJEO7fmkDsqywM770P/j6dPo/aPfSwvTMZIhiU9a2X  
CNbF5oz8rZfbygt7wSur4CCWg34V/rn8brft8Kx8SfPXNVWsBMEQEpP3xYOuHH/E  
CsnZ4O+j16YzQmg/HboovStEC7aTZYE5DS70DOiYiNxwRFotD86sfDPHoZGMXjUk  
6FXs4Pw0sb7wkA8TDbzpDiei+bodSKjgxISmK7ys1uEkUbXNmb1HFXbNXqx49SUi  
g1Cb0PEvgpCcGnHDlCC5J9mZ1CAKclvj5cEqQh/FWcBWmBOD9rGJ1QI0wjVzayGt  
d3VllEcQEhZFKMmu1pqT1zeM4jjmmeO0YCrBnaesJaC1q1U9noG2EvnqfWaFDGVm  
uEOImZpRF3okmnp6iiARdM39kJeVZU1jS/AbPFU46QJlKJGpDuEZ33dREJMk1ZiN  
L13pOke26Mc4qhyCC133oGvzNffNWKidkm7Hwvhdt2WZSz9icb0OlFvfY0vAgG8n  
lQ6cMsQE8ybt8H/Ug+LS2cZvjuFSnb8kXom7zNZ2ezMhyAlyr3Mwby7WnMQhsUtW  
KTug+5GcOVTqTSn5vojYB3jWutrqLYJy2aDJtFpnTPMz+j18fOx0NGgXe4n2/8O4  
VjDu2MDudEWyVmTX4LQdVpcdJO3+l/exqTNBSO0/JWjCi9zCejVYeGjCzf+Yg5uz  
JQPsddc/FBoKzxcclHu2  
=ZOBQ  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

**Author:** ![bob\_wole](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/b4bc9f/32.png) [@bob\_wole](https://www.ruby-forum.com/u/bob_wole)\
**Post date:** [June 16, 2015, 3:30pm UTC](https://www.ruby-forum.com/t/fec-in-gnruadio/242332/3 "2015-06-16T15:30:42Z")

</div>

On Tue, Jun 16, 2015 at 2:26 AM, bob wole [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 

Hi Bob,

Have a look at the manual. The API itself is quite well described I  
think:

> **[GNU Radio Manual and C++ API Reference: Forward Error Correction](https://www.gnuradio.org/doc/doxygen/page_fec.html)**

It doesn’t cover the very recently added TPC and LDPC implementations.

> **[GNU Radio Manual and C++ API Reference: gr::fec::ldpc\_decoder Class Reference](https://www.gnuradio.org/doc/doxygen/classgr_1_1fec_1_1ldpc__decoder.html)**

> **[GNU Radio Manual and C++ API Reference: gr::fec::ldpc\_decoder Class Reference](https://www.gnuradio.org/doc/doxygen/classgr_1_1fec_1_1ldpc__decoder.html)**

> **[GNU Radio Manual and C++ API Reference: gr::fec::tpc\_encoder Class Reference](https://www.gnuradio.org/doc/doxygen/classgr_1_1fec_1_1tpc__encoder.html)**

> **[GNU Radio Manual and C++ API Reference: gr::fec::tpc\_decoder Class Reference](https://www.gnuradio.org/doc/doxygen/classgr_1_1fec_1_1tpc__decoder.html)**

Those could use work on their documentation.

We’re also about to merge in another approach to LDPC encoding and  
decoding  
based on Tracie Perez’s GSoC work. You can see the wip branch here:

[https://github.com/trondeau/gnuradio/tree/fec/ldpc\_methods](https://github.com/trondeau/gnuradio/tree/fec/ldpc_methods)

And the GSoC presentations:

> **[GRCon13 Presentations and Abstracts - GRCon2013 - Presentations — Rondeau...](http://www.trondeau.com/grcon2013-presentations#gsoc-perez)**
>
>  

> **[GRCon13 Presentations and Abstracts - GRCon2013 - Presentations — Rondeau...](http://www.trondeau.com/grcon2013-presentations#gsoc-manu)**
>
>  

Johannes D. is working on polar codes this summer.

What’s your particular interest in FEC? Are you looking to use it or  
implement other codes not already in gr-fec? For the FEC API itself,  
there  
is no other reference than the manual page and a presentation from the  
original author at our GRCons:

> **[GRCon14 - Presentations — Rondeau Research](http://www.trondeau.com/grcon14-presentations#tut-mccarthy)**
>
> Note: Listings will be updated as new and/or corrected information becomes available from the presenter(s).

> **[GRCon13 Presentations and Abstracts - GRCon2013 - Presentations — Rondeau...](http://www.trondeau.com/grcon2013-presentations#tut-mccarthy)**
>
>  

Tom
