数据校验码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机学院
3.7.1 奇偶校验
奇偶校验码的原理是在每组代码中增加一个冗余位,使 合法编码的最小码距由1增加到2。 (1) 校验码的构成规则 偶校验:每个码字(包括校验位)中1的数目为偶数。 比如1101011 的偶校验码为 1101011 1 奇校验:每个码字(包括校验位)中1的数目为奇数。 比如1101011 的奇校验码为 1101011 0
计算机学院
(2)校验原理 在接收端分别求S1、S2、S3、S4、S5。 S1 = P1⊕D6⊕D4⊕D3⊕D1⊕D0 S2 = P2⊕D6⊕D5⊕D3⊕D2⊕D0 S3 = P3⊕D7⊕D3⊕D2⊕D1 S4 = P4⊕D7⊕D6⊕D5⊕D4 S5 = P5⊕D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕ D1⊕D0⊕P1⊕P2⊕P3⊕P4
计算机学院
运算过程如下: 10 0 1 1 1 0 110 01 110 1 1 0 1 0 0 0 0 1 10 0 1 1 0 0 1 0 1 10 0 1 1 01 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 余数为 1110,所求的 CRC 校验码为:1101101 1110
因此所得CRC码可被G(x)表示的数码除尽。 将编好的循环校验码称为(n,k)码。
计算机学院

在CRC校验中,已知生成多项式G(x)=x4+x3+1。
要求: (1) 计算信息序列1101101的校验序列。 (2)画出该G(x)的编码电路。 【例题分析】 对应生成多项式G(x)的二进制序列为: 11001 在有效信息后面添4个0。然后用它和G(x)进行模2除法 运算,所得的余数即为所求的校验位。
H7 H6
H5 H4
H7
H6
H3 H2
H7 H5
H3 H1
P103 习 3.29、 3.30 3.31 题
计算机学院
3.循环冗余校验(CRC)码
二进制信息沿一条线逐位在部件之间或计算机之间传送称为串行传送。 CRC码可以发现并纠正信息串行传送过程中连续出现的多位错误。 (1)CRC码的编码 ① 模2运算 模2运算是指以按位模2相加为基础的四则运算,运算时不考虑进位和借位。 模2加减:即按位加,可用异或逻辑实现。模2加与模2减的结果相同,即: 0±0=0, 0±1=1,1±0=1,1±1=0。 模2乘: 按模2加求部分积之和。 模2除: 按模2减求部分余数。上商的原则是:当部分余数的首位为1时,商取 l;当部分余数的首位为0时,商取0。当部分的余数的位数小于除数的位 数时,该余数即为最后余数。
P2 P1
计算机学院
③ 分组
H7 H6 H5 H4 H3 H2 H1
第 一 组 ( P1) 第 二 组 ( P2) 第 三 组 ( P3)
ห้องสมุดไป่ตู้D3 0 √ √ √
D2 0 √ √
D1 1 √ √
P3
D0 1 √ √
P2
P1 √


