Systematic Generator Matrices: 0,0 0, N K 1 1,0 1, N K 1
Systematic Generator Matrices: 0,0 0, N K 1 1,0 1, N K 1
Systematic Generator Matrices: 0,0 0, N K 1 1,0 1, N K 1
Exercise: Show that the repetition codes and the simple parity-check codes
are the only nontrivial binary MDS codes.
Definition: The error vector or error pattern e is the difference between the
received n-tuple r and the transmitted codeword c:
∆
e = r − c =⇒ r = c + e
Note: The physical noise model may not be additive noise, and the probability distribution for the
error e may depend on the data c. We assume a channel error model determined by Pr(e).
EE 387, October 9, 2015 Notes 9, Page 7
Syndrome decoding (cont.)
Multiply both sides of the equation r = c + e by H:
∆
s = rH T = (c + e)H T = cH T + eH T = 0 + eH T = eH T .
The syndrome of the senseword r is defined to be s = rH T .
The syndrome of r (known to receiver) equals the syndrome of the error
pattern e (not known to receiver, must be estimated).
Decoding consists of finding the most plausible error pattern e such that
eH T = s = rH T .
“Plausible” depends on the error characteristics:
◮ For binary symmetric channel, most plausible means smallest number of
bit errors. Decoder estimates ê of smallest weight satisfying êH T = s.
◮ For bursty channels, error patterns are plausible if the symbol errors are
close together.
0 0 0 1|1 1 1 0 1 1 1 0|0 0 0 1
Consider two possible messages:
m1 = [ 0 1 1 0 ] m2 = [ 1 0 1 1 ]
c1 = [ 0 1 1 0 0 1 1 0 ] c2 = [ 0 1 0 0 1 0 1 1 ]
Suppose error pattern e = [ 0 0 0 0 0 1 0 0 ] is added to both codewords.
r1 = [ 0 1 1 0 0 0 1 0 ] r2 = [ 0 1 0 0 1 1 1 1 ]
s1 = [ 1 0 1 1 ] s2 = [ 1 0 1 1 ]
Both syndromes equal column 6 of H, so decoder corrects bit 6.
◮ The first row is the code C, with the zero vector in the first column.
◮ Every other row is a coset.
◮ The n-tuple in the first column of a row is called the coset leader.
We usually choose the coset leader to be the most plausible error
pattern, e.g., the error pattern of smallest weight.
EE 387, October 9, 2015 Notes 9, Page 11
Standard array: decoding
An (n, k) LBC over GF(Q) has M = Qk codewords.
Every n-tuple appears exactly once in the standard array. Therefore the
number of rows N satisfies
M N = Qn =⇒ N = Qn−k .
All vectors in a row of the standard array have the same syndrome.
Thus there is a one-to-one correspondence between the rows of the
standard array and the Qn−k syndrome values.
Decoding using the standard array is simple: decode senseword r to the
codeword at the top of the column that contains r.
The decoder subtracts the coset leader from the received vector to obtain
the estimated codeword.
The decoding region for a codeword is the column headed by that codeword.
wt 1
shells of radius 1
wt 2
shells of radius 2
coset leaders
wt t
shells of radius t
wt >t
◮ The first row is the code C, with the zero vector in the first column.
◮ Every other row is a coset.
◮ The n-tuple in the first column of a row is called the coset leader.
◮ Senseword r is decoded to codeword at top of column that contains r.
◮ The decoding region for codeword is column headed by that codeword.
◮ Decoder subtracts coset leader from r to obtain estimated codeword.
EE 387, October 9, 2015 Notes 9, Page 15
Syndrome decoding: summary
Syndrome decoding is closely connected to standard array decoding.
1. Calculate syndrome s = rH T of received n-tuple.
2. Find most plausible error pattern e with eH T = s.
This error pattern is the coset leader of the coset containing r.
3. Estimate transmitted codeword: ĉ = r − e.
The estimated codeword ĉ is the entry at the top of the column
containing r in the standard array.
4. Determine message m from the encoding equation c = mG.
In general, m = cR, where R is an n × k pseudoinverse of G.
If the code is systematic, then R = [ 0(n−k)×k | Ik×k ]T .
Only step 2 requires nonlinear operations. Step 2 is conceptually the most
difficult.