Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
1 TCOM 370 NOTES 99-9 CYCLIC CODES, AND THE CRC (CYCLIC REDUNDANCY CHECK) CODE 1. CYCLIC CODES Cyclic codes are a special type of linear block code that are popular because they are very effective for error detection and correction and their coders and decoders are easy to implement in hardware. Definition: A cyclic code is a linear (N,k) block code with the property that every cyclic shift of a codeword results in another codeword . Cyclic shifts of any finite word [b N-1 , b N-2 , . .., b 0 ] of binary digits are generated by writing out the sequence and shifting the bits (left or right) by the desired number, in such a way that any bits which exit the word at one end re-enter the word at the other end. In other words, we shift bits with carry-around of bits that fall of one end to the other end. For example, the generator matrix G= 1 1 0 1 0 1 for a (3,2) linear block code produces the codewords [000], [110], [101], and [011] (corresponding to data words [00], [10], [01], and [11], respectively). Pick any codeword, say [110]. Its cyclic shifts [011] and [101] are both valid codewords. 2. CYCLIC REDUNDANCY CHECK CODES A very popular error detecting code implemented in many data transmission schemes is the cyclic redundancy check (CRC) code. Remember that fundamentally this is a type of linear block code. Polynomial Representation of Binary Words To understand how a CRC coder works, let us first define the notion of the polynomial associated with a binary sequence. The polynomial is in terms
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 of some dummy variable X, the powers of which are combined with binary (0 and 1) coefficients. For a bit sequence [b k-1 , b k-2 , . .., b 1 , b 0 ] the associated polynomial is b k-1 X k-1 + b k-2 X k-2 + ... + b 1 X + b 0 Note that this a polynomial of order k-1 for a bit sequence (word) of length k bits. For example, for the data (message) bit sequence [1010100101] of k=10 bits, the polynomial representation is M(X)=X 9 + X 7 + X 5 + X 2 + 1. Suppose k message or data bits are encoded into N code bits by appending to the message bits a sequence of n=N-k bits [r n-1 , r n-2 , . .., r 1 , r 0 ]. Let R(X) be the polynomial representing these appended bits. Then the codeword of length N=k+n corresponding to the message M(X) is [b k-1 , b k-2 , . .., b 1 , b 0 , r n-1 , r n-2 , . .., r 1 , r 0 ] for which the corresponding polynomial is clearly T(X) = X n M(X) + R(X). This follows because the original message bits now occupy more significant bit positions in the codeword; each message bit is moved left by n bits to make room for the n appended bits. For example, to the above 10-bit message sequence if we append the 3-bit
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 05/19/2011 for the course ECE 635 taught by Professor Profnaganagi during the Spring '09 term at CSU Northridge.

Page1 / 9


This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online