EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14
EEE377 Lecture Notes2 Announcement Test date: Thursday, 7 / 4 / 2011 ; DK11
EEE377 Lecture Notes3 Code parameters The Hamming distance –The Hamming distance between a pair of code vectors, c1 and c2 that have the same number of elements is defined as the number of locations in which their respective elements differ The Hamming weight –The Hamming weight of a code vector c is defined as the number of nonzero elements in that code vector –Equivalent to the distance between a code vector and an all-zero code vector The minimum distance –The minimum distance of a linear block code is defined as the smallest Hamming distance between any pair of code vectors in the code. –Equivalent to the smallest Hamming weight of the difference between any pair of code vectors –Equivalent to the smallest Hamming weight of the nonzero code vectors in the code Code rate –The ratio between the number of original message bits and the number of bits of the codeword –For (n,k) code, code rate = k/n.
EEE377 Lecture Notes4 Codewords for (7,4) Hamming Code Message WordParity bitsCode wordsHamming weight Min dist=?
EEE377 Lecture Notes5 Code parameters The minimum distance of a code determines the error detecting and correcting capability of the code Error detection is always possible when the number of transmission errors in a codeword is less than the minimum distance so that the erroneous word may not be seen as another valid code vector Various degrees of error control capability –Detect up to l errors per word, dmin >= l + 1 –Correct up to t errors per word, dmin >= 2 t + 1 –Correct up to t errors and detect l > t errors per word, dmin >= t + l + 1 Code rate is a measure of the code efficiency
EEE377 Lecture Notes6 Error Detection and Correction Syndrome Decoding Decoding involves parity-check information derived from the code’s coefficient matrix, P. Associated with any systematic linear (n,k) block code is a (n-k)-by- n matrix, H called the parity-check matrix. H is defined as H = [I n-k P T ] Where P T is the transpose of the coefficient matrix, P and is an (n-k)-by-k matrix. I n-k is the (n-k)-by-(n-k) identity matrix. For error detection purposes, the parity check matrix, H has the following property c.H T = (0 0 ….. 0) (ie Null matrix)
EEE377 Lecture Notes7 Syndrome Decoding c.H T = (0 0 ….. 0) (ie Null matrix) Since c=m.G, therefore m.G.H T = (0 0 …. 0) This property is satisfied only when c is correctly received. Errors are indicated by the presence of non-zero elements in the matrix. Let r denotes the 1-by-n received vector that results from sending the code vector c over a noisy channel. When there is an error, the decoding operation will give a syndrome vector, s whose elements contain at least 1 non-zero element.
EEE377 Lecture Notes8 Syndrome Decoding – Example for the (7,4) Hamming Code A (7,4) Hamming code with the following parameters n=7; k=4, m=7-4=3 The k-by-(n-k) (4-by-3) coefficient matrix, P = The generator matrix, G is, G = P = G =
EEE377 Lecture Notes9 Syndrome Decoding –Example for (7,4) Hamming Code Associated with the (7,4) Hamming Code is a 3-by-7 matrix, H called the parity-check matrix. H is defined as H = [I n-k P T ] When a codeword is correctly received, the c.H T will result in a null matrix, otherwise it will result in a syndrome vector, s
EEE377 Lecture Notes10 Syndrome Decoding –Example for (7,4) Hamming Code Example: The received code vector is [ ], check whether this is a correct codeword c.H T = [ ]
EEE377 Lecture Notes11 Syndrome Decoding –Example for (7,4) Hamming Code Example: The received code vector is [ ], check whether this is a correct codeword c.H T = [ ] = [0 0 1] – this is called the error syndrome
EEE377 Lecture Notes12 Error pattern Error pattern is an error vector E whose nonzero element mark the position of the transmission errors in the received codeword We can work out all syndromes and find the corresponding error patterns and store them in a look up table for decoding purposes For example the (7,4) Hamming code
EEE377 Lecture Notes13 Error detection & correction The error pattern, E is essentially the modulo-2 sum of the correct code vector and the erroneous received code vector. For example, c = and r= (ie error in the 3 rd bit) c + r =E = This error pattern corresponds to a syndrome vector in the look up table, 001 Recall that the syndrome vector, s = rH T s = (c + E)H T = cH T + EH T = EH T
EEE377 Lecture Notes14 Error detection and correction Therefore, the decoding procedure involves working out the syndrome for the received code vector and look up for the corresponding error pattern. Then, modulo-2 sum the error pattern, E and the received vector, r, so that c = r + E, and the correct codeword can be recovered.
EEE377 Lecture Notes15 Error detection and correction Example For message word 0010, the correctly encoded codeword is c = Due to channel noise, the received code vector is r = [ ]. Show how the decoder recover the correct codeword. 1)The decoder uses r and the H T to find the error syndrome, s S=r.H T = 001 2) Using the resulting syndrome, refer the look up table for the corresponding assumed error vector, E. S=001 corresponds to assumed error vector, E = ) Then ex-OR E and r to recover the correct codeword E+r = =
EEE377 Lecture Notes16 Error detection and correction Exercise i)For message word 0110, the correctly encoded codeword is c = Due to channel noise, the received code vector is r = [ ]. Show how the decoder recover the correct codeword. ii)For message word 0110, the correctly encoded codeword is c = Due to channel noise, the received code vector is r = [ ]. Show how the decoder performs its decoding operation. What is your observation and explain it.
EEE377 Lecture Notes17 Assignment-in Group Build up a Simulink model of a communication system that consists of a Source (Bernoulli Binary Generator), an encoder block, a binary symmetric channel and a block decoder. Simulate and compare error performance of the following block codes (7,4) Hamming Code and (15,11) Hamming Code Discuss and submit a report on your results on 7 th April 2011