问题描述
仅使用crc32总和的2个高/低字节会使其比crc16弱吗?
Will using only 2 upper/lower bytes of a crc32 sum make it weaker than crc16?
背景:
我目前正在实现无线协议。
我每个都有64字节的块,并且根据
我最多需要crc16。
使用crc16而不是crc32可以释放带宽以用于前向纠错(64字节是FEC中的一个块)。
但是,我的硬件功耗很低,但是对CRC32具有硬件支持。
所以我的想法是使用硬件crc32引擎,只丢弃2个结果字节。
我知道这不是crc16的总和,但这没关系,因为我控制着传输的两端。
I'm currently implementing a wireless protocol.I have chunks of 64byte each, and according toData Length vs CRC LengthI would need at most crc16.Using crc16 instead of crc32 would free up bandwidth for use in Forward error correction (64byte is one block in FEC).However, my hardware is quite low powered but has hardware support for CRC32.So my idea was to use the hardware crc32 engine and just throw away 2 of the result bytes.I know that this is not a crc16 sum, but that does not matter because I control both sides of the transmission.
万一这很重要:我可以
推荐答案
是的,它会更弱一些,但只适用于小型的crc32(多边形0x04C11DB7)或crc32c(多边形0x1EDC6F41)。误码数。取一半的CRC-32,就不会得到CRC-16的保证。例如。突发中始终可检测到的位数。
Yes, it will be weaker, but only for small numbers of bit errors. You get none of the guarantees of a CRC-16 by instead taking half of a CRC-32. E.g. the number of bits in a burst that are always detectable.
您要防止的噪声源是什么?
What is the noise source that you are trying to protect against?
这篇关于仅使用crc32的一部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!