Error Correction Codes 1. Dealing with errors ( 1.to include enough redundant information along each block of the data that is sent 2.to include only enough redundancy to allow the receiver to deduce that an error occurred , but not which error and have it request a retransmission 2. Types of error correcting codes (1.Hamming codes 2. Binary convolutional codes 3. Reed-solomon codes 4. Low density parity check codes 1. Hamming codes 1. Usage (it is used for error correction that may occur when the data is sent from the sender to the receiver) 2. Redundant bits? (Extra binary bits that are generated and added to the original data to ensure that no bits were lost during the data transfer) 3. Placing the redundant bits (they are placed at certain calculated positions to eliminate errors) 4. Hamming distance (distance between two redundant bits is called hamming distance) 1 Example − Construct the even parity Hamming code word for a data byte 1001101. 2. Binary convolutional codes. 1) Role of encoder (process a sequence of input bits and generates a sequence of output bits, the output depends on the current and previous inputs bits) 2) Constraint length (the number of previous bits on which the output depends is called the constraint length of the code) 3) Specifying convolutional codes ( in terms of their rate and constraint length) 4) Usage? ( GSM mobile phones, satellite communication ,deployed networks etc) 5)Diagram 2 1) What each input bit produces? ( two output bits which that are XOR sums of input and internal state) 2) Code rate? (since each input bit produces two output bits therefore the code rate is 1/2) 3) Keeping the internal state? ( in six memory registers , each time when a new input bit comes in ,the values in the registers shifted to right) 4) Decoding convolutional bits? (A convolutional code is decoded by finding the sequence of input bits that is most likely to have produced the observed sequence of output bits) 3. Reed-Solomon codes. 1) Linear block codes ( they are often systematic ) 2) Hamming vs Reed Solomon codes? ( hamming codes operate on individual bits whereas Reed Solomon codes operate on m bit symbols) 3 3) Basis of Reed-Solomon codes ( every n degree polynomial is uniquely determined by n+1 points) 4) Length of code words (For m bit symbols, the code words are 2m−1 symbols long. A popular choice is to make m = 8 so that symbols are bytes. A code word is then 255 bytes long. The (255, 233) code is widely used; it adds 32 redundant symbols to 233 data symbols.) 5) Widely used ( because of their strong error correction properties , particularly for burst errors) 6) Examples of usage( data over cable, satellite communications, and perhaps most ubiquitously on CDs, DVDs, and Blu-ray discs) 7) Reed-Solomon + convolutional code (By adding a Reed-Solomon code within the convolutional code, the Reed-Solomon decoding can mop up (wash out) the error bursts, a task at which it is very good) 4. Low-Density Parity Check codes. 1. Linear block codes ( invented by Robert Gallagher) 2. Forming of output bits( from only a fraction of input bits , which leads to a matrix representation of the code that has a low density of 1’s) 3. Usage ( for large block sizes and have excellent error-correction abilities that out performs many other codes in practice) 4 4. Approximation algorithm( the received code word is decoded with an approximation algorithm that iteratively improves on a best bit of the received data to a legal code word) 5