一、RM码
1、RM的编码
RM码是一类纠正多个差错的编码,这类码构造简单的构造,结构特性丰富。对于任意整数m和r,0<r<m,存在一个二级制r阶RM码,记为RM(r,m)。
码长为2
m
,以m=3为例子,码长为8,这个码有四个基本的基,如下:
x0=[1 1 1 1 1 1 1 1];
x1=[1 1 1 1 0 0 0 0];
x2=[1 1 0 0 1 1 0 0];
x3=[1 0 1 0 1 0 1 0];
R(0,3)表示0级的线性组合
码的生成多项式就为x0,信息就是1比特
R(1,3)表示1级的线性组合
这时码的生成多项式就为:
[x0;x1;x2;x3] = 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0
信息就是4个比特
R(2,3)表示2级的线性组合
[x0;x1;x2;x3;x1x2;x1x3;x2x3] =
1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0
1 1 1 1 1 1 0 0
1 1 1 1 1 0 1 0
1 1 1 0 1 1 1 0
式中x1x2表示向量x1和x2向量相乘,也就是按位相与。
信息就是7个比特
R(3,3)表示3级的线性组合
[x0;x1;x2;x3;x1x2;x1x3;x2x3;x1x2x3]
信息就是8个比特
从上面就可以归纳出RM(r,m)的生成多项式包含的列一共有:
k=1+C(m,1)+C(m,2)+…+C(m,r);
C(m,r)表示m个元素你r个元素相组合得到的组合个数。
2、RM码的性质
在线性分组码中,两个码字对应位上数字
不同的位数
称为码字距离,简称距离
性质一:对于R(r,m),任意两个码字之间的距离是2
m-r
。
根据差错编码控制理论,如果一种编码具有纠e个错的能力,那么这个码的任意两个码字之间的最小距离就要大于2e。
3、RM的译码
下面介绍一个直观的译码算法,这个算法的基本思想是:
验证编码矩阵里的每一行,即采用大数逻辑决定这一行在编码的时候是否被采用。
详细的译码算法:
- 第一步:对于R(r,m)编码矩阵里的每一行,找到其2m-r 个特征矢量,然后将每个特征矢量与这个码字进行点乘(GF(2)域上的矢量内积)。
- 第二步:观察点乘的结果里0和1的个数,如果0的个数多,则对应一行的系数定为0,否则定位1.
- 第三步:前两步是针对生成矩阵除了第一行的任意一行做的,做完之后将每一行与得到的系数相乘,然后将这些矢量相加得到新的一个矢量,然后将这个矢量与接收到的码字相加得到一个新的矢量,然后判断这个矢量里0和1的个数,如果0多,则表明第一行的系数是0,否则表明第一行的系数是1。这些系数即是译码的结果。
那么,每一行的监督矩阵如何得到:
对于每一行定义一个集合E,这个集合包含的元素是这一行里所没有包含的所有xi ,举一个例子,前面的R(1,3)的最后一行是x3,那么这一行对应的集合E就是{x1,x2},对于R(2,3)最后一行是x2x3,那么这个集合就是{x1}。
特征多项式是集合里的每个元素或者它的补码的线性组合(一个组合只能出现它自己或者它的补码)。
补码的概念:
多项式的各个元素去反得到的码,x1’ 是x1的补码。
举个例子,对于R(1,3)的生成多项式的最后一行,得到集合E为{x1,x2},那么它的特征多项式就是:x1x2,x1x2’ ,x1’ x2,x1’ x2’
二、Polar码