The Development of Error-Correcting Codes Chair Prof. Trieu-Kien Truong IEEE Fellow, and Editor, IEEE Transactions on Communications Department of Information Engineering, I-Shou University, Kaohsiung County, Taiwan, 840, R.O.C. Education: Ph.D.,University of Southern California, Los Angeles, CA., January, 1976. M.S.E.E., Washington University, St. Louis, Missouri, June, 1971 . B.S.E.E., National Cheng-Kung University, Taiwan, June, 1967. Major: Data Compression, Error Correction Coding, Digital Video Transmission, VLSI Architecture, Mathematics, Digital Signal Processing and Multimedia. Experience I-Shou University University of Southern California 1976-Aug. 1995 Department of Electrical Engineering, Communication Science Institute. Ultimate Scientific Applications Inc. 1993-Aug., 1995 Jet Propulsion Laboratory (JPL) 1975-1992 Professor and Dean of College of Electrical and Sept. 1997-Present Information Engineering Professor and Chairman of Information Engineering Sept.1995-Present Communications Systems Research Section. Memorial Hospital Medical Center of Long Beach 1978-1985 Department of Radiology. Professor Claude Elwood Shannon (April 30, 1916 – February 24, 2001) The father of information theory The Shannon limit: C. E. Shannon, ”A Mathematical Theory of Communication,” Bell Syst. Tech. J., pp. 379-423(Part 1); pp. 623-656(Part 2), July 1948. Professor Irving Stoy Reed (born 1923 in Seattle, Washington) Professor Loo-Keng Hua (華羅庚)(November 12,1910- June 12,1985) History(1) The first people that Dr. Reed knew in coding other than himself were David Muller and David Huffman. David Muller and Dr. Reed were classmates at Caltech. David Huffman and Dr. Reed met while on the same ship in the U.S. Navy. During the early 1940s none of them knew anything about error-correcting codes; they had not yet been discovered. History of the Error-Correcting Code(1/6) In 1947, Dr. Hamming described the original idea of the error-correcting codes first and constructed Hamming code. In 1948, the paper was published as The Bell System Technical, titled, “Mathematical Theory of Communication,” by C. E. Shannon. In 1949, M. J. E. Golay published an article called Notes on digital coding in the Proceedings of the Institute of Electrical and Electronic Engineers. (23, 12) Golay code was described. In 1954, Reed-Muller codes were described. History of Reed-Muller Codes(1/3) In a notation of his own invention, Dr. Dave Muller described a new error-correction code in his report on logic design. His codes were based on what he called a Boolean Net Function. Dr. Reed decided what he must have had in mind were what are called multinomials over a Boolean field, the finite or Galois field GF(2) of two elements 0 and 1. History of Reed-Muller Codes(2/3) From Professor Robert Dilworth at Caltech, Dr. Reed had learned much about algebraic ring theory and polynomial over fields. His idea of using polynomials over the primitive finite field GF(2) of two elements was very fruitful. History of Reed-Muller Codes(3/3) By constraining the maximum degree of these multinomials over N variables Dr. Reed managed to construct an error-correcting code which was equivalent to the codes Dr. Muller had found. The algebraic structure imposed on these multinomials made it possible for Dr. Reed to find a decoding algorithm for these codes which is now called majority-logic decoding. Also, Dr. Reed demonstrated that these codes are group codes. I. S. Reed, A class of multiple-error-correcting codes and the decoding scheme,Technical Report No. 44, Lincoln Laboratory, M. I. T. (1953). D. E. Muller, Metric properties of Boolean algebra and their applications to switching circuits, Report No. 46, Digital Computer Laboratory, University of Illinois (1953). History of the Error-Correcting Code(2/6) In 1957, cyclic codes were invented by Dr. Prange at the Air Force Cambridge Research Center (AFCRC). In 1958, quadratic residue (QR) codes were invented by Dr. Prange at the Air Force Cambridge Research Center (AFCRC). In 1959/1960, Dr. Alexis Hocquenghem, Dr. R. C Bose, and Dr. D. K. Ray-Chaudhuri discovered Bose–Chaudhuri–Hocquenghem (BCH) codes. A. Hocquenghem, “Codes correcteurs d'erreurs,” Chiffres (Paris), 2:147– 156, September 1959. R. C. Bose and Dr. D. K. Ray-Chaudhuri, “On a class of error-correcting binary codes,” Information and control, 3, (1960), 68–79. History of the Error-Correcting Code(3/6) In 1960, Reed-Solomon (RS) codes were invented by Irving S. Reed and Gustave Solomon. In 1967/1969, an efficient decoding algorithm (Berlekamp Massey algorithm) for large-distance RS codes was developed by Elwyn Berlekamp and James Massey. Irving S. Reed and Gustave Solomon,”Polynomial Codes over Certain Finite Fields,“ Journal of the Society for Industrial and Applied Mathematics, 1960. E.R.Berlekamp, Algebraic coding theory, McGraw-Hill, New York, 1968. J.L. Massey, Shift-register synthesis and BCH decoding, IEEE Trans. on Inform. Theory, vol. IT-15, January 1969. History of the Error-Correcting Code(4/6) The BCH codes were given their present name by W. Wesley Peterson in his “Error Correcting Codes” published by John Wiley and Sons (1961). Peterson also redefined them in a cyclic context to complement his own work in algebraic decoding. More coders and their codes owe their name and fame to Peterson than anyone of whom we know. History of the Error-Correcting Code(5/6) Perhaps it was the Galois field incorporation; perhaps it was the nonbinary nature of the code; but for years after its publication the Reed-Solomon code was viewed as interesting mathematics and little else. It simply did not appear to be practical with the computing capability of the day. Even in 1980s, when people at JPL began to build and fly spacecraft with error-correction coding, they turned not to the Reed-Solomon code but to the more straightforward but less powerful Reed-Muller code. History of the Error-Correcting Code(6/6) However, in the years since the late 1970s, concurrent with the development of more powerful computers and more efficient decoding architectures, such as that of Berlekamp, the Reed-Solomon code has been widely used in industrial and consumer electronic devices. At present billions of dollars in modern technology, the compact disc memories, digital communications, etc. depend on ideas that stem from the original work of Solomon and myself almost 34 years ago. Information source Source encoder Channel encoder Modulator Channel Destination Source decoder Channel decoder Noise Demodulator Block diagram of a typical data transmission or storage without using the error-correcting code Encode by using the RS code Introduction to Algebra(1/3) Finite field was invented by the early 19th century mathematician, Evariste Galois. Galois was a young French math whiz who developed a theory of finite fields, now known as Galois fields, before being killed in a duel at the ripe "old" age of 21. For well over 100 years mathematicians looked upon Galois fields as elegant mathematics but of no practical value. Introduction to Algebra(2/3) It was Dr. Reed’s idea to use the elements of a finite field as an alphabet to use symbols rather than bits, e.g., half-bytes or bytes for the symbols. This was the beginning of the thought process that led ultimately to the ReedSolomon codes. Introduction to Algebra(3/3) Definition of a field (F, +, ×): F is closed under “+” and “×” “+” and “×” are associative For all elements a and b in F, a+b=b+a. The additive identity is denoted by 0. a+(-a)=0, -a is the inverse with respect to addition. For all nonzero elements a and b in F, a×b=b×a. The multiplicative identity (unit element) is denoted by 1. a× (a-1)=0, a-1 is the inverse with respect to multiplication. For any three elements a, b, and c in F, a×(b+c)=a×b+a×c. Construction of m Galois field GF(2 ) Consider m=3. Three representations for the elements of GF(2m) generated by the primitive polynomial p(x)=x3+x+1over GF(2): Power representation Polynomial representation 3-Tuple representation 0 0 (0 0 0 ) 1=α7 1 (1 0 0 ) α α α2 (0 1 0 ) α2 (0 0 1) α3 1+α (1 1 0) α4 α+α2 (0 1 1) α5 1+α+α2 (1 1 1) α6 1 (1 0 1) +α2 Types of Codes Block codes: linear codes, cyclic codes,… Convolutional codes Random-like codes: turbo codes, LowDensity Parity-Check (LDPC) codes… Linear black codes (n, k) linear black codes: a message m of k bits is encoded into a codeword c (code vector) with n bits. An (n, k) block code is said to be linear if the vector sum of two codeswords is also a codeword. An (n, k) block code is spanned by k linearly independent vectors, g0, g1,…,gk-1. The generator matrix G: g0 g 1 G , and c mG g k 1 An example of linear black codes-(6, 3) linear block code Message (a0, a1, a2) (c0, c1, …, c5) (0, 0, 0) (0, 0, 0, 0, 0, 0) (1, 0, 0) (0, 1, 1, 1, 0, 0) (0, 1, 0) (1, 0, 1, 0, 1, 0) (0, 0, 1) (1, 1, 0, 0, 0, 1) (1, 1, 0) (1, 1, 0, 1, 1, 0) (1, 0, 1) (1, 0, 1, 1, 0, 1) (0, 1, 1) (0, 1, 1, 0, 1, 1) (1, 1, 1) (0, 0, 0, 1, 1, 1) Codewords g0 g 0 1 1 1 0 0 1 G 1 0 1 0 1 0 1 1 0 0 0 1 g k 1 m=(1, 1, 0) c= mG =1(011100)+1(101010)+0(110001) =(110110) Cyclic codes An (n, k) linear code C is called a cyclic code if any cyclic shift of a codeword c is another codeword. That is, c =(c , c , …,c ) is a codeword in C, then 0 1 n-1 c’=(c , …c , c ) is also a codeword in C. The generator polynomial g(x) is with degree n-k. All codewords can be represented as c(x)=m(x)g(x) The generator polynomial g(x) of (n, k) cyclic code is a factor of xn-1. 1 n-1 0 (23, 12, 7) Goaly Code (23, 12, 7) Golay code with minimum distance of 7 is the only known multiple-error-correcting binary perfect code. Generator polynomial g1(x) or g2(x) g1(x)=1+x2+x4+x5+x6+x10+x11 g2(x)=1+x+x5+x6+x7+x9+x11 Reed-Solomon Codes Nonbinary cyclic codes with symbols belong to finite field GF(2m) They are widely used in data communications and storage systems for error control. A (n, k, d) RS code with the following parameters: n=2m-1, n-k=2t, k=2m-1-2t, d =2t-1 The generator polynomial g(x) of a t-error-correcting RS code: min g ( x) ( x )( x 2 ) ( x 2t ) g 0 g1 x g 2t 1 x 2 t 1 x where α is a primitive element in GF(2m) 2t An example of the RS codes Let m=8 and t =16. The RS code has the following parameters: n=2m-1=255, n-k=2t=16, k=2m-1-2t=223, d =2t-1=33 (255, 223, 33) RS code is NASA standard code for satellite and space communications. min Voyager 1 and 2 NASA photograph of one of the two identical Voyager space probes Voyager 1 and Voyager 2 launched in 1977 Deep Space Application of Error-Correcting Code- Voyager spacecraft Uranus - Discrete Cloud Uranus - Final Image 1996-11-26 1996-01-29 Ariel at Voyager Closest Approach 2000-06-02 (n, k, d) Binary Quadratic Residue (QR) Codes(1/6) Binary quadratic residue (QR) codes are the most powerful known cyclic codes. However, they are very hard to decode. Golay code is famously one of QR codes and is extensively applied in error control system of Voyager I and II. (n, k, d) Binary Quadratic Residue (QR) Codes(2/6) Definition of quadratic residue Let n 8t 1 be a prime number. The set Q of quadratic residue modulo n is the set of nonzero squares modulo n; that is, Q {i | i j 2 mod n for 1 j n 1}. (n, k, d) Binary Quadratic Residue (QR) Codes(3/6) Definition of quadratic residue code Let m be the smallest positive integer such that n divides 2 1. Also, the element is a primitive m m nth root of unity in GF (2 ). An (n, k, d) binary QR code is a cyclic code with the generator polynomial of the form g ( x) ( x i ). iQ (n, k, d) Binary Quadratic Residue (QR) Codes(4/6) (n, k, d) Binary Quadratic Residue (QR) Codes(5/6) 0 10 QR23 QR47 QR89 QR113 -1 10 -2 Pb 10 -3 10 -4 10 -5 10 0 1 2 3 4 Eb/No (dB) 5 6 7 8 Bit Error Probability Pb versus Eb/N0 for the (113, 57, 15), (89, 45, 17), (47, 24, 11), and (23, 12, 7) QR codes with the hard-decision decoder. (n, k, d) Binary Quadratic Residue (QR) Codes(6/6) Recently, six decoders for the QR codes with parameters (71, 36, 11), (79, 40, 15), (97, 49, 15), (103, 52, 19), (113, 57, 15), and (89, 45, 17) have been proposed by Truong et al. All binary QR codes of lengths less than or equal to 113 are then decoded. Publisher Papers of QR Codes(1/2) [1] Trieu-Kien Truong, Chong-Dao Lee, Yaotsu Chang, and Wen-Ku Su, "A New Scheme to Determine the Weight Distributions of Binary Extended Quadratic Residue Codes," IEEE Transactions on Communications , vol.57, no.5, pp.1221-1224, 2009.5 [2] Trieu-Kien Truong, Pei-Yu Shih, Wen-Ku Su, Chong-Dao Lee, an Yaotsu Chang, "Algebraic Decoding of the (89, 45, 17) Quadratic Residue Code," IEEE Transactions on Information Theory , vol.54, no.11, pp.5005-5011, 2008.11 C.D. Lee, Yaotsu Chang, and T.K. Truong, "A Result on the Weight Distributions of Binary Quadratic Residue Codes," Designs, Codes and Cryptography , vol.42, pp.15-20, 2007.1 Y.H. Chen, T.K. Truong, Y. Chang, C.D. Lee and S.H. Chen, "Algebraic Decoding of Quadratic Residue Codes Using Berlekamp-Massey Algorithm," Journal of Information Science and Engineering , vol.23, pp.127145, 2007.1 T.K. Truong, Y. Chang, Y.H. Chen and C.D. Lee, "Algebraic Decoding of (103,52,19) and (113,57,15) Quadratic Residue Code," IEEE Trans. on Communications , vol.53, no.5, pp.749-754, 2005.5 [3] [4] [5] Publisher Papers of QR Codes(2/2) [6] T.K. Truong, Y. Chang, and C.D. Lee, "The Weight Distributions of Some Binary Quadratic Residue Codes," IEEE Trans. on Information Theory , vol.51, no.9, pp.1776-1782, 2005.5 [7] T.K. Truong, Y.Chang, I.S.Reed, H.Y.Cheng and C.D.Lee, "Algebraic Decoding of (71,36,11), (79,40,15), and (97,49,15) Quadratic Residue Codes," IEEE Trans. on Communications , vol.51, no.9, pp.1463-1473, 2003.9 [8] Ruhua He, Irving S. Reed, Trieu-Kien Truong, and Xuemin Chen, "Decoding the (47,24,11) Quadratic Residue Code," IEEE Trans. on Information Theory , vol.47, no.3, pp.1181-1186, 2001.3 [9] X. Chen and I.S. Reed, and T.K. Truong, "Decoding the (73,37,13) Quadratic Residue Code," IEE Proceedings-Computer Digital Techniques , vol.141, no.5, pp.253-258, 1994.9 [10] I.S.Reed, T.K.Truong, X.Chen, and X.Yin, "Algebraic Decoding of the (41,21,9) Quadratic Residue Code," IEEE Trans. on Information Theory, vol.38, no.3, pp.974-986, 1992.5 [11] I.S.Reed, X.Yin, and T.K. Truong, "Algebranic Decoding of the (32,16,8) Quadratic Residue Code," IEEE Trans. on Information Theory , vol.36, no.4, pp.876-880, 1990.7 [12] I.S. Reed, X. Yin, and T.K. Truong, J.K. Holmes, "Decoding the (24,12,8) Golay code," IEE Proceedings-Computers and Digital Techniques , vol.137, no.3, pp.202-206, 1990.5 Publisher Papers of RS Codes(1/2) Tsung-Ching Lin, Pei-Ding Chen, and Trieu-Kien Truong, "Simplified Procedure for Decoding Nonsystematic Reed-Solomon Codes over GF(2^m) Using Euclid's Algorithm and the Fast Fourier Transform," IEEE Transactions on Communications , vol.57, no.6, pp.1588-1592, 2009.6 T.C. Lin, T.K. Truong, and P.D. Chen, "A Fast Algorithm for the Syndrome Calculation in Algebraic Decoding of Reed-Solomon Codes," IEEE Trans. on Communications , vol.55, no.12, pp.2240-2244, 2007.12 T.K. Truong, P.D. Chen, L.J. Wang, and T.C. Cheng, "Fast Transform for Decoding Bogh Errors and Erasures of Reed-Solomon Codes Over GF(2m) for 8≦m≦10," IEEE Transactions on Communications , vol.54, no.2, pp.181-186, 2006.2 Y.W. Chang、T.K. Truong、J.H. Jeng, "VLSI Architecture of Modified Euclidean Algorithm for Reed-Solomon Code," Information Sciences , vol.155, no.Issues 1-2, pp.139-150, 2003.10 T.-K. Truong, J.-H. Jeng, and T. C. Cheng, "A New Decoding Algorithm for Correcting Both Erasures and Errors of Reed-Solomon Codes," IEEE Trans. on Communications , vol.51, no.3, pp.381-388, 2003.3 Lung-Jen Wang, Wen-Shyong Hsieh, Trieu-Kien Truong, and Irving S. Reed, and T. C. Cheng, "A Fast and Efficient Computation of Cubic-Spline Interpolation in Image Codec," IEEE Trans. on Signal Processing , vol.49, no.6, pp.1189-1197, 2001.6 Trieu-Kien Truong, Jyh-Horng Jeng, Irving S. Reed, "Fast Algorithm for Computing the Roots of Error Locator Polynomials to Degree 11 in ReedSolomon Decoders," IEEE Trans. on Communications , vol.49, no.5, pp. 779-783, 2001.5 Publisher Papers of RS Codes(2/2) Jyh-Horng Jeng, and Trieu-Kien Truong, "On decoding of both errors and erasures of a Reed-Solomon code using an inverse-free Berlekamp-Massey algorithm," IEEE Trans. on Communications , vol.47, no.10, pp.1488-1494, 1999.10 T.K. Truong, R.L Miller and I.S.Reed, "Fast Technique for Computing Syndromes of BCH and Reed-Solomon Codes," Electronics Letters , vol.15, no.22, pp.720-721, 1997.1 C.C. Hsu, I.S. Reed, and T.K. Truong, "Inverse Z-Transform by Mobius Inversion and the Error Bounds of Aliasing in Sampling,," IEEE Trans. on Signal Processing , vol.42, no.10, pp.2823-2831, 1994.10 C.C. Hsu, I.S. Reed, and T.K. Truong, "Error Correction Capabilities of Binary Mapped Reed-Solomon Codes with Parity Bits Appended to All Symbols," IEE Proceedings- Communications, vol.141, no.4, pp.209-211, 1994.8 A. Shiozaki, T.K. Truong, K.M. Cheung, and I.S. Reed, "Fast Transform Decoding of Nonsystematic Reed-Solomon Codes," IEE ProceedingsComputers and Digital Techniques , vol.137, no.2, pp.139-143, 1990.3 T.K. Truong, W.L. Eastman, I.S. Reed, and I.S. Hsu, "Simplified Procedure for Correcting Both Errors and Erasures of Reed-Solomon Codes Using Euclidean Algorithm," IEE Proceedings , vol.135, Pt. E, no.6, pp.318-324, 1988.11 The End That’s all folks. Thank you very much! . Decoder of linear codes (1/3) Consider an (n, k) linear code with generator matrix G= P I k . Parity-check matrix H= I nk P T and c.HT=0 The received vector r=c+e, where c and e are the transmitted codeword and error pattern, respectively. The syndrome of r is s=r.HT=(c+e).HT=c.HT +e.HT= e.HT Decoder of linear codes (2/3) Consider a (6, 3) linear code generated by 0 1 1 1 0 0 G 1 0 1 0 1 0 [ P I 3 ] 1 1 0 0 0 1 Its parity-check matrix is 1 0 0 0 1 1 T H 0 1 0 1 0 1 [ I 3 P ] 0 0 1 1 1 0 Decoder of linear codes (3/3) Syndrome look-up table syndrome s (s0, s1, s2) Correctable error patterns (e0, e1, e2, e3, e4, e5) (0, 0, 0) (0, 0, 0, 0, 0, 0) (1, 0, 0) (1, 0, 0, 0, 0, 0) (0, 1, 0) (0, 1, 0, 0, 0, 0) (0, 0, 1) (0, 0, 1, 0, 0, 0) (0, 1, 1) (0, 0, 0, 1, 0, 0) (1, 0, 1) (0, 0, 0, 0, 1, 0) (1, 1, 0) (0, 0, 0, 0, 0, 1) (1, 1, 1) (1, 0, 0, 1, 0, 0)