异或、同或和奇、偶校验

n输入异或的功能:

  • 有奇数个1时,输出为1;
  • 有偶数个1时,输出为0。

n输入异或、同或的关系:

  • n为偶数时,异或、同或互为非关系;
  • n为奇数时,异或、同或功能相同。

奇校验:原始码+1位校验位,总共有奇数个1;

偶校验:原始码+1位校验位,总共有偶数个1。

从异或的功能(有奇数个1时,输出为1)和异或、同或的关系可知,可以用异或、同或电路实现奇偶校验的功能。以8421码的偶校验为例

校验码生成电路:

  • 原始码有奇数个1时,B0=1,加上原始码总共有偶数个1
  • 原始码有偶数个1时,B0=0,加上原始码总共有偶数个1

校验码检测电路:

  • Y=0:接收代码正确;
  • Y=1:接收到误码。 

奇校验的实现电路,只要在校验码生成电路的输出取非即可。

奇偶校验的局限:只能验证奇数位错,无纠错能力。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
为了求出校验码和校验码,我们需要先计算数据中1的个数并确定校验位的值。对于校验码,我们需要将数据中1的个数加上1后,使其成为数;对于校验码,我们需要将数据中1的个数加上1后,使其成为数。因此,对于数据01101101,它包含4个1,所以: - 校验码:在数据最高位添加一个1,使得数据中1的个数变成5,即011011011。 - 校验码:在数据最高位添加一个0,使得数据中1的个数变成5,即001101101。 接下来,我们可以使用海明码来检测和纠正数据中的错误。海明码的基本思想是在数据中添加冗余位,使得任何单个错误都可以被检测到并纠正。 我们可以使用一个3位的海明码来对8位数据进行编码。首先,将8位数据分成4组,每组2位: ``` 01 10 11 01 ``` 然后,对于每组数据,计算它们的海明码。使用位置编号从1开始,每个位置代表一个2的幂次方(如第1位代表20,第2位代表21,第3位代表22),并且每个数据位被赋予与其对应的位置编号。因此,每个海明码位都可以由多个数据位的或值得出。具体计算过程如下: - 海明码第1位:数据位2、3、4、5、6的或值为1,所以海明码第1位为1。 - 海明码第2位:数据位2、3、6、7的或值为0,所以海明码第2位为0。 - 海明码第3位:数据位4、5、6、7的或值为1,所以海明码第3位为1。 因此,对于8位数据01101101,它的海明码为1101011。如果在传输过程中发生了单个错误,我们可以通过比较接收到的海明码和原始数据的海明码来确定错误的位置并进行纠正。例如,如果接收到的海明码为1111011,则我们可以计算出错误的位置为第2位,因为第2位的数据位包含在海明码第1位、第2位和第3位的或值中。我们可以将第2位的值从1改为0,从而纠正错误。 注意:海明码可以检测和纠正单个错误,但对于多个错误,它的效果可能会降低。另外,海明码的编码长度和校验位数量可以根据需要进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星辰大海看

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

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

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

打赏作者

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

抵扣说明:

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

余额充值