5

我有一個發送數據單元的假設情況,每個數據單元有千字節。失敗率很少見,但是如果發生錯誤,則不太可能是單個位錯誤,並且更可能是連續幾個位中的錯誤。錯誤檢測效率(CRC,校驗和等)

起初我想過使用校驗和,但顯然它可能會丟失大於一位的位錯誤。奇偶校驗也不起作用,所以CRC可能是最好的選擇。

對千字節有效使用循環冗餘校驗?還是有其他方法可以更好地工作?

回答

7

循環冗餘校驗(CRC)很受歡迎特別是,因爲它們在保證準確性的情況下檢測多個比特錯誤的效率。

有不同的設計來生成CRC多項式,其中折衷是精確性與計算複雜性。在你的情況下,你可以選擇符合你的精度要求的「最快」的。

您可能想從Cyclic Redundancy Check這篇維基百科文章開始。

+0

謝謝,我只是尋找效率的建議,因爲我找不到它在任何地方。 – 2009-08-24 16:04:43

1

使用CRC是正常的。我不確定'效率'是什麼意思,但我認爲有時CRC是用硬件實現的(例如在以太網卡上)。否則,您可能會發現'優化'的實現(使用查找表)。

1

你的磁盤扇區有多大?可能至少512字節。 CRC是硬件級別磁盤ECC的早期計劃。

股票CRC多項式算法對於少量的位錯誤是非常有效的。精確的精度在數學上是可計算的。 CRC在硬件中的效率也很高,其中相對較少的門和移位寄存器可以實時管理工作。