Cross securing

from Wikipedia, the free encyclopedia

The cross checking is a method for error detection in the transmission of digital data. It is based on checking the parity of the data received.

Procedure

Simple parity checks relate to relatively short bit sequences , which are also called code words. A simple check of the parity only provides an indication of whether there has been a transmission error in the code word, but not which bit is affected. In addition, a combined transmission error that affects both a bit in the code word and the check bit is not recognized.

Cross-locking is a method that can largely eliminate both disadvantages of the simple parity check. For this purpose, a sequence of k code words of length n is arranged in a matrix of k rows and n columns. The parity is now calculated for each row and each column. The k parity bits of the rows and the n parity bits of the columns each result in a check character which is transmitted together with the code words.

The receiver also arranges the code words as a matrix and calculates the parity of the rows and columns. He then compares the locally calculated test characters with the transmitted ones. If they match, it can be assumed with great certainty that no error has occurred during the transfer.

Bug fix

An error in a single bit of the code words causes the parity to change both for the corresponding column and for the row of the bit in the matrix. Other possible errors, such as two incorrectly transmitted bits in the code words or individual bit errors in the check characters, have different consequences for the parity. This relationship can be used to correct the transmission error. Assume that the check reveals that the second bit of the column check character and the third bit of the row check character differ between locally calculated and transmitted data. It can then be assumed that the second bit of the third line was transmitted incorrectly. If this bit was received with the value "1", the correct value is therefore "0". In a similar way it can be recognized whether and, if so, which bit in the check characters was incorrectly transmitted. The error can be corrected locally at the recipient without having to retransmit data. One speaks therefore of a forward error correction .

Limits of Reliability

The local error correction fails if more than one bit error occurs in the matrix of the code words and the check characters. With very unlikely exceptions, it is recognized that there were transmission errors. The affected matrix of code words must be retransmitted for correction. The exceptional case in which transmission errors are incorrectly not recognized occurs when several bits are affected in a coordinated manner in a specific pattern. An example would be a simultaneous error of the third bit of the column check character, the fourth bit of the row check character and the third bit of the fourth code word. These cases are obviously very rare. However, they cannot be completely ruled out in test procedures that are based on a comparison of parity.

Example with a matrix of 5 code words with a length of 8 bits

code word Parity bit
0 1 0 1 0 1 1 1 1
1 1 0 1 0 0 1 0 0
0 1 1 0 1 1 0 0 0
0 0 1 0 1 1 0 1 0
1 0 1 1 1 0 0 1 1
Parity bit 0 1 1 1 1 1 0 1

with an error:

code word Parity bit
0 1 0 1 0 1 1 1 1
1 1 0 1 0 0 1 0 0
0 0 1 0 1 1 0 0 0
0 0 1 0 1 1 0 1 0
1 0 1 1 1 0 0 1 1
Parity bit 0 1 1 1 1 1 0 1

In line 3 and column 2, the transmitted no longer match the calculated parity bits.