Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cyclic Codes
Outline
1. Cyclic Codes
2. Description of Cyclic Codes
3. Generator Polynomial
4. Generator & Parity-check Matrices
5. Syndrome Computation & Error Detection
6. Cyclic Redundancy Check (CRC) codes
1.Cyclic Codes
An (n,k) linear code C is cyclic if every cyclic shift of a codeword in C
is also a codeword in C.
If v0 v1 v2 . vn-2 vn-1 is a codeword, then
vn-1 v0 v1 . vn-3 vn-2
vn-2 vn-1 v0 . vn-4 vn-3
: :
:
: :
v1 v2 v3 . vn-1 v0 are all codewords.
Cyclic codes form an important subclass of linear codes.
Encoding and syndrome computation can be implemented easily
by employing shift registers with feedback connections or linear
sequential circuits.
They have considerable inherent algebraic structure, it is possible
to find various practical methods for decoding them.
3.Generator Polynomial
The nonzero code polynomial of minimum degree in a cyclic code C is called the
generator polynomial of C.
Consider an (n,k) cyclic code with generator polynomial
g(X) = g0 + g1X + + gn-kXn-k where
Messages
Code Vectors
Code polynomials
(0000)
0000000
0 = 0g(x)
(1000)
1101000
1+x+x3 = 1g(x)
(0100)
0110100
x+x2+x4 = xg(x)
(1100)
1011100
1+x2+x3+x4 = (1+x)g(x)
(0010)
1110010
1+x+x2+x5 = (1+x2)g(x)
(1010)
0011010
(0110)
1000110
1+x4+x5 = (1+x+x2)g(x)
(1110)
0101110
x+x3+x4+x5 = (x+x2)g(x)
(0001)
1010 001
1+x2+x6 = (1+x+x3)g(x)
(1001)
0111001
(0101)
1100101
1+x+x4+x6 = (1+x3)g(x)
(1101)
0001101
x3+x4+x6 = x3g(x)
(0011)
0100011
x+x5+x6 = (x+x2+x3)g(x)
(1011)
1001011
1+x3+x5+x6 = (1+x+x2+x3)g(x)
(0111)
0010111
(1111)
1111111
1+x+x2+x3+x4+x5+x6 = (1+x2+x5)g(x)
G=
g0
g1
g2
g n k
0 0
g0
g1
g2
g nk
0 0
g0
g1
g2
g nk
0 0
.
.
.
0
.
.
.
0
0 g0
g1
g2
g nk
kxn
H=
hk
h k 1
h k 2
h0
hk
h k 1
h k 2
h0
0
.
hk
h k 1
h k 2
h0
h k 1
h k 2
h0
.
.
0
0 hk
(n-k) x n
syndrome
Gate
r(x)/g(x)
g2
g1
r(X)
Received
vector
s0
s1
gn-k-1
sn-k-1
Fig : An (n-k)-stage syndrome circuit with input from the left end
10
11
Fig : CRC Generator and checker
Multiply M(x) by xn
2.
3.
4.
12
Receiving
1.
Receive C(x)
2.
3.
13
Example
Send
Receive
100001
11001 1100110000
11001
10000
11001
11001 1100111001
11001
11001
11001
00000
No remainder
Accept
1001= R(x)
Send the block 110011 1001
14
Thank You...
15