④ 效验位的形成 P1= D3⊕D1⊕D0= 0⊕1⊕1=0 P2= D3⊕D2⊕D0= 0⊕0⊕1=1 P3= D3⊕D2⊕D1= 0⊕0⊕1=1 所以:信息码0011的海明效验码为:001 1 1 10
计算机学院
(2)求有效信息 0111 的 CRC 校验码 运算过程如下: 110 1011 0111000 1011 1010 1011 10 余数为010,所以,所求的 CRC 校验码为:0111 010
计算机学院
求循环余数:在上面1余数的基础上添0继续进行模2除, 如下:
1011 10 100 1000 1011 11 110 1100 1011 111 1110 1011 101 1010 1011 1 10 第七个余数 第一个余数 第六个余数 第五个余数 100 010 001 第三个余数 第四个余数 101 011 110 111 第一个余数 第二个余数 余数循环次序如下:
计算机学院
③分组:有4个校验位,将12位分4组,第i位由校验位的位号之和 等于i的那些校验位所校验。如表所示,如:第11位D6由P1(位 号为1)、P2(位号为2)、P4(位号为8)所校验,因为1+2+8=11。
校 H12 验 位 的 D7 位 号 0 第 组 一 (P1) 第 组 二 (P2) 第 组 三 (P3) 第 组 四 (P4) 1 2 4 8 √ √ √ √ √ √
计算机学院
CRC码是用多项式M(x)·xr( M(x)右移r位)除以称为生成 多项式的G(x) (产生校验码的多项式) 所得余数作为校验位。为 了得到r位余数(校验位),G(x)必须是r+1位。 设所得余数表达示为R(x),商为Q(x)。将余数拼接在信息位 左移r位后空出的r位上,就构成这个有效信息的CRC码。 求CRC码的方法: 1。根据 K+r≤2r-1 确定r的位数 2。 选一个r+1位的生成多项式的G(x) 3。 M(x)·xr/G(x)=Q (x)…….R (x) 4. CRC码为 M(x)·xr + R (x)
计算机学院
H11 H10 H9 D6 D5 1 √ √ √ 1 D4 0 √
H8 P4
H7 D3 1 √
H6 D2 1
H5 D1 1 √
H4 P3
H3 D0 0 √ √
H2 P2
H1 P1
√ √
√ √ √ √ √ √
④ 校验位的形成 P1= 第 一 组 中 的 所 有 位 ( 除 P1 外 ) 求 异 或 = D6⊕D4⊕D3⊕D1⊕D0=1⊕0⊕1⊕1⊕0=1 P2= 第 二 组 中 的 所 有 位 ( 除 P2 外 ) 求 异 或 = D6⊕D5⊕D3⊕D2⊕D0= 1⊕1⊕1⊕1⊕0=0 P3= 第 三 组 中 的 所 有 位 ( 除 P3 外 ) 求 异 或 = D7⊕D3⊕D2⊕D1= 0⊕1⊕1⊕1=1 P4= 第 四 组 中 的 所 有 位 ( 除 P4 外 ) 求 异 或 = D7⊕D6⊕D5⊕D4= 0⊕1⊕1⊕0=0
计算机学院
为了能检测两个错误,增加一位校验P5,放在最高位。 P5 = D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕ D1⊕D0⊕P1⊕P2⊕P3⊕P4 = 0⊕1⊕1⊕0⊕1⊕1⊕1⊕0⊕1⊕0⊕1⊕0 = 1 【例题答案】 信息码0110 1110的海明校验码为: 1 0110 0 111 1 0 0 1
计算机学院
D7 =1 H12 1100
D6 =1 H11 1011
D5 =1 H10
D4 =1 H9
D3 =1 H7
D2 =1 H6 0110
D1 =1 H5 0101
D0 =1 H3 0011 0000
无 一 错 两 错 错 位 位
1010 1001 0111
4: 译 码 器 16
(设 码 高 平 效 译 器 电 有 )
S4 奇 形 线 偶 成 路
S3 奇 形 线 偶 成 路
S2 奇 形 线 偶 成 路
S1 奇 形 线 偶 成 路
S5 奇 形 线 偶 成 路 所 位 有
计算机学院
H12H11H10H9H8
H12 H7 H6 H5 H4
H11H10 H7 H6H3H2
H11 H9H7H5 H3 H1
例题 有一个(7,4)码,写出代码0011的海明效验码,画出效验电路 解:(1)求信息码001的海明效验码。 ①确定海明效验位的位数 因为是(7,4)码,所以N=7,K=4,效验位的位数为3。 ② 确定效验位的位置:位号(1∽7)为2的权值的那些位, 即:20 、21、22 的位置作为效验位,即: 7 D3 6 D2 5 D1 4 P3 3 D0 2 1
计算机学院
② CRC码的编码方法
待编码的k位有效信息位组可以表达成多项式M(x) M(x)=C k –1 x k –1+ C k –2 x k –2 + …+ C i x i + …+ C1 x1 + C0 比如有效信息01100110可以表达成多项式 M(x)= x 6 + x 5 + x 2 + x 反之,若已知表达成多项式 M(x)= x 6 + x 4+ x 2 + x + 1 则可以推出有效信息为1010111
设R为校验位的位数,则整个码字的位数应满足不等式: +R≤2R-1 设R=3,则23-1=7,N=8+3=11,不等式不满足; 设R=4,则24-1=15,N=8+4=12,不等式满足。 所以R最小取4。
N=K
②确定校验位的位置:位号(1~12)为2的权值的那些位,即:20 、 21 、22 、23 的位置作为校验位,记作P1、P2、P3、P4,余下的 为有效信息位。即: 12 D7 11 D6 10 D5 9 D4 8 P4 7 D3 6 D2 5 D1 4 P3 3 D0 2 P2 1 P1
计算机学院
运算过程如下: 1001 1011 1010000 1011 1000 1011 11 余数为011,所以,所求的 CRC 校验码为:1010011
计算机学院
④求循环余数:在上面11余数的基础上添0继续进行模2除, 如下:
1011 11 110 1100 1011 111 1110 1011 101 1010 1011 1 10 100 1000 1011 11 第一个余数 第五个余数 第六个余数 第七个余数 第四个余数 100 010 001 101 第三个余数 011 110 111 第一个余数 第二个余数 余数循环次序如下:
计算机学院
对于N位有效信息,只要生成多项式相同,则循环余数就相同 例 求有效信息1010、0111的CRC校验码, 并求循环余数,说明校验原理,画出译码与纠错电路 (1)求有效信息1010的CRC校验码 ① 确定校验位的位数 设R为校验位的位数,则整个码字的位数应满足不等式:N=K +R≤2R-1 设R=3,则23-1=7,N=4+3=7,不等式满足。所以R最小取3。 ②选一个R+1位的生成多项式G(x),如G(x)=1011 ③在有效信息后面添R个0。然后用它和G(x)进行模2除法运算, 所得的余数即为所求的校验位。
计算机学院
当S5=1时有一位错: 由S4S3S2S1的二进制编码指出出错 位号。例如S4S3S2S1=1001 说明第9位出错,将其取反, 即可纠错。 当S5=0时无错或有偶数个错(两个错的可能性比较大) 当S4S3S2S1=0000时,接收的数无错,否则有两个错。 【例题答案】 能指出两个错误并能纠正一位出错位的 海明校验逻辑电路如图所示。
计算机学院
这个CRC码可用多项式表示为: M(x)·xr+R(x) 因为: M(x)·xr / G(x)= Q(x)…………….R(x) 所以: M(x)·xr =Q(x)·G(x)+R(x),两边加R(x)得: M(x)·xr+R(x)=[Q(x)·G(x)+R(x)]+R(x) =[Q(x)·G(x)]+[R(x)+R(x)] = Q(x)·G(x)
计算机学院
(4)局限性 奇偶校验码能发现数据代码中奇数个位出错情况,并且 不能纠正错误,常用于对存储器数据的检查或者传输数 据的检查。
3.7.2 海明码校验 海明校验的基本思想是将有效信息按某种规律 分成若干组,每组安排一个校验位进行奇偶测 试。
计算机学院

