Title: EEE436
1EEE436
- DIGITAL COMMUNICATION
- Coding
En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) nazriee_at_eng.usm.my Room 2.14
2Error Detection and Correction Syndrome Decoding
Decoding involves parity-check information
derived from the codes coefficient matrix,
P. Associated with any systematic linear (n,k)
block code is a (n-k)-by-n matrix, H called the
parity-check matrix. H is defined as H
In-k PT Where PT is the transpose of the
coefficient matrix, P and is an (n-k)-by-k
matrix. In-k is the (n-k)-by-(n-k) identity
matrix. For error detection purposes, the parity
check matrix, H has the following
property c.HT (0 0 .. 0) (ie Null
matrix)
3Syndrome Decoding c.HT (0 0 .. 0)
(ie Null matrix) Since cm.G, therefore m.G.HT
(0 0 . 0) This property is satisfied only
when c is correctly received. Errors are
indicated by the presence of non-zero elements in
the matrix. Let r denotes the 1-by-n received
vector that results from sending the code vector
c over a noisy channel. When there is an error,
the decoding operation will give a syndrome
vector, s whose elements contain at least 1
non-zero element.
4Syndrome Decoding Example for the (7,4) Hamming
Code A (7,4) Hamming code with the following
parameters n7 k4, m7-43 The k-by-(n-k)
(4-by-3) coefficient matrix, P The
generator matrix, G is, G
1 1 0
0 1 1
1 1 1
1 0 1
P
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
G
5Syndrome Decoding Example for (7,4) Hamming
Code Associated with the (7,4) Hamming Code is a
3-by-7 matrix, H called the parity-check
matrix. H is defined as H In-k
PT When a codeword is correctly received,
the c.HT will result in a null matrix,
otherwise it will result in a syndrome vector, s.
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
6Syndrome Decoding Example for (7,4) Hamming
Code Example The received code vector is
1110010, check whether this is a correct
codeword c.HT 1110010
1 0 0
0 1 0
0 0 1
1 1 0
0 1 1
1 1 1
0 0 1
7Syndrome Decoding Example for (7,4) Hamming
Code Example The received code vector is
1100010, check whether this is a correct
codeword c.HT 1100010
1 0 0
0 1 0
0 0 1
1 1 0
0 1 1
1 1 1
0 0 1
0 0 1 this is called
the error syndrome
8Error pattern
- Error pattern is an error vector E whose nonzero
element mark the position of the transmission
errors in the received codeword - We can work out all syndromes and find the
corresponding error patterns and store them in a
look up table for decoding purposes - For example the (7,4) Hamming code
9Error detection correction
- The error pattern, E is essentially the modulo-2
sum of the correct code vector and the erroneous
received code vector. For example , c 1110010
and r1100010 (ie error in the 3rd bit) - c r E
- 1110010 1100010 0010000
- This error pattern corresponds to a syndrome
vector in the look up table, 001 - Recall that the syndrome vector, s rHT
- s (c E)HT
- cHT EHT
- EHT
10Error detection and correction
- Therefore, the decoding procedure involves
working out the syndrome for the received code
vector and look up for the corresponding error
pattern. - Then, modulo-2 sum the error pattern, E and the
received vector, r , so that c r E, and the
correct codeword can be recovered.
11Error detection and correctionExample
- For message word 0010, the correctly encoded
codeword is c 1110010. Due to channel noise,
the received code vector is r 1100010. Show
how the decoder recover the correct codeword. - The decoder uses r and the HT to find the error
syndrome, s - Sr.HT 001
- 2) Using the resulting syndrome, refer the look
up table for the corresponding assumed error
vector, E. - S001 corresponds to assumed error vector, E
0010000 - 3) Then ex-OR E and r to recover the correct
codeword - Er 0010000 1100010 1110010
12Error detection and correctionExercise
- For message word 0110, the correctly encoded
codeword is c 1000110. Due to channel noise,
the received code vector is r 1100110. Show
how the decoder recover the correct codeword. - For message word 0110, the correctly encoded
codeword is c 1000110. Due to channel noise,
the received code vector is r 1100100. Show
how the decoder performs its decoding operation.
What is your observation and explain it.
13BCH Codes
- A class of cyclic codes discovered in 1959 by
Hocquenghem and in 1960 by Bose and
Ray-Chaudhuri. - Include both binary and multilevel codes
- Identified in the form of (n,k) BCH code for
example (15,7) BCH code - A t-error Binary BCH codes consist of binary
sequences of length n 2m 1 m indicates the
corresponding Galois Field - Specified by its generator polynomial, g
- The generator polynomial is specified in terms of
its roots from the Galois Field, GF(2m)
14BCH Codes
- To work out the corresponding generator
polynomial for example (15,7) BCH code - First, we need to find m since n2m -1,
therefore, for n15 m 4 - Then we need to find the primitive polynomial for
m4 from a specified reference table - Then, based on the primitive polynomial,
construct the elements of GF(24) - Then find the minimal polynomials of the elements
of GF(24) from a specified reference table - Then based on these minimal polynomials , we can
work out the generator polynomial.
15Binary BCH Codes
- For our example, (15,7) BCH code consider a
Galois Field with m4 GF(24) - A polynomial p(X) over GF(24) of degree 4 that is
primitive is taken from the following Table of
primitive polynomials
16Binary BCH Codes
- Then, based on the primitive polynomial, 1 X
X4 construct the elements of GF(24) - Let alpha (?) be a primitive element in GF(2m)
- Set p(?)1 ? ?4 0 , then ?4 1 ?
- Using this relation, we can construct GF(24)
elements as below
17Binary BCH Codes
- Then find the minimal polynomials of the elements
of GF(24) from a specified reference table
18Binary BCH Codes
- Then the generator polynomial of a t-error
correcting BCH code of length 2m 1 is given by - g(x) LCM ?1(X), ?2(X) , .., ?2t (X)
- Since every even power of ? in the elements
sequence has the same minimal polynomial as some
preceding odd power of ? in the elements sequence
- g(x) LCM ?1(X), ?3(X) , .., ?2t-1 (X)
19Binary BCH Codes generator polynomial Example
A(15,7) BCH code (ie n15) m2m-1
m4 Therefore , refer to Galois Field with m4
GF(24) A polynomial p(X) over GF(24) of degree 4
that is primitive is taken the table
p(X) 1 X X4 Then, based on
the primitive polynomial, 1 X X4 construct
the elements of GF(24) Then find the minimal
polynomials of the elements of GF(24) from the
table Then the generator polynomial of a t-error
correcting BCH code of length 2m 1 is given by
g(x) LCM ?1(X), ?3(X) , .., ?2t-1 (X)
20Binary BCH Codes generator polynomial Example
Then the generator polynomial of a t-error
correcting BCH code of length 2m 1 is given by
g(x) LCM ?1(X), ?3(X) , .., ?2t-1 (X) For
2-error correcting t2 Therefore, g(x) LCM
?1(X), ?3(X) ?1(X) 1 X X4 and ?3(X)
1 X X2 X3 X4 g(x) ?1(X). ?3(X) 1
X4 X6 X7 X8 Exercise Try out for
3-error correcting BCH code of the same length
21Binary BCH Codes generator polynomials Example
22Non-Binary or M-ary BCH Codes
- Unlike binary these codes are multilevel codes
- Operates on multiple bits rather than individual
bits - The general (n,k) encoder encodes k m-bit symbols
into blocks consisting of n2m-1 symbols of total
m(2m-1) bits - Thus the encoding expands a block of k symbols to
n symbols by adding n-k redundant symbols - An example of non-binary BCH code is the
Reed-Solomon Code
23RS Codes
- A t-error-correcting RS code has the following
parameters - Block length n 2m-1
- Message size k symbols
- Parity-check size n-k2t symbols
- Minimum distance 2t 1
- Example RS(7,4) with m3 bits