CRC编码多项式生成.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
水平垂直奇偶校验   水平垂直奇偶校验是在结合水平奇偶校验和垂直奇偶校验的基础上形成的一种校验方法。它是在一批字符传送之后,另外增加一个称为“方块校验字符”的检验字符,方块校验字符的编码方式是使所传输字符代码的每个纵向列中位代码的“1”的个数成为奇数(或偶数)。   假设数据格式及其发送顺序如图5所示,如果水平和垂直方向上都使用偶校验,则水平垂直奇偶校验的编码规则如图6所示。   图5 水平垂直奇偶校验时数据格式及其发送顺序   图6 水平垂直奇偶校验法举例   式中,m为码字的定长位数,n为码字的个数。   设水平垂直奇偶校验的编码效率为R,则:   水平垂直奇偶校验又称为纵横奇偶校验。它能检测出传输过程中发生的所有3位或3位以下的错误、奇数个错误、大部分偶数个错误以及突发长度≤m+1的突发错误,可使误码率降至原误码率的百分之一到万分之一,有较强的检错能力,但是有部分偶数个错误不能检测出来。水平垂直奇偶校验还可以自动纠正差错,使误码率降低2~4个数量级,适用于中、低速传输系统和反馈重传系统,被广泛用于通信和某些计算机外部设备中。   5. 循环冗余校验法   循环冗余校验(CRC,Cyclic Redundancy Check)法由分组线性码的分支而来,主要应用于二元码组。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。   这是一种比较精确、安全的检错方法,能够以很大的可靠性识别传输错误,并且编码简单,误判概率很低,但是这种方法不能够校正错误。循环冗余校验法在通信系统中得到了广泛的应用,特别适用于传输数据经过有线或无线接口时识别错误的场合。下面重点介绍循环冗余校验法 6. CRC法的工作原理   循环冗余校验法是一种较为复杂的校验方法,它不产生奇偶校验码,而是将整个数据块当成一个连续的二进制数据M(x),在发送时将多项式M(x)用另一个多项式(被称为生成多项式G(x))来除,然后利用余数进行校验。从代数的角度可将M(x)看成是一个多项式,即M(x)可被看作系数是0或1的多项式,一个长度为昭的数据块可以看成是xm-1到x0的m次多项式的系数序列。例如一个8位二迸制以表示为:1x7+0x6+1x5+1x4十0x3+1x2+0x+1。   实际应用时,发送装置计算出CRC校验码,并将CRC校验码附加在二进制数据M(x)后面一起发送给接收装置,接收装置根据接收到的数据重新计算CRC校验码,并将计算出的CRC校验码与收到的CRC校验码进行比较,若两个CRC校验码不同,则说明数据通信出现错误,要求发送装置重新发送数据。该过程也可以表述为:发送装置利用生成多项式G(x)来除以二进制数据M(x),将相除结果的余数作为CRC校验码附在数据块之后发送出去,接收时先对传送过来的二进制数据用同一个生成多项式G(x)去除,若能除尽即余数为0,说明传输正确;若除不尽说明传输有差错,可要求发送方重新发送一次。其工作过程如图7所示。   图7 循环冗余校验法的工作方法   采用循环冗余校验法,能检查出所有的单位错误和双位错误,以及所有具有奇数位的差错和所有长度小于等于校验位长度的突发错误,能查出99%以上比校验位长度稍长的突发性错误。其误码率比水平垂直奇偶校验法还可降低1~3个数量级,因而得到了广泛采用。   7. 相关计算   CRC校验码的计算是一种循环过程。CRC校验的计算包括了要计算其CRC值的数据字节以及所有前面的数据字节的CRC值。数据块中的每一被校验过的字节都用来计算整个数据块的CRC值。   从数学角度来看,CRC校验码就是利用所谓的生成多项式G(x)去除一个多项式M(x)(数据字节)来获取的。CRC校验码就是相除后所得的余项。   要计算阴位数据块M(x)的CRC校验码,生成多项式G(x)必须比该多项式短,且生成多项式G(x)的高位和低位必须为1。CRC的基本思想是:将CRC校验码加在数据块的尾部,使这个带CRC校验码的多项式能够被生成多项式除尽。当接收设各收到带校验码的数据块时,用生成多项式去除,如果有余数,则数据传输出错。   计算CRC校验码和带CRC校验码的发送数据T{x}的算法如下:   (1)设G(x)为r阶,在数据块M(x)的末尾附加r个零,使数据块变为m+r位,则相应的多项式为xrM(x);   (2)按模2除法用对应于G(x)的位串去除对应于xrM(x)的位串。   (3)按模2减法从对应于xrM(x)的位串中减去余数(总是小于等于1)。结果就是要传送的带循环冗余校验码的数据块,即多项式T(X)。   8. 计算举例   下面举例说明CRC校验码和带CRC校验码的发送数据T(X)的计算过程,如图8所示。   图8 CRC校验码以及发送数据T(X)的计算   设数据块M(x

文档评论(0)

linyin1994 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档