我試圖找出如何計算任意CRC多項式的錯誤檢測能力。檢查CRC多項式的錯誤檢測能力
我知道有可能(或可能不會)適用於任意多項式各種錯誤檢測功能:
檢測單比特錯誤的: 所有CRC能做到這一點,因爲這不僅需要CRC寬度> = 1.
突發錯誤的檢測: 所有的CRC都可以檢測突發錯誤,直到大小等於它們的寬度。
奇數位錯誤的檢測: 具有偶數個項(即完整二進制多項式中的偶數個1位)的CRC可以做到這一點。
檢測隨機位錯誤(取決於幀大小): 我有一個隨時可用的C算法,可以計算給定HD和多項式的最大幀大小。我沒有完全理解它,但它的工作原理。
假設一個16位的CRC多項式x十八+ x 12 + x 5 + 1 = 0x11021。該多項式可以:
- 檢測所有單位錯誤(數據大小無關)。
- 檢測所有突發錯誤高達16位寬度(數據大小無關)。
- 檢測所有奇數位錯誤(因爲它有4個多項式項;數據大小無關)。
- 檢測3位錯誤(HD4),最大可達32571位數據大小。
以上是否正確?
是否有額外的CRC錯誤檢測功能?如果是,如果任意CRC多項式支持它們,我該如何檢查(沒有深入的數學知識)?
這個問題很有趣。這可能是更好的cs.stackexchange.com – Nayuki
@Nayuki:你可能是對的。先讓我們看看這裏發生了什麼...... – Silicomancer