使用CRC /多项式密钥检测二进制消息中的错误

时间:2013-12-10 17:18:54

标签: binary checksum crc error-detection

我是CRC和Checksums的新手,我正在尝试以下查询:

我正在尝试使用生成多项式P = x5 + x4 + x2 +1来确定CRC。

要发送的消息是= 1010001101。

对于我的查询,我被要求:

  • 显示多项式键;
  • 计算CRC&
  • 要传输的信息。

我的尝试如下:

  1. 多项式生成器是P = x5 + x4 + x2 +1。我把它当作110101(x到5 = 1的幂; x到4 = 1的幂; x到3 = 0的幂; x到2 = 1的幂; x到2的幂) 1 = 0; 1 = 1)。

    1. 我已将此分为要发送的消息:1010001101(msg)/ 110101(num) 结果= 11010;剩余:00011111。
  2. 对于要发送的消息,我从原始消息中减去了剩余部分(1010001101 - 00011111 = 101011111)。这是对的吗?

    在消息被多项式除后,CRC是否为剩余数(余数)?

    对于错误检查..如果没有余数,那么收到的消息中没有错误是正确的吗?或者,如果没有,我如何确定收到的消息中是否有错误?

    非常感谢任何帮助。

    非常感谢。

1 个答案:

答案 0 :(得分:0)

由于CRC多项式为5度,因此余数为5位。因此,传输的消息将这5位附加到它的末尾(不像你那样从消息中减去)。在您的情况下,您的分区是正确的,CRC是11111(5位),因此要发送的消息是101000110111111。

对于错误检查,当您通过CRC多项式对CRC附加的消息进行除法时,如果未检测到错误,则剩余部分为00000(注意检测到是关键 - 在一般情况下,你可能有错误导致相同的零余数,但概率非常低,在你的具体情况下,如此短信,你可能是安全的。)