差错检验与纠正: 循环冗余校验与汉明码

差错检验与纠正: 循环冗余校验与汉明码

对于信号传输过程种出现错误是很正常的,于是我们增加一些冗余码来检错或者纠错
我们提供了两种策略

  1. 添加只能使对方推测出有无错误的冗余信息,检错码
  2. 添加使对方推测出没有出错前的数据的冗余信息,纠错码

两种策略占据不同的生态位置,
高度可信的信道(光纤)使用检错码更合算,偶尔发生错误就重传
错误发生频繁的信道上(无线链路)使用纠错码更合算,以便接收方能够计算原来的数据

检错码

  1. 奇偶校验法
  2. 校验和
  3. 循环冗余校验(不清楚)

纠错码

  1. 汉明码
  2. 二进制卷积码
  3. 里德所罗门码
  4. 低密度奇偶校验码

纠错能力与检错能力

要想知道错了就要知道什么是正确的,所以我们都有合法代码集
①检错能力≥纠错能力
②需要知道的是出错过程中,1位错的概率为90%,出错位数越多,出现概率越小
③数据块总长度n,其中数据位长度m,校验位长度为r,n=m+r
码率=n/m 码率差别很大 有噪声的信道码率或许为1/2,光纤接近1

  • {000,001,010,011,100,101,110,111}
    任何一位错得到的是另一个合法代码,没有任何检错能力,更别说就错了
  • {000,011,101,110}
    需要两位变化才能变成另外的合法代码,可能会因为 111可以是{101,011}变两位,{000}变三位,但是根据②,我们只把它认为是变一位造成的,所以它能检一位错
  • {000,111} 三倍冗余存储01
    变三位才行,检1位错,纠1位错
  • {0000,1111} 四倍冗余存储01
    变四位才行,检2位错,纠1位错
  • {0000,11111} 五倍冗余存储01
    变五位才行,检2位错,纠2位错

上面任两组合法代码的差异的最少位数成为 编码的最小距离,比如编码距离为d,需要d个1位错才能将一个合法代码转变成另一个合法代码
L − 1 = D + C ( D ≥ C ) L : 最 小 编 码 距 离 D : 检 错 位 数 C : 纠 错 位 数 L-1=D+C(D ≥C)\\ L:最小编码距离 \\ D:检错位数 \\ C:纠错位数 \\ L1=D+CDCLDC


一丶奇偶校验法

奇校验:就是让原有数据序列中(包括你要加上的一位)1的个数为奇数
偶校验:就是让原有数据序列中(包括你要加上的一位)1的个数为偶数

下面设置最高位为校验位

奇校验偶校验
10011011100110101001101

因为变化一位会改变奇偶性,所以检测位也要改变,所以最小编码距离为2,只有检错力

二丶循环冗余

我们就要在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence),只有检错力

这里我也有误区:有些书上说CRC可以纠错,得到余数化为2进制,就是哪位错了,取反即可,各种书上写得不一样

在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术,使用CRC获得FCS,下面演示CRC的用法

在这里插入图片描述

算术规则:

  • 发送: 被除数原信息后根据生成多项式最高次添0,除数就是多项式每个幂的系数,进行就是不借位不退位,模2除法,也就是异或运行,得到余数作为FCS,余数为0就没有错
  • 接收:接受信息 除以 多项式每个幂的系数,看余数

原理:复杂,可以暂时就理解为小学除法

注:且除数p越大,检测效果越好,越小可能有些错检测不出来

三丶汉明码

海明码是具有1位纠错能力的编码,重叠分组的奇偶校验方法,如下图的7位数据

在这里插入图片描述
2 k ≥ n + k + 1 2^k≥n+k+1 2kn+k+1
n信息位数,k检错位数,1是没有错的情况,2k k个检错位组成的二进制编码能指出的错误状态

汉明码的产生

在这里插入图片描述

汉明码的纠错

在这里插入图片描述

分组简单的方法
1=1
2=2
3=1+2
4=4
5=1+4
6=2+4
7=1+2+4
有1的一组 :1 3 5 7
有2的一组 :2 3 6 7
有4的一组 :4 5 6 7

直接用眼睛看奇偶来添

检错就是发生错误组数共同拥有的那个(一个错误就是独有的)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yilyil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值