设生成多项式 G(x) = 1101,待编码的 4 位二进制数是 M(x) = 1011,求 M(x)的(7, 4) 循环冗余码 V(x)?假设读取的CRC编码为1010100,试对其检错与纠错。
1条回答 默认 最新
- xia0xin 2023-03-27 23:14关注
首先将待编码的二进制数 M(x) 左移 3 位,变为 1011000,然后计算出 M(x) 左移 3 位后除以生成多项式 G(x) 的余数 R(x):
1 0 1 1 0 0 0 (M(x) 左移 3 位) ^----------------- 1 1 0 1 | 0 0 0 0 (G(x)) 1 0 1 1 0 (余数 R(x))
所以循环冗余码 V(x) 为 1011000 + 1011 = 1010011。
检错时,将读取的 CRC 编码拼接到接收到的数据末尾,计算拼接后的数据除以生成多项式 G(x) 的余数,如果余数为 0,说明没有错误;否则,根据余数的值进行纠错,将对应的比特取反即可。
将读取的 CRC 编码 1010100 拼接到接收到的数据 1010011 的末尾,得到 10100111010100,计算其除以生成多项式 G(x) 的余数:
1 0 1 0 1 0 0 (余数) ^-------------------- 1 1 0 1 | 0 0 0 0 (G(x)) ---------- 1 0 1 1 0 1 1 0 1 ------- 1 1 1 (余数)
余数不为 0,说明存在错误。根据余数的值,可以得知第 3 个比特位出现了错误。将第 3 个比特取反得到 10100101010100,即为纠错后的数据。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)