类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
海明码的生成(顺序生成法),,参见:
http://www.ntsf.edu.cn/cjp/tutorial/wlyl/25.htm
---------------------------
小可对其中的第二步:“2)冗余码A,B,C,D的线性码位 ”不理解,恳请达人指点,多谢!!
--------------------------------
1)海明码的生成(顺序生成法)。
例3.已知:信息码为:" 1 1 0 0 1 1 0 0 " (k=8)
求:海明码码字。
解:1)把冗余码A、B、C、…,顺序插入信息码中,得海明码
码字:" A B 1 C 1 0 0 D 1 1 0 0 "
码位: 1 2 3 4 5 6 7 8 9 10 11 12
其中A,B,C,D分别插于2k位(k=0,1,2,3)。码位分别为1,2,4,8。
2)冗余码A,B,C,D的线性码位是:(相当于监督关系式)
A->1,3,5,7,9,11;
B->2,3,6,7,10,11;
C->4,5,6,7,12;(注 5=4+1;6=4+2;7=4+2+1;12=8+4)
D->8,9,10,11,12。
3)把线性码位的值的偶校验作为冗余码的值(设冗余码初值为0):
A=∑(0,1,1,0,1,0)=1
B=∑(0,1,0,0,1,0)=0
C=∑(0,1,0,0,0) =1
D=∑(0,1,1,0,0) =0
4)海明码为:"1 0 1 1 1 0 0 0 1 1 0 0"
网友回答:
嘿!你看的这个教材,写的很差啊,找点好点的教材看看好了!
我把求法再重新归纳一下好了,这个上http://www.ntsf.edu.cn/cjp/tutorial/wlyl/25.htm写的有很多忽略掉的重要地方.
就根据你的例题:已知原码k=8;
1.算出需要几位校验位.设需要r个校验位.根据公式(2的r次方)-r>=k-1
得出需要4位,即你看的教材上的ABCD.
2.原码的k=8,加上校验码r=4,把这两个码混和之后就形成的海明码就有12位.先写出来:(其中既有原码,又有校验码)
码位: 1 2 3 4 5 6 7 8 9 10 11 12
先算校验码要插入哪几个码位:码位=2的(i-1)次方(i为校验码1,2,3,4)
得出 码位: 1 2 3 4 5 6 7 8 9 10 11 12
A B C D
3.判定这四个校验码分别对哪几位原码校验,也就是楼主不明白的那句"冗余码A,B,C,D的线性码位"
线性码位也就是其校验的位,比如A->1,3,5,7,9,11,表示A对第1,3,5,7,9,11位进行校验.
一个校验码其校验的位的判定方法是很重要的,楼主看的教材一带而过,不说明,实在是误人子弟啊.
你也可以死记着,第一个校验位A其校验1,3,5,7,9,11,B->2,3,6,7,10,11等等.......
不过题目一变,原码比12多的话,也就不知道怎么做了.
如果你想知道判定方法的话,就说一声,我再写,不然我写一堆,你也不想知道,就浪费精力了.
(海明码实在是很麻烦的东西,不过弄清楚了也就不难)