Cyclic Codes
Cyclic Codes
Cyclic codes are (by definition) a very special case of linear codes.
But nearly all commonly used block codes are (shortened) cyclic codes.
D Q D Q D Q D Q D Q D Q D Q
≡
CLK
i=0
is a codeword. Important special case: deg a(x) < n−deg c(x). Then
deg a(x)c(x) < n =⇒ a(x)c(x) mod (xn − 1) = a(x)c(x) .
Therefore a(x)c(x) is a codeword when deg a(x)c(x) < n.
m(x)
c(x)
× xn−k mod g(x) −1
We will see that s[j] (x) is the j-th feedback shift of s[0] (x).
EE 387, October 23, 2015 Notes 14, Page 15
Systematic generator matrix (cont.)
Coefficients of s[j] (x) form check portion of systematic generator matrix.
[n−k] [n−k]
−s0 · · · −sn−k−1 1 0 ··· 0
[n−k+1] [n−k+1]
−s0 · · · −sn−k−1 0 1 ··· 0
G2 =
.. .. .. .. .. . . .
. . . . . . ..
[n−1] [n−1]
−s0 · · · −sn−k−1 0 0 ··· 1
First row of G2 is simply g(x), same as first row of nonsystematic G1 .
G2 has k(n − k + 1) nonzero elements, same as G1 .
Both G1 and G2 are determined by n − k values (coefficients of g(x)).
The parity-check portion of each row of G2 comes from the first row by
using a linear feedback shift register whose scalers the coefficients of g(x).
For example, this shift register multiplies by x modulo x16 + x12 + x5 + 1.