Error Detection and Correction Techniques in Data Communication, Exams of Advanced Education

A concise overview of error detection and correction techniques used in data communication. It covers types of errors such as single-bit and burst errors, redundancy, and coding schemes like block coding. Key concepts include hamming distance, parity-check codes, cyclic codes, and checksums. The document also discusses forward error correction (fec) and provides examples and questions to reinforce understanding. It is a valuable resource for students and professionals seeking to understand data integrity in communication systems. Cyclic redundancy check (crc) and its applications in networks, polynomial representation of data, and desirable characteristics of polynomial generators. It also touches on checksums and forward error correction (fec) methods.

Typology: Exams

2025/2026

Available from 12/31/2025

alex-david-34
alex-david-34 🇿🇦

4.5

(4)

5.6K documents

1 / 5

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Chapter 10- Error Detection and
Correction
Types of Errors
Errors are caused byinterference. Data rate and noise duration factor into how many
bits are affected. There are 2 types of errors:
1.Single-Bit Error
2.Burst Error
Single-Bit Error
Only one bit in a data unit is affected.
Burst Error
Two or moreconsecutivebits in a data unit are affected.
Redundancy
Extra bits are added by the sender to allow the receiver todetectorcorrectcorrupted
bits.
Detection vs. Correction
Detection- Detects whether or not there are corrupted bits. Answer is eitheryes or no.
Correction- More difficult than detection. Requires the receiver to knowhow many
bitsare corrupted and theirlocation. The # of errors and message size impact
complexity.
Coding
Ratio of redundant bits to data bits and robustness heavily factor into any coding
scheme. There are two broad coding schemes:
1.Block Coding
2.Convolution Coding
(Convolutional coding is beyond the scope of the book. Focus is on block coding only.)
Block Coding
Divide message into k-bit blocks (datawords). Add r redundant bits to each block to
createcodewordsof n = k + r bits.
# of datawords = 2^k
# of codewords = 2^n
# of invalid codewords = 2^n - 2^k
Error Detection (Block Coding)
There are 2 error detection conditions in block coding:
1. Receiver has (or can find) a table of valid codewords.
2. The original codeword has changed into an invalid codeword.
However, corrupted but still valid codewords will go undetected.
Hamming Distance
pf3
pf4
pf5

Partial preview of the text

Download Error Detection and Correction Techniques in Data Communication and more Exams Advanced Education in PDF only on Docsity!

Chapter 10- Error Detection and

Correction

Types of Errors Errors are caused by interference. Data rate and noise duration factor into how many bits are affected. There are 2 types of errors:

  1. Single-Bit Error
  2. Burst Error Single-Bit Error Only one bit in a data unit is affected. Burst Error Two or more consecutive bits in a data unit are affected. Redundancy Extra bits are added by the sender to allow the receiver to detect or correct corrupted bits. Detection vs. Correction Detection - Detects whether or not there are corrupted bits. Answer is either yes or no. Correction - More difficult than detection. Requires the receiver to know how many bits are corrupted and their location. The # of errors and message size impact complexity. Coding Ratio of redundant bits to data bits and robustness heavily factor into any coding scheme. There are two broad coding schemes:
  3. Block Coding
  4. Convolution Coding (Convolutional coding is beyond the scope of the book. Focus is on block coding only.) Block Coding Divide message into k-bit blocks ( datawords ). Add r redundant bits to each block to create codewords of n = k + r bits.

of datawords = 2^k

of codewords = 2^n

of invalid codewords = 2^n - 2^k

Error Detection (Block Coding) There are 2 error detection conditions in block coding:

  1. Receiver has (or can find) a table of valid codewords.
  2. The original codeword has changed into an invalid codeword. However, corrupted but still valid codewords will go undetected. Hamming Distance

of differences between corresponding bits in words of the same size. **Describes the

