You are on page 1of 42

Group members

M.Umar 18251598-022
Ahsan 18251598-008
Jahanzaib 18251598-020
Ali faraz 18251598-038
Chapter # 10
Error detection & error correction
Introduction
In this chapter we will learn about error detection and error correction
and their types in data communication.
Types of errors
• Single bit error
• Burst error
Single bit error
If only the one bit is changed during data transmission such error is
known as single bit error.
e.g
1 is changed to 0 or 0 is changed to 1

Burst error
If multiple bits are changing during data transmission such error is
known as burst error.
e.g
1100110 is changed to 0110011
Common error
Here we see the chances of error which can occur mostly
For example
If the bandwidth of a channel is 1Gbps then for how much
duration the error should last?
1Gbps
A B
1Gbps = 10^9 bits --------- 1 second
Time for 1 bit to send 1/10^9 = 1ns
Length of error
The length of the burst is measured from the first corrupted bit to the
last corrupted bit. Some bits in between may not have been corrupted.
For example

11001010 ----------------- 10100010

A B
Length = 4
Redundancy

Redundancy is the method to detect and correct


the errors and it is a very powerful method for
detection and correction of error.
Error correction vs detection
The correction of errors is more difficult as compared to error detection. In
error detection we just have to see wether there is an error or not in the
data. We are not even interested in the number of errors in the data.
In error correction we have to find out the exact number of bits that are
corrupted and more importantly their location on the message.
In correction the size of message and number of errors are important factors.
If we need to correct one single error in an 8-bit data unit, we need to
consider eight possible error locations
Error correction methods
There are two main methods of error correction
• Forward error correction
• Retransmission
Retransmission
In this process the receiver detects the error and asks the transmitter to
resend the message. The resending continues until the message to the
receiver is error free.
Forward error correction
In this process the receiver tries to guess the message by using redundant
bits. And try to correct at this time.
Coding in error detection and correction

In order to detect and correct the errors in data


transmission, redundancy method is used. To achieve
redundancy various coding schemes are used.
BLOCK CODING
•IN BLOCK CODING, WE DIVIDE OUR MESSAGE INTO
BLOCKS, EACH OF K BITS, CALLED DATAWORDS.
•WE ADD R REDUNDANT BITS TO EACH BLOCK TO MAKE
THE LENGTH N = K + R. THE RESULTING N-BIT BLOCKS ARE
CALLED CODEWORDS.
ERROR DETECTION

AN ERROR-DETECTING CODE CAN DETECT


ONLY THE TYPES OF ERRORS FOR WHICH IT
IS DESIGNED; OTHER TYPES OF ERRORS MAY
REMAIN UNDETECTED.
• IF THE FOLLOWING TWO CONDITIONS ARE MET, THE RECEIVER CAN
DETECT A CHANGE IN THE ORIGINAL CODE WORD BY USING BLOCK
CODING TECHNIQUE.

1. THE RECEIVER HAS (OR CAN FIND) A LIST OF VALID CODE WORDS.

2. THE ORIGINAL CODE WORD HAS CHANGED TO AN INVALID ONE.


FOR EXAMPLE CONSIDER THE FOLLOWING TABLE OF DATA WORDS AND
CODE WORDS:
ERROR CORRECTION
IN ERROR CORRECTION THE RECEIVER NEEDS TO FIND (OR GUESS) THE
ORIGINAL CODE WORD SENT.
CONSIDER THE FOLLOWING TABLE OF DATA WORDS AND CODE WORDS.
ASSUME THE DATA WORD IS 01. THE SENDER CONSULTS THE TABLE (OR USES AN ALGORITHM) TO
CREATE THE CODE WORD 01011. THE CODE WORD IS CORRUPTED DURING TRANSMISSION, AND 01001
IS RECEIVED (ERROR IN THE SECOND BIT FROM THE RIGHT). FIRST, THE RECEIVER FINDS THAT THE
RECEIVED CODE WORD IS NOT IN THE TABLE. THIS MEANS AN ERROR HAS OCCURRED. (DETECTION
MUST COME BEFORE CORRECTION.) THE RECEIVER, ASSUMING THAT THERE IS ONLY 1 BIT CORRUPTED,
USES THE FOLLOWING STRATEGY TO GUESS THE CORRECT DATA WORD.
1. COMPARING THE RECEIVED CODE WORD WITH THE FIRST CODE WORD IN THE TABLE (01001 VERSUS
00000), THE RECEIVER DECIDES THAT THE FIRST CODE WORD IS NOT THE ONE THAT WAS SENT BECAUSE
THERE ARE TWO DIFFERENT BITS.

