循环冗余编码(CRC编码)与海明码(考研前突击一下QAQ)

循环冗余编码(CRC编码)与海明码

一.环冗余编码

1.循环冗余编码的形成

生成多项式:G=1011
表示成生成多项式为G(x)= X 3 + X + 1 X^3+X+1 X3+X+1

示例:
假设信息字节为:F=1001010
选取生成多项式(默认)G=1011

  • 将F左移l-1位,题设l为4位(l为生成多项式位数)
    形成:F‘=1001010 000

  • 进行运算,用数据F除生成多项式得到余数 111
    在这里插入图片描述

  • 用数据码F减去余数 1001010 000 -111(采用模2的减法)= 1001010 111
    得到发送端需要的编码字M:1001010 111(其实等效于直接将余数拼接到数值位尾部)

2.循环冗余编码的校验与纠错

纠错方式,用接受到的数据去除生成多项式,如果余数仍为000,则没有错误,否则产生错误

校验错误位数的个数: 2 n − 1 2^n-1 2n1
n为余数的位数,
其中全000表示没有错,其他001~111表示第i-1位出错
i为XXX表示的真值,出错位置从最低位0位起始

适用范围:突发性错误,磁盘存储器,光盘存储器,网络通信等

二.海明码

1.编码设计

在这里插入图片描述

2.编码规则

在2的整数次幂(从0次幂开始)的位置放入奇偶校验码(位置从1起始)
将数据位按顺序依次填入除上面要填校验码位置外的位置

将每一个数据位的位置拆成2的整数次幂之和的形式,例如
11=1+2+8 ,则需要被2的0 1 3 次幂的奇偶校验码检验

示例:
在这里插入图片描述

在这里插入图片描述
奇偶校验码检验范围可以归结为:第i位的检验码从第i位开始,检验i位隔i位

3.纠错方法

假设在上述例子中第6位引入一个错误(位置从1开始)

用各位的奇偶校验码进行检验,检验正确的奇偶校验码得0,失败的得1,得到校验结果为:0110 校验结果的真值就是出错的位置,即第6位。

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值