仅使用部分crc32

Using only part of crc32

仅使用 2 upper/lower 个字节的 crc32 总和是否会使它比 crc16 更弱?

背景:

我目前正在实施无线协议。 我每个都有 64 字节的块,并且根据 Data Length vs CRC Length 我最多需要crc16。 使用 crc16 而不是 crc32 将释放带宽用于前向纠错(64 字节是 FEC 中的一个块)。 但是,我的硬件功率很低,但硬件支持 CRC32。 所以我的想法是使用硬件 crc32 引擎并丢弃 2 个结果字节。 我知道这不是一个 crc16 和,但这并不重要,因为我控制传输的双方。

以防万一:我可以同时使用 crc32 (poly 0x04C11DB7) 或 crc32c (poly 0x1EDC6F41)。

是的,它会更弱,但仅针对少量误码。通过使用一半的 CRC-32,您可以获得 none 的 CRC-16 保证。例如。突发中始终可检测到的位数。

您要防止的噪声源是什么?