Lecture_note_12b

ADVANTAGE of GENERATOR MATRIX:
 we need to store only the k rows of G instead of 2k vectors of
the code.
 for the example we have looked at generator array of (36)
replaces the original code vector of dimensions (8  6).
This is a definite reduction in complexity .
Error Control Coding
© Erhan A. Ince
Systematic Linear Block Codes
 Systematic (n,k) linear block codes has such a mapping that
part of the sequence generated coincides with the k message
digits.
 Remaining (n-k) digits are parity digits
A systematic linear block code has a generator matrix of the
form :
G  P

I 
k
p
 11
p

  21
 

 pk1

p

12
p

22

p
1,(nk )
p
2,(nk )
p
 p
k2
k ,(nk )
Error Control Coding
© Erhan A. Ince
1 0  0
0 1


0 0 

0



1

 P is the parity array portion of the generator matrix
pij = (0 or 1)
Ik is the (kk) identity matrix.
 With the systematic generator encoding complexity is further
reduced since we do not need to store the identity matrix.
Since U = m G
p
 11
p
u , u ,........, un  m , m ,........, mn    21
1 2
 1 2

 

 pk1

p

12
p

22

p
1,(nk )
p
2,(nk )
p
 p
k2
k ,(nk )
Error Control Coding
© Erhan A. Ince
1 0  0
0 1


0 0 

0



1

 where
u  m p  m p  .......  m p
i
1 1i
2 2i
k ki
m
ink
for
for
i  1,....., (n  k )
i  (n  k  1),...., n
And the parity bits are
p  m p  m p  ........  m p
1 1 11 2 21
k k1
p  m p  m p  ........  m p
2 1 12
2 22
k k2
p
m p
m p
 ........  m p
1 1,(nk )
2 2,(nk )
nk
k k ,(nk )
 given the message k-tuple
m= m1,……..,mk
And the general code vector n-tuple
U = u1,u2,……,uk
Systematic code vector is:
U = p1,p2……..,pk , m1,m2,……,mk
Error Control Coding
© Erhan A. Ince
Example:
For a (6,3) code the code vectors are described as
U
1



 m , m , m 0
 1 2 3 
1
1 0
1 0 0
1 1
0 1
0 1
0 0
P


0

1
I3
U = m1+m3, m1+m2, m2+m3, m1, m2, m3
u1 ,
u2 ,
u 3,
Error Control Coding
© Erhan A. Ince
u 4 , u 5 , u6
Parity Check Matrix (H)
We define a parity-check matrix since it will enable us to
decode the received vectors.
For a (kn) generator matrix G
There exists an (k-n) n matrix H
Such that rows of G are orthogonal to the rows of H
i.e G HT = 0
To satisfy the orthogonality requirement H matrix is written
as:
H  I
PT 
 nk

Error Control Coding
© Erhan A. Ince
Hence
1
0

 
I  
0



H 

  p
 P  
p
 

 p
0

1

0

11
p

21
p
22

k1
p
k2

nk
T
12
0 
0 



1 
p 

p



p

1 ,( n  k )
2 ,( n  k )
k ,( n  k )
The product UHT of each code vector is a zero vector.
UH T  p  p , p  p ,......, p
p
0
1 1 2
2
nk
nk
Once the parity check matrix H is formed we can use it to
test whether a received vector is a valid member of the
codeword set. U is a valid code vector if and only if
UHT=0.
Error Control Coding
© Erhan A. Ince
Syndrome Testing
Let r = r1, r2, ……., rn be a received code vector (one of 2n n-tuples)
Resulting from the transmission of U = u1,u2,…….,un (one of the 2k
n-tuples).
 r=U+e
where e = e1, e2, ……, en is the error vector or error pattern
introduced by the channel
 In space of 2n n-tuples there are a total of (2n –1) potential nonzero
error patterns.
 The SYNDROME of r is defined as:
S = r HT
The syndrome is the result of a parity check performed on r to
determine whether r is a valid member of the codeword set.
Error Control Coding
© Erhan A. Ince
 If r contains detectable errors the syndrome has some non-zero
value
 syndrome of r is seen as
S = (U+e) HT = UHT + eHT
 since UHT = 0 for all code words then :
S = eHT
An important property of linear block codes, fundamental to the
decoding process, is that the mapping between correctable error
patterns and syndromes is one-to-one.
Error Control Coding
© Erhan A. Ince
Parity check matrix must satisfy:
1.
No column of H can be all zeros, or else an error in the
corresponding code vector position would not affect the
syndrome and would be undetectable
2.
All columns of H must be unique. If two columns are
identical errors corresponding to these code word
locations will be indistinguishable.
Error Control Coding
© Erhan A. Ince
Example:
Suppose that code vector U = [ 1 0 1 1 1 0 ] is transmitted and the
vector r = [ 0 0 1 1 1 0 ] is received.
Note one bit is in error..
Find the syndrome vector,S, and verify that it is equal to eHT.
(6,3) code has generator matrix G we have seen before:
1 1 0 1 0 0
G  0 1 1 0 1 0 


1 0 1 0 0 1
P
I
P is the parity matrix and I is the identity matrix.
Error Control Coding
© Erhan A. Ince
 1
 0

 0
HT   p
 1,1
