Error-Correcting Codes

Slides:



Advertisements
Similar presentations
Error-Correcting codes
Advertisements

Error Control Code.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Information Theory Introduction to Channel Coding Jalal Al Roumy.
Chapter 10 Error Detection and Correction
Chapter 11 Algebraic Coding Theory. Single Error Detection M = (1, 1, …, 1) is the m  1 parity check matrix for single error detection. If c = (0, 1,
Chapter 2 Error-Detecting Codes. Outline 2.1 Why Error-Detecting Codes? 2.2 Simple Parity Checks 2.3 Error-Detecting Codes 2.4 Independent Errors: White.
Error detection and correction
Error Correcting Codes To detect and correct errors Adding redundancy to the original message Crucial when it’s impossible to resend the message (interplanetary.
15-853Page :Algorithms in the Real World Error Correcting Codes I – Overview – Hamming Codes – Linear Codes.
Error Detection and Correction
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.
exercise in the previous class (1)
Hamming Codes 11/17/04. History In the late 1940’s Richard Hamming recognized that the further evolution of computers required greater reliability, in.
©2003/04 Alessandro Bogliolo Background Information theory Probability theory Algorithms.
Lecture 6 Topics Character codes Error Detection and Correction
Domain testing Tor Stålhane. Domain testing revisited We have earlier looked at domain testing as a simple strategy for selecting test cases. We will.
It is physically impossible for any data recording or transmission medium to be 100% perfect 100% of the time over its entire expected useful life. As.
Cosc 2150: Computer Organization
Topic 2 – Introduction to Computer Codes. Computer Codes A code is a systematic use of a given set of symbols for representing information. As an example,
Error Coding Transmission process may introduce errors into a message.  Single bit errors versus burst errors Detection:  Requires a convention that.
Error Control Code. Widely used in many areas, like communications, DVD, data storage… In communications, because of noise, you can never be sure that.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
ERROR CONTROL CODING Basic concepts Classes of codes: Block Codes
MIMO continued and Error Correction Code. 2 by 2 MIMO Now consider we have two transmitting antennas and two receiving antennas. A simple scheme called.
Data and Computer Communications Chapter 6 – Digital Data Communications Techniques.
Data and Computer Communications by William Stallings Eighth Edition Digital Data Communications Techniques Digital Data Communications Techniques Click.
Practical Session 10 Error Detecting and Correcting Codes.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Error Control Code. Widely used in many areas, like communications, DVD, data storage… In communications, because of noise, you can never be sure that.
Error Detection and Correction
1 Rectangular Codes Triplication codes: m 1 m 2 m 3 m 1 m 1 m 1 m 2 m 2 m 2 m 3 m 3 m 3 Repeated 3 times At receiving end, a majority vote is taken.
Hamming codes. Golay codes.
Richard W. Hamming Learning to Learn The Art of Doing Science and Engineering Session 12: Error-Correcting Codes Learning to Learn The Art of Doing Science.
Computer Science Division
Error Detection and Correction
Computer Communication & Networks Lecture 9 Datalink Layer: Error Detection Waleed Ejaz
ERROR DETECTING AND CORRECTING CODES -BY R.W. HAMMING PRESENTED BY- BALAKRISHNA DHARMANA.
CHAPTER 3: DATA LINK CONTROL Flow control, Error detection – two dimensional parity checks, Internet checksum, CRC, Error control, Transmission efficiency.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
Basic Concepts of Encoding Codes and Error Correction 1.
Error Detection and Correction – Hamming Code
Data Link Layer. Data Link Layer Topics to Cover Error Detection and Correction Data Link Control and Protocols Multiple Access Local Area Networks Wireless.
Error Detection and Correction
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
Data Communications and Networking
Hamming Distance & Hamming Code
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Richard Cleve DC 2117 Introduction to Quantum Information Processing QIC 710 / CS 667 / PH 767 / CO 681 / AM 871 Lecture (2011)
Error Detecting and Error Correcting Codes
Gunjeet Kaur Dronacharya Group of Institutions. Outline I Random-Access Memory Memory Decoding Error Detection and Correction Read-Only Memory Programmable.
Hamming codes. Golay codes.
2.8 Error Detection and Correction
Error Detection & Correction
Computer Architecture and Assembly Language
Error Detection and Correction
Error Detection and Correction
II. Linear Block Codes.
Information Redundancy Fault Tolerant Computing
Error Detection and Correction
주민등록번호.
Error Detection and Correction
Computer Architecture and Assembly Language
Error Correction Coding
Error Detection and Correction
2.8 Error Detection and Correction
Presentation transcript:

Error-Correcting Codes Chapter 3 Error-Correcting Codes

Outline 3.1 Need for Error Correction 3.2 Rectangular Codes 3.3 Triangular, Cubic, and n-Dimensional Codes 3.4 Hamming Error-Correcting Codes 3.5 Equivalent Codes 3.6 Geometric Approach 3.7 Single-Error-Correction Plus Double-Error-Detection Codes 3.8 Hamming Codes Using Words 3.9 Application of the Ideas 3.10 Summary

3.1 Need for Error Correction Error detection is not enough Real time application Storage error can not restore because the original source of the information is often no longer available.

3.2 Rectangular Codes Triplication codes: m1 m2 m3 • • • • Repeated 3 times m1m1m1 m2m2m2 m3m3m3 • • • • At receiving end, a majority vote is taken.

Rectangular codes: Redundancy: m -1 o o o • • • o x o o o • • • o x o o o • • • o x • • • • • • • • • • • • o o o • • • o x x x x x x o = message position x = check position n -1 sum mod 2 It’d better use even-parity checking to avoid contradiction

Note that: Rectangular codes also can correct bursty error. For a given size mn, the redundancy will be smaller the more the rectangle approaches a square. For square codes of size n ,we have (n -1)2 bits of information. And 2n-1 bits of checking along the sides. Note that: Rectangular codes also can correct bursty error. (k2+1)x(k1+1) array code If k2  2(k1-1)  we can correct k1 size of bursty errors *Reference: Blaum, M.   van Tilborg, H.   Farrell, P., “A class of burst error-correcting array codes ,” IEEE Trans. Information Theory, Vol. 32, Iss. 6, pp. 836-839, 1986.

3.3 Triangular, Cubic, and n-Dimensional Codes A triangular code of side n has message and n check bits o o o o x o o o x o o x o x x n Redundancy:

n Square Triangular Cubic Message Check (n-1)2 2n-1 Message Check n(n-1)/2 n Message Check n3-3n+2 3n-2 2 3 4 5 6 7 8 9 10 1 3 4 5 9 7 16 9 25 11 36 13 49 15 64 17 81 19 1 2 3 3 6 4 10 5 15 6 21 7 28 8 36 9 45 10 4 4 20 7 54 10 112 13 200 16 324 19 490 22 704 25 972 28 Exercise: Can a triangular code correct burst errors? If it can, please give a simple example.

n1 x n2 array codes if n1  2b1b2 - b1 n2  2 b1b2 , where b1 divides n1 and b2 divides n2 then it could correct two-dimensional clusters of errors of size b1 x b2 Reference: Blaum, M. and Farrell, P.G., “Array codes for cluster-error correction,” Electronics Letters. Vol. 30, no. 21, pp. 1752-1753, 1994

Cubic: The check bits use 3n-2 positions out of the n3 positions. 4 d-hypercubic excess redundancy excess redundancy Redundancy

Highest possible dimensional → 2n bits of which (n+1) are checks when n=3, there are 4 check bits out of 8 bits m1 m2 m3 m4 m5 m6 m7 m8         Check bits: m1, m2 , m3 , m5 m2 + m4 + m6 + m8 = 0 -- (1) p2 m3 + m4 + m7 + m8 = 0 -- (2) p3 m5 + m6 + m7 + m8 = 0 -- (3) p5 m1 + m3 + m5 + m7 = 0 -- (4) p1 m1 + m2 + m5 + m6 = 0 p1 m1 + m2 + m3 + m4 = 0 p1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 (1) + (2) + (4) (1) + (3) + (4)

These (n+1) bits form an (n+1)-bit number, and this number ( the syndrome) can specify any of 2n+1 things – more then the 2n locations of the corresponding single error plus the fact that no error occurred. 2n+1 > 2n+1 So it could be improved somewhere. m1 m2 m3 m4 m5 m6 m7 m8 p1 p2 p3 p5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 Syndrome Error Type

3.4 Hamming Error-correcting codes Find the best encoding scheme for single-error correction for white noise. Suppose there are m independent parity checks. →It means no sum of any combination of the checks is any other check. Example: check 1 : 1 2 5 7 --- (1) check 2 : 5 7 8 9 --- (2) check 3 : 1 2 8 9 --- (3) It is not independent, because (1)+(2)=(3) So third parity check provides no new information over that of the first two, and is simply wasted effort.

The syndrome which results from writing a 0 for each of the m parity checks that is correct and 1 for each failure can be viewed as an m-bit number and can represent at most 2m things. For n bits of the message, 2m  n + 1 It is optimal when meets the equality condition. ( Hamming Codes ) Using Syndrome to find out the position of errors. The ideal situation is to use the value of Syndrome to point out the position of errors.

Example: 0 0 0  no error 0 0 1  error happened in the first position

Locate error check1 m1+ m3+ m5+ m7=0 check2 m2+ m3+ m6+ m7=0 check3 m4+ m5+ m6+ m7=0 Viewing m1 , m2 , m4 as check bit Note that the check positions are equally corrected with the message positions. The code is uniform in its protection. Once encoded there is no different between the message and the check digits.

Hamming code when m = 10, then n = 1023 original message length : 1023 – 10 = 1013 Redundancy:

3.5 Equivalent codes Interchange the positions

3.6 Geometric Approach The length of codeword is n The length of message is k The length of check bit is m m1, m2, m3, . . . , mn => There are 2n possibilities. Every codeword can correct any one of errors. So (n+1) elements could be a sphere.  maximum number of spheres

Consider the string of n 0’s and 1’s as a point in n-dimension space. Each vertex is a string of n 0’s and 1’s. The space consists only of the 2n vertices. Each vertex is a possible received message, but only selected vertices are to be original messages. Single error move original message to adjacent vertex. Single error detection : the minimum distance must be at least 2. Single error correction :the minimum distance must be at least 3.

Hamming distance: the minimum number of sides of the cube we have to traverse to get from one point to another. i.e., sum of the two points (mod 2) Minimum Distance Meaning 1 2 3 4 5 Uniqueness Single-error detection Single-error correction(or double-error detection) Single-error correction + double-error detection(or triple-error detection) Double-error correction

Higher error correction: Considering that code can correct two errors Higher error correction: Considering that code can correct two errors. Then It does not mean that this number can be achieved, only that this is an upper bound. When the spheres about the message points completely exhaust the space of 2n points, leaving no points outside some sphere, the code is called a perfect code. In only a comparatively few cases do perfect code exist. They require that the inequalities be equalities.

3.7 Single-Error-Correction Plus Double-Error-Detection Codes It is seldom wise to use only single-error correction, because a double error would then fool the system in its attempts to correct, and the system would use the syndrome to correct the wrong place; thus there would be three error in the decoded message. Therefore, we need a code which can correct a single error and detect a double error. To make a double-error-detecting code from a single-error-correcting code, we add one more parity check (and one more position): this check is over the whole message.

How to make a single-error-correcting code  single-error-correcting + double-error-detecting code? Add a parity to check which is over the whole message. Original Syndrome New Parity Check Meaning 0 0 something something 0 1 1 0 Correct Error in added position Original meaning Double error