This preview shows pages 1–3. Sign up to view the full content.
1
TCOM 370
NOTES 999
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
N1
, b
N2
, .
.., 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 reenter the word at the other end.
In other words, we shift bits with
carryaround 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
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document 2
of some dummy variable X, the powers of which are combined with binary
(0 and 1) coefficients.
•
For a bit sequence [b
k1
, b
k2
, .
.., b
1
, b
0
] the associated polynomial is
b
k1
X
k1
+
b
k2
X
k2
+
...
+
b
1
X
+
b
0
Note that this a polynomial of
order k1
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=Nk bits
[r
n1
, r
n2
, .
.., 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
k1
, b
k2
, .
.., b
1
, b
0
,
r
n1
, r
n2
, .
.., 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 10bit message sequence if we append the 3bit
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.
 Spring '09
 profnaganagi

Click to edit the document details