CYCLIC CODES
2 jj 10/25/2018
3 jj 10/25/2018
Perfect codes, Hamming codes, encoding
and decoding
Cyclic codes, polynomial and matrix
descriptions,
generation of cyclic codes, decoding of
cyclic codes
BCH codes, Construction and decoding,
Reed Solomon codes
4 jj 10/25/2018
Perfect codes & Hamming Bound
5 jj 10/25/2018
Perfect codes & Hamming Bound
6 jj 10/25/2018
Perfect codes & Hamming Bound
7 jj 10/25/2018
Perfect codes & Hamming Bound
8 jj 10/25/2018
Hamming Codes
Hamming codes constitute a class of
single-error correcting linear block
codes (n,k) defined as:
n = 2m-1, k = n-m, m>2
The minimum distance of the code dmin = 3
Hamming codes are perfect codes.
Example : m = 3, yielding the (7, 4)
Hamming code with n = 7 and k = 4.
9 jj 10/25/2018
Hamming Codes
10 jj 10/25/2018
Hamming Codes
11 jj 10/25/2018
Hamming Codes
12 jj 10/25/2018
Hamming Codes
13 jj 10/25/2018
Motivation & Properties of cyclic
code
Cyclic code is a linear code that any cyclic
shift of a codeword is still a codeword.
Makes encoding/decoding much simpler, no
need of matrix multiplication.
14 jj 10/25/2018
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 c0 c1 c2 …. cn-2 cn-1 is a codeword, then
cn-1 c0 c1 …. cn-3 cn-2
cn-2 cn-1 c0 …. cn-4 cn-3
: : : : :
c1 c2 c3 …. cn-1 c0 are all codewords.
15 jj 10/25/2018
Definition
16 jj 10/25/2018
Example: (6,2) repetition code
C 000000, 010101, 101010, 111111
is a cyclic code.
jj 10/25/2018
Example2: (5,2) linear block code
1 0 1 1 1
G
0 1 1 0 1
is a single error correcting code, the set of
codeword are:
0 0 0 0 0 Thus, it is not a cyclic
1 0 1 1 1 code since, for example,
C the cyclic shift of
0 1 1 0 1
[10111]C is [11011]
1 1 0 1 0
jj 10/25/2018
Example 3
The (7,4) Hamming code discussed before
is cyclic:
1010001 111001000000001111111
1101000 0111001
0110100 1011100
0011010 0101110
0001101 0010111
1000110 1001011
0100011 1100101
19 jj 10/25/2018
Generator matrix of a non-systematic
(n,k) cyclic codes
The generator matrix will be in this form:
g0 g1 gnk 1 gnk 0 0 0
0 g0 g1 gnk 1 gnk 0 0
G 0 0 g0 g1 gnk 1 gnk 0 0
0 0 0 0 g0 gnk 1 gnk
r n
notice that the row are merely cyclic shifts of
the
g g0g1 gnk 1gnk 00 0
basis
jj vector 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Systematic Form of Generator Matrix
jj 10/25/2018
Cyclic codes
jj 10/25/2018
jj 10/25/2018
jj 10/25/2018
Encoder for Cyclic codes
jj 10/25/2018
Encoder for Cyclic codes
jj 10/25/2018
Encoder for Cyclic codes
jj 10/25/2018
Cyclic codes
jj 10/25/2018
Syndrome Decoding for Cyclic codes
jj 10/25/2018
Syndrome Decoding for Cyclic codes
jj 10/25/2018
jj 10/25/2018
Cyclic Codes
Some Standard Cyclic BCH Codes
Block Codes Linear
Hamming
Codes
Codes
The Hamming Codes: single-error correcting
codes which can be expressed in cyclic form.
BCH: the Bose-Chaudhuri-Hocquenghem are
among the most important of all cyclic block codes.
Extenstion of Hamming for t-error correcting codes.
Some Burst-Correcting Codes: good burst-
correcting codes have been found mainly by
computer search.
Cyclic Redundancy Check Codes: shortened
cyclic error-detecting codes used in automatic
jj
repeat request (ARQ) systems.
43 10/25/2018
BCH Codes
Definition of the codes:
For any positive integers m (m>2) and t0 (t0
< n/2), there is a BCH binary code of length
n = 2m - 1 which corrects all combinations
of t0 or fewer errors and has no more than
mt0 parity-check bits.
Block length 2m 1
Number of parity - check bits n k mt 0
min imum distance d min 2t 0 1
44 jj 10/25/2018
Table of Some BCH Codes
* Octal representation with highest order at the left.
721 is 111 010 001 representing 1+X4+X6+X7+X8
45 jj 10/25/2018
Burst Correcting Codes
good burst-correcting codes have been
found mainly by computer search.
The length of an error burst, b, is the total
number of bits in error from the first error to
the last error, inclusive.
The minimum possible number of parity-
r 2b
check bits required to correct a burst of
length b or less is given by the Rieger
bound.
The best understood codes for correcting
jjburst errors are cyclic codes. 10/25/2018
Table of Good Burst-Correcting
Codes
47 jj 10/25/2018
Cyclic Redundancy Check
Codes
Shortened cyclic codes
Error-detecting codes
used in automatic repeat request (ARQ)
systems.
Usually concatenated with error correcting
codes
CRC CRC
Error Error
To
Syndro To
Encod Correction Correction
Transmitter me Info Sink
er Encoder Decoder
Checke
r
48 jj 10/25/2018
Performance of CRC Codes
CRC are typically evaluated in terms of their
error pattern coverage
Burst error detection capability
Probability of undetected error
For a (n,k) CRC the coverage, λ, is the ratio of the number
of invalid blocks of length n to the total number of blocks of
length n.
This ratio is a measure of the probability that a randomly
chosen block is not a valid code block. By definition,
Code Coverage
1 2 r
CRC-12
where r is the number of check bits 0.999756
For some near-optima CRC codes, CRC-ANSI 0.999985
see table 5.6.5 CRC-32A 0.99999999977
jj 10/25/2018