# Can odd or even parity correct errors

Can odd or even parity correct errors? Odd or even parity can be used to detect errors. Can it correct errors?

Parity use to detect errors, not for correcting.Especially it is used to validate Integrity of Data. If parity check is failed in receiver's end frame will be rejected.

Single-bit parity can only detect errors and it can only detect single-bit errors. Multi-bit errors can cancel each other out, resulting in undetected errors. In information theory, a single bit can only hold the simple information "data correct" or "data incorrect".

Using multi-bit ECC codes on larger bit groups is far superior as it can correct single-bit errors and detect a number of multi-bit errors.

At the end of the day, the ECC/FEC overhead length defines or limits the amount of error correction and detection you can get - the more, the better. For starters, check out Hamming code, and for a different approach Tomlinson-Harashima precoding or dirty paper coding in general.

You can use multidimensional parity to correct errors, but the amount of error-correction you get is low for a given amount of parity overhead. This makes it suitable only for situations with very low bit error rates.

A two-dimensional parity scheme can correct a single error:

``````Original      With error     Correction
1 0 1 1  1    1 0 1 1  1     0 0 0 0  0
0 1 0 1  0    0 0 0 1  0 E   0 1 0 0  0
1 0 0 0  1    1 0 0 0  1     0 0 0 0  0
0 0 0 0  0    0 0 0 0  0     0 0 0 0  0
0 1 1 0  0    0 1 1 0  0     0 0 0 0  0
E
``````

You can see that a single bit error correction of MxN bits uses M+N+1 bits of parity.

Hamming codes can be considered a variety of multidimensional parity.

There are many, many, error correction/detection schemes with very varying properties, often with quite beautiful mathematics behind them: I'm particularly fond of Golay and Verhoeff. Some details of error correction schemes are best followed up in Mathematics (for theory) or Electronics (for implementation) stackexchanges.