设某数据通信系统采用 CRC 校验,生成多项式 G(x)=x4 +x3 +1。若目的节点接收到的二进制比特串(包含了冗余码)是 110111001,试问传输过程中是否出现了差错?为什么?
时间: 2024-02-13 17:00:55 浏览: 168
为了判断是否出现了差错,我们需要进行 CRC 校验。首先,将接收到的比特串和 CRC 生成多项式 G(x) 进行除法运算,如果余数为 0,则说明没有出现差错;如果余数不为 0,则说明出现差错。
将接收到的比特串 110111001 和生成多项式 G(x) 进行除法运算,具体步骤如下:
```
___
110111001| 100011
-100011
-----
101100
100011
-----
11010
10001
-----
1011
1000
----
111
```
最终得到的余数为 111,不为 0,因此可以判断出在传输过程中出现了差错。
相关问题
在采用crc校验时,若生成多项式g(x)=x4+x3+x+1
采用 CRC 校验时,生成多项式 g(x) 用于计算校验码。对于 g(x)=x4+x3+x+1,它的二进制表示为 10011。
具体的校验过程如下:
1. 假设待校验的数据为 D,按位展开成二进制数 d(x)。
2. 将 d(x) 左移 g(x) 的次数(即 g(x) 的次数减一)得到一个新的数 R(x),R(x) 的次数为 g(x) 的次数。
3. 用 R(x) 除以 g(x),得到商数 Q(x) 和余数 B(x)。
4. 将 B(x) 作为校验码,附加在原数据 D 的末尾。
5. 发送的数据为 D 和 B(x) 的组合。
6. 接收方收到数据后,重复以上过程,若余数为 0,则认为数据没有错误。
注意:在以上过程中,所有的运算都是在有限域 GF(2) 上进行的,也就是说,只有 0 和 1 两个数。
CRC生成多项式G(X)=X4+X3+1,求二进制序列10110011的CRC校验码。
首先,将生成多项式G(X)左移一位,变成10111。
然后,在二进制序列10110011的末尾添加4个0,得到101100110000。
接下来,用生成多项式G(X)去除上述结果,即进行模2除法。
首先,将G(X)左移7位,与101100110000的前8位进行异或运算,得到10101000。
然后,将10101000左移3位,与101100110000的下一个8位进行异或运算,得到11001100。
重复以上步骤,直到将所有位都进行异或运算,最终得到余数0011。
因此,二进制序列10110011的CRC校验码为0011。将其附加到原始数据的末尾,得到最终结果101100110011。
阅读全文