首页 > 编程知识 正文

crc校验码是几位,crc校验码例题

时间:2023-05-05 02:14:38 阅读:154521 作者:4426

计算机组的原始校验码(奇偶校验、CRC校验、汉明码校验)对于一个码A:00,其码间隔为1。 因为只要换一位就会变成别的代码。 在2个代码中,从a代码到b代码的转换所需的比特数为代码间距离,例如,因为A:00转换为B:11,所以代码间距离为2。 通常,符号间距离越大,越有利于纠错和检错。在编码中增加一位校验位来使编码中1的个数位奇数(奇校验)或者偶数(偶校验),从而使码距变为2。举个例子:01101 位我们当前的编码,采用奇校验就是在最后补一位,因为现在是奇数个1所以要补0,即011010。此时发给接受方,接受方会计算此编码中有多少个1,是奇数个就没问题。否则有问题。偶校验同理,但是奇偶校验只能检1位错,不能纠错,就是说如果有两位错依旧检查不出来,如011010变成了111110变动了两位但还是奇数个1所以说只能检1位错。

循环冗馀校验码CRC CRC也是和奇偶校验一样,只能检错不能纠错,其原理是找出一个能整除的多项式的编码,因此首先要将原始报文除以多项式,将所得的余数作为校验位加在原始报文之后,再去发送给接收方。由此可知,CRC由两部分组成,前部分为信息码(原始数据),后部分为校验码,校验码是由信息码产生的,所以校验位数越长,检验能力越强。求CRC编码时采用模2运算。这么多理论也不如一道例题

例题:原始消息为" 11001010101 ",其生成多项式为" x^4 x^3 x 1"。 对这个进行CRC编码的结果是?

首先根据多项式先给出除数。 从多项式的最右边开始,首先把x的0次定为1,因为有1所以定为1。 而且,x的1次有时设x,有时设1,但是从使用这个1开始记住向左加。 然后找x的平方,不记得0。 x的3次方记为1,x的4次记为1,直到最高位,所以为11011。 然后,在原始多项式中加上多项式的最高指数0,得到4个0,得到110010101010000。 进行除数和2级的运算。 总是1的意思是一直除以这个除数。 具体操作图。

为什么是0011而不是00011,是因为馀数必须是多项式减去一位后的数。 金属氧化物。

然后,将得到的奇偶校验位0011放入原始消息后,发送11001010101 0011。 接收端接收110010101010011和多项式11011,如果馀数为0,则是正确的。

汉明校验码:汉明码:本质也是利用奇偶校验进行检错和纠错。 结构方法是在数据位之间的确定位置插入k个奇偶位,通过加宽码间隔实现检错和纠错

设数据为n,奇偶校验位为k,则n,k必须满足2^k-1=n k

/请求信息1011的汉明码

首先,给所有的位编号。 从最低有效位开始,从1开始递增。 奇偶校验位在2的n (n=0,1,2…)次幂中位于第1、2、4、8、16、32。 就位。 剩下的位可以填充真正的数据位。 如果上述信息为1011,则可知检查位置位于1、2、4

所以最终的汉明码是1010101。

海明码的检错和纠错原理

接收方收到汉明码后,将各奇偶校验位和检查的位数分别进行异或。 即,进行ro异或H3异或H5异或H7等

使用偶数检查时,结果应该都是0,但现在收到1010101 (第4位错误,本来正确的是1010101 )时,运算结果为100

采用二进制是第四位错误,纠错方法是逆转

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。