Error Correction Recommendations?

I have an application that would ideally allow me to fix 25% of errors with the original message from 12 to 16 bytes (8 bits) in length. Limitations - this message cannot be retransmitted, and if parts of the message are not received, it is not known which bytes were not displayed. For example, let's say I use something like Reid Solomon, and I add 8 bytes of codeword to the original 16-byte message, which would correspond to a score of 25% correctable errors, but what if only 20 of the 24 bytes are actually received? Is there an error correction algorithm or a combination of algorithms to fix this situation?

Thanks,
Ben

+4
source share
1 answer

Here is a very inefficient scheme that I just thought about -

Suppose your original message consisted of the following bytes a(1),a(2),a(3),...,a(n) , to which you add a very strong error correction code a(n+1),a(n+2),a(n+3),...,a(n+m) . Now send this message alternating with the stream 1,2,3,4,5 ... which sends:

1, a (1), 2, (2), ..., n, (n), n + 1, a (n + 1), ..., n + t, a (n + m)

On the receiving side of the message, find blocks of consecutive bytes of the form k,S,k+1 . This suggests that a (k) = S. Moreover, if you see two triplets i,S,i+1...k,T,k+1 and no j,P,j+1 between these two such that i<j<k , assume that you have lost all bytes between i'th and k'th bytes in your original message and write down zeros in place. Using this scheme, you can throw away some of the bytes that actually passed, but at least you will be sure where to put some of the bytes. Then you can use your very strong error correction code to fill in the lost bytes and correct the errors in those bytes that you actually wrote down.

(* For this to work neatly, you must also be sure that the bytes of the message cannot be confused with interleaved bytes of the sequence, but this is a simple problem to solve by converting - for example, base64 - your bytes before passing so their MSB is 0 and interleaves them with bytes whose MSB is set to 1)

+2
source

Source: https://habr.com/ru/post/1302490/


All Articles