计算机网络复习笔记第九部分--误差检测与修正(CRC循环冗余校验码,汉明码)

Noisy Text

全是错的那种东西

Natural Language and Artificial Language

  • Natural language
    existence of redundancy enables correction of errors 冗余可以用来纠错
    比如说我们读一个句子,少了一个字母的情况下也能读对。
  • Artificial language
    designed without redundancy. error correcting capability is missing

Repetition code

repeating each symbol n times
我们假设一个一百个符号里只能容忍一个错误的信道。
在这里插入图片描述

可以纠错,大多数投票就可以。只能纠1个错。
显然这个比特错误的概率超出了我们的容忍。
在这里插入图片描述
符合我们的要求。注意二项式算法。

information rate

  • (n, k) 码
    k is information bits carry information;
    n is to be sent

    R(Z) = k/n is called information rate

  • Typically a code with information rate near 0 is not very efficient, but it often provides good noise protection.
    (e.g.) the repetition code has the information rate 1/n
    (e.g.) the parity code has the information rate (n-1)/n

Parity code

modulo 2 algebra

模2相加。

  • 如果发送v,收到w, error pattern e为1, 其他情况e为0,这样可以有w=v+e
  • repetition code (An):
    x1=x2; x1=x3; …; x1=xn
    x1+x2=0; x1+x3=0…
  • even-parity code
    x1+x2+…+xn=0

Hamming distance

  • The Hamming distance of two codewords is the number of corresponding对应的 bits that differ between these two codewords 对应比特不同的个数
  • The Hamming distance of a code is the minimum of the Hamming distance between all possible pairs of codewords of that code
    – To detect d-bit errors, a code must have a minimum Hamming distance of at least
    d + 1 检测x比特需要x+1的汉明距离
    – To correct d-bit errors, a code must have a minimum Hamming distance of at least 2d + 1 纠错x比特需要2x+1的汉明距离

Hamming code

假如是一个(7,4)码,最小汉明距离是3(原来的码和现在的码最少差3个) d=3,可以纠错1位,检错2位
– 这个地方不太懂,为什么要7位码要用3位?是由7得出3的还是由4得出3的。有待之后coding部分的学习,发现了后本人会来修正。

编码
汉明码的编码方式也比较特别的。

  1. 首先将前面信息位都写出来,我们的最终的码的构成其实就是4+3的形式。每个码的数位我们都依次按照1(1),2(10),3(11),4(100),5(101),6(110),7(111)来标注好。还有写出他们的二级制数。
  2. 汉明码的校验位是二次方幂的那个位数。比如1(1),2(10),4(100),8,16等等。
  3. 校验位按照二进制表达后,1所代表的那个校验位,校验的是所有倒数第一位是1的位数,也就是v1, v3, v5,v7。然后使用偶校验,也就是v1,v3,v5,v7中1的个数为偶,使用模2来表达的话就是v1+v3+v5+v7=0。v7=v1+v3+v5
  4. 第二个校验位就是v2,也就是10,倒数第二个为1的位数,v2, v3, v6, v7,同上
  5. 第三个校验位是v4,100。倒数第三个为1的位数。同上计算。
    在这里插入图片描述
    在这里插入图片描述

解码
d=3, 纠错1位检错2位
在这里插入图片描述

  • 注意这个例题里的s1,s2和s3的顺序和自己按照上面的方法想的顺序是相反的。这也就验证了另一个博客里所说的为什么是从大到小排列。只需要在写题的时候尽量注意即可。
  • 知道了一位是错误的时候,因为是二进制,所以可以直接改过来
  • 两个错误的时候的纠错也是错误的。所以忽略。

Polynomial code

burst error

Bit errors:

  • random single-bit errors =⇒ parity code.
  • burst of multiple-bit errors =⇒ polynomial code.

在这里插入图片描述

CRC (Cyclic redundancy check 循环冗余校验)

在这里插入图片描述

  • 发送端基本思想就是发送端和接收端共同使用一个generator,然后发送的消息假如有4位,校验码4位。比如1001是发送的信息位。补齐后面三位变成10010000,然后除以那个generator生成的多项式所代表的二进制代码。比如1011。然后把10010000除以1011之后的余数111(这一步需要用到多项式的模除法)附属在原信息位1001的后面。这个时候码就变成了1001111。也就是传送的码
  • 接收端的时候,只需要用这个传送的码,减去余数,然后除以那个generator的多项式,如果传输没有错误的话就应该是0。
  • 在写的时候,M(x)是原信息位补齐的码也就是10010000
  • G(x)是generator生成的那个码
  • R(x)是remainder余数
  • T(x)是添加了R(x)之后的传输的码。T(x)也可以通过模2运算进行,T(x) ≡ M(x) − R(x).
  • 具体的计算过程可以看下面
    在这里插入图片描述
  • 接受端收到的可以假定为T’,用T’除以G(x),如果余数为0,那么T’=T,没有错误

还有最后一部分没太懂的,有待后续学习:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不管有没有看懂,我认为最后一个G(x)的选择上,x不是因数而 x+1是因数这个必须要记住。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值