2. BY THE SAME REASONING, THE ORIGINAL CODE WORD CANNOT BE THE THIRD OR FOURTH ONE IN
THE TABLE.

3. THE ORIGINAL CODE WORD MUST BE THE SECOND ONE IN THE TABLE BECAUSE THIS IS THE ONLY ONE
THAT DIFFERS FROM THE RECEIVED CODE WORD BY 1 BIT. THE RECEIVER REPLACES 01001 WITH 01011
AND CONSULTS THE TABLE TO FIND THE DATA WORD 01.
HAMMING DISTANCE

THE HAMMING DISTANCE BETWEEN TWO WORDS IS


THE NUMBER OF DIFFERENCES BETWEEN
CORRESPONDING BITS.
EXAMPLE:

• Let us find the Hamming distance between two pairs of words.

• The Hamming distance d(000, 011) is 2 because

• The Hamming distance d(10101, 11110) is 3 because


MINIMUM HAMMING DISTANCE

THE MINIMUM HAMMING DISTANCE IS THE SMALLEST


HAMMING DISTANCE BETWEEN
ALL POSSIBLE PAIRS IN A SET OF WORDS.
Find the minimum Hamming distance of
the coding scheme in Table.

We first find all the Hamming distances .

The dmin in this case is 3.


LINEAR BLOCK CODES
• A LINEAR BLOCK CODE IS A CODE IN WHICH THE
EXCLUSIVE OR OF TWO VALID CODEWORDS CREATES ANOTHER VALID CODEWORD.
• The scheme in is a linear block code because the result of XORing
any codeword with anyother codeword is a valid codeword.
• For example, the XORing of the second and third codewords creates
the fourth one.
• In Table the numbers of 1s in the nonzero codewords are 2, 2, and 2.
So the minimum Hamming distance is dmin = 2
ERROR DETECTION: SINGLE PARITY CHECK

A SIMPLE PARITY-CHECK CODE IS A


SINGLE-BIT ERROR-DETECTING
CODE IN WHICH
N = K + 1 WITH DMIN = 2.
EVEN PARITY IS USED.
RECEIVER CAN DETECT ALL SINGLE-BIT ERRORS AND BURST ERRORS
WITH ODD NUMBER OF CORRUPTED BITS
ALL EVEN-NUMBER BURST ERRORS ARE UNDETECTABLE
Simple parity-check code C(5, 4)
How error is detected
Draw back of Single parity check
2-Dimensional Parity Check

• 2-D parity check increases the likelihood of


detecting burst errors
• all 1-bit errors CAN BE DETECTED and
CORRECTED
• all 2-, 3- bit errors can be DETECTED and more
bit errors can be detected in some cases
2-Dimensional Parity Check
Burst error correction using Hamming code
CYCLIC CODES
CYCLIC CODE IS A LINEAR CODE THAT ANY CYCLIC SHIFT OF A CODEWORD
IS STILL A CODEWORD.
IN A CYCLIC CODE, IF A CODEWORD IS CYCLICALLY SHIFTED (ROTATED), THE
RESULT IS ANOTHER CODEWORD.

EXAMPLE:
IF 1011000 IS A CODEWORD AND WE CYCLICALLY LEFT-SHIFT, THEN
0110001 IS ALSO A CODEWORD.
1011000
MAKES ENCODING/DECODING MUCH SIMPLER, NO NEED OF MATRIX
MULTIPLICATION.
CYCLIC REDUNDANCY CHECK (CRC)

• THE CYCLIC REDUNDANCY CHECK (CRC) IS A TECHNIQUE USED TO