of corrupted bits**. (In example, you can XOR two codewords and count the # of 1's.) Minimum Hamming Distance The smallest Hamming distance between all possible codewords. To guarantee detection of up to s errors in all cases, the Minimum Hamming Distance should be: d_min = s + 1 Linear Block Codes A block code where XOR of any two valid codewords results in a valid codeword. Minimum Hamming Distance of a Linear Block Code The # of 1's in the nonzero valid codeword with the smallest # of 1's. Parity-Check Code A k-bit dataword is changed to an n-bit codeword where n = k + 1. The extra bit, called the parity bit , is selected to make the total number of 1's even (adding k bits and modulo-2). Minimum Hamming distance is 2. That is, the code is a single-bit error-detecting code. Syndrome The result of adding the n-bit codeword generated by parity-check and modulo-2. If 0, then the # of 1's is even and the dataword is accepted. Else, an error is detected. Cannot detect an even # of corrupted bits. Can detect an odd # of corrupted bits. Parity-Check Code Example Assume the sender sends the dataword 1011. The code-word created from this dataword is 10111, which is sent to the receiver. We examine 5 cases:

  1. No error occurs; the received codeword is 10111. The syndrome is 0. The dataword 1011 is created.
  2. One single-bit error changes a 1. The received codeword is 10011. The syndrome is
  3. No dataword is created.
  4. One single-bit error changes the r0 (the parity bit). The received codeword is 10110. The syndrome is 1. No dataword is created. Note that although none of the dataword bits are corrupted, no dataword is created because the code is not sophisticated enough to show the position of the corrupted bit.
  5. An error changes r0 and a second error changes a3 (fourth dataword bit). The received codeword is 00110. The syndrome is 0. The dataword 0011 is created at the receiver. Note that here the dataword is wrongly created due to the syndrome value. The simple parity-check decoder cannot detect an even # of errors.
  6. 3 bits — a3, a2, and a1 — are changed by errors. The received codeword is 01011. The syndrome is 1. The dataword is not created. This shows that the simple parity check, guaranteed to detect one single error, can also detect odd # errors. Cyclic Codes Special linear block codes where shifting the bits of a valid codeword results in another valid codeword. Used to correct errors. Cyclic Redundancy Check (CRC) Subset of cyclic codes used in networks (LAN's and WAN's). The dataword has k bits and the codeword has n bits.

b. x^4 + 1 c. x^7 + x^6 + 1 d. x^15 + x^14 + 1 A: a. This is a very poor choice for a generator. Any two errors next to each other cannot be detected. b. This generator cannot detect two errors that are four positions apart. The two errors can be anywhere, but if their distance is 4, they remain undetected. c. This is a good choice for this purpose. d. This polynomial cannot divide any error of type x^t + 1 if t is less than 32,768. This means that a codeword with two isolated errors that are next to each other or up to 32,768 bits apart can be detected by this generator. Odd Number of Errors A generator that contains a factor of x + 1 can detect all odd-numbered errors. Burst Errors A burst error can have two or more terms. A burst error is of the form e(x) = x^i(x^j-i

  • ... + 1). Let r = j - i. The length of the error is L = j - i + 1. There are 3 cases:
  1. All burst errors with L ≤ r will be detected
  2. All burst errors with L = r + 1 will be detected with probability 1 - (1/2)^(r - 1)
  3. All burst errors with L > r + 1 will be detected with probability 1 - (1/2)^r Q: Find the suitability of the following generators in relation to burst errors of different lengths. a. x^6 + 1 b. x^18 + x^7 + x + 1 c. x^32 + x^23 + x^7 + 1 A: a. This generator can detect all burst errors with a length less than or equal to 6 bits; 3 out of 100 burst errors with length 7 will slip by; 16 out of 1000 burst errors of length 8 or more will slip by. b. This generator can detect all burst errors with a length less than or equal to 18 bits; 8 out of 1 million burst errors with length 19 will slip by; 4 out of 1 million burst errors of length 20 or more will slip by. c. This generator can detect all burst errors with a length less than or equal to 32 bits; 5 out of 10 billion burst errors with length 33 will slip by; 3 out of 10 billion burst errors of length 34 or more will slip by. Desirable Characteristics of a Polynomial Generator
  4. It should have at least two terms.
  5. The coefficient of the term x^0 should be 1
  6. It should not divide x^t + 1, for t between 2 and n - 1.
  7. It should have the factor x + 1. Advantages of Cyclic Codes Cyclic codes have very good performance in detecting single-bit errors, double errors, odd number errors, and burst errors. They are easily implemented (and especially fast when implemented in hardware).

Checksum An error-detecting technique that can be applied to a message of any length. The complement of the sum. At the source, the message is first divided into m-bit units. The generator then creates an extra m-bit unit called the checksum , which is sent with the message. At the destination, the checker creates a new checksum from the combination of the message and sent checksum. If the new checksum is all 0s , then the message is accepted. (Not as strong as CRC.) One's Complement Addition Allows us to represent unsigned numbers between 0 and 2^m - 1 using only m bits. Forward Error Correction (FEC) Allows the receiver to correct errors without delay from requesting the sender to retransmit. This requires a lot of redundant bits to be sent with the data, which increases bandwidth usage. Using Hamming Distance To detect t errors, we need to have d_min = 2t + 1. For instance, if we want to correct 10 bits in a packet, we need d_min = 21. Using XOR Divide a packet into N chunks, create the XOR of all the chunks and send N + 1 chunks. If any chunk is lost or corrupted, it can be recreated at the receiver. Chunk Interleaving Combine one chunk from multiple packets to send. If the new packet goes missing, then only one chunk from each original packet goes missing instead of all of them. Combining Hamming Distance and Interleaving We first create n-bit packets that can correct t-bit errors. Then we interleave m rows and send the bits column by column. In this way, we can automatically correct burst errors up to m x t-bit errors. Compounding High- and Low-Resolution Packets Create a duplicate of each packet with low-resolution redundancy and combine this version with the next packet. If a packet is lost, then we can use the low-resolution version from the next packet.