Reed-Muller Codes - Polynomial View Encoding
Theory
Monomials
A monomial is an expression consisting of a single term. It is composed of a constant, a variable, or the product of constants and variables raised to non-negative integer exponents.
For Example: A monomial M with m variables,can be expressed as:
M=x1i1x2i2x3i3......xmim
where x1,x2,x3,......,xm are variables,
i1,i2,i3,......,im are non-negative integer exponents corresponding to each variable.
Example : (x11x23x37),(x74x99x122)
Boolean functions
A Boolean function of m variables can be represented by a polynomial of degree m over F2, f(x1,x2,...xm), where each variable corresponds to a coefficient of the polynomial. The value of the Boolean function for a particular input assignment is then determined by evaluating the polynomial over F2 using the given input values.
The number of distinct Boolean functions in m variables is the number of distinct binary sequences of length 2m, which is 22m . Every function f can be represented as a linear combination of monomials:
f=a0+a1x1+a2x2+⋅⋅⋅+amxm+a12x1x2+⋅⋅⋅+a123...mx1x2...xm
(Note that for the field F2, xin=xi and ain=ai)
Example : f=x1+x2x4+x7+x3x11
: f=x2+x3x4x7x9+x5
Evaluation of a Polynomial
Consider the polynomial with m variables over the field F2. For this polynomial and a binary vector z=(z1,z2,....zm) ∈F2m, we define: Evalz(f)=f(z1,z2,....zm) be the evaluation of f at the vector z.
Next we define Eval(f)=(Evalz(f):z∈F2m)
as the evaluation vector of f whose coordinates are the evaluations of f at all 2m vectors in F2m.
Example : Evaluation of (x1+x2x3+x3) over F23 over all 2m results in 01001011
Reed-Muller Codes
Reed-Muller codes are among the oldest and most studied families of codes in coding theory and find applications in various fields like telecommunications, digital data storage, and error-correcting memory.
Reed-Muller (RM) codes are linear block codes that are defined by two non-negative integer parameters. The first parameter, m defines the blocklength of the code (which is n=2m ). The second parameter is r, where 0 ≤ r ≤ m, that defines the dimension of the code
k=∑j=0r(jm). The Rate of this code is defined as the ratio nk=2mk=∑j=0r(jm) which signifies the fraction of the message bits to the number of bits in the codeword. Reed-muller codes are also denoted by RM(m,r).
Encoding of RM Codes
Typically to encode a message m using a code, the message vector m of length k is multiplied with the generator matrix G to obtain a codeword c of length n. Whereas Reed-Muller codes follow a polynomial view encoding approach.
Reed-Muller codes with parameters m and r consist of all the evaluation vectors of polynomials with m variables and degree no larger than r. The encoding procedure of RM (m,r) maps the coefficients of the monomials to their corresponding evaluation vectors.
The set of message polynomials for RM(m,r) codes is defined as:
M=M(X1,X2,X3,.....,Xm)=(i1,....,im)∈{0,1}m:∑j=1m,ij≤r∑ai1.....imX1i1X2i2......Xmim:ai1.....im∈F2
RM(m,r) code is defined as codeword corresponding to message polynomial M(X1,X2,X3,.....,Xm)=(M(X1,X2,X3,.....,Xm)∣(X1......Xm)∈F2m) and is of length 2m=n (Coordinates of the codeword are indexed by the vector from F2m)
RM(m,r)code={M(X1,X2,X3,.....,Xm)∣(X1......Xm)∈F2m:M(X1,X2,X3,.....,Xm)∈M}
Example : RM(m=4,r=2)
M={M(X1,X2,X3,.....,Xm)=a1100X1X2+a1010X1X3+a1001X1X4+a0110X2X3+a0101X2X4+a0011X3X4+a1000X1+a0100X2+a0010X3+a0001X4+a0000:ai1i2i3i4∈F2}
Message polynomial = X1X2+X3
Codeword corresponding to this message polynomial = (0X1X2X3X4=0000,00001,10010,1,0,0,1,1,0,0,1,1,1,1,0,0)
Generator Matrix of RM Codes
The generator matrix (GRM) of Reed-Muller codes are formed by it's evaluation vectors.
GRM={Eval(Xi):i⊆[m],∣i∣≤r}
Example : Generator matrix of RM(4,2)
GRM={Eval(X1X2),Eval(X1X3),Eval(X1X4),Eval(X2X3),Eval(X2X4),Eval(X3X4),Eval(X1),Eval(X2),Eval(X3),Eval(X4),Eval(1)}
GRM=
Error in LaTeX '\[ \left( \begin{matrix}
$Eval(X_{1}X_{2})$ \\
$Eval(X_{1}X_{3})$ \\
$Eval(X_{1}X_{4})$ \\
$Eval(X_{2}X_{3})$ \\
$Eval(X_{2}X_{4})$ \\
$Eval(X_{3}X_{4})$ \\
$Eval(X_{1})$ \\
$Eval(X_{2})$ \\
$Eval(X_{3})$ \\
$Eval(X_{4})$ \\
$Eval(1)$
\end{matrix} \right)
=
\left( \begin{matrix}
0&0&0&1&0&0&0&1&0&0&0&1&0&0&0&1 \\
0&0&0&0&0&1&0&1&0&0&0&0&0&1&0&1 \\
0&0&0&0&0&0&0&0&0&1&0&1&0&1&0&1 \\
0&0&0&0&0&0&1&1&0&0&0&0&0&0&1&1 \\
0&0&0&0&0&0&0&0&0&0&1&1&0&0&1&1 \\
0&0&0&0&0&0&0&0&0&0&1&1&0&0&1&1 \\
0&0&0&0&0&0&0&0&0&0&0&0&1&1&1&1 \\
0&1&0&1&0&1&0&1&0&1&0&1&0&1&0&1 \\
0&0&1&1&0&0&1&1&0&0&1&1&0&0&1&1 \\
0&0&0&0&1&1&1&1&0&0&0&0&1&1&1&1 \\
0&0&0&0&0&0&0&0&1&1&1&1&1&1&1&1 \\
\end{matrix} \right)
\]': KaTeX parse error: Undefined control sequence: \[ at position 1: \̲[̲ \left( \begin{…
Parity Check Matrix of RM Codes
Minimum Distance of RM codes