Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Exercise 2.07: Reed-Solomon Code (7, 3, 5) to Base 8

From LNTwww

GF(23) representation as powers, polynomials, vectors

The Reed–Solomon code considered here,  denoted  RSC(7,3,5)8,

  • encodes a block of information  u_=(u0,u1,u2)  of  k=3  symbols,  where  u0,u1,u2GF(23)  applies,  representing symbols rather than bits;
  • generates a code word   c_=(c0,c1,...,c6)   of length  n=7  with code symbols  ci  also from the Galois field  GF(23);
  • has the free distance   dmin=nk+1=5,  so that up to   e=4   symbol errors can be detected and up to   t=2   symbol errors can be corrected.


The elements of the underlying Galois field are:

GF(23)={0,1,α,α2,α3,α4,α5,α6}.

These elements can also be represented as polynomials or as coefficient vectors according to the graphic.

  1. One can see from the above table that all  uiGF(23)  and all  ciGF(23)  can also be characterized by  m=3  bits,  for example  α4  by  "110".
  2. In this exercise,  you are to trace the encoding process for the binary input sequence
110001011000000000111...

Note that:

  • The Reed–Solomon coder works blockwise.  In the first coding step,  the code symbols   c0,...,c6   are generated,  then in the second step from the information block  u_=(u3,u4,u5)  the symbols   (c7,...,c13)   of the second code word, etc.
  • One describes the information block  u_  by the polynomial   u(x)=u0+u1x+u2x2   of degree  2.  In general,  for the Galois field  GF(2m)  the degree of the polynomial results to  m1.
  • The code symbols   c0,...,c6   are obtained by substituting into the polynomial  u(x)  for the parameter  x  all elements of  GF(23)  except the zero element:
GF(23){0}={α0,α1,α2,α3,α4,α5,α6}.
  • Formally, the  RSC(7,3,5)8  can be described as follows:
CRS={c_=(u(α0),u(α1),u(α2))|u(x)=2i=0uixi,uiGF(23)}.



Hints:

  • The  "Exercise 2.8"  is structured similarly to this one,  but the generator matrix  G  is then used to generate a code word  c_.



Questions

1

What is the binary information block in the first coding step?

u_bin=(110),
u_bin=(110|001|011),
u_bin=(110|001|0).

2

What are the information symbols in the first coding step?

u0=α4,
u0=0,
u1=α6,
u1=α0,
u2=α3,
u2=α2.

3

What is the information block as a polynomial  u(x)?

u(x)=α3x+x2+α4x3,
u(x)=α3+x+α4x2,
u(x)=α4+x+α3x2.

4

What are the code symbols  c0,..., c6  for the first coding step.

c0=α2,
c1=α3,
c2=α3,
c3=1,
c4=α2,
c5=α4,
c6=1.

5

What is the binary code word?

c_bin=100|011|011|001|110|100|001,
c_bin=011|011|001|110|100|001|100,
c_bin=100|111|0.

6

Which statements apply to the second coding step?

It holds  u0=u1=u2=0.
It holds  u(x)=1.
The code word  c_GF(23)  consists of seven zero symbols.
The binary code word   c_binGF(2)  consists of  21  zeros.


Solution

(1)  Correct is the  proposed solution 2:

  • All information symbols here come from the Galois field  GF(23).  In binary notation,  each symbol is represented by three bits.
  • Because of the Reed-Solomon code parameter  k=3,  an information block consists of three information symbols:  u_=(u0,u1,u2).
  • Accordingly,  the binary information block u_bin  contains exactly  33=9  bits.


(2)  According to the table on the information page,  there is the following relationship between the coefficient vector and the exponential representation:

(110)u0=α4,(001)u1=α0=1,(011)u2=α3.
  • Correct are the  proposed solutions 1, 4, and 5.
  • The information block in the first coding step is  u_=(α4,1,α3).


(3)  In polynomial representation,  the information block  u_=(α4,1,α3)  results in:

u(x)=u0+u1x+u2x2=α4+x+α3x2.
  • Therefore the  proposed solution 3  is correct.
  • The first proposed solution cannot be correct,  since the polynomial degree can be at most  2,  if all information and code symbols originate from  GF(23).


(4)  For the code symbols you get with the polynomial representation according to the specification page:

c0 = u(x=α0=1)=α4+1+α312=(110)+(001)+(011)=(100)=α2,
c1 = u(x=α1)=α4+α+α5=(110)+(010)+(111)=(011)=α3,
c2 = u(x=α2)=α4+α2+α7=(110)+(100)+(001)=(011)=α3,
c3 = u(x=α3)=α4+α3+α9=(110)+(011)+(100)=(001)=1,
c4 = u(x=α4)=α4+α4+α11=α4,
c5 = u(x=α5)=α4+α5+α13=(110)+(111)+(101)=(100)=α2,
c6 = u(x=α6)=α4+α6+α15=(α2+α)+(α2+1)+α=1.
  • So,  correct are the  proposed solutions 1, 2, 3, 4, 7.
  • The solutions to 5 and 6 are exactly reversed.


(5)  The  first proposed solution  is correct:

  • This results from the result of the subtask  (4)  and the assignment
α2100, α3011, α3011, 1001, α4110, α2100, 1001.
  • The last proposed solution cannot be correct,  since the binary code word must consist of  nm=73=21  bits.
  • Even if you have determined only the result  c0=α2  in the subtask  (4),  you already know that the second answer cannot be correct.


(6)  The  statements 1, 3, 4  are correct:

  • The bits  10, ... , 18  of the input sequence are all  0  and thus also the information symbols  u0, u1, u2GF(23).
  • Correspondingly,  u(x)=0,  so that all code symbols  ci=u(x=αi)  correspond to the zero symbol  (index: 0i6).
  • The binary code sequence thus consists of  nm=21  "zeros".