解析:
(1)用k表示信息位数,r为校验位数.根据信息位数求出校验位数,公式是2^r≥k+r+1,满足这个不等式的最小的r,就是校验位数.
而信息位数则根据信息的长度来确定,如0010,信息位数为4.所以2^r≥4+1+r,可以得出符合条件的最小的r为3,所以校验位数为3.
(2)根据得出的信息位数k=4和校验位数r=3,可以自己得到一个表.
表是这样的,首先他的列数等于k+r=7,但是还有第一列要用来写说明信息,所以共有8列,行数是3行.从右往左填起,第一列分别是位数(纯数字),信息位数(I),校验位数(r).然后填好第一行位数,从右到左,1-7;如下图所示
7
|
6
|
5
|
4
|
3
|
2
|
1
|
位数
|
|
|
|
|
|
|
|
信息位数
|
|
|
|
|
|
|
|
校验位数
|
(3)接下来就是把校验位和信息位填入表格
7
|
6
|
5
|
4
|
3
|
2
|
1
|
位数
|
a6
|
a5
|
a4
|
|
a3
|
|
|
信息位数
|
|
|
|
a2
|
|
a1
|
a0
|
校验位数
|
至于为什么这样填呢,接下来我就做一个简单的剖析:
首先我们可以将1-7换成二进制数从001 010 011 100 101 110 111
然后考虑校验位和信息位该往哪里填;
对于001相当于S0出错了,那么我们S0的监督关系与S1和S2进行对比,看看S1里面有的位数是S1和S2里面没有的,显然我们可以推出时a2,以此类推,010和100也就可以找到相应的位数
对于011这时候我们就要换种方式进行对比,由011可知S1和S0出错了,那么我们将S1和S0相同的找出来得到相同的是a3和a6,然后将这两个相同的元素与没有出错的S2里面的元素进行比较,看看S2是否有和S1和S0相同的元素,通过比较可以知道S2中的a6与这2个出错的相同,反过来S2里面没有a3那么就是a3出错了,所以a3就要填到011下面也就是上述表格位数为3的下面去,同理101和110也是这样推出来的
对于111我们就找三者共有的元素那就是a6
通过上述就可以将校验位和信息位的位置填完,接下来就是求每个信息位对应的值。
题目已经给了我们信息码为0010,所以我们将这信息码依次填入表格
7
|
6
|
5
|
4
|
3
|
2
|
1
|
位数
|
0
|
0
|
1
|
|
0
|
|
|
信息位数
|
a6
|
a5
|
a4
|
|
a3
|
|
|
校验位数
|
设S2=S1=S0=0有监督关系可知
a2=a4+a5+a6=0+1+0=1
a1=a3+a5+a6=0+0+0=0
a0=a3+a4+a6=1+0+0=1
这里的加号是异或符号,所以a2a1a0为101
因此海名==海明码码字为"0010101"