第二章数据的表示3

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 由若干位代码组成的一个字称为码字,将2个码字 逐位比较,具有不同代码的位的个数叫做这2个码 字的距离。各码字间的最小距离称为码距。
2.6数据校验码
• 数据校验码中,一个码字是指数据位与校验位按 照某种规律排列得到的代码。
• 码距和检错、纠错能力的关系为:
– 如果码距d为奇数,则发现d-1位错,或者能纠正(d-1)/2 位错
(演示2-38.swf)
[例2.56]接收到码字101011111,
G(X)=X3+1,完成循环冗余检错过程
(演示2-39.swf)
2.6.3循环冗余校验码
• CRC码的纠错
– 在接收方将接收到的CRC码用约定的生成多项 式G(X)去除,如果没错,则余数为0。若有一 位错,则余数不为0,而且不同位出错其余数 不同。更换不同的码字,余数和出错位的关系 不变,只和码制与生成多项式有关。
2k≥1+n+k
2.6.2海明校验码分组方式确定
• 数据位和校验位的排列为n+k的码字,将每一位的 出错位置与故障字的数值建立关系,就可以通过 故障字的值确定码字中出错的位置,就可以取反 纠正了。
• 一般分组原则:
– 如果故障字各位全为0,则表示没有错误 – 如果故障字中有且只有一个1,则表示校验位中有一位
– 如果码距d为偶数,则能发现d/2位错,并能纠正(d/2) -1位错。
• 常用的数据校验码有奇偶校验码、海明校验码、 和循环冗余校验码
2.6.1奇偶校验码
• 奇偶校验码的基本思想是通过在原数据信 息中增加一位(奇/偶校验位),使整个码 字中1的个数为奇数个(奇校验)或偶数个 (偶校验)。将原数据和校验位一起存储、 传送,在终部件得到的相应码字再进行一 次编码,求出新的校验位,根据新校验位 确定是否发生了错误。
第二章 数据的表示
2.1数据、信息和媒体 2.2数字化信息编码 2.3数值数据的编码表示 2.4非数值数据的编码表示 2.5二进制信息的计量单位 2.6数据校验码
2.6数据校验码
• 数据校验的方法大多采用“冗余校验”的思想, 即除原数据信息外,还增加若干位编码,这些新 增的代码称为校验位。
• 为了判断一种码制的冗余程度,并估价查错和纠 错能力,引入码距的概念。
[例2.57](7,4)循环码中,G(X)=1011
时,码字中出错位和余数的对应关
系是怎样的?(演示2-40.swf)
1010码字
1011码字
d1 d2 d3 d4 p1 p2 p3 d1 d2 d3 d4 p1 p2 p3 余
出 数错

正1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0
[例2.59](7,4)循环冗余校验码中, G(X)=1011,接收1001000,完成数 据纠错过程(演示2-42.swf)
2.6.3循环冗余校验码
• 生成多项式的选取
– 并不是任何一个k位多项式都能作为生成多项式。从查 错和纠错要求看,选取的生成多项式必须满足
• 任何一位发生错误时,都应使余数不为0 • 不同位发生错误时,余数应该不同 • 对余数做模2除时,应使余数循环
式 • 根据分组方式,求出校验位
P1=m1 ⊕ m2 ⊕ m4 ⊕ m5 ⊕ m7=1 P2=m1 ⊕ m3 ⊕ m4 ⊕ m6 ⊕ m7=1 P3=m2 ⊕ m3 ⊕ m4 ⊕ m8=0 P4=m5 ⊕ m6 ⊕ m7 ⊕ m8=0
• M8 m7 m6m5 p4 m4 m3 m2 p3 m1 p2 p1 • =0 1 1 0 0 1 0 1 0 0 1 1
2.6.3循环冗余校验码
• 循环冗余校验码(CRC)是一种具有很强 检错、纠错能力的校验码。循环冗余校验 码常用于外存储器的数据校验和计算机通 信中。
• 奇偶校验码和海明校验码都是以奇偶检测 为手段的。循环冗余校验码是通过某种数 学运算来建立数据和校验位之间的约定。
2.6.3循环冗余校验码
• 校验位的生成
• 为了根据故障字代码得到出错位置,最好 和位号一致
[例2.52]故障字和分组方式8位数据 位,4位校验位(演示2-31.swf)
1
2
3
4
5
6
7
8
9
10 11 12
p1 p2 m1 p3 m2 m3 m4 p4 m5 m6 m7 m8
第4






