如何在matlab中通过XOR对包信息进行编码

时间:2014-10-18 07:42:29

标签: matlab encoding packet decoding

我正在从事频道编码工作。我的专业是用位信息编码。例如,给定输入位为x=[1 0 1]且G矩阵为

G =

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

然后编码符号将为y=mod(x*G,2)% mod to convert to binary bit

y =

     0     1     0     0

信道编码中的比特编码处理非常简单。现在我想将这项工作映射到数据包编码。一些论文提到如果我们认为每个数据包是n个字节,我们可以这样做进行数据包编码。例如,我有一个大小为3000字节的文本文件。现在我将文件分成1000个数据包。因此,每个数据包的大小就是3个字节。我的问题是我完成了位编码。 但是,我不知道使用数据包编码。如果你解决了这个问题,请告诉我。我听说位编码我们只有两个0级和1级,所以我们可以使用GF = 2。如果我们为数据包级别工作,我们必须考虑GF> 2。我不确定 enter image description here 第二个问题是,如果数据包大小等于50个字节而不是3个字节呢?

1 个答案:

答案 0 :(得分:1)

首先,当你谈到GF(p^m)时,你的意思是伽罗瓦域,其中p是一个指示多项式次数的素数。因此,可以定义具有pm元素的字段。在您的情况下,p=2m=3。有了多项式,就可以使用两种不同的编码方案来应用它:

  • Block coding。您可以将数据包分成几个3位的块,并独立编码每个块。如果它们不是倍数,请使用零填充。
  • Convolutional coding。您将多项式应用为滑动算法。

第二种方法更稳健,延迟更低。


GF术语用于处理多项式,扩展伽罗瓦域和多项式的概念不是很复杂,但理解它需要时间。但是,实际上,如果你有一个多项式表达式,你只需要以你想要的方式将它应用于位序列,阻塞或卷积(或喷泉)。

矩阵G实际上为输入X=[1 x x^2]定义了4个多项式,即Y1=1+x^2Y2=x^2Y3=xY4=1+x^2