GNU Radio | Async FEC encoder/decoder loopback | Issue during decoding? I have implemented a loopback flowgraph intending to perform the following:  


FEC encode (repetition code) an input stream in16_2.dat
Store the encoded stream as out16_2_fec_async_enc.dat
FEC decode the encoded stream and store it as out16_2_fec_async_dec.dat 


Follows the implemented flowgraph:



My expectation: I was hoping that out16_2_fec_async_dec.dat would be equal to in16_2.dat.

What really happened: out16_2_fec_async_dec.dat was empty.
I can confirm that the encoded data, out16_2_fec_async_enc.dat, is apparently correct, by running:

$ xxd -b in16_2.dat
00000000: 00000000 00000000 11111111 11111111 01010101 01010101  ....UU
00000006: 10101010 10101010

$ xxd -b out16_2_fec_async_enc.dat
00000000: 00000000 00000000 00000000 00000000 00000000 00000000  ......
00000006: 00000000 00000000 11111111 11111111 11111111 11111111  ......
0000000c: 11111111 11111111 11111111 11111111 00001111 00001111  ......
00000012: 00001111 00001111 00001111 00001111 00001111 00001111  ......
00000018: 11110000 11110000 11110000 11110000 11110000 11110000  ......
0000001e: 11110000 11110000                                      ..


Also, the confirmation that out16_2_fec_async_dec.dat is empty:

$ xxd -b out16_2_fec_async_dec.dat



I wonder what may be missing in this setup?
Please let me know if additional information is needed.
Thank you in advance!
The issue is that the FEC Async Decoder expects the input to be soft decisions with one decision per item instead of packed PDUs.

Here's a working example:



Encoder deployment: 


Packed: yes
Rev. unpacking: yes
Rev. packing: yes


Repack Bits: 


Packet alignment: Output
Endieness: LSB


Decoder deployment:


Packed: yes
Rev. packing: yes