Which is better, odd/even Hamming codes or extended Hamming code?

1.3k Views Asked by At

Is there a common way of naming or distinguishing between these two kinds of SECDED Hamming code? For now, I'm calling them "the odd+even Hamming code" and "the extended Hamming code". All the descriptions I've seen for the odd+even Hamming code simply call it "the" Hamming code, which is confusing when I try to contrast it with a slightly different code that other documents also call "the" Hamming code.

The "odd+even Hamming code" and the "extended Hamming code" are extremely similar.

One way to distinguish them is at the receiver: A receiver that uses the extended Hamming code re-calculates only the "odd ECC word" plus an overall parity bit. (The "odd ECC word" alone is called "the" Hamming code by Wikipedia: Hamming code).

A receiver that uses the odd+even Hamming code (called "the" Hamming code by "TN-29-08: Hamming Codes for NAND Flash Memory Devices", "Hamming code explanation", "Error correction in Flash memory" , etc.) re-calculates both the "odd ECC word" plus the "even ECC word" (but apparently not the overall parity bit).

Given some received 8-bit codeword abcd_efgh, (here "^" represents the xor operator),

Calculated only by extended Hamming code:

a^b^c^d^e^f^g^h == overall parity bit

Calculated only by odd+even Hamming code:

a^b^c^d         == parity of even half (bit 3 of even ECC word)
a^b  ^  e^f     == parity of even fourths (bit 2 of even ECC word)
a  ^c  ^e  ^g   == parity of even bits (bit 1 of even ECC word)

Calculated by both codes:

        e^f^g^h == parity of odd half  (bit 3 of odd ECC word)
    c^d  ^  g^h == parity of odd fourths  (bit 2 of odd ECC word)
  b  ^d  ^f  ^h == parity of odd bits  (bit 1 of odd ECC word)

(I'm designing something like a wireless Holter monitor for temperature logging and other data collection. It stores data in flash and transmits the data wirelessly.)

Which of these two kinds of "Hamming code" is better for data storage?

Which of these two kinds of "Hamming code" is better for wireless communication?

Is there a common way of naming or distinguishing between these two kinds of Hamming code?

(Is there some other Stack Exchange site better for questions about error-correction coding -- perhaps Computer Science Stack Exchange or Electronics Stack Exchange ?)