Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Definition:
An (n, k) linear code C is called a cyclic code if every cyclic shift of a code
vector in C is also a code vector
Codewords can be represented as polynomials of degree n. For a cyclic
code all codewords are multiple of some polynomial g(X) modulo Xn+1
such that g(X) divides Xn+1. g(X) is called the generator polynomial.
Examples:
Hamming codes, Golay Codes, BCH codes, RS codes
BCH codes were independently discovered by Hocquenghem (1959) and
by Bose and Chaudhuri (1960)
Reed-Solomon codes (non-binary BCH codes) were independently
introduced by Reed-Solomon
Cyclic codes are of interest and importance because
k r
Basic properties of Cyclic codes:
◆ We noticed earlier that cyclic codes can be generated by using shift registers
whose feedback coefficients are determined directly by the generating
polynomial
Example
Decoding cyclic codes
Every valid, received code word R(p) must be a multiple of G(p), otherwise
an error has occurred. (Assume that the probability of noise to convert code
words to other code words is very small.)
Therefore dividing the R(p)/G(p) and considering the remainder as a
syndrome can reveal if an error has happened and sometimes also to reveal in
which bit (depending on code strength)
Division is accomplished by a shift registers
The error syndrome of q=n-k bits is therefore
S( p ) = mod [ R ( p ) / G ( p ) ]
Decoding cyclic codes: error correction
Decoding circuit for (7,4) code
syndrome computation
S( p ) = mod [ R ( p ) / G ( p ) ]
◆ To start with, the switch is at “0” position
◆ Then shift register is stepped until all the received code bits have entered the
register
◆ This results is a 3-bit syndrome (n - k = 3 ):
Simplified encoding.
Easy syndrome calculation S(p) = rem{Y(p)/G(p)}
Ingenious error correcting decoding methods have been devised for
specific cyclic codes. They eliminate the storage needed for table
lookup.
Cyclic Redundancy Codes (CRC), a class of cyclic codes, has ability to
detect burst errors of length ‘q’, all single bit errors, any odd number of
errors if (p+1) is a factor of G(p), Double errors if G(p) has at least
three 1’s.
Cyclic codes for error detection provides high efficiency and the ease of
implementation.
It provides standardization like CRC-8 and CRC-32
Some block codes that can be realized by cyclic codes