0

I'm now studying in terms of SECDED thing for error detection and correction. In my work, the spec is that "A SECDED encoded character has been retrieved, with the hexadecimal value of CC9. The SECDED parity is even. Was there an error? And explain whether it can be corrected or not."

According to the spec, I've got the errors at P1(odd) and P2(odd), so bit 3 has an error. After that, I flipped the bit and checked the error again. As a result, P0 parity bit just has an error and rest of them are correct where P1,P2,P4,P8.

My question is that in this case, can't the code be corrected? or vice versa? My answer is that we can either say bit 1 or 3 of P1 have an error Or bit 2 or 3 of P2 have an error, but can't be corrected even if bit 3 can be flipped.

Any answer would be appreciated.

Regards,

Allen

Allen
  • 1
  • 3
  • If there is an overall even parity check and it's zero, then there are zero or an even number of errors. If the overall even parity check is zero and the other parity checks are non-zero, then the character has 2 (or more) uncorrectable bit errors. Correction is only done when all parity checks indicate a single bit error. You don't mention what type of generation and check matrices are used, such as a [systematic encoding](http://en.wikipedia.org/wiki/Hamming_code#.5B7.2C4.5D_Hamming_code_with_an_additional_parity_bit) . – rcgldr Aug 30 '16 at 00:09
  • I'm a bit confused of your reply, sorry about that. But I used hamming code correction way – Allen Aug 30 '16 at 00:46
  • I'm not sure if CC9 indicates an error at bit 3, but since there is an error and the SECDED parity is even, then there is at least a 2 bit error, and it is not correctable. Assuming the same encoding scheme as shown [hamming code general algorithm](http://en.wikipedia.org/wiki/Hamming_code#General_algorithm), then CC9 differs by at least two bits from any valid codeword. I'm assuming the most significant bit of CC9 corresponds to P1, and the least significant bit corresponds to D8, and that the received P0 = 0. – rcgldr Aug 30 '16 at 07:52
  • Follow up - to explain why P0 helps, consider the case where it's not used and that there's a 2 bit error in a received code. A 1 bit correction would generally result in flipping a 3rd bit, resulting in 3 bits in error which could be a valid code and therefore be an undetectable bad attempt to correct a 1 bit error. Having P0 allows a check against an even number of errors, so if it's odd, then a 1 bit correction can be performed, and if P0 is even, then no error correction is attempted. All of this assumes that there are not 3 or more bits in error. – rcgldr Sep 02 '16 at 01:42

0 Answers0