Cyclic redundancy check

Post on 15-Apr-2017

120 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

Transcript

ERROR CONTROL CODING TECHNIQUESCYCLIC REDUNDANCY CHECKDONE BY: ENG. SALEH ALRKIYAN | HTTPS://WWW.LINKEDIN.COM/IN/SALRKIYAN

INFORMATION THEORY & CODING

CYCLIC REDUNDANCY CODES

Cyclic Redundancy Codes (CRCs) provide a first line of defense against data corruption in many networks. Unfortunately, many commonly used CRC polynomials provide significantly less error detection capability than they might. An exhaustive exploration reveals that most previously published CRC polynomials are either inferior to alternatives or are only good choices for particular message lengths.

CYCLIC REDUNDANCY CODES

The cyclic redundancy check, or CRC, is a technique for detecting errors in digital data, but not for making corrections when errors are detected.

It is used primarily in data transmission. In the CRC method, a certain number of check bits, often called a checksum, are appended to the message being transmitted.

The receiver can determine whether or not the check bits agree with the data, to ascertain with a certain degree of probability whether or not an error occurred in transmission. If an error occurred, the receiver sends a “negative acknowledgement” (NAK) back to the sender, requesting that the message be retransmitted.

The technique is also sometimes applied to data storage devices, such as a disk drive.

DATA STORING

Data are stored in bytes, which consist of 8 bits each. Thus any set of data can be considered as sequence of bytes or bits. In computer communication usually the bits are considered to be independent and a bit sequence is limited by the size of data blocks (or frames, packets, datagrams etc.). Thus we consider the problem to check whether a finite sequence of bits is changed unintentionally, e.g. by transmission errors or faulty memories.

Cyclic redundancy check performs a special operation that can be interpreted as polynomial division. The residual of this division is used as redundancy information and we will explore in this paper which types of errors can be detected by this method.

EXPLAINED STEP BY STEP

First of all, we should know the major rule of CRC which is: The Power of each term shows the position of the bit, and the coefficient shows the value of the bit.

AT THE SENDER

Step #1: At sender side, a string of n 0s is appended to the data unit to be transmitted where n is less than the number of bits in the CRC generator.

Step #2: The newly formed data unit is divided by the divisor using binary division and reminder is obtained this reminder is called CRC, and when we divide we use XOR Gate.

Step #3: String on n 0s appended to the data unit earlier is replaced by the CRC reminder –which us also n bit.

Step #4: (Data unit + CRC) is transmitted to the receiver.

XORA B Y0 00 11 01 1

0110

EXAMPLE: SUPPOSE, CRC GENERATOR = , AND SUPPOSE DATA UNIT TO BE TRANSMITTED = 1101011011, FIND THE MESSAGE TO BE TRANSMITTED.

Codeword after appending the 4 zeroes = 11010110110000, Reminder ‘CRC’= 1110.

After replacing, Codeword = 11010110111110.

Now, the message will transmit to the receiver.

AT THE RECEIVER

Step #1: The receiver on receiving the codeword, divides (Data unit + CRC) by the same division and checks the reminder.

Step #2: The receiver checks if the reminder is zero. If Yes, Receiver assume that there is no error in data and and therefore

accept it. If No, There is an error in data and therefore reject it.

XORA B Y0 00 11 01 1

0110

EXAMPLE: SUPPOSE, CRC GENERATOR =10011, AND SUPPOSE DATA UNIT RECEIVED = 11010110111110, FIND THE RECEIVED MESSAGE AND CHECKS ERROR.

Now, the receiver accepts the message.

top related