文本阅读:
第5章错误纠正14
余数为0意味着这
N是正确的。这样就能用|SBN准确地检测错误。附带提及,这10位SBN系统(它能分配10亿个书号)已经被一个13位的SBN所替代,这增大了这个系统的编号能力,它在现有的SBN书号之前加上了一个前缀978,前缀979用于新的书号这里仍旧有一位校验和。在任何情况下,"加权校验和与取余算术计算出来的余数进行比较是一种检查错误的功效强大的方法。事实上
错码一般都是基于这一原理
54.3循环冗余校验编码
循环冗余校验编码(
Redundancy Check Code,CRCC)是一种检错码,由于它在检测记录媒体或传输信道中突发错误的能力,因而在一些音频应用中得到了使用。CRCC是种循环分组码,它生成
校验字。把一个数据字中的各个比特加在一起形成各个比特的就构成了一个校验字。例如,在1011011010中,6个二进制的1加在一起得到二进制的0110(十进制的6),这个校验字被附加在数据,形成了用于传输或存储的码字
与单比特奇偶校验一样,接收到的校验和与从接收到的数据生成出的校验和之间的任何不致都表明有很大可能出现
错误
C的工作原理与此类
但需要进行更复杂地计算。简言之,每个数据块被一个任意的常数除。所得余数被附加在将要存储或传输的数据块之后。在重建时,对接收到的字再进行除法,若余数为0则表明这是一个没有错误的信如图5.5所示。图56给出了对
CRCC算法的编码和解码步骤更为深入的考察。一个kbit的数据块中的消息m通过运算形成了一个n-kbit的CRCC检测块,其中n为整个块的长度余数
余数为0
有
图55:简化形式的CRCC说明了余数的生成。
(A)对原始的数据块进行除法,得到一个余数,商被丢弃掉(B)余数被附加到数据字之后,这两个字都要被传输或存储
(C)接收到的数据再次进行除法,产生
数,用来检查是否有错