Login Gblog  
简单点~~~
 
文章全文
Goberl 发表于 2009-1-4 1:29:03

汉明码生成过程:

把信息和校验码安排成一个n位区块,其中校验位的位置分别是在n位区块中的第2^(n-k-1),...2^2,2^1,2^0位,其余位置依次放置原始信息。
发送端:

  1. 每个信息位为1的位置以二进制值表示;
  2. 所有信息位是1的位置值一起经过XOR产生汉明码,依次填入位置;
  3. 将n位信息传输给接收端。

接收端:

  1. 对所接收到的信息位是1的位置值做XOR运算,得到汉明码;
  2. 用此汉明码和校验码进行XOR运算,如果其结果为零,则表示没有错误,如果结果不为零,则此结果即表明了发生错误的位置。

例子中采用8位信息,4位校验码,n=12,k=8。

R.W.Hamming,汉明码
R.W.Hamming,汉明码

说明

   校验位的位置由n=12,k=8,计算得出:2^3=8,2^2=4,2^1=2,2^0=1,即校验位分别在区块的8、4、2、1位置。
   以上“区块位置二进制”——是把区块位置的十进制换为2进制,如12的十进制换为2进制,[12]10=[1100]2。
   信息位是1的位置值一起经过XOR产生汉明码。发送端信息为1的区块有:10、9、7、3。(注意:第4、2、1的区块信息虽然是1,但却不是信息位,而是校验位)经计算得出汉明码为0111,依次填入第8、4、2、1的校验码位置。

汉明码

  接受端信息位为1的区块有:11、10、9、7、3

汉明码

  取出接受端收到的汉明码(由n、k计算出汉明码位置):0111,让0111与接收端根据接受到的数据产生的汉明码1100与运算(XOR),其结果为1011,不全为0,所以得出传输的数据有错误,把1011换算成10进制[1011]2=[11]10,所以出错的位置为区块的第11位,即区块位置的第11位的1应该是0,从而查错纠错。
 

 

类别:Mis      标签:学习      浏览(127)
相关主题:
RSA解析 第一次使用手机发布日志
EAN-13校验码 考试了
评论列表:
发表评论
大名: ( *必填)
Email: (填写后,将收到Goberl对你的回复)
网址: (可选)
正文:
      记住信息?