大二上,计组原理笔记(3)2.6数据校验码

前言:
个人我的听课记录,毕竟是初学,错误在所不免,我知道了错误会改正更新,欢迎指导也欢迎一块儿讨论学习。html

2.6 数据校验码

在这里插入图片描述

{n,r}即{k+r,r}web

2.6.1 奇偶校验码(k+1,k)

1.简单奇偶校验
只能检错,不能纠错。且只能检错奇位错误,不能肯定出错的位置。svg

在这里插入图片描述
2.交叉奇偶校验学习

可检错也可纠错了。编码

在这里插入图片描述
例:偶校验spa

0101 ——> 0
1111 ——> 1
||||     |
1011 ——> 1

能够判断第二行第四列出错,因此信息应该是:01011110,因而计算机能够进行纠错。3d

2.6.2海明码(汉明码)

有两种形式:(6,3)(7,4)
可设密码
在这里插入图片描述
M=D × \times × G中,D是信息码,G是生成矩阵。(生成矩阵能够本身设定,由此决定这能够来设密码)
G={ Ik,P }
H={ PT, Im}, H 是校验矩阵,
校验子:S=B × \times × HT
例题:(6,3)code

|1 1 0 1 0 1| 
生成矩阵为:G=   |0 1 0 0 1 1|
                |0 0 1 1 0 1|1)将101进行编码,
   (101* G=111000  (异或运算)
    3位的信息码一共有八种,各自 * G获得对应的海明码编码。
(2)已知生成的编码为 A= 110101,求它的信息码 m 。
    设 m =(m2,m1,m0)
    则 m * G = ( m2,m^m1,m0,m2^m0,m1,m2^m1^m0 )(^为异或)
    若 m 用 a5a4a3a2a1a0 表示,
    则m2=a5=1,m1=a2=0,m0=a3=0,因此 m=100
(3)获得的编码 B= 100101,对其检纠错并译码。
   第一步:保证G中Ik为“单位矩阵”,即只有主对角线是1.因此须要将G进行r1^r2(异或)运算获得
       |1 0 0 1 1 0|                 
   G=  |0 1 0 0 1 1|   
       |0 0 1 1 0 1|    
   第二步:求H的转置行列式  HT          
                  |110|                     
                  |011|
    HT(H的转置)=  |101|
                  |100|
                  |010|
                  |011|                                  
    第三步:求校验子                                    
     S=B*HT=011
   第四步:找出正确编码。
      由纠错表可知011表明a3出错,(记住111表明不止一位出错,没法纠错。)
   因而咱们知道正确的编码是 A= 101101
   (由(2)得)则m2=a5=1,m1=a2=0,m0=a3=1,因此 m=101
ps:2)中编码为A,(3)中编码为B,是有区别的。
通常用A表示表明没有错,不用检纠错;B表示不肯定,就须要检纠错。

(6,3)检纠错能力:检错两位,纠错1位。xml

2.6.3循环冗余校验码(CRC)

不能设密码了。
在这里插入图片描述
例题:(7,4)
(1)选择生成多项式为1011,把4位有效信息1100编成CRC码。
准备一:
表示生成多项式:1011=X3+X1+X0=X3+X+1
准备二:
表示信息码:1100=X3+X2
准备三:
肯定2n-k : X7-4 = X3
计算:
求校验码:
r(x)=(X3+X2) X3mod (X3+X+1)=x,
x表明10,要三位,则补0,即010
出结果:1100 010htm

(2)若收到 B=1101010,是否出错?
准备一:
表示生成多项式:1011=X3+X+1
准备二:
表示B= X6+X5+X3+X
计算:
( X6+X5+X3+X )mod ( X3+X+1 )
= x+1
x+1表明11,空位补0,即011
结果:011不是0,出错了。

例:求“A”,用CRC(7,4)表示。 A的ASCII码是41,即 01000001,分红四位有两份。 0100用CRC表示有7位, 0001用CRC表示有7位, 但计算机中存储两个字节,16位,因而补0. 0 ( 0100CRC)7位 | 0 (0001CRC)7位 一共就有16位了。 · · · · · ·