Professional Documents
Culture Documents
Data Communications 3
Data Communications 3
Communication and
Networks
Burst errors:
• In Burst error, multiple bits of the binary value changes. Burst error can change any
two or more bits in a transmission. These bits need not be adjacent bits. Burst errors are
more likely to occur in serial transmission.
Coding and Error Control
Basic Idea
Parity Check
P2 1 P1
P3 0
• Where F is the number of bits per frame.
Error Detection
Basic Idea
Parity Check
Basic Idea
Parity Check
Polynomials
Digital Logic
Modulo 2 Arithmetic
• Now define:
• T = n-bit frame to be transmitted
• D = k-bit block of data; the first k bits of T
• F = (n – k)-bit FCS; the last (n – k) bits of T
• P = pattern of n–k+1 bits; this is the predetermined
divisor
• Q = Quotient
• R = Remainder
Basic Principle of CRC in Modulo 2 Arithmetic
• In CRC, the sender and receiver agree on a fixed divisor called the "generator polynomial" or
"check polynomial."
• The data to be transmitted is considered as a binary number, and the divisor is used to perform
modulo 2 division.
• The remainder obtained from this division is added to the end of the data as a checksum.
• When the receiver receives the data, it performs the same modulo 2 division with the agreed-upon
divisor.
• If the remainder is zero, it indicates that the data is likely error-free.
• Otherwise, the presence of a non-zero remainder indicates the presence of errors in the received
data.
• The key advantage of CRC based on modulo 2 arithmetic is its simplicity and efficiency in
detecting errors, especially single-bit errors and burst errors. It doesn't require complex
mathematical calculations, making it suitable for real-time error detection in various communication
protocols.
• Overall, CRC using modulo 2 arithmetic is a robust and widely used error detection technique that
enhances the reliability of data transmission in digital communication systems.
Basic Principle of CRC in Modulo 2 Arithmetic
1. Data Representation: The data to be transmitted is represented as a sequence of bits (0s and 1s).
2. Divisor Selection: A fixed divisor polynomial is chosen. This polynomial serves as the key element
in the CRC calculation. It's represented as a binary number, where the positions of 1s indicate the
powers of the polynomial. For example, if the divisor polynomial is 1101, it corresponds to x^3 +
x^2 + 1.
3. Appending Checksum (CRC Bits): To the original data, a certain number of bits are added. The
number of bits added is determined by the degree of the divisor polynomial. For example, if the
divisor polynomial has degree 3, then 3 bits (CRC bits) are added to the end of the data.
4. CRC Calculation: The modulo 2 arithmetic (binary arithmetic) is used to calculate the CRC bits.
The data (including appended CRC bits) is divided by the divisor polynomial using XOR (exclusive
OR) operations. The remainder obtained from this division is the CRC value.
5. Transmitting Data: The original data along with the calculated CRC bits (checksum) are
transmitted to the receiver.
6. Error Detection: At the receiver's end, the received data is divided again by the same divisor
polynomial using modulo 2 arithmetic. If the remainder obtained is zero, no error is detected. If the
remainder is non-zero, an error is detected.
7. Verifying CRC: The receiver compares the calculated CRC bits with the received CRC bits. If they
match, the data is considered error-free. If they don't match, an error is indicated.
Cyclic Redundancy Check
Tr T E
where T transmitted frame
E error pattern with 1s in positions where errors occur
Tr received frame
Generation of Spreading Sequences
Polynomials
Digital Logic
Outline
• Hamming distance:
– Hamming distance d(v1,v2) between two n-bit
sequences v1 and v2 is the number of bits in which
v1 and v2 disagree.
– If v1=011011, and v2=110001, then d(v1,v2) =3.
– If v1=100011011, and v2=101011001, then d(v1,v2)
=2.
Block Code Principles
t d min 1
Block Code Principles
• Decoding process:
– Process received bits to compute the syndrome
code (same fashion as the encoder processes the
data bits to produce the check code)
– If the syndrome bits are all zero, no error has been
detected.
– If the syndrome is nonzero, perform additional
processing on the syndrome for error correction.
Cyclic Code
Decoding
Turbo Code
• In block codes, information bits are followed
by parity bits. In convolution codes,
information bits are spread along the sequence.
• Block codes are memoryless whereas
Convolution codes have memory. Convolution
codes use small codewords in comparison to
block codes, both achieving the same quality.
Convolutional Code Principles
Decoding
Turbo Code
Decoding
Decoding
Turbo Code
Turbo Code