论述奇偶校验和海明码

一、奇偶校验

      奇偶校验码是奇校验码和偶校验码的统称,是一种检错码,用于检查二进制数据的位错,并且用1个比特位来标记校验结果。所以当我们的数据有n位时,要传输给接收端的数据有n+1位。

        采用奇校验时,若所要传输的数据 含有奇数个1,则校验位为0 ;反之,含有偶数个1,则校验位为1。

        采用偶校验时,若所要传输的数据 含有偶数个1,则校验位为0 ;反之,含有奇数个1,则校验位为1。

        奇偶校验功能简单,实现起来容易,但是它只能发现数据发生了错误,无法确定是哪个位置发生了错误,只能要求发送方重发。且当数据发生了偶数个错误时,奇偶检验无法发现错误,也就是数据有偶数个错误时它没有纠错功能,故计算机采用更为先进的海明码来纠错。

二、海明码

        海明码是来纠错检错的,而关于海明码的一系列问题都是根据校验位的值的变化找出错误,从而进行纠正错误。

      而它作为纠错码,其方法是为需要校验的数据位+校验位,使得校验位的值决定于某些被校位的数据,当被校数据出错时,可根据校验位的值的变化找到出错位,从而纠正错误。

    海明码的三个重要性质:

①假设 数据位为 n 位,校验位有 k 位,则海明码有 n + k 位,且 n 和 k 需满足 2𝑘 − 1 ≥ n + k 等式。如:

    当 n = 8   时,则 k = 4 ;

    当 n = 16 时,则 k = 5 。

②用符号 D 代表数据位,P 代表校验位,H 代表海明码,则 P𝑖 = 𝐻2𝑖−1 ,也就是说 第 i 个校验位在海明码的第 2𝑖−1 个位置上。当确定好校验位在海明码的位置之后,剩下的位置则由数据位进行填充。

        根据①和②,我们便可以确定数据位为 n 时,校验位 k 的值及海明码的格式( 这里以数据位为 8 位举例 ):

       ①,因为 n = 8 且 2k-1>n ,所以 k = 4 ,所以海明码有 8 + 4 = 12 位。

       ②,可以觉得4个校验位 P1、P2、P3、P4 分别在海明码的 H1、H2、H4、H8 的位置上,如上图所示。

       ③每一位海明码都会被校验到,其中,被校验的海明码它的下标等于参与校验的所有检验码下标之和( 对应存放 D 时 ),而校验位由自身校验( 对应存放 P 时 )。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值