DETECT ERRORS IN DIGITAL DATA. AS A TYPE OF CHECKSUM, THE CRC
PRODUCES A FIXED-LENGTH DATA SET BASED ON THE BUILD OF A FILE
OR LARGER DATA SET. IN TERMS OF ITS USE, CRC IS A HASH FUNCTION
THAT DETECTS ACCIDENTAL CHANGES TO RAW COMPUTER DATA
COMMONLY USED IN DIGITAL TELECOMMUNICATIONS NETWORKS
AND STORAGE DEVICES SUCH AS HARD DISK DRIVES.
CRC
• CYCLIC REDUNDANCY CHECKS ARE QUITE SIMPLE TO IMPLEMENT
IN HARDWARE, AND CAN BE EASILY ANALYZED MATHEMATICALLY.
CRC IS ONE OF THE BETTER TECHNIQUES THAT IS COMMONLY
USED IN DETECTING COMMON TRANSMISSION ERRORS.
• CRC IS BASED ON BINARY DIVISION AND IS ALSO CALLED
“POLYNOMIAL CODE
POLYNOMIALS:

A BETTER WAY TO UNDERSTAND CYCLIC CODES AND HOW THEY
CAN BE ANALYZED IS TO REPRESENT THEM AS POLYNOMIALS.


A PATTERN OF 0S AND 1S CAN BE REPRESENTED AS A POLYNOMIAL
WITH COEFFICIENTS OF 0 AND 1.


THE POWER OF EACH TERM SHOWS THE POSITION OF THE BIT;
THE COEFFICIENT SHOWS THE VALUE OF THE BIT.
POLYNOMIALS
ERROR DETECTION WITH CYCLIC CODE

 A (7,4) CYCLIC CODE WITH G(X) = X3 + X + 1.


 IF THE RECEIVED POLYNOMIAL IS X6 + X5 + X2 + 1,
ARE THERE ANY ERRORS?
 WE DIVIDE X6 + X5 + X2 + 1 BY X3 + X + 1, AND THE
REMAINDER IS X3 + 1. THE POINT IS THAT THE
REMAINDER IS NOT 0. SO IT IS NOT A CODE
POLYNOMIAL, SO THERE ARE ERRORS.
CYCLIC CODE ANALYSIS
 THE DIVISOR IN A CYCLIC CODE IS NORMALLY CALLED THE
GENERATOR POLYNOMIAL OR SIMPLY THE GENERATOR.

 WE CAN ANALYZE A CYCLIC CODE TO FIND ITS CAPABILITIES BY


USING POLYNOMIALS. WE DEFINE THE FOLLOWING, WHERE F(X) IS
A POLYNOMIAL WITH BINARY COEFFICIENTS.

DATAWORD: D(X) CODEWORD: C(X)

GENERATOR: G(X) SYNDROME: S(X) ERROR: E(X)


ADVANTAGES OF CYCLIC CODES

CYCLIC CODES HAVE A VERY GOOD PERFORMANCE IN DETECTING
SINGLE-BIT ERRORS, DOUBLE ERRORS, AN ODD NUMBER OF ERRORS,
AND BURST ERRORS.

IN BURST ERROR CRC CAN DETECT ALL BURST ERRORS THAT AFFECT AN
ODD NUMBER OF BITS, ERRORS OF LENGTH LESS THAN OR EQUAL TO
THE DEGREE OF THE POLYNOMIAL, AND IT CAN DETECT, WITH VERY
HIGH PROBABILITY, BURST ERRORS OF LENGTH GREATER THAN THE
DEGREE OF THE POLYNOMIAL.

THEY CAN EASILY BE IMPLEMENTED IN HARDWARE AND SOFTWARE.
THEY ARE ESPECIALLY FAST WHEN IMPLEMENTED IN HARDWARE. THIS
HAS MADE CYCLIC CODES A GOOD CANDIDATE FOR MANY NETWORKS
OTHER CODES
 REED SOLOMON CODE. BLOCK CODE. USED IN CD, DVD, HDTV
TRANSMISSION.
 TRELLIS CODE. NOT BLOCK CODE. MORE CLOSELY COUPLED WITH
MODULATION.
 TURBO CODE. ACHIEVE CLOSE-TO-SHANNON BOUND.
Thanks

You might also like