差错处理


差错处理

任何信道,即使是光纤,也会出错

错误类型:

  • 单个错误:分散在各块中(平均每一大箱水果都有1个是坏的)
  • 突发错误:集中在某个块中(可能因为某些原因,某一箱苹果基本全是坏的)这个非常难处理

差错的处理:

  • 纠错码:发现错误,从错误中恢复出正确的来,因其需要太多的冗余位纠错开销太大,在有线网络中极少使用,主要用于无线网络中
  • 检错码:只能发现错误,不能从错误中恢复,但可采用重传,计算机网络中主要采用循环冗余码(CRC)


码字与海明距离

码字(codeword):包含数据位和校验位的n位单元

海明距离:两个码字的海明距离为两个码字之间不同位的数目,也就是它们异或(xor)结果中1的个数

  • 例如:10001001和10110001的海明距离为3

全部码字的海明距离:全部码字中任意两个码字之间海明距离的最小值(设其为d,以下通用


海明距离与检错的关系

结论:海明距离为d+1的编码能检测出d位差错

一个很著名的检错码:奇偶校验码,方式为追加1个位在数据后面,如果码字中有偶数个1则追加0,否则追加1(这是偶校验, 奇校验相反)

例子:一个系统要传输的原始码字:"01","10","11","00"

编码后的偶校验码字是:"011","101","110","000",(当然只有这4种是正确的)

可以计算出全部码字的海明距离为2,也就是说奇偶校验码能检测出1位差错

证明:如果得到了一个"001",很明显这是个非法码字,如果得到了"000",很明显合法,但是你却不能确定它是不是由"110"跳变2后的错误码字


海明距离与纠错的关系

结论:海明距离为2d+1的编码,能纠正d位差错(关于这个结论可以仔细思考一下为什么)

举个例子:一个系统有4个合法码字:"0000000000","0000011111","1111100000","1111111111

海明距离是 5=2*2+1,所以可纠正2位错误

假设我们发送的码字是"0000011111",收到的码字为"0000000111"

它离"0000011111"最近,所以它会被纠正为"0000011111"

假设我们发送的码字是"0000000000",收到的码字为"0000000111"

这样很显然是无法被纠正的,因为它一定还是会被纠正为"0000000111"



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值