0% found this document useful (0 votes)
18 views

10 Coding

This document discusses Reed-Muller codes. It defines Reed-Muller codes R(r,m) and describes how they are constructed recursively using the (u|u+v) construction. It also discusses the generator matrices and dimensions of Reed-Muller codes.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

10 Coding

This document discusses Reed-Muller codes. It defines Reed-Muller codes R(r,m) and describes how they are constructed recursively using the (u|u+v) construction. It also discusses the generator matrices and dimensions of Reed-Muller codes.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Coding Theory: Reed-Muller Codes

Good Codes
 Codes seen so far

(n, k, dH )q k/n name perfect


1
(n, 1, n)q n repetition
n−1
(n, n − 1, 2)q n parity check
r −1
( qq−1 , n − r, 3)q n−r
n Hamming yes
1
(24, 12, 8)2 2 G24 no
12
(23, 12, 7)2 23 G23 yes
1
(12, 6, 6)3 2 G12 no
6
(11, 6, 5)3 11 G11 yes
Reed-Muller Codes

They are named after their inventors, David E. Muller (he


discovered the codes in 1954), and Irving S. Reed (he proposed
the first efficient decoding algorithm).
We will discuss binary Reed-Muller codes.
(u|u + v) A generator matrix is
 
For a linear (n, k1 , d1 )q G1 G1
G=
code C1 and a linear 0 G2
(n, k2 , d2 )q code C2 , the
for G1 , G2 generator matrices of
(u|u + v) construction
C1 , C2 .
produces the code
C = {(u, u + v), u ∈
C1 , v ∈ C2 }.
(u|u + v) A generator matrix is
 
For a linear (n, k1 , d1 )q G1 G1
G=
code C1 and a linear 0 G2
(n, k2 , d2 )q code C2 , the
for G1 , G2 generator matrices of
(u|u + v) construction
C1 , C2 . Indeed, we have
produces the code
C = {(u, u + v), u ∈
 
G G1
C1 , v ∈ C2 }. (x1 , x2 ) 1 = (u, u + v).
0 G2
(u|u + v) (1) C is a linear code.
(2) C has length 2n.
For a linear (n, k1 , d1 )q (3) C has dimension k1 + k2
code C1 and a linear (4) A parity check matrix is
(n, k2 , d2 )q code C2 , the
(u|u + v) construction
produces the code
C = {(u, u + v), u ∈
C1 , v ∈ C2 }.
(u|u + v) (1) C is a linear code.
(2) C has length 2n.
For a linear (n, k1 , d1 )q (3) C has dimension k1 + k2
code C1 and a linear (4) A parity check matrix is
(n, k2 , d2 )q code C2 , the  
(u|u + v) construction H1 0
H=
produces the code −H2 H2
C = {(u, u + v), u ∈
C1 , v ∈ C2 }.
(u|u + v) (1) C is a linear code.
(2) C has length 2n.
For a linear (n, k1 , d1 )q (3) C has dimension k1 + k2
code C1 and a linear (4) A parity check matrix is
(n, k2 , d2 )q code C2 , the  
(u|u + v) construction H1 0
H=
produces the code −H2 H2
C = {(u, u + v), u ∈
since
C1 , v ∈ C2 }.
  T 
H1 0 G1 0
= 0.
−H2 H2 GT1 GT2
(u|u + v) Is it obtained by construction
(u|u + v)?
For a linear (n, k1 , d1 )q
code C1 and a linear
(n, k2 , d2 )q code C2 , the
(u|u + v) construction
produces the code
C = {(u, u + v), u ∈
C1 , v ∈ C2 }. Consider
 
1 0 1 0
G = 0 1 0 1 .
0 0 1 1
(u|u + v) Is it obtained by construction
(u|u + v)? Yes, take
For a linear (n, k1 , d1 )q  
code C1 and a linear 1 0
G1 = , G2 = [1, 1].
(n, k2 , d2 )q code C2 , the 0 1
(u|u + v) construction
produces the code
C = {(u, u + v), u ∈
C1 , v ∈ C2 }. Consider
 
1 0 1 0
G = 0 1 0 1 .
0 0 1 1
Reed-Muller codes The mth order Reed-Muller
R(r, m). code R(m, m) of length 2m is
m
F22 .
R(0, m) = repetition
code of length 2m (over
F2 ).
For 1 ≤ r < m,
R(r, m) = {(u, u +
v), u ∈ R(r, m−1), v ∈
R(r − 1, m − 1)} is the
rth order Reed-Muller
code of length 2m .
Reed-Muller codes The mth order Reed-Muller
R(r, m). code R(m, m) of length 2m is
m
F22 .
R(0, m) = repetition
code of length 2m (over
F2 ). Given m, Reed-Muller codes
For 1 ≤ r < m, R(r, m) exist for 0 ≤ r ≤ m,
R(r, m) = {(u, u + only the recursive construction
v), u ∈ R(r, m−1), v ∈ restricts 0 < r < m.
R(r − 1, m − 1)} is the
rth order Reed-Muller
code of length 2m .
Reed-Muller codes Generator matrices:
R(r, m).
G(0, m) = [1, . . . , 1],
R(0, m) = repetition
code of length 2m (over G(m, m) = I2m .
F2 ).
The mth order
Reed-Muller code
m
R(m, m) is F22 .
Reed-Muller codes Generator matrix G(r, m):
R(r, m).  
G(r, m − 1) G(r, m − 1)
.
For 1 ≤ r < m, 0 G(r − 1, m − 1)
R(r, m) = {(u, u +
v), u ∈ R(r, m−1), v ∈
R(r − 1, m − 1)}.
Reed-Muller codes For m = 3, codes of length
R(r, m). 23 = 8, 1 ≤ r < 3.