求信息码01101110的海明校验码,画出能指出和纠正一位出错 位的海明校验逻辑电路。 ①确定海明校验位的位数
计算机学院
D3 D2 D1 (2)海明效验逻辑电路如图所示 =1
H7 0111
D0 =1
H3 0011
=1 无 错 =0 有 错
=1
H6 0110
=1
H5 0101
0000 ( 译 器 电 有 ) 设 码 高 平 效
3: 译 码 器 8
S3
奇 形 线 偶 成 路
S2
奇 形 线 偶 成 路
S1
奇 形 线 偶 成 路
计算机学院
(2) 校验位的形成 设有效信息为D7D6D5D4D3D2D1D0,则: 偶校验:在发送端求校验位P= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0 奇校验:在发送端求校验位P= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0 校验电路如图所示。
计算机学院
(3)校验原理 偶校验在接受端求 P’= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0⊕P 奇校验在接受端求 P’= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0⊕P 若 P’=0,则无错;若 P’=1,则有错。 校验电路如图所示
3.7 数据校验码
任何一种编码都由许多码字构成,任意两个码字之间会有n 位代码不同,n称为它们之间的距离,这些n值中.最小的就是该 编码的码距. 例 如,用四位二进制表示16种状态,则16种编码都用到了,此 时码距为1。 若用四个二进制位表示8个状态,就可以只用其中的8种编 码,而把另8种编码作为非法编码,此时码距为2。
相关文档
最新文档