Encoding and Error

advertisement
Hamming Code
Rachel Ah Chuen
Basic concepts
• Networks must be able to transfer data from one device
to another with complete accuracy.
• Data can be corrupted during transmission.
• For reliable communication, errors must be detected and
corrected.
Types of Errors
Single-bit error
Single-bit error
 Single bit errors are the least likely type of errors in
serial data transmission because the noise must
have a very short duration which is very rare.
 However this kind of errors can happen in parallel
transmission.
Burst error
Burst error
 The term burst error means that two or more bits
in the data unit have changed from 1 to 0 or from
0 to 1.
 Burst errors does not necessarily mean that the
errors occur in consecutive bits.
 The length of the burst is measured from the first
corrupted bit to the last corrupted bit.
Hamming Code
 In the late 1940’s Richard Hamming recognized
that the further evolution of computers required
greater reliability, in particular the ability to not
only detect errors, but correct them.
 His search for error-correcting codes led to the
Hamming Codes, and the extended Hamming
Codes, 1-error correcting and 2-error detecting
codes.
Definitions
 For linear codes, encoding is a linear
transformation c that maps a message m to a
codeword c(m).
 Block codes means all codewords c(m) have the
same length, which we denote as n.
 Let k be the length of information bits that we
encode. Then there are n-k redundancy bits in
each codeword, called parity check bits, which
are left for error correction.
 (n, k) specify the parameters (codeword length
and parity check bit length) for a block code.
Hamming Distance
 The Hamming distance, d_H is the number of bits
that have to be changed to get from one bit
pattern to another.
 Example: c1=(10010101) & c2=(10011001) have a
hamming distance of 2
 What about c1 = (101101) and c2 = (100110)?
Minimum Hamming
Distance
 Let d to be the minimum Hamming distance
between any two distinct codewords of a code
C as
 A code with minimum distance d between
codewords can detect d-1 errors and can
correct (d-1)/2 errors.
Hamming weight
 w(S) defined as the sum of its non-zero entries
 A linear code is completely defined by all the
codewords for messages of weight 1.
Hamming Code
 The Hamming code is a single error correction
linear block code with (n, k) = (2m -1, 2m-1-m)
 where m = n k is the number of check bits in the
codeword.
 The simplest non-trivial code is for m = 3, which is
the (7,4) Hamming code.
 Generator matrix
 Where S is k x (n k)
Hamming code
 Suppose our matrix G generates a
single error correcting code. Then
there are no code words of weight 1
or 2, and the parity check portion S of
G must satisfy the following 2
conditions:
(7,4) Hamming Code
(7,4) Hamming Code
 For every generator matrix g=[ I S], there is a
parity check matrix H defined by
Example
 received string r = (1110111)
Parity Errors
 The class of Hamming single error correcting
codes is noteworthy because they are
particularly efficient in the use of parity bits.
 The (7,4) Hamming code uses 3 parity bits to
protect 4 data bits;
(15,11) code
Parity Computation
 (7,4) code
 Computations by receiver
 Steps
Combination of syndrome
bits
 Appropriate corrective action for each
combination of the syndrome bits
Download