Professional Documents
Culture Documents
Lecturer
Assist.Prof.Dr. Nuray At
2
Cyclic Codes I
Cyclic codes are an important class of linear codes
In general, encoding and decoding can be efficiently implemented using shift
registers and hence they have a great practical importance.
They are also of considerable interest from an algebraic point of view
Definition:
An (n,k) linear block code C is said to be cyclic if for every codeword
c=(c0, c1, …, cn-1) ∈ C there is also a codeword c’=(cn-1, c0, c1, …, cn-2) ∈ C (right cyclic
shift of the codeword c)
Example:
C={(0000)} is trivially a cyclic code
3
Example:
C={(0000), (1001), (1100), (0110), (0011), (0111), (1011), (1101)}. This is not a
cyclic code since every cyclic shift of (1101) is not present
The key to the underlying structure of cyclic codes lies in the association of a code
polynomial c(x)=c0+c1x+c2x2+…+cn-1xn-1 with every codeword c=(c0, c1, …, cn-1)
Consider c’(x) = x c(x) mod xn-1
= c0x+c1x2+…+cn-1xn mod xn-1
= cn-1+c0x+c1x2+…+cn-2xn-1
Let g(x) be the (n-k)th-degree generator polynomial for an (n,k) q-ary cyclic code C
A k-symbol data block (m0,m1,…,mk-1) can be associated with a message
polynomial m(x) = m0+m1x+…+mk-1xk-1
This provides a convenient general form for generator matrices for cyclic codes:
For every generator polynomial g(x) there exists a parity polynomial h(x) of
degree k such that g(x)h(x)=xn-1
Since c(x)=m(x)g(x) then c(x)h(x)=m(x)g(x)h(x) mod xn-1 = 0
The last n-k of these parity-check equations can be expressed in matrix form
s = cHT
If c is a codeword, then cHT = 0
9
Example cont’d:
dmin=4
detects 3 errors, corrects 1 error