Open usmandroid opened 1 year ago
Here is the decoding results of punctured code for any type of decoder - soft, hard and unquant. Select any and you get a huge amount of errors. Input and output data never match.
But it looks like this problem may be solved by the following tweaks: Input and output data always match.
Hope this helps anyone using punctured codes with this repo.
After depuncturing (inserting NULL or zeros) at the punctured location indicating "erasures", how does the branch metric takes this into account in case of 'hard' decoding as here: https://github.com/usmandroid/scikit-dsp-comm/blob/2888bc8e65e44d31d2aaf85aeb51381c0bd0534f/sk_dsp_comm/fec_conv.py#L418 ?
The problem arises since the function only takes {0,1} binary input therefore there is no way to indicate the erased bit. Alternatively, 'unquant' could be used with {+1,-1} and 0 indicating LLR of 0.
When using 'soft' it is possible to indicate to the decoder where the erasure occurred, but in the case of 'hard' or 'unquant' in the current implementation, it is not allowed. This must be corrected for accurate results of decoding punctured bits.