p
 2,1
p
 3,1
0 
1 0 0 

1
0
 0 1 0 

0
1  
  0 0 1 
p
p  

1
1
0
1,2
1,3



p
p
2,2
2,3  0 1 1


p
p  1 0 1 
3,2
3,3 
1 0 0 
0 1 0 


0 0 1 
S = r HT = [001110]

1
1
0


0 1 1 


1
0
1


0
= [ 1, 1+1,
1+1 ] = [ 1 0 0]
(syndrome of corrupted code vector)
Error Control Coding
© Erhan A. Ince
Now we can verify that syndrome of the corrupted code vector is the
same as the syndrome of the error pattern:
S = eHT = [1 0 0 0 0]HT = [ 1 0 0 ]
( =syndrome of error pattern )
Error Control Coding
© Erhan A. Ince
Error Correction
Since there is a one-to-one correspondence between correctable error
patterns and syndromes we can correct such error patterns.
Assume the 2n n-tuples that represent possible received vectors are
arranged in an array called the standard array.
1. The first row contains all the code vectors starting with all-zeros
vector
2. First column contains all the correctable error patterns
The standard array for a (n,k) code is:
U
1
e
2

U
2
U e
2 2


i
 U e 
i 2

U
2k
U e
2
2k
U e 
i
j

e
j

e
2nk
U
U e
2 2nk

Error Control Coding
© Erhan A. Ince
U
2k
e
2nk
Each row called a coset consists of an error pattern in the first
column, also known as the coset leader, followed by the code vectors
perturbed by that error pattern.
The array contains 2n n-tuples in the space Vn
each coset consists of 2k n-tuples
 there are
2n
 2nk
2k
cosets
If the error pattern caused by the channel is a coset leader, the
received vector will be decoded correctly into the transmitted code
vector Ui. If the error pattern is not a coset leader the decoding will
produce an error.
Error Control Coding
© Erhan A. Ince
Syndrome of a Coset
If ej is the coset leader of the jth coset then ;
Ui + ej is an n-tuple in this coset
Syndrome of this coset is:
S = (Ui + ej)HT = Ui HT + ejHT
= ejHT
All members of a coset have the same syndrome and in fact the
syndrome is used to estimate the error pattern.
Error Control Coding
© Erhan A. Ince
Error CorrectionDecoding
The procedure for error correction decoding is as follows:
1.
Calculate the syndrome of r using S = rHT
2.
Locate the coset leader (error pattern) , ej, whose syndrome
equals rHT
This error pattern is the corruption caused by the channel
The corrected received vector is identified as U = r + ej .
We retrieve the valid code vector by subtracting out the identified
error
3.
4.
Note: In modulo-2 arithmetic subtraction is identical to that of
addition
Error Control Coding
© Erhan A. Ince
Example:
Locating the error pattern:
For the (6,3) linear block code we have seen before the standard array can
be arranged as:
000000
110100
011010
101110
101001 011101
000001
000010
000100
001000
010000
100000
010001
110101
110110
110000
111100
100100
010100
100101
011011
011000
011110
010010
001010
111010
001011
101111
101100
101010
100110
111110
001110
111111
101000
101011
101101
100001
111001
001001
111000
Error Control Coding
© Erhan A. Ince
110011 000111
011100 110010 000110
011111 110001 000101
011001 110111 000011
010101 111011 001111
001101 100011 010111
111101 010011 100111
001100 100010 010110
The valid code vectors are the eight vectors in the first row and the
correctable error patterns are the eight coset leaders in the first
column.
Decoding will be correct if and only if the error pattern caused by the
channel is one of the coset leaders
We now compute the syndrome corresponding to each of the
correctable error sequences by computing ejHT for each coset leader
1
0

0
S e 
j 1

0

1
0 0
1 0

0 1

1 0
1 1

0 1
Error Control Coding
© Erhan A. Ince
Syndrome lookup table..
error pattern
000000
000001
000010
000100
001000
010000
100000
010001
Syndrome
000
101
011
110
001
010
100
111
Error Control Coding
© Erhan A. Ince
Error Correction
We receive the vector r and calculate its syndrome S
We then use the syndrome-look-up table to find the corresponding
error pattern.
This error pattern is an estimate of the error, we denote it as ê
The decoder then adds ê to r to obtain an estimate of the transmitted
code vector û
Û = r + ê = (U + e) + ê = U + (e ê)
If the estimated error pattern is the same as the actual error pattern that
is if ê = e then
û =U
If ê  e the decoder will estimate a code vector that was not transmitted
and hence we have an undetectable decoding error.
Error Control Coding
© Erhan A. Ince
Example
Assume code vector U = [ 1 0 1 1 1 0 ] is transmitted and the vector
r=[0 0 1 1 1 0] is received.
The syndrome of r is computed as:
S = [0 0 1 1 1 0 ]HT = [ 1 0 0 ]
From the look-up table 100 has corresponding error pattern:
ê = [1 0 0 0 0 0 ]
The corrected vectors is the Û = r + ê = 0 0 1 1 1 0 + 1 0 0 0 0 0
= 1 0 1 1 1 0 (corrected)
In this example actual error pattern is the estimated error pattern,
Hence
û =U
Error Control Coding
© Erhan A. Ince