梦见Utaoki 2023-03-27 18:32 采纳率: 82.1%
浏览 13
已结题

求 M(x)的(7, 4) 循环冗余码 V(x)。假设读取的CRC编码为1010100,试对其检错与纠错。

设生成多项式 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,即为纠错后的数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 已采纳回答 3月30日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 C++ 菜单窗口独立出来,可以随意移动放大缩小。
  • ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?