This question may be interpreted as a second part of this other question. Basically, if we encode our data using Huffman's encoding and we want to introduce some FEC afterwards, unless we use a convolutional-like encoder, we must provide some kind of fixed-length package. The answer in the previous question assumed that the huffman encoded words created a continuous stream of data, so that the solution was making the encoder "wait" until it has the exact ammount of bits it needs as an input and encode the word independently from the Huffman encoding.

However, imagine we had a system that was not continuously transmitting: it only sent single words independently each time. What would be the optimal way to approach this problem?

The solutions I thought of are:

  1. Filling the rest of the package with something.

a) Using dummy bits would be an extremely inefficient option, since we wouldn't then be taking any advantage from Humming's encoding.

b) Using a fixed-rate convolutional encoder could work (i.e., using a $r=4$ encoder would suffice for implementing a $k=4$ block code since all of the outer-encoded words would have a length multiple of $4$), but using the convolutional encoder as outer code and the block code as inner code would also be inefficient (we would need the input decoder to provide soft outputs in order to apply a Viterbi algorithm afterwards).

  1. Knowing all the possible lengths of the codewords, setting up both a bench of encoders and decoders, so that each encoder is choosen depending on the length of the word. This would need to be accompained with a length field in the package so that the receiver knows what decoder to use. Again, inefficient and not very failure-tolerant.

It would be great if anyone could provide some light to this problem! Thank you in advance!

  • $\begingroup$ If I understand correctly your question, you are talking about sporadic transmission. You can find many solutions in looking at what Internet of Thing networks do. Specifically, you can either use scheduling like 3GPP NB-IoT, or grant-free style like Sigfox ultra narrowband networks. Your keywords are then sporadic and grant free. An example of research paper ieeexplore.ieee.org/document/8906123 $\endgroup$
    – AlexTP
    Commented Sep 10, 2021 at 13:16
  • 1
    $\begingroup$ Also, as the packet is usually short (otherwise, scheduling is "better"/simpler as the overhead is justified), you may want to read about finite blocklength coding. Example arxiv.org/pdf/1705.02816.pdf $\endgroup$
    – AlexTP
    Commented Sep 10, 2021 at 13:22
  • $\begingroup$ @AlexTP More than talking about sporadic transmissions, I wanted to talk about single word transmissions. Imagine we had a set of Huffman encoded word with lengths ranging from 2 to 10 bits, and we wanted to send them sporadically and only one at each time, creating the need of a FEC encoder which could accept variable-length packages as input. Thank you very much for the references btw! I will take a deep look at them $\endgroup$ Commented Sep 10, 2021 at 18:36
  • 1
    $\begingroup$ The FBL paper is theoretical. A survey of practical short FEC can be found at arxiv.org/pdf/1610.00873.pdf $\endgroup$
    – AlexTP
    Commented Sep 10, 2021 at 19:15
  • 1
    $\begingroup$ There are also several theoretical studies about Variable-length coding like people.lids.mit.edu/yp/homepage/data/vbf_isit.pdf and the references therein. However, to the best of my knowledge, we don't use variable length FEC in practice. $\endgroup$
    – AlexTP
    Commented Sep 10, 2021 at 19:21


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.