循環冗余檢驗(CRC,Cyclic Redundancy Check)碼是一種典型的循環碼,又稱多項式碼,循環碼是線性分組碼的一個重要子類。其特點是:檢錯能力極強,開銷小,易于用編碼器及檢測電路實現。
欲進一步了解循環冗余碼CRC概念的請進入。
CRC碼的檢錯能力很強,其檢錯能力表現為:
1)能檢查出全部單個錯。設信息位中有某一位x出錯,那么只要選取G(x)為零次項等于1的多項式,就可達到此目的;
2)能檢查出全部離散的二位錯。設信息位序列中的第i位和第j位有錯,那么,只有選取的G(x)是不能除盡二項式(x j-i +1)的多項式,且其階(n-k)>(j-i),就能檢查這樣的二位錯。全面考慮所有1≤i<j≤k的情形,就能檢查出全部的二位錯;
3)能檢查出全部奇數個錯,即1,3,5,…個錯。因為奇數項錯誤多項式必不含有因式x+1,所以只要選取的G(x)含有因式x+1,即可檢查全部奇數個錯;
4)能檢查出全部長度等于或小于n-k的突發錯;
5)能以[1-(1/2)r-1]的概率檢查出長度為(r+1)位的突發錯以及能以[1-(1/2)r ]的概率檢查出多于(r+1)位的突發錯(其中r=n- k)。
例如,如果n-k=16,則該CRC校驗碼能全部檢查出小于等于16位長度的突發錯;并能以[1-(1/2)16-1]= 99. 997%的概率檢查出長度為17位的突發錯,漏檢概率僅為0.003%。
CRC的本質是模-2除法的余數,采用的除數不同,CRC的類型也就不一樣。通常,CRC的除數用生成多項式來表示。在循環碼中,生成多項式的選取至關重要,它對循環碼的檢錯性能影響很大。目前已有多種生成多項式被列入各類標準中,例如:原CCITT推薦的CRC-CCITT的生成多項式、IEEE 802.3標準的計算機局域網中采用的CRC-32生成多項式、美國二進制同步系統中采用的CRC-16或CRC-12生成多項式等,具體詳見下表1。這些生成多項式結構的確定都經過了嚴格的數學分析與試驗。
表1:相關標準中采用的CRC碼生成多項式
欲進一步了解信道編碼相關碼型的請進入。