# Protecting data unequally using Error Correction Codes

Say I'd like to transmit a 100-bit packet which has a field containing a continuous value. I'd like to protect this value with an error correction code but an error in the MSB of this value is much more catastrophic than an error in the LSB, so how do I have to design the code so that it will be optimal by means of protection (more redundant bits for the important parts)?

For example, let's assume my continuous field is Temperature. My problem is that the temperature is represented by X bits but they are not equally important. If the temperature is 23.452298 degrees than I can't risk an error in the integer part (23) but if I'll get an error in the fractional part I'll be able to live with it (though I prefer protecting it too, with less "protection" bits).?

## 2 Answers

Since error correction here is essentially discrete, it might not be easy to come up with an optimal transient encoding, however you can approximate this by applying different encoding schemes for different parts of your data. In your temperature digits example, you might consider an encoding with $d=5$ Hamming distance for integer part and $d=3$ for fractional part, which will eventually provide a two-bit correction for the integer part and one-bit correction for the fractional part. This partitioning can be varied.

• This is definitely a possible answer and might be a pragmatic solution, but it's probably not optimal in terms of the strength of error correction (or the increase in length of the field, for a given error correction strength), so there's probably still room for even better constructions. – D.W. Jan 20 '17 at 21:01

Schulman's tree code may come in handy: This is a prefix code where future symbols of the codeword give some information about the prefix up to that point. Using that code, there is better probability to deocde correctly the prefix of the message than it's suffix.