第16章 错误检测和校正(共37张PPT)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m 3 5m 2 4m 1 3m 0 2Q 11Q 00
s 0 m 35 m 24 m 13 m 02 Q 1 Q 0 s 1 m 3 (5 )2 m 2 (4 )2 m 1 (3 )2 m 0 (2 )2 Q 12 Q 0
2022/8/31 19
第16章 错误检测和校正
• 设在GF(23)域中的元素对应表如表16-01所示 。假
设(6,4)RS码中的4个信息符号为m3、m2、m1和 m0,信息码符多项式 M(x)为
M(x)=m3x3+m2x2+m1x+m0
(16-3)
并假设RS校验码的2个符号为Q1和Q0,
Hale Waihona Puke M(x)xnk G(x)M(x)x2 G(x)
的剩余多项式
m
表示符号的大小,如 m = 8表示符号由8
位二进 制数组成
n
表示码块长度,k 表示码块中的信息长
度
K=n-k = 2t
表示校验码的符号数
t
表示能够纠正的错误数目
» 例如,(28,24)RS码表示码块长度共28个符号,其中 信息代码的长度为24,检验码有4个检验符号。
2022/8/31 14
第16章 错误检测和校正
xn kM (x ) R (x ) Q (x )G (x )
– G(x)称为校验码生成多项式。
– 从该式中可以看到,代表新的代码多项式 xn-kM(x)+R(x) 是能够被校验码生成多 项式 除尽的,即它的余项为0。
2022/8/31 5
第16章 错误检测和校正
• 例如,CD盘中的q通道和软磁盘存储器中使用的 CRC校验码生成多项式是:
17
第16章 错误检测和校正
经过整理可以得到用矩阵表示的(6,4)RS码的校验 方程: HQVQT 0
5 4 3 2 1 1
HQ 2 5 2 4 2 3 2 2 2 1 1
VQ m3 m2 m1 m0 Q1 Q0
求解方程组就可得到校验符号:
Q1=m3α5 + m2α5 + m1α0 + m0α4
和
α3 = α+1
x7+1/ P(x)=???
2022/8/31
10
2022/8/31
第16章 错误检测和校正
GF(23)中的元素可计算如下:
0 α0 α1 α2 α3 α4 α5 α6 α7 α8 ……
mod(α3+α+1) = 0 mod(α3+α+1) = α0 = 1 mod(α3+α+1) = α1 mod(α3+α+1) = α2 mod(α3+α+1) = α+1 mod(α3+α+1) = α2+α mod(α3+α+1) = α2+α1+1 mod(α3+α+1) = α2+1 mod(α3+α+1) = α0 mod(α3+α+1) = α1
– [例16.3]
– 在例16.2中,如果K0 = 0,t = 1,由式(16-2)导出的RS 校验码生成多项式就为。注:前为K0 = 1
K 1
– 〔16-G 5(〕x)i 0(xK 0 i)(x0)x (1)
–
K 1
G (x) (xK 0 i) (x)x (2)
i 0
– 根 组据:多项式m 3 的 运m 2 算 ,m 1 由(m 10 6 -Q 31) 和Q (0 1 6-05)可以得到下面的方程
11
2022/8/31
第16章 错误检测和校正
表16-01 GF(23)域中与二进制代码对照表,P(x)=x3+x+1
GF(23)域元素 0 α0 α1 α2 α3 α4 α5 α6
二进制对代码 (000) (001) (010) (100) (011) (110) (111) (101)
建立了GF(23)域中的元素与3位二进制数之间的一一
校正子
s0 = 0 s1 = 0
代入(16-6)式可求得校验符号: Q1 = α6 = 101 Q0 = α4 = 110
2022/8/31
20
第16章 错误检测和校正
• 16.2.3 RS码的纠错算法
– RS码的错误纠正过程分三步:
• (1)计算校正子(syndrome); • (2)计算错误位置; • (3)计算错误值。
2022/8/31
73
从盘上把这块数据读 出时,用同样的
CRC码生成多项式
去除这块数据,相除
后得到的两种可能结
果是:
①余数为0,表示读出 没有出现错误;
②余数不为0,表 示读出有错。
9
7
第16章 错误检测和校正
CD-ROM中也采用了相同的CRC检错。CD-ROM扇区方 式01中,有一个4字节共32位的EDC字域,它就是用来存 放CRC码。
• 如果只有一个错误,假设错误的位置为αx,错误值 为mx,那么可通过求解下面的方程组:
s0 m x s1 m x x
得知错误的位置和错误值。
2022/8/31
22
第16章 错误检测和校正
• 如果计算得到s0 = α2和s1 = α5,可求得αx = α3和 mx = α2,
• 说明m1出了错,它的错误值是α2〔见表〕。校正后 的m1 = m1′+mx ,本例中m1=0。
第16章 错误检测和校正
16.1 CRC错误检测原理
– 在纠错编码代数中,把以二进制数字表示的一 个数据系列看成一个多项式。
– 例如,二进制数字序列10101111,用多项式可 以表示成:
=
– 式中的 xi表示代码的位置,或某个二进制数位 的位置, xi前面的系数a i表示码的值。假设a i 是一位二进制代码,那么取值是0或1。 称 M (x)为信息代码多项式。
• 如果计算得到s0 = 0,而s1≠0,那根本可断定至少 有两个错误
• 如两个错误明显 mx1和mx2 的位置 αx1和αx2 ,那 么求解方程组: mx1mx2 s0
mx1 x1mx2x2 s1
•
就可知道这两个错误值。
2022/8/31
23
第16章 错误检测和校正
16.3 CIRC纠错技术
– 经常遇到的两种错误:
求解方程组可以得到RS校验码的2个符号为Q1和Q0
,
Q1m32m25m13m0
〔16-6〕 Q03m36m24m1m0
假定mi为以下值:
信息符号
m3 = α0 = 001 m2 = α6 = 101 m1 = α3 = 011 m0 = α2 = 100
校验符号
Q1 = α6 = 101 Q0 = α4 = 110
得到
m3x5+m2x4+m1x3+m0x2+Q1x+Q0 = (x-α)(x-α2)Q(x)
当用x = α和x = α2代入上式时,得到下面的方程组 ,
m3α5+m2α4+m1α3+Q1α+Q0=0 m3(α2)5+m2(α2)4+m1(α2)3+m0(α2)2+Q1α2+Q0=0
2022/8/31
2022/8/31
8
第16章 错误检测和校正
16.2 RS编码和纠错算法
• 16.2.1. GF(2m)域 ****
• 伽罗华域(Galois Field,GF)
• CD-ROM中的数据、地址、校验码等都可以看成 是属于GF(2m) = GF(28)中的元素或称符号。 GF(28)表示域中有256个x 2元m 1 素1 ,除0,1之外的 254个元素由本原多项式PP ((x )x)生成。本原多项式 P(x)的特性是 得到的余式等于0。
2022/8/31 21
第16章 错误检测和校正
– 以例16.3为例介绍RS码的纠错算法。
• 校正子使用下面的方程组来计算:
s0m 3m 2m 1m 0Q 1Q 0
s1m 3 5m 2 4m 1 3m 0 2Q 1 Q 0
为简单起见,假定存入光盘的信息符号m3、m2、m1、m0 和由此产生的检验符号Q1、Q0均为0,读出的符号为m3′ 、m2′、m1′、m0′、Q1′和Q0′。
为
R(x)=Q1x+Q0 这个多项式的阶次比G(x) 的阶次少一阶。
2022/8/31 16
第16章 错误检测和校正
如果K0 = 1,t = 1,由式(16-2)导出的RS校验码生 成多项式就为
K 1
G (x) (xK 0 i) (x)x (2)
i 0
(16-4)
根据多项式的运算,由式(16-3)和式(16-4)可以
– 对一个信息码符多项式M(x) ,RS校验码生成多项
式的一般形式为:
K 1
G ( x ) ( x ) K 0 i
i0
(16-2)
式中,K0是偏移量,通常取K0 = 0或K0 = 1, 而K=(n-k)≥2t (t为要校正的错误符号数)。
2022/8/31
15
第16章 错误检测和校正
– [例13.2]
P(x)=(x16+x15+x2+1)(x16+x2+x+1)
计算CRC码时用的数据块是从扇区的开头到用户数据区结 束为止的数据字节,即字节0~2063共2064个字节。在 EDC中存放的CRC码的次序如下:
EDC: 字节号:
x24-x31 2064
x16-x23 2065
x8-x15 2066
x0-x7 2067
Q0=m3α+ m2α3 + m1α0 + m0α3
在读出时的校正子可按下式计算:
s 0 m 35 m 24 m 13 m 02 Q 1 Q 0 s 1 m 3 (5 )2 m 2 (4 )2 m 1 (3 )2 m 0 (2 )2 Q 12 Q 0
2022/8/31 18
第16章 错误检测和校正
• CD-ROM用来构造GF(28)域的 是
•
P(x)=x8+x4+x3+x2+1
2022/8/31
• 而GF(28)域中的本原元素为 :
9
第16章 错误检测和校正
– [例13.1] 构造GF(23)域的本原多项式P(x)假定
为
P(x)=x3+x+1
α定义为 P(x) = 0的根,即
α3+α+1 = 0
2022/8/31
4
第16章 错误检测和校正
– 如果用一个校验码生成多项式G(x)去除代码多项式 ,得到的商假定为Q(x), 余式为R(x),那么可写成
xnk M(x)Q(x)R(x)
g(x)
G(x)
x n kM (x ) Q (x )G (x ) R (x )
– 因为模2多项式的加法和减法运算结果相同,所以又可把上式写成:
• 随机错误 :
– 由于随机干扰造成的错误 ; – 特点是随机的、孤立的,干扰过后再读一次光盘,错误就
= α(-2+7) = α5 取对数:log(α5) = 5
这些运算的结果仍然在GF(23)域中。
2022/8/31
13
第16章 错误检测和校正
• 16.2.2 RS的编码算法
– RS的编码
– 就是计算信息码符多项式M(x) 除以校验码生成多项式 G(x) 之后的余数。
– 在GF(2m)域中,符号(n,k)RS的含义如下:
2022/8/31
1
第16章 错误检测和校正
– 在模2多项式代数运算中定义的运算规那么有 :
– 例如,模2多项式的加法和减法: ****
– 结论: – 对于模2运算来说,代码多项式的加法和减法
运算所得的结果相同。
2022/8/31
– 在做代码多项式的减法时,可用做加法来代替 2
第16章 错误检测和校正
•
G(x)=x16+x12+x5+1
• 假设用二进制表示,那么为 :
•
=11021(H)
• 假定要写到盘上的信息代码 M(x)为
•
M(x)=4D6F746F(H)
• 由于增加了2个字节共16位的校验码,所以信息代 码变成x16M(x) : 4D6F746F0000(H)。
2022/8/31
6
CRC检验码计算如下:
对应关系。
用同样的方法可建立GF(28)域中的256个元素与8 位二进制数之间的一一对应关系。
12
第16章 错误检测和校正
– 现仍以GF(23)域中运算为例:
加法例:α0+α3 = 001+011 = 010 = α1
减法例:与加法相同 乘法例:α5·α4 = α(5+4) mod7
= α2 除法例:α5/α3 = α2 α3/α5 = α-2
– 代码多项式的除法可按长除法做。
• 例如
2022/8/31
3
第16章 错误检测和校正
– 如果一个k位的二进制信息代码多项式为M(x) ,再增加(n-k)位的校验码 ,那么增加(n-k)位之后,信息代码多项式在新的数据块中就表示成 xnkM(x),如图16-01所示。
(n-k)
(n-k)
图16-01 信息代码结构
第16章 错误检测和校正
两数相除的结果,其商可不必 关心,其余数为B994(H)就是
CRC校验码。把信息代码写到 盘上时,将原来的信息代码和 CRC码一起写到盘上。在这个 例子中,写到盘上的信息代码 和CRC码是4D6F746F B994,
4D6F746F 信息代码
B994 CRC码
这个码是能被11021(H)除 尽的。
s 0 m 35 m 24 m 13 m 02 Q 1 Q 0 s 1 m 3 (5 )2 m 2 (4 )2 m 1 (3 )2 m 0 (2 )2 Q 12 Q 0
2022/8/31 19
第16章 错误检测和校正
• 设在GF(23)域中的元素对应表如表16-01所示 。假
设(6,4)RS码中的4个信息符号为m3、m2、m1和 m0,信息码符多项式 M(x)为
M(x)=m3x3+m2x2+m1x+m0
(16-3)
并假设RS校验码的2个符号为Q1和Q0,
Hale Waihona Puke M(x)xnk G(x)M(x)x2 G(x)
的剩余多项式
m
表示符号的大小,如 m = 8表示符号由8
位二进 制数组成
n
表示码块长度,k 表示码块中的信息长
度
K=n-k = 2t
表示校验码的符号数
t
表示能够纠正的错误数目
» 例如,(28,24)RS码表示码块长度共28个符号,其中 信息代码的长度为24,检验码有4个检验符号。
2022/8/31 14
第16章 错误检测和校正
xn kM (x ) R (x ) Q (x )G (x )
– G(x)称为校验码生成多项式。
– 从该式中可以看到,代表新的代码多项式 xn-kM(x)+R(x) 是能够被校验码生成多 项式 除尽的,即它的余项为0。
2022/8/31 5
第16章 错误检测和校正
• 例如,CD盘中的q通道和软磁盘存储器中使用的 CRC校验码生成多项式是:
17
第16章 错误检测和校正
经过整理可以得到用矩阵表示的(6,4)RS码的校验 方程: HQVQT 0
5 4 3 2 1 1
HQ 2 5 2 4 2 3 2 2 2 1 1
VQ m3 m2 m1 m0 Q1 Q0
求解方程组就可得到校验符号:
Q1=m3α5 + m2α5 + m1α0 + m0α4
和
α3 = α+1
x7+1/ P(x)=???
2022/8/31
10
2022/8/31
第16章 错误检测和校正
GF(23)中的元素可计算如下:
0 α0 α1 α2 α3 α4 α5 α6 α7 α8 ……
mod(α3+α+1) = 0 mod(α3+α+1) = α0 = 1 mod(α3+α+1) = α1 mod(α3+α+1) = α2 mod(α3+α+1) = α+1 mod(α3+α+1) = α2+α mod(α3+α+1) = α2+α1+1 mod(α3+α+1) = α2+1 mod(α3+α+1) = α0 mod(α3+α+1) = α1
– [例16.3]
– 在例16.2中,如果K0 = 0,t = 1,由式(16-2)导出的RS 校验码生成多项式就为。注:前为K0 = 1
K 1
– 〔16-G 5(〕x)i 0(xK 0 i)(x0)x (1)
–
K 1
G (x) (xK 0 i) (x)x (2)
i 0
– 根 组据:多项式m 3 的 运m 2 算 ,m 1 由(m 10 6 -Q 31) 和Q (0 1 6-05)可以得到下面的方程
11
2022/8/31
第16章 错误检测和校正
表16-01 GF(23)域中与二进制代码对照表,P(x)=x3+x+1
GF(23)域元素 0 α0 α1 α2 α3 α4 α5 α6
二进制对代码 (000) (001) (010) (100) (011) (110) (111) (101)
建立了GF(23)域中的元素与3位二进制数之间的一一
校正子
s0 = 0 s1 = 0
代入(16-6)式可求得校验符号: Q1 = α6 = 101 Q0 = α4 = 110
2022/8/31
20
第16章 错误检测和校正
• 16.2.3 RS码的纠错算法
– RS码的错误纠正过程分三步:
• (1)计算校正子(syndrome); • (2)计算错误位置; • (3)计算错误值。
2022/8/31
73
从盘上把这块数据读 出时,用同样的
CRC码生成多项式
去除这块数据,相除
后得到的两种可能结
果是:
①余数为0,表示读出 没有出现错误;
②余数不为0,表 示读出有错。
9
7
第16章 错误检测和校正
CD-ROM中也采用了相同的CRC检错。CD-ROM扇区方 式01中,有一个4字节共32位的EDC字域,它就是用来存 放CRC码。
• 如果只有一个错误,假设错误的位置为αx,错误值 为mx,那么可通过求解下面的方程组:
s0 m x s1 m x x
得知错误的位置和错误值。
2022/8/31
22
第16章 错误检测和校正
• 如果计算得到s0 = α2和s1 = α5,可求得αx = α3和 mx = α2,
• 说明m1出了错,它的错误值是α2〔见表〕。校正后 的m1 = m1′+mx ,本例中m1=0。
第16章 错误检测和校正
16.1 CRC错误检测原理
– 在纠错编码代数中,把以二进制数字表示的一 个数据系列看成一个多项式。
– 例如,二进制数字序列10101111,用多项式可 以表示成:
=
– 式中的 xi表示代码的位置,或某个二进制数位 的位置, xi前面的系数a i表示码的值。假设a i 是一位二进制代码,那么取值是0或1。 称 M (x)为信息代码多项式。
• 如果计算得到s0 = 0,而s1≠0,那根本可断定至少 有两个错误
• 如两个错误明显 mx1和mx2 的位置 αx1和αx2 ,那 么求解方程组: mx1mx2 s0
mx1 x1mx2x2 s1
•
就可知道这两个错误值。
2022/8/31
23
第16章 错误检测和校正
16.3 CIRC纠错技术
– 经常遇到的两种错误:
求解方程组可以得到RS校验码的2个符号为Q1和Q0
,
Q1m32m25m13m0
〔16-6〕 Q03m36m24m1m0
假定mi为以下值:
信息符号
m3 = α0 = 001 m2 = α6 = 101 m1 = α3 = 011 m0 = α2 = 100
校验符号
Q1 = α6 = 101 Q0 = α4 = 110
得到
m3x5+m2x4+m1x3+m0x2+Q1x+Q0 = (x-α)(x-α2)Q(x)
当用x = α和x = α2代入上式时,得到下面的方程组 ,
m3α5+m2α4+m1α3+Q1α+Q0=0 m3(α2)5+m2(α2)4+m1(α2)3+m0(α2)2+Q1α2+Q0=0
2022/8/31
2022/8/31
8
第16章 错误检测和校正
16.2 RS编码和纠错算法
• 16.2.1. GF(2m)域 ****
• 伽罗华域(Galois Field,GF)
• CD-ROM中的数据、地址、校验码等都可以看成 是属于GF(2m) = GF(28)中的元素或称符号。 GF(28)表示域中有256个x 2元m 1 素1 ,除0,1之外的 254个元素由本原多项式PP ((x )x)生成。本原多项式 P(x)的特性是 得到的余式等于0。
2022/8/31 21
第16章 错误检测和校正
– 以例16.3为例介绍RS码的纠错算法。
• 校正子使用下面的方程组来计算:
s0m 3m 2m 1m 0Q 1Q 0
s1m 3 5m 2 4m 1 3m 0 2Q 1 Q 0
为简单起见,假定存入光盘的信息符号m3、m2、m1、m0 和由此产生的检验符号Q1、Q0均为0,读出的符号为m3′ 、m2′、m1′、m0′、Q1′和Q0′。
为
R(x)=Q1x+Q0 这个多项式的阶次比G(x) 的阶次少一阶。
2022/8/31 16
第16章 错误检测和校正
如果K0 = 1,t = 1,由式(16-2)导出的RS校验码生 成多项式就为
K 1
G (x) (xK 0 i) (x)x (2)
i 0
(16-4)
根据多项式的运算,由式(16-3)和式(16-4)可以
– 对一个信息码符多项式M(x) ,RS校验码生成多项
式的一般形式为:
K 1
G ( x ) ( x ) K 0 i
i0
(16-2)
式中,K0是偏移量,通常取K0 = 0或K0 = 1, 而K=(n-k)≥2t (t为要校正的错误符号数)。
2022/8/31
15
第16章 错误检测和校正
– [例13.2]
P(x)=(x16+x15+x2+1)(x16+x2+x+1)
计算CRC码时用的数据块是从扇区的开头到用户数据区结 束为止的数据字节,即字节0~2063共2064个字节。在 EDC中存放的CRC码的次序如下:
EDC: 字节号:
x24-x31 2064
x16-x23 2065
x8-x15 2066
x0-x7 2067
Q0=m3α+ m2α3 + m1α0 + m0α3
在读出时的校正子可按下式计算:
s 0 m 35 m 24 m 13 m 02 Q 1 Q 0 s 1 m 3 (5 )2 m 2 (4 )2 m 1 (3 )2 m 0 (2 )2 Q 12 Q 0
2022/8/31 18
第16章 错误检测和校正
• CD-ROM用来构造GF(28)域的 是
•
P(x)=x8+x4+x3+x2+1
2022/8/31
• 而GF(28)域中的本原元素为 :
9
第16章 错误检测和校正
– [例13.1] 构造GF(23)域的本原多项式P(x)假定
为
P(x)=x3+x+1
α定义为 P(x) = 0的根,即
α3+α+1 = 0
2022/8/31
4
第16章 错误检测和校正
– 如果用一个校验码生成多项式G(x)去除代码多项式 ,得到的商假定为Q(x), 余式为R(x),那么可写成
xnk M(x)Q(x)R(x)
g(x)
G(x)
x n kM (x ) Q (x )G (x ) R (x )
– 因为模2多项式的加法和减法运算结果相同,所以又可把上式写成:
• 随机错误 :
– 由于随机干扰造成的错误 ; – 特点是随机的、孤立的,干扰过后再读一次光盘,错误就
= α(-2+7) = α5 取对数:log(α5) = 5
这些运算的结果仍然在GF(23)域中。
2022/8/31
13
第16章 错误检测和校正
• 16.2.2 RS的编码算法
– RS的编码
– 就是计算信息码符多项式M(x) 除以校验码生成多项式 G(x) 之后的余数。
– 在GF(2m)域中,符号(n,k)RS的含义如下:
2022/8/31
1
第16章 错误检测和校正
– 在模2多项式代数运算中定义的运算规那么有 :
– 例如,模2多项式的加法和减法: ****
– 结论: – 对于模2运算来说,代码多项式的加法和减法
运算所得的结果相同。
2022/8/31
– 在做代码多项式的减法时,可用做加法来代替 2
第16章 错误检测和校正
•
G(x)=x16+x12+x5+1
• 假设用二进制表示,那么为 :
•
=11021(H)
• 假定要写到盘上的信息代码 M(x)为
•
M(x)=4D6F746F(H)
• 由于增加了2个字节共16位的校验码,所以信息代 码变成x16M(x) : 4D6F746F0000(H)。
2022/8/31
6
CRC检验码计算如下:
对应关系。
用同样的方法可建立GF(28)域中的256个元素与8 位二进制数之间的一一对应关系。
12
第16章 错误检测和校正
– 现仍以GF(23)域中运算为例:
加法例:α0+α3 = 001+011 = 010 = α1
减法例:与加法相同 乘法例:α5·α4 = α(5+4) mod7
= α2 除法例:α5/α3 = α2 α3/α5 = α-2
– 代码多项式的除法可按长除法做。
• 例如
2022/8/31
3
第16章 错误检测和校正
– 如果一个k位的二进制信息代码多项式为M(x) ,再增加(n-k)位的校验码 ,那么增加(n-k)位之后,信息代码多项式在新的数据块中就表示成 xnkM(x),如图16-01所示。
(n-k)
(n-k)
图16-01 信息代码结构
第16章 错误检测和校正
两数相除的结果,其商可不必 关心,其余数为B994(H)就是
CRC校验码。把信息代码写到 盘上时,将原来的信息代码和 CRC码一起写到盘上。在这个 例子中,写到盘上的信息代码 和CRC码是4D6F746F B994,
4D6F746F 信息代码
B994 CRC码
这个码是能被11021(H)除 尽的。