0

I am working in channel coding part. My major is encoding with bit information. For example, given a input bit is x=[1 0 1] and G matrix is

G =

     1     0     0     1
     0     0     1     0
     1     1     0     1

then encoding symbol will be y=mod(x*G,2)% mod to convert to binary bit

y =

     0     1     0     0

It is very simple idea for bits encoding processing in channel coding. Now I want to do map this work to packet encoding. Some paper mentioned that we can do this way for packet encoding if we consider each packet is n bytes. For example, I have a text file that size is 3000bytes. Now I will divide the file into 1000 packet. Hence, each packet has size is that 3 bytes. My problem is that I done with bit encoding. However, I don't have any idea to work with packet encoding. Please let me know if you worked with this problem. I hear that bit encoding we only has two level 0 and 1, so we can use GF=2. If we work for packet level, we must consider GF>2. I am not sure it enter image description here Second question is that how about if packet size equals 50 bytes instead of 3 bytes?

user3051460
  • 1,455
  • 22
  • 58
  • The drawing that you included is cool, but it is just describing the XOR operation. BTW, I think you are writing bytes where you mean bits. – tashuhka Oct 20 '14 at 08:18
  • Sorry, It is byte. Could you suggest to me how to encode packet that its size is 50 bytes for each packet – user3051460 Oct 20 '14 at 08:48

1 Answers1

1

First, when you talk about GF(p^m), you mean Galois Field, where p is a prime number that indicates the degree of the polynomial. Hence, it is possible to define a field with pm elements. In your case, p=2 and m=3. Once, you have the polynomial, you can apply it using two different encoding schemes:

  • Block coding. You can split the packet into several blocks of 3 bits and encode each block independently. Use zero-padding in case they are not multiples.
  • Convolutional coding. You apply the polynomial as a sliding algorithm.

The second approach is more robust and has lower delays.


The GF terminology is used to work with polynomials, the concepts of extended Galois Fields and polynomials are not very complicated, but it takes time to understand it. However, in practice, if you have a polynomial expression you just apply it to the bit sequence in the fashion that you want, block or convolutional (or fountain).

You matrix G is actually defining 4 polynomials for the input X=[1 x x^2], namely Y1=1+x^2, Y2=x^2 and Y3=x, Y4=1+x^2

tashuhka
  • 5,028
  • 4
  • 45
  • 64
  • Thank tashuhka. Right, GF is Galois Field. So, if I work bitwises, I only need GF(2^1) (possible case only 0 or 1). To extend to packet level, for example, each packet includes 3 bytes as 101 or 100... we will have 8 possible output case from 000 to 111, Right? So the GF must be GF(2^3), Right? So I think p=2 and m=3 in your explanation – user3051460 Oct 18 '14 at 16:59
  • Thank you. Could you see my second question that is how about if packet size equals 50 bytes while we use GF=2^8? Some high order bits will be lost, Right?This is reference paper in page 18 http://www.cse.dmu.ac.uk/~shakeel/files/Unequal%20error%20protection%20using%20Fountain%20codes%20with%20applications%20to%20video%20communication.pdf – user3051460 Oct 19 '14 at 14:19