第3






第2



√√


第1 √



2.6.1奇偶校验实现过程
• 设到数的据数为据为B=Bb’n=-1bbnn--12’…bnb-20’,…在b0’终。部在件源接部收件 处得到的校验位是P,在终部件处得到的 校验位是P’。最终校验位是P*
– 第一步:在源部件求出校验位P
• P= bn-1 ⊕ bn-2 ⊕ … ⊕ b0 ⊕1 (奇校验)
(多项式除法演示2-37.swf )
2.6.3循环冗余校验码
• CRC的检错
– 一个CRC码一定能被生成多项式整除。当数据 和校验位传送到接受端后,只要将接收到的码 字用同样的生成多项式相除,如果正好除尽, 表明没有发生错误,若除不尽,则表明有错。
[例2.56]接收到码字100011111,
G(X)=X3+1,完成循环冗余检错过程



故障字和出错情况分配
故障
12 3 4 5 6
7
8
字 正确 p1 p2 m1 p3 m2 m3 m4 p4
s4 0 0 0 0 0 0 0
0
1
9
10
m5 m6
1
1
11 12
m7 m8
1
1
s3 0 0 0 0 1 1 1
1
0
0
0
0
1
s2 0 0 1 1 0 0 1
1
0
0
1
1
0
s1 0 1 0 1 0wenku.baidu.com1 0
2.6.2海明校验码
• 将数据按某种规律分成若干组,对每组进 行奇偶检测,就能提供多位检错信息,从 而对错误位置进行定位,并纠正。海明校 验码实质上是一种多重奇偶校验码。
• 海明校验码最终的比较结果称为故障字, 故障字和校验码位数相同。
2.6.2海明校验码校验位数确定
• 假定数据位数为n,校验位为k,则故障字 位数为k,k位故障字能表示的状态最多为2k, 每种状态用来表示一种出错的情况,对于 最多一位错的情况,结果有无错、数据中 一位错、校验位中一位错,共为n+k+1种情 况。所以,要对所有结果进行正确表示,
– 数据信息M(x)是一个n位的二进制数据,将M(x)左移k 位后,用一个约定的生成多项式G(x)相除,G(X)是一 个K+1位的二进制数,相除后得到的k位余数就是校验 位。这些校验位拼接到n位数据后,形成一个n+k的代 码。这个代码就是循环冗余校验码。
– 做多项式除法时,采用“模2除法”:上商的原则是当 部分余数的首位是1时商取1,反之商0。除法过程中采 用异或运算
• CRC特点
– 如果CRC码中有一位出错,用生成多项式去除, 得到一个不为0的余数。若对余数补0后继续除 下去,则各次余数将会按照一个特定的顺序循 环。利用这个特点,能方便地进行纠错
[例2.58](7,4)CRC码中, G(X)=1011,通过余数循环添0法获 得余数与出错位对应关系(演示2-41.swf)
– 常用的CRC生成多项式
• CRC-CCITT • CRC-16 • CRC-12 • CRC-32
[例2.47]奇偶校验码:产生校验位
(演 示2-27.swf)
• 要从源部件发送数据01101010到终部件。请写出 采用奇校验法的过程
[例2.48]奇偶校验码:产生校验位
(演示2-28.swf)
• 要从源部件发送数据01101010到终部件。请写出 采用偶校验法的过程
[例2.49]奇偶校验码:校验过程无错情
• 接收数据为011011010011时(演示2-35.swf)
2.6.2海明校验码
• 在8位数据位,4位校验位的海明码中,如 果数据位中有1位不同,则该数据位至少参 加2组校验位的生成,至少引起2个校验位 的不同,再加上数据位的不同,所以其码 距 d=3,可知能发现2位错,纠正单个位错。 称为单纠错码SEC。
• P= bn-1 ⊕ bn-2 ⊕ … ⊕ b0
(偶校验)
– 第二步:在终部件求出校验位P’
• P’= bn-1 ’⊕ bn-2 ’ ⊕ … ⊕ b0 ’ ⊕1 (奇校验)
• P= bn-1 ’ ⊕ bn-2 ’ ⊕ … ⊕ b0 ’
(偶校验)
2.6.1奇偶校验实现过程
• 第三步:判断有无奇偶错
1
0
1
0
1
0
2.6.2海明校验码的校验位生成
• 在上面的分组方式中,可以看到每个数据 位至少参与两组奇偶校验位的生成。
• 分组方式确定后,就可对每组采用相应的 奇偶校验,以得到一个校验位。
[例2.53]若发送8位数据01101010,完成海 明校验过程,每组偶校验(演示2-32.swf)
• 8位数据位,海明校验中需要4位校验位 • 数据位加上校验位,共12位,根据分组原则,得到分组方
– P*=P⊕P’
• P*=1,有奇数位错 • P*=0,无错或有偶数位错。
• 奇偶校验码中,若2个数据有奇数位不同,则他们 相应的校验位就不同,若偶数位不同,则校验位 相同,但至少2位数据位不同,因而2个码字之间 至少有2位不同,码距d=2,因而只能发现奇数位错, 不能发现偶数位错,而且不能确定出错的位置, 因此不具有纠错能力。
101001010110010017
101000110110100106
101011110111001005
错1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 4 误
100001110010001103
111001111110001112
001001100110001011
2.6.3循环冗余校验码
[例2.55]数据100011 ,约定 G(x)=x3+1,计算循环冗余校验码
• 数据信息为6位,报文多项M(x)=x5+x+1。 生成多项式位数为4,则校验位位数为k=3
(数字式除法演示2-36.swf)
[例2.55]数据100011 ,约定 G(x)=x3+1,计算循环冗余校验码
• 数据信息为6位,报文多项M(x)=x5+x+1。 生成多项式位数为4,则校验位位数为k=3。
错,不需纠正
– 如果故障字中有多于1位的1,则表示有一个数据位错, 出错位置由故障字数值确定,将出错位取反纠正
[例2.51]故障字和分组方式
• 8位数据位,M=M8M7M6M5M4M3M2M1 • 校验位为2k≥1+8+k,k=4。P=P4P3P2P1 • 故障字为0000~1111的16种组合
– 无错:0000 – 校验位错:0001,0010,0100,1000 – 数据位错:取剩余的8个组合
[例2.54] 在终部件处接收(8,4)海 明码数据,完成检错以及纠错过程
• 接收数据为011001010011时(演示2-33.swf)
[例2.54] 在终部件处接收(8,4)海 明码数据,完成检错以及纠错过程
• 接收数据为011101010011时(演示2-34.swf)
[例2.54] 在终部件处接收(8,4)海 明码数据,完成检错以及纠错过程
况(演示2-29.swf) • 在终部件处,根据接收到的码字判断数据是否出
错。约定采用奇校验法
• 原校验码p为1,校验过程生成p’=1,结果p*=p ⊕ p’=0,无错。
[例2.50]奇偶校验码:校验过程
(演示2-30.swf)
• 在终部件处,根据接收到的码字判断数据是否出 错。约定采用偶校验法
• 3种情况(无错、奇数位错、偶数位错)
相关文档
最新文档