海明码、CRC循环冗余校验码一、海明码二、CRC循环冗余校验码一、海明码1.是一种多重奇偶检错系统既能检错又能纠错只能纠 1 位错。2.在数据位中间插入若干校验位让每一位数据参与多个校验位的计算出错时通过校验结果能定位是哪一位错了。3.校验位放在2 的幂次位置1、2、4、8、16…每个数据位由多个校验位共同监督采用偶校验 / 奇校验构建监督方程。4.优点可纠正 1 位错误检测 2 位错误缺点冗余位较多只适合短数据、近距离传输。5.码距码距≥2d1d1时码距≥3。6.计算设海明码校验位k信息位m则2^k≥mk1其中信息位是数据码字的位数。7.海明码码距两个码字之间不同的位数。二、CRC循环冗余校验码1.只能检错不能纠错检错能力极强。2.把数据看成二进制多项式除以一个约定好的生成多项式 G(x)得到的余数就是 CRC 校验码拼在数据后面发送。3.发送端数据左移 r 位r 是生成多项式最高次模 2 除法除以 G(x)余数作为 CRC 校验码4.接收端整个接收串除以同一个 G(x)余数为 0 → 无错余数≠0 → 出错。5.优点检错能力极强能检所有 1 位、2 位错、所有奇数个错、大部分突发错误缺点只能检错不能纠错应用以太网、硬盘、文件传输校验。6.码距码距≥d1d1时码距≥2。7.计算方法若给出G(x)生成多项式G(x)X^4X1和信息码字10111①先得出二进制字符串找到G(x)生成多项式的原式例如G(x)X^4X1可以化为1X ^40X ^30X ^21X ^11*X ^0则其二进制字符串10011。②再在原始信息后添“0”0的数量G(x)生成多项式最高阶数量此时在信息码字后面加4个0得到信息串为101110000。③利用模2除法即信息串除以二进制字符101110000/10011得到余数CRC校验码-余数为1100。