海明编码实验报告 学科专业:计算机科学与技术 姓 名: 学 号: 指导教师: 天津工业大学计算机科学与技术学院 二零一零年十二月 1 一.海明编码原理 海明码是一种可以纠正一位差错发现两位差错的编码
它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错
它必需满足以下关系式: 2r>=n+1 或 2r>=k+r+1 海明码的编码效率为: R=k/(k+r) 式中 k为信息位位数 r为增加冗余位位数 2
海明码的生成与接收 二.海明编码方法 1)海明码的生成(顺序生成法)
已知:信息码为:" 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 2 4)海明码为:"1 0 1 1 1 0 0 0 1 1 0 0" 2)海明码的接收
已知:接收的码字为:"1 0 0 1 1 0 0 0 1 1 0 0"(k=8) 求:发送端的信息码