0

让我们得到一个m位消息,其中最后n位是 CRC 位。据我所知,为了检查是否正确接收,我们应该将所有m位与特定 CRC 算法的多项式进行异或。如果结果是全零,我们可以说没有错误。

以下是我的问题:

1)如何使用前(mn)位计算n个CRC位,然后将其与接收到的消息的最后n位进行比较?这样,如果接收到的和计算的n位相等,我们就可以说没有错误。这种方法是真的吗?

2)如果是真的,哪个更有效?

4

1 回答 1

3

您对如何检查 CRC 的描述并没有真正解析。但无论如何,是的,通常进行 CRC 校验的方式是计算 pre-CRC 位的 CRC,然后将其与发送的 CRC 进行比较。这种方式效率非常低。更重要的是,它更容易验证是否正确,因为这是 CRC 生成并附加到另一端的方式。

该方法扩展到任何类型的校验值,如果在其前面的数据之后通过算法运行 CRC,则其他校验值不具有得到零的数学属性。此外,大多数带有预处理和后处理的 CRC 也不具有该属性。您需要取消后置条件,然后将结果与前置条件值进行比较。

于 2013-09-06T15:14:28.440 回答