假设发送方要发送的数据为:1011001 ,生成多项式为: g(x)=x4+x3+1 。请计算接受方实际接收的数据,并验证其结果。 (写出计算过程)
时间: 2023-06-26 22:04:24 浏览: 521
我们可以使用循环冗余校验(CRC)算法来计算发送方发送的数据的校验值,然后将数据和校验值一起发送给接收方。接收方对接收到的数据进行校验,如果校验值匹配,则认为数据正确无误。
首先,我们需要将数据进行填充,即在数据末尾加入三个0,使得数据的长度可以被生成多项式的次数(4)整除。因此,发送方实际发送的数据为:1011001000。
然后,我们需要将生成多项式进行左移一位,变为:11001。接下来,我们使用长除法的方式进行计算:
```
1101|1011001000 (除数:生成多项式)
| 11001 (左移后的生成多项式)
+------
| 011000 (第一步:将除数左对齐,与被除数进行异或运算)
| 11001
+------
| 10110 (第二步:将上一步的结果左对齐,与除数进行异或运算)
| 11001
+------
| 1111 (第三步:重复上一步操作,直到剩余的位数小于除数的位数)
```
因此,发送方实际发送的数据加上校验值为:1011001111。
接收方接收到数据后,同样进行上述计算,如果最终得到的余数为0,则认为数据正确无误。具体计算过程如下:
```
1101|1011001111 (除数:生成多项式)
| 11001 (左移后的生成多项式)
+------
| 011000 (第一步:将除数左对齐,与被除数进行异或运算)
| 11001
+------
| 10110 (第二步:将上一步的结果左对齐,与除数进行异或运算)
| 11001
+------
| 1111 (第三步:重复上一步操作,直到剩余的位数小于除数的位数)
```
最终余数为0,因此接收方认为接收到的数据正确无误。