文档详情

光盘错误检测和校正

公****
实名认证
店铺
DOCX
169.25KB
约21页
文档ID:383693572
光盘错误检测和校正_第1页
1/21

光盘错误检测和校正光盘、磁盘和磁带一类的数据记录媒体一样,由于盘的制作材料的性能、盘制造生产技术水 平的限制、驱动器的性能以及使用不当等诸多原因,从盘上读出的数据不可能完全正确据 有关厂家的测试和统计,一片未使用过的只读光盘,某原始误码率约为3x10-4;沾有指纹 的盘的误码率约为6x10-4;有伤痕的盘的误码率约为5x10-3针对这种情况,激光盘存储 器采用了功能强大的错误码检测和纠正措施采用的具体对策归纳起来有三种:⑴ 错误检测:采用CRC(Cyclic Redundancy Code)检测读出数据是否有错2) 错误校正码:采用里德一索洛蒙码(Reed—Solomon Code),简称为RS码,进行纠错 RS 码被认为是性能很好的纠错码3) 交叉交插里德-索洛蒙码 CIRC(Cross Interleaved Reed-Solomon Code), 这个码的 含义可理解为在用RS编译码前后,对数据进行交插处理和交叉处理对这些码的理论分析和计算有许多专著作了详尽的深入论述,对不需要开发纠错技术的读者 仅需要了解错误检测和校正的一些基本概念即可在纠错编码代数中,把以二进制数字表示的一个数据系列看成一个多项式。

例如,二进制数 字序列 10101111,用多项式可以表示成:= a7x7 + + a4x4 + + aox°式中的川表示代码的位置,或某个二进制数位的位置,才前面的系数a.表示码的值若aii 是一位二进制代码,则取值是0或1MU)称为信息代码多项式在模 2 多项式代数运算中定义的运算规则有:1/ +1^ = 0一1+ =1十例如,模2 多项式的加法和减法:+ 21亠X+ 21亠XX4 + / 亠 1X4 + F + 1从这两个例子中可以看到,对于模 2 运算来说,代码多项式的加法和减法运算所得的结果相 同所以在做代码多项式的减法时,可用做加法来代替做减法代码多项式的除法可按长除法做例如:X3 +*1忑 + 1 ) / + / + / 亠 1异亠X3/ + X忑+ 1如果一个k位的二进制信息代码多项式为MS ,再增加(n—k)位的校验码,那么增加(n —k)位之后,信息代码多项式在新的数据块中就表示成厂心),如图13-01所示图 13-01 信息代码结构123归1k疋+1如果用一个校验码生成多项式°(朗去除代码多项式厂叫,得到的商假定为2W,余 式为氏⑶,则可写成xK-kM(x) = Q(x)G(x) + R(x)因为模2 多项式的加法和减法运算结果相同,所以又可把上式写成:xK~kM(x)+R(x) =称为校验码生成多项式。

从该式中可以看到,代表新的代码多项式应0) 是能够被校验码生成多项式&(对除尽的,即它的余项为0例如,CD盘中的q通道和软磁盘存储器中使用的CRC校验码生成多项式是G(x) = x16 + x12 + / + 1若用二进制表示,则为Gk) =ioooioooooooiooooi(B)=11021(H)假定要写到盘上的信息代码为MO) =4D6F746F (H)由于增加了 2个字节共16位的校验码,所以信息代码变成0®): 4D6F746Foooo(H)CRC检验码计算如下:49F99B1411021) 4D6F746F0000440849637499129 F61D6FF1EF9039F9912992B60BA490BB16B15FB0 110212字节的 莊910CRC校血码 44°開 ► B944两数相除的结果,其商可不必关心,其余数为B994(H)就是CRC校验码把信息代码写到盘 上时,将原来的信息代码和CRC码一起写到盘上在这个例子中,写到盘上的信息代码和 CRC 码是 4D6F746F B994,4D6F746FB994信息代码CRC码这个码是能被11021(H )除尽的从盘上把这块数据读出时,用同样的CRC码生成多项式去除这块数据,相除后得到的两种可 能结果是:①余数为0,表示读出没有出现错误;②余数不为0,表示读出有错。