Generator matrix
G(r, m):
 
G(r, m − 1) G(r, m − 1)
.
0 G(r − 1, m − 1)
Reed-Muller codes For m = 3, codes of length
R(r, m). 23 = 8, 1 ≤ r < 3. For r = 1:
 
Generator matrix G(1, 2) G(1, 2)
G(1, 3) =
G(r, m): 0 G(0, 2)
 
G(r, m − 1) G(r, m − 1)
.
0 G(r − 1, m − 1)
Reed-Muller codes For m = 3, codes of length
R(r, m). 23 = 8, 1 ≤ r < 3. For r = 1:
 
Generator matrix G(1, 2) G(1, 2)
G(1, 3) =
G(r, m): 0 G(0, 2)

G(r, m − 1) G(r, m − 1)
 so we need m = 2:
.
0 G(r − 1, m − 1)
Reed-Muller codes For m = 3, codes of length
R(r, m). 23 = 8, 1 ≤ r < 3. For r = 1:
 
Generator matrix G(1, 2) G(1, 2)
G(1, 3) =
G(r, m): 0 G(0, 2)

G(r, m − 1) G(r, m − 1)
 so we need m = 2: 
. G(1, 1) G(1, 1)
0 G(r − 1, m − 1) G(1, 2) = =
0 G(0, 1)
 
1 0 1 0
 0 1 0 1 
0 0 1 1
Reed-Muller codes For m = 3, codes of length
R(r, m). 23 = 8, 1 ≤
 r < 3. For r = 1:
G(1, 2) G(1, 2)
G(1, 3) = =
Generator matrix 0 G(0, 2)
 
G(r, m): 1 0 1 0 1 0 1 0
   0 1 0 1 0 1 0 1 
G(r, m − 1) G(r, m − 1)
 
 0 0 1 1 0 0 1 1 
.
0 G(r − 1, m − 1) 0 0 0 0 1 1 1 1
Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


For r = m, that is R(m, m), the whole space, we have 2m .
For r = 0, that is R(0, m), a repetition code, we have 1.
Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


For r = m, that is R(m, m), the whole space, we have 2m .
For r = 0, that is R(0, m), a repetition code, we have 1.
We will prove that the dimension is actually
     
m m m
+ + ... + .
0 1 r
Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


The case m = 1.
For m = 1 and r = 0:
       
m m m 1
+ + ... + = = 1.
0 1 r 0
Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


The case m = 1.
For m = 1 and r = 0:
       
m m m 1
+ + ... + = = 1.
0 1 r 0

R(0, 1) is the repetition code of length 2, of dimension 1.


For m = 1 and r = 1:
         
m m m 1 1
+ + ... + = + = 2.
0 1 r 0 1
Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


The case m = 1.
For m = 1 and r = 0:
       
m m m 1
+ + ... + = = 1.
0 1 r 0

R(0, 1) is the repetition code of length 2, of dimension 1.


For m = 1 and r = 1:
         
m m m 1 1
+ + ... + = + = 2.
0 1 r 0 1

R(1, 1) is the whole space F22 , it has dimension 2.


Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


By induction on m. We know true for m = 1 and r ≤ 1,
suppose true for m − 1, that is
     
m−1 m−1 m−1
+ + ... + , r ≤ m − 1.
0 1 r
Recall:
R(r, m) = {(u, u+v), u ∈ R(r, m−1), v ∈ R(r−1, m−1)}.
Thus R(r, m) has dimension the sum of the dimensions of
R(r, m − 1) and R(r − 1, m − 1).
Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


By induction on m. We know true for m = 1 and r ≤ 1,
suppose true for m − 1, that is
     
m−1 m−1 m−1
+ + ... + , r ≤ m − 1.
0 1 r
Recall:
R(r, m) = {(u, u+v), u ∈ R(r, m−1), v ∈ R(r−1, m−1)}.
Thus R(r, m) has dimension the sum of the dimensions of
R(r, m − 1) and R(r − 1, m − 1).
We then have
       
m−1 m−1 m−1 m−1
+ ... + + + ... + .
0 r 0 r−1
Reed-Muller Codes
 Dimension

What is the dimension of R(r, m)?


We then have
       
m−1 m−1 m−1 m−1
+... + + + ... + .
0 r 0 r−1
| {z } | {z } | {z }
(m0 )
m−1 m−1 m
  
