大家好,欢迎来到IT知识分享网。
PS:文章超长了,只好分三篇来发!
编码规则
如果给定原始数据信息如何实现CRC编码?下面我们来介绍一下循环冗余码的编码规则。在讲解具体的规则之前,我们先来熟悉一下码多项式的概念。为了便于描述算法的理论,这里使用码多项式来标识比特序列。
举个例子,假设一串比特共八位,如果用码多项式表示就是X的七次方+X的5次方+X的4次方+X的二次方+X的1次方,每一项的系数唯一,这里的X并不代表自变量,幂次代表的是比特所在的位置,如果完整表示的话,就应该是1乘以X的7次方+0乘以X的6次方+1乘以X的五次方…,一直到加1乘以X的1次方+0乘以X的零次方。
希望大家能够熟悉这种表示方法。现在我们假设M(x)是代发送信息位对应的码多项式,长度是k,监督位的长度是r位,生成多项式是G(x)。对于CRC编码而言,生成多项式是一个非常特殊的码多项式,它的最高次幂为r,之所以叫做生成码多项式,是因为所有有效的循环冗余码都是由它来产生的。
换句话说就是一旦选择好生成多项式,所有有效的循环码组都被确定下来了。具体的编码方法是将信息为左移r位,用码多项式表示就是用x的r次方乘以大M(x),然后使用模二除法,去除生成生成多项式G(x)。这是多项式运算,实际上我们可以直接用二进制序列进行模二除,得到余式R(x)或者余数序列,该余数序列就是我们所要求的监督位,然后将左移以后的M(x)和R(x)进行模数加,就可以得到发送方的循环码多项式T(x)。换句话说就是将原始的信息位和余式序列组合在一起,就构成了发送方实际要发送的完整的数据序列。大家注意模2加和模2减其实是一回事儿,都对应着异或运算。
我们接下来会通过具体的例题来给大家讲解什么是模2除
一个报文的比特序列为,通过数据链路传输采用加CRC进行差错检测,如果所用的生成多项式为G(x)等于X的4次方+X的一次方+1,首先计算出CRC码,并说明在链路上实际发送的数据区别是什么?
根据题目给定的条件,我们可以得到原始比特序列,那为了让它具有检测的能力,采用了循环冗余编码得到监督位,生成多项式对应的比特序列是10011,因为最高次幂是4,所以说监督位的长度r等于4,也就是我们最后得到的余数也是4位。
根据编码规则将原始的数据比特序列先左移四位,在右边添加4个零,在模2除,生成,多项式对应的比特序列10011,最后得到的4位余数就是我们所要求的监督位。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/84485.html