求信息1011的海明码.
求解步骤:
(1)用k表示信息位数,r为校验位数.根据信息位数求出校验位数,公式是2^r≥k+r+1,满足这个不等式的最小的r,就是校验位数.
而信息位数则根据信息的长度来确定,如1011,信息位数为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
|
位数
|
|
|
|
|
|
|
|
信息位数
|
|
|
|
|
|
|
|
校验位数
|
然后我们不先填信息位数,而是先填校验位数,第三行.而检验位不是纯数字,而是r加下标,下标从0开始.而且填的位置根据2的次方来.
如2^0=1,所以1位下放r₀ ;
2^1=2,所以2位下放r₁;
2^2=4,所以4位下放r₂; 放到2^2=4之后就没得放了.正好校验位是r=3,r₀,r₁,r₂.
7
|
6
|
5
|
4
|
3
|
2
|
1
|
位数
|
|
|
|
|
|
|
|
信息位数
|
|
|
|
r₂
|
|
r₁
|
r₀
|
校验位数
|
最后剩下的空就补信息位数,信息位数和校验位不同,他的下标是从1开始的.I₁,I₂,I₃,I₄,4个.
7
|
6
|
5
|
4
|
3
|
2
|
1
|
位数
|
I₄
|
I₃
|
I₂
|
|
I₁
|
|
|
信息位数
|
|
|
|
r₂
|
|
r₁
|
r₀
|
校验位数
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
位数
|
1
|
0
|
1
|
|
1
|
|
|
信息位数
|
|
|
|
0
|
|
0
|
1
|
校验位数
|