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.已知:信息码为:"0010"。海明码的监督关系式为:(推导过程略)
        S2=a2+a4+a5+a6
        S1=a1+a3+a5+a6
        S0=a0+a3+a4+a6
     
    求:海明码码字。

方法二:(不用查表,方便编程)


例题:

.已知海明码的监督关系式为:

 S2=a2+a3+a4+a6

 S1=a1+a4+a5+a6

 S0=a0+a3+a4+a5

 接收端收到的码字为a6a5a4a3a2a1a0=1010100,问在最多一位错的情况下发送端发送的码字是什么?(写出推演过程)。

答案:
1.(1)根据海明码的监督关系式

S2=a2+a3+a4+a6

 S1=a1+a4+a5+a6

 S0=a0+a3+a4+a5,得下表:

S2S1S0
 000
 001
 010
 011
 100
 101
 110
 111
 
错误位置
 无错
 a0
 A1
 a5
 a2
 a3
 a6
 a4 
  
 (2)将a6a5a4a3a2a1a0=1010100分别代入海明码的监督关系式

 得:(其中“+”号表示异或运算);

 s2=1+0+1+1=1

 s1=0+1=0+1=0

 s0=0+0+1+0=1

 即s2s1s0=101 
 (3)查表可知:接收到的比特序列第4位有错,正确的应是: 
 a6a5a4a3a2a1a0=1011100 
 某公司采用一条租用专线(Leased line)与在外地的分公司相连,使用的MODEN的数据传输率为2400bps,现有数据12*106 字节,若以异步
方式传送,不加校验位,1位停止位则最少需要多少时间(以秒为单位)才能传输完毕?
答: 以异步方式传送一个字节数据,需要加1位起始位,1位停止位,实际需要传送8+2=10位. 故: (12*106*10)/2400 =5*104秒 
 若10Mbps的CSMA/CD局域网的节点最大距离为2.5Km,信号在媒体中的传播速度为2*108 m/s,求该网的最短帧长 
解答: 10Mbps表示 每秒钟传输10*106 位数据 ,
 CSMA/CD,信号需要返回才能知道有没有碰撞,所以传输一次信号需要两倍距离, 先算出信号在节点完整传输一次所需要的时间: 2*(2.5*103)/2*108 =2.5*10-5 秒 ,然后算出帧长 =2.5*10-5 * 10*106 =250bit 
** 某令牌环媒体长度为10Km,信号传播速度为200m/us,数据传输率为4Mbps,环路上共有50个站点,每个站点的接口引入1位延迟,
试计算环的比特长度.
解答: {(10*10^3 )/(200*10^6)} * 4*10^6 =0.2*10^3=200bit
200+50*1=250bit
一共是250比特
 用速率为1200bps的调制解调器(无校验位,一位停止位),则每分钟最多传输的汉字是多少(汉字为双字节) 
 解答:(1200*60)/{(8+2)*2}=3600个 
设信息码为101 ,采用生成多项式G(X)为G(X)=X^4+X^3+X^2+X+1,生成的循环码是多少? 
解答:略 1011101 
在数据传输过程中,若接收方收到发送方送来的信息为11010110111,生成多项式G(X)=X4+X3+x+1,接收方收到的数据是否
正确?(写出判断依据及推演过程)。

解答:(1)因为G(X)=X4+X3+x+1,故其对应的二进制比特串为11011

 (2)又因为接收到的信息为11010110111,故可有二进制除法。

 (3)11010110111÷11011(除法的详细过程略)
 (4)因上述除法的余数为0,故接收到的信息为正确信息。即发送过程中未出现错误

 

 设LAN采用路由器与X.25 网相连,现在路由器每秒转发200个分组,分组长度为X.25网的标准128字节,问:
(1)路由器的转发速率是多少Mbps?
(2)计算一分钟内的通信费用(通信量按段来计算,每段64字节,需0.03元)

解答:(1)路由器的转发速率为

200(分组/秒)*128(字节/分组)
=2560字节/秒
=2560*8位/秒
=0.02048Mbps

(2)一分钟传输的费用
={(2560*60)/ 64} * 0.03 
=72元/分钟
________________________________________________________________
注:如果K=4,那么

s0=a0+a1+a3+a4+a6
s1=a0+a2+a3+a5+a6
s2=a1+a2+a3+a7
s3=a4+a5+a6+a7

______________________________________________________________________

 解:1)由监督关系式知冗余码为a2a1a0。
    2)冗余码与信息码合成的海明码是:"0010a2a1a0"。
     设S2=S1=S0=0,由监督关系式得:
        a2=a4+a5+a6=1
        a1=a3+a5+a6=0
        a0=a3+a4+a6=1
      因此,海明码码字为:"0010101"
    
 2)海明码的接收。

  例2.已知:海明码的监督关系式为:
        S2=a2+a4+a5+a6
        S1=a1+a3+a5+a6
        S0=a0+a3+a4+a6
      接收码字为:"0011101"(n=7)

    求:发送端的信息码。

  解:1)由海明码的监督关系式计算得S2S1S0=011。
    2)由监督关系式可构造出下面错码位置关系表: 

S2S1S0 错码位置
 000 无错
 001 a0
 010 a1
 100 a2
 011 a3
 101 a4
 110 a5
 111 a6
 3)由S2S1S0=011查表得知错码位置是a3。
 4)纠错--对码字的a3位取反得正确码字:"0 0 1 0 1 0 1"
 5)把冗余码a2a1a0删除得发送端的信息码:"0010"



    3)由S2S1S0=011查表得知错码位置是a3。
    4)纠错--对码字的a3位取反得正确码字:"0 0 1 0 1 0 1"
    5)把冗余码a2a1a0删除得发送端的信息码:"0010"