Cyclic Code.

Slides:



Advertisements
Similar presentations
Noise, Information Theory, and Entropy (cont.) CS414 – Spring 2007 By Karrie Karahalios, Roger Cheng, Brian Bailey.
Advertisements

Computer Interfacing and Protocols
Error Control Code.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Lecture 12 Layer 2 – Data Link Layer Protocols
296.3Page :Algorithms in the Real World Error Correcting Codes II – Cyclic Codes – Reed-Solomon Codes.
15-853:Algorithms in the Real World
Information and Coding Theory
NETWORKING CONCEPTS. ERROR DETECTION Error occures when a bit is altered between transmission& reception ie. Binary 1 is transmitted but received is binary.
Chapter 10 Error Detection and Correction
Fundamentals of Computer Networks ECE 478/578 Lecture #4: Error Detection and Correction Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
PART III DATA LINK LAYER. Position of the Data-Link Layer.
Error detection and correction
Data Communications Chapter 7 Error Detection. Despite the best prevention techniques, errors may still happen. To detect an error, something extra has.
Chapter 2 : Direct Link Networks (Continued). So far... Modulation and Encoding Link layer protocols Error Detection -- Parity Check.
7/2/2015Errors1 Transmission errors are a way of life. In the digital world an error means that a bit value is flipped. An error can be isolated to a single.
Error Detection and Correction
Error Detection and Correction Rizwan Rehman Centre for Computer Studies Dibrugarh University.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
COM342 Networks and Data Communications
PART III DATA LINK LAYER. Position of the Data-Link Layer.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Data Link Layer PART III.
Error Coding Transmission process may introduce errors into a message.  Single bit errors versus burst errors Detection:  Requires a convention that.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 14.
Cyclic Code. Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message.
Lecture 6: Framing and Error Detection-Data Link Layer Functions
COEN 180 Erasure Correcting, Error Detecting, and Error Correcting 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.
Chapter 10. Error Detection and Correction
Data and Computer Communications by William Stallings Eighth Edition Digital Data Communications Techniques Digital Data Communications Techniques Click.
Cyclic Redundancy Check CRC Chapter CYCLIC CODES Cyclic codes are special linear block codes with one extra property. In a cyclic code, if a codeword.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Data Link Layer PART III.
Error Detection and Correction
Channel Coding Binit Mohanty Ketan Rajawat. Recap…  Information is transmitted through channels (eg. Wires, optical fibres and even air)  Channels are.
Overview All data can be corrupted, for reliable communications we must be able to detect and correct errors implemented at the data link and transport.
Error Detection and Correction
Computer Communication & Networks Lecture 9 Datalink Layer: Error Detection Waleed Ejaz
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.
Review.
10.1 Chapter 10 Error Detection and Correction Data can be corrupted during transmission. Some applications require that errors be detected and.
Error Detection. Data can be corrupted during transmission. Some applications require that errors be detected and corrected. An error-detecting code can.
Error Detection and Correction – Hamming Code
Error Detection and Correction
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
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.
Part III: Data Link Layer Error Detection and Correction
Exercise in the previous class (1) Define (one of) (15, 11) Hamming code: construct a parity check matrix, and determine the corresponding generator matrix.
Chi-Cheng Lin, Winona State University CS412 Introduction to Computer Networking & Telecommunication Error Correction/Detection.
ECE 442 COMMUNICATION SYSTEM DESIGN LECTURE 10. LINEAR BLOCK CODES Husheng Li Dept. of EECS The University of Tennessee.
Class Report 林格名 : Reed Solomon Encoder. Reed-Solomom Error Correction When a codeword is decoded, there are three possible outcomes –If 2s + r < 2t (s.
V. Non-Binary Codes: Introduction to Reed Solomon Codes
Error Detection and Correction
Subject Name: COMPUTER NETWORKS-1
Communication Networks: Technology & Protocols
DATA COMMUNICATION AND NETWORKINGS
Chapter 10 Error Detection And Correction
Packetizing Error Detection
Packetizing Error Detection
Cyclic Code.
Packetizing Error Detection
Error Detection and Correction
Error Detection and Correction
Types of Errors Data transmission suffers unpredictable changes because of interference The interference can change the shape of the signal Single-bit.
Chapter 10 Error Detection and Correction
Presentation transcript:

Cyclic Code

Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message vector with the generator matrix. Minimum weight as large as possible. If minimum weight is 2t+1, capable of detecting 2t error bits and correcting t error bits.

Cyclic Codes Hamming code is useful but there exist codes that offers same (if not larger) error control capabilities while can be implemented much simpler. Cyclic code is a linear code that any cyclic shift of a codeword is still a codeword. Makes encoding/decoding much simpler, no need of matrix multiplication.

Cyclic code Polynomial representation of cyclic codes. C(x) = Cn-1xn-1 + Cn-2xn-2 + … + C1x1 + C0x0 , where, in this course, the coefficients belong to the binary field {0,1}. That is, if the codeword is (1010011) (c6 first, c0 last), we write it as x6 + x4 + x + 1. Addition and subtraction of polynomials – Done by doing binary addition or subtraction on each bit individually, no carry and no borrow. Division and multiplication of polynomials. Try divide x3 + x2 + x + 1 by x + 1.

Cyclic Code A (n,k) cyclic code can be generated by a polynomial g(x) which has degree n-k and is a factor of xn - 1. Call it the generator polynomial. Given message bits, (mk-1…m1m0 ), the code is generated simply as: In other words, C(x) can be considered as the product of m(x) and g(x).

Example A (7,4) cyclic code with g(x) = x3 + x + 1. If m(x) = x3 + 1, C(x) = x6 + x4 + x + 1.

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? Or, is this a code polynomial?

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 used in IEEE 802 g(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 all single and double bit errors all errors with an odd number of bits all burst errors of length 32 or less

Division Circuit You probably would ask that we can also detect errors with the Hamming code. However it needs matrix multiplication. The division can actually be done very efficiently, even with hardware. Division of polynomials can be done efficiently by the division circuit. (just to know there exists such a thing, no need to understand it)

Cyclic Code One way of thinking it is to write it out as the generator matrix So, clearly, it is a linear code. Each row of the generator matrix is just a shifted version of the first row. Unlike Hamming Code. Why is it a cyclic code?

Example The cyclic shift of C(x) = x6 + x4 + x + 1 is C1(x) = x5 + x2 + x + 1. It is still a code polynomial, because the code polynomial is m(x) = x2 +1.

Cyclic Code Given a code polynomial We have Therefore, C1(x) is the cyclic shift of C(x) and has a degree of no more than n-1 divides g(x) (why?) hence is a code polynomial.

Cyclic Code To generate a cyclic code is to find a polynomial that has degree n-k is a factor of xn -1.

Generating Systematic Cyclic Code A systematic code means that the first k bits are the data bits and the rest n-k bits are parity checking bits. To generate it, we let where The claim is that C(x) must divide g(x) hence is a code polynomial. 33 mod 7 = 5. Hence 33-5=28 can be divided by 7.

Example A (7,4) cyclic code with g(x) = x3 + x + 1. If m(x) = x3 + 1, the non-systematic code is C(x) = x6 + x4 + x + 1. What is the systematic code?

Example A (7,4) cyclic code with g(x) = x3 + x + 1. If m(x) = x3 + 1, the non-systematic code is C(x) = x6 + x4 + x + 1. What is the systematic code? r(x) = m(x) x3 mod g(x) = (x6 + x3) mod x3 + x + 1 = x2 + x Therefore, C(x) = x6 + x3 + x2 + x.

Cyclic Redundancy Check (CRC) In communications, usually the data is followed by a checksum. Checksum is calculated according to a cyclic code, therefore it is called Cyclic Redundancy Check (CRC). To be more precise, it is done by calculating the systematic code, with the data packet as the message polynomial. The receiver, once received the data followed by the checksum, will calculate the checksum again, if match, assume no error, otherwise there is error, either in the data or the checksum.

Research Challenge In wireless communications, a packet of 1500 bytes usually has less then 10 byte errors, usually clustered in a few locations, if corrupted. Standards today say retransmit everything. Any better ideas?

Remaining Questions for Those Really Interested Decoding. Divide the received polynomial by g(x). If there is no error you should get a 0 (why?). Make sure that the error polynomial you have in mind does not divide g(x). How to make sure to choose a good g(x) to make the minimum degree larger? Turns out to learn this you have to study more – it’s the BCH code.

Other codes RS code. Block code. Used in CD, DVD, HDTV transmission. LDPC code. Also block code. Reinvented after first proposed 40 some years ago. Proposed to be used in 802.11n. Achieve close-to-Shannon bound Trellis code. Not block code. More closely coupled with modulation. Turbo code. Achieve close-to-Shannon bound.