Use i−1 + i = i to conclude.
Minimum Hamming By induction on m.
distance For m = 1: dH (R(r, 1)) = 21−r ,
for r = 0, dH (R(0, 1)) = 2, the
minimum distance of the
repetition code of length 2, for
dH (R(r, m)) = 2m−r . r = 1, dH (R(1, 1)) = 1, the
minimum distance F22 .
Minimum Hamming By induction on m.
distance For m = 1: dH (R(r, 1)) = 21−r ,
for r = 0, dH (R(0, 1)) = 2, the
minimum distance of the
repetition code of length 2, for
dH (R(r, m)) = 2m−r . r = 1, dH (R(1, 1)) = 1, the
minimum distance F22 . Assume
R(r, m − 1) has minimum
distance 2m−1−r for all
0 ≤ r ≤ m − 1. Then R(r, m)
has minimum distance
min{2 · 2m−1−r , 2m−1−(r−1) } =
2m−r .
Dual code We have R(m, m)⊥ = {0} since
m
R(m, m) = F22 .

R(m, m)⊥ = {0},


Set R(−1, m) = {0}, then we
R(r, m)⊥ = R(m−r−1, m) can write

for 0 ≤ r < m. R(r, m)⊥ = R(m − r − 1, m)

for 0 ≤ r ≤ m.
Dual code By induction on m. For m = 1
and r = 0, R(0, 1)⊥ = R(0, 1),
that is, the binary repetition
code of length 2 is self-dual,
R(r, m)⊥ = R(m−r−1, m) which is true.
For m = 1 and r = 1,
for 0 ≤ r ≤ m. R(1, 1)⊥ = R(−1, 1), that is,
the dual of the whole space is
the empty space, which is true.
Dual code We first prove
R(m − r − 1, m) ⊆ R(r, m)⊥ .

R(r, m)⊥ = R(m−r−1, m)

for 0 ≤ r < m.
Assume the statement
true for m − 1, namely
R(r, m − 1)⊥ =
R(m − r − 2, m − 1) for
0 ≤ r ≤ m − 1.
Dual code We first prove
R(m − r − 1, m) ⊆ R(r, m)⊥ .
R(r, m) = {(a, a + b), a ∈
R(r, m − 1), b ∈ R(r − 1, m − 1)}.
R(r, m)⊥ = R(m−r−1, m) Take (a, a + b) ∈ R(m − r − 1, m),
a ∈ R(m − r − 1, m − 1),
for 0 ≤ r < m. b ∈ R(m − r − 2, m − 1).
Assume the statement Take (u, u + v) ∈ R(r, m),
true for m − 1, namely u ∈ R(r, m − 1),
R(r, m − 1)⊥ = v ∈ R(r − 1, m − 1).
R(m − r − 2, m − 1) for Left to show:
0 ≤ r ≤ m − 1. (a, a + b) · (u, u + v) = 0.
Reed-Muller Codes
 Dual

We compute (a, a + b) · (u, u + v):


a · u + (a + b) · (u + v) = a · v + b · u + b · v
Reed-Muller Codes
 Dual

We compute (a, a + b) · (u, u + v):


a · u + (a + b) · (u + v) = a · v + b · u + b · v
a · v = 0, a ∈ R(m − r − 1, m − 1) = R(r − 1, m − 1)⊥ ,
v ∈ R(r − 1, m − 1).
Reed-Muller Codes
 Dual

We compute (a, a + b) · (u, u + v):


a · u + (a + b) · (u + v) = a · v + b · u + b · v
a · v = 0, a ∈ R(m − r − 1, m − 1) = R(r − 1, m − 1)⊥ ,
v ∈ R(r − 1, m − 1).
b · u = 0, b ∈ R(m − r − 2, m − 1) = R(r, m − 1)⊥ ,
u ∈ R(r, m − 1).
Reed-Muller Codes
 Dual

We compute (a, a + b) · (u, u + v):


a · u + (a + b) · (u + v) = a · v + b · u + b · v
a · v = 0, a ∈ R(m − r − 1, m − 1) = R(r − 1, m − 1)⊥ ,
v ∈ R(r − 1, m − 1).
b · u = 0, b ∈ R(m − r − 2, m − 1) = R(r, m − 1)⊥ ,
u ∈ R(r, m − 1).
b · v = 0, b ∈ R(m − r − 2, m − 1) = R(r, m − 1)⊥ ,
v ∈ R(r − 1, m − 1) ⊆ R(r, m − 1).
Reed-Muller Codes
 Dual

We saw R(m − r − 1, m) ⊆ R(r, m)⊥ .


    
⊥ m m m
dim(R(r, m) ) = 2 − 1 + + ... +
1 r
     
m m m
= + + ... +
r+1 r+2 m
   
m m
= + + ... + 1
m−r−1 m−r−2
= dim(R(m − r − 1, m))
Definition of Reed-Mueller Codes
Length, dimension, generator matrix
Hamming distance and dual

You might also like