Transcription of Coding Theory Lecture Notes - www.math.uci.edu
1 Coding Theory Lecture NotesNathan Kaplan and members of the tutorialSeptember 7, 2011 These are the Notes for the 2011 Summer Tutorial on Coding Theory . I have not gone through and givencitations or references for all of the results given here, but the presentation relies heavily on two sources, vanLint sIntroduction to Coding Theoryand the book of Huffman and PlessFundamentals of Error-CorrectingCodes. I also used course Notes written by Sebastian Pancratz from a Part II course given at Cambridgeon Coding Theory and Cryptography given by Professor Tom Fisher, and my own course Notes from aCambridge Part III Arithmetic Combinatorics course given by Professor Tim Gowers. I also included notesfrom Henry Cohn s MIT course, Applied Math for the Pure Mathematician.
2 The last section of the Notes isbased on Nigel Boston s survey article, Graph Based Codes .All mistakes in these Notes are my The Main Problem of Coding Theory .. Shannon s Theorem .. Linear Codes .. Hamming Codes .. The MacWilliams Theorem and Gleason s Theorem .. Finite Fields ..82 Hamming Codes, Hadamard Codes and Combinatorial Minimal Weights and Perfect Codes .. Hadamard Matrices and Combinatorial Designs .. Combinatorial Designs ..143 Reed-Muller and Reed-Solomon Reed-Muller Codes by Generator Matrices .. Affine Geometry and Reed-Muller codes .. Reed-Solomon Codes .. Decoding ..214 Cyclic and BCH Cyclic Codes .. BCH Codes.
3 245 Shannon s Noisy Channel Coding Definitions .. The Proof of Shannon s Theorem ..2916 Weight Enumerators and the MacWilliams Weight enumerators .. Characters .. Discrete Poisson Summation and the Proof of the MacWilliams Theorem .. Some Applications of the MacWilliams Theorem ..357 Bounds on An Introduction to Bounds .. The Plotkin Bound .. Griesmer Bound and the Varshamov Bound .. Elias Bound .. Krawtchouk Polynomials and the Linear Programming Bound .. Asymptotic Bounds ..488 The Golay Constructions of the Golay codes .. Uniqueness of the Golay Codes .. (13,5) .. Extremal Type I and Type II Codes ..579 Codes and Some Basics of Lattices.
4 Theta Functions and Extremal Lattices .. Lattices from Codes: Construction A ..5910 Graph Based Trellises .. Tanner Graphs .. Low Density Parity Check Codes ..6321 IntroductionThanks to Tony Feng and Joseph Moon for help typing this The Main Problem of Coding TheorySuppose two parties are trying to communicate over a noisy channel. Consider a first example. All we wantto do is send a single bit as our message,{0}or{1}. When we send a bit there is a probabilitypthat thebit received does not match the bit sent. The main problem of Coding theorem can be phrased as follows:How do we build in redundancy into messages so that the errors introduced by the channelcan be identified and corrected?
5 Solution is to just send chunks of bits repeated many many times. For example, suppose weagree to send 000 or 111, and we receive 001. We know that we have at least one error. The probability thatwe send 000 and receive 001 is (1 p)2p, and the probability that we send 111 and receive 001 isp2(1 p).Ifp <12then it is likelier that we sent 000 than that we sent 111. We decode this message as is a type of decoding where we take our received word as given and have each bit vote on what themessage sent was. We call this Maximum Likelihood Decoding . Given our received word, we determinewhich of the message words is most likely to have been we ask for the probability that we make an error in decoding. We do this exactly in the case wherethere are two or more errors.
6 The probability of this occurring is:(32)(1 p)p2+(33)p3 3p2 p,since whenpis small, thep3terms are much smaller than ourp2term. If we do no encoding and just senda single bit then the probability it is received incorrectly isp. Therefore, we see that whenpis small, thisrepetition helps us decode can also ask for the expected number of errors after decoding. If we have any errors then we musthave three. So the expected number is3(3(1 p)p2+p3) p,wherepis the expected number of errors with no generally, suppose we agree to send each bitntimes, where for convenience we assume thatnisodd. With the same analysis as above, we see that the probability of decoding incorrectly is(nn+12)pn+12(1 p)n 12+..+(nn)pn (nn 12)pn+12,whenpis example, whenn= 5 this probability isp3(6p2 15p+ 10).
7 In the exercises you will show that whenp <12the probability of making an error after decoding approaches 0 asngoes to subset of{0,1}nconsisting of the two words (0,0,..,0) and (1,1,..,1) is known as thebinary repetition code of is a clear tradeoff here. We can decrease our probability of decoding incorrectly at the price ofsending longer and longer we have analphabetofqsymbols. Usually we will takeqto be a prime power and the set ofsymbols will correspond to the elements of the finite field ofqelements. We will discuss finite fields more inthe next Lecture . For today we will always takeq= error-correcting code is a subset ofFnq. We will send messages in blocks ofnsymbols fromour alphabet. This gives a block code of (u1.)
8 ,un) andv= (v1,..,vn). The Hamming distanced(u,v) is defined asd(u,v) = #{i|ui6=vi}.The weight of a word is its distance from we want to send a 3-bit messagex1,x2,x3. We also send three extra check-bits, definedasx4:=x2+x3, x5:=x3+x1andx6:=x1+ resulting messages form a code of length 6. There are 8 codewords since given any (x1,x2,x3) theother three bits are we transmitcand receiveb:=c+e. We call this vectorethe the error pattern. We will seethat there is a straightforward way to decode received messages, giving a code better than the repetitioncode in some sense. Sincex4+x2+x3= 0, we see thatb2+b3+b4=e4+e2+e3. Similar relations holdfor the other three check-bits. We defines1=b2+b3+b4=e2+e3+e4s2=b1+b3+b5=e1 +e3+e5s3=b1+b2+b6=e1+e2+ (s1,s2,s3) we need to choose the most likely error pattern (e1.
9 ,e6) which leads to this 3-tuple. Itis easy to see that the most likely error pattern is the one with the smallest (s1,s2,s3)6= (1,1,1) then there s a uniqueeof lowest weight which gives (s1,s2,s3). For example(s1,s2,s3) = (1,0,0) givese= (000100). When (s1,s2,s3) = (1,1,1), there are three equally likely possibili-ties:{(100100),(010010),(00100 1)}. Suppose we agree to choose the smallest weight error when there is oneand fix an arbitrary choice otherwise. What s the probability of decoding correctly? If there are no errorsor just one, we are always correct; if there are two, we are correctly in only one of three cases. So,Prob(decoding correctly) = (1 p)6+ 6(1 p)5p+ (1 p)4p2 (1 p) example, whenp=110the left hand side is while the right hand side is code and the repetition code both help us to correct errors in transmission, but we would like someway to say which one is better.
10 One important measure of the effectiveness of a code is the rateRof a code of lengthnwith an alphabet ofqsymbols is defined asR=logq|C| |C|=qk, thenR= example, we see that the rate of the repetition code of lengthnis1n. The rate of the code of length6 defined above is36= want three things out of a good We want a largeminimum distance. For example ifd= 2e+ 1 we can then automatically correct errorsof weight We want|C|to be as large as possible so that we can send many possible We want good encoding and decoding third point is a little tricky. Usually given a message deciding how to send it as a codeword, theencoding problem, is easy. Decoding is often difficult. Given a received message inFnqhow do we determinewhich codeword is closest to it?
