作业帮 > 综合 > 作业

这是有关循环冗余校验码知识,求专家们指导.不懂的地方如下.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 19:45:01
这是有关循环冗余校验码知识,求专家们指导.不懂的地方如下.
1.信息码生成多项式的问题,具体是怎么弄的?例:信息位为10100110 生成多项式为:a(x)=x^5+x^4+x+1 (这个多项式是怎么得到的?)
2.将K位数据C(x)左移R位,给校验位留下空间,得到移位后的多项式:C(x)*X^R (为什么是 C(x)*X^R ) 例:信息位为10100110 C(x)=x^7+x^5+x^2+x (为什么是这样?) C(x)*x^R=X^5(x^7+x^5+x^2+x ) (为什么?)
生成多项式是CRC算法给定的,这个多项式可以随意给定,不过多项式有强弱之分,所以(1)里面那个a(x)对应的二进制除数是110011.
这个多项式是给定的哦~不是得出来的.
这个二进制数在通信双方通信期间不变,相当于是一个上锁箱子的钥匙,这个钥匙是给定的,不能随便一把钥匙来开这个锁.
生成多项式的原则是,例如这个二进制数是100101,那么只要把每一位1给拿出来就行了,a(x)=1*x^5+0*x^4+0*x^3+1*x^2+0*x^1+1*x^0=x^5+x^2+1,这个多项式有一个必要,就是最高位和最低位一定要为1.还有几点比如信息源改变不同位得到余数不同等,这些是生成多项式的强弱,具体请参照密码学和编码学的相关知识,不过这跟算法本身没关系.
对于第二个问题,楼主别想这么多,他说的很学术,我直接跟楼主讲:
数据比如是1101101011,CRC生成多项式比如为a(x)=x^4+x^2+1,则他对应的二进制数是A=10101,(原理在上面).那么你看A是5位,那么R就等于4,就是A位数-1,R=4,意味着数据位要向左移动4位,也就是数据变为11011010110000,然后进行下一步算法.
以上就是楼主第二个问题的通俗说法,学算法重要的是掌握它的原理,而不是死记硬背式子.