CD-ROM中也采用了相同的CRC检错CD-ROM扇区方式01中,有一个4字节共32位的EDC 字域,它就是用来存放CRC码不过,CD-ROM采用的CRC校验码生成多项式与软磁盘采用 的生成多项式不同,它是一个32阶的多项式,P(x) = (x16 + 产 + ? + l)(x16 + 严 + X +1)计算CRC码时用的数据块是从扇区的开头到用户数据区结束为止的数据字节,即字节0〜2063共2064个字节在EDC中存放的CRC码的次序如下:EDC:X24 — X31X16 — X23X8 — X15X0 —X7字节号:|20642065206620672 .RS 编码和纠错算法13.2.1. GF(2m)域RS(Reed-Solomon)码在伽罗华域(Galois Field, GF)中运算的,因此在介绍RS码之前先简 要介绍一下伽罗华域CD-ROM中的数据、地址、校验码等都可以看成是属于GF(2m) = GF(2*)中的元素或称符号GF(28)表示域中有256个元素,除0,1之外的254个元素由本原多项式P(x)生成本原多 严+1项式尸(小的特性是 得到的余式等于0CD-ROM用来构造GF(28)域的F&)是F—+Z+1(13 — d而GF(28)域中的本原元素为a = (0 0 0 0 0 0 1 0)下面以一个较简单例子说明域的构造。

[例13.1]构造GF(23)域的本原多项式戸〔“)假定为a定义为巩応=0的根,即a 3 +a + 1 = 0和 a 3 = a +1GF(23)中的元素可计算如下:0mod(a 3+a +1) = 0a 0mod(a 3+a +1) = a 0 = 1a 1mod(a 3+a +1) = a 1a 2mod(a 3+a +1) = a 2a 3mod(a 3+a +1) = a +1a 4mod(a 3+a +1) = a 2+aa 5mod(a 3+a +1) = a 2+a 1+1a 6mod(a 3+a +1) = a 2+1a 7mod(a 3+a +1) = a 0a 8mod(a 3+a +1) = a 1用二进制数表示域元素得到表13-01 所示的对照表表13-01 GF(23)域中与二进制代码对照表,尸㈤=X' +X +1GF(23)域元素二进制对代码0(000)a 0(001)a 1(010)a 2(100)a 3(011)a 4(110)a 5(111)a 6(101)这样一来就建立了 GF(23)域中的元素与3位二进制数之间的一一对应关系用同样的方法可 建立GF(28)域中的256个元素与8位二进制数之间的一一对应关系。

在纠错编码运算过程中, 加、减、乘和除的运算是在伽罗华域中进行现仍以GF(23)域中运算为例:加法例:a o+a 3 = 001+011=010 = a i减法例:与加法相同乘法例: a 5 • a 4 = a (5+4) mod7=a2除法例: a 5/a 3 = a 2a 3/a 5 = a -2= a (-2+7)取对数:log( a 5) = 5这些运算的结果仍然在GF(23)域中13.2.2 RS 的编码算法RS的编码就是计算信息码符多项式除以校验码生成多项式◎(对之后的余数在介绍之前需要说明一些符号在GF(2m)域中,符号(n, k)RS的含义如下:m 表示符号的大小,如m = 8表示符号由8位二进制数组成n 表示码块长度,k 表示码块中的信息长度K=n-k = 2t表示校验码的符号数t 表示能够纠正的错误数目例如,(28, 24)RS码表示码块长度共28个符号,其中信息代码的长度为24,检验码有4 个检验符号在这个由28个符号组成的码块中,可以纠正在这个码块中出现的2个分散的 或者2个连续的符号错误,但不能纠正3个或者3个以上的符号错误对一个信息码符多项式加(对,RS校验码生成多项式的一般形式为&㈤=口(疋-/7(13-2)式中,m0是偏移量,通常取K0 = 0或K0 = 1,而(n-k)22t (t为要校正的错误符号数)。

下面用两个例子来说明 RS 码的编码原理[例13.2]设在GF(23)域中的元素对应表如表13-01所示假设(6, 4)RS码中的4个信息符号为m3、m『m1和m信息码符多项式为M (无)=+ m0(13-3)的剩余多项式尺(力为并假设 RS 校验码的 2 个符号为 Q1 和 Q0,应(力=Qf + Qo这个多项式的阶次比功的阶次少一阶如果K0 = 1, t = 1,由式(13 — 2)导出的RS校验码生成多项式就为G(卄血-严=九3_4)根据多项式的运算,由式(13—3)和式(13—4)可以得到m X5+m X4+m X3+m X2+Q x+Q = (x—a )(x—a 2) Q (x)3 2 1 0 1 0当用 X = a 和 X = a 2代入上式时,得到下面的方程组,< m3 a5 -1- nij a4 -1- nij a3 -1- n^j a2 -1- Qpx + Qo = 01 a2)5 + ni父 cc2)4 +mK a2)3 + 吨 cc2)2 + Qia2 + Q° = 0经过整理可以得到用矩阵表示的(6, 4)RS码的校验方程:求解方程组就可得到校验符号:"Q ] = m3 (X? + 皿2 鼻5 卬]鼻0 + g 鼻4[Q a = a 亠 护亠 m】a Q ■!-g 护在读出时的校正子可按下式计算:吊=mg工5 +牝护+垃]护+ q护+ Q]工QoI 巧=m3( a5)2 4 g(+ 呵(a3)2 + n^( a2)2 + Qi a2 + Qo[例13.3]在例13.2中,如果K0 = 0, t = 1,由式(13 — 2)导出的RS校验码生成多项式就 为G«=n^-(X - CE°)(X - CE1)(13—5)根据多项式的运算,由(13—3)和(13—5)可以得到下面的方程组:zm3 + m2 + ni1+n^ + Q1 + Q0 = 01 ni;;分 + 辺 a4 + ni]护 + g a' + Qi a i + Qo = Cl方程中的a i也可看成符号的位置,此处i = 0, 1,…,5。

求解方程组可以得到RS校验码的2个符号为Q1和Qo,(13-6)假定m.为下列值:i信息符号m = a o = 0013m = a 6 = 101 2m = a 3 = 011 1m = a 2 = 1000校验符号Q] = a 6 = 101Q = a 4 = 1100校正子s = 00s = 01代入(13-6)式可求得校验符号:Q = a 6 = 101Q = a 4 = 110013.2.3 RS 码的纠错算法RS码的错误纠正过程。

下载提示
相似文档
正为您匹配相似的精品文档