450 likes | 1.04k Views
What is Cyclic Code ?. 指導教授:黃文傑 博士 學生:吳濟廷 2004.03.10. OUTLINE. Introduction Encoding Generator polynomial Decoding Parity check polynomial Syndrome testing Error correction Conclusion. Code Taxonomy. Today. Important cyclic code. BCH code Powerful random error-correcting codes
E N D
What is Cyclic Code ? 指導教授:黃文傑 博士 學生:吳濟廷 2004.03.10 Wireless Communication Lab. CGU
OUTLINE • Introduction • Encoding • Generator polynomial • Decoding • Parity check polynomial • Syndrome testing • Error correction • Conclusion
Code Taxonomy Today
Important cyclic code • BCH code • Powerful random error-correcting codes • Goley(23,12) code • Triple-error-correcting code • RS code • Nonbinary, widely used for error control in data communication and data storage
a b c d ………………… x y z z a b c d …………… w x y Cyclic Code • Definition • Linearity: sum of any two codewords in the code is also a codeword • Cyclic: any cyclic shift of a codeword in the code is also a codeword 1 cyclic shift
Cyclic shift • How do we make such a shift cyclic? Code polynomial form
general form : Generator polynomial • be a polynomial of degree (n-k) that is a factor of • Encoded codeword where has degree (k-1)
Encoding procedure 1.Multiply the message polynomial by 2.Divide by , obtaining the 3.Add to , obtaining the code polynomial
Encoding example • Using the to generate a (7,4) systematic cyclic code from the message (1011) Dividing by g(X) quotient q(x) generator g(x) reminder
Encoding (1 0 1 1) to a (7,4) cyclic code with Encoder (1 0 1 1)
Parity-check polynomial • Definition from linear block code ~ to check if the basis still has orthogonality so we could get :
no error detected error detected Syndrome testing • Purpose : to check if there’s error in received codeword • Result : syndrome polynomial • How to do the syndrome testing ?
Calculation of the syndrome • Received codeword where generator polynomial syndrome quotient
Syndrome calculator For a (7,4) cyclic code Transmitted codeword 0 1 1 1 0 0 1 Received codeword 0 1 1 0 0 0 1 error syndrome calculator ( 1 1 0 ) So we could get the by syndrome calculator What’s next ??
Error pattern the code poly. the Rx poly. (with error) or in another form so Syndrome of received codeword is exactly the same as syndrome of error pattern !!
0 1 1 0 0 0 1 0 0 0 1 0 0 0 Decoding table for (7,4) cyclic code 0 1 1 1 0 0 1 Using the look-up table So from previous example, we could get the location of error (0 0 0 1 0 0 0) and get the corrected codeword by adding the error pattern to received codeword which is
Conclusion • Cyclic code is good for error detection due to its structure • It’s so easy to implement • Convolution code next time ~
[Reference] • Simon Haykin, ”Communication systems, 3rd ed.”, pp.686~pp699, John Wiley & Sons 1994 • Bernard Sklar, “Digital communications, 2nd ed.”, pp.356~pp.366, Prentice-Hall, 2002 • 盧而輝,”錯誤控制編碼”, pp.4.1~pp.4.34, 2001