校驗碼


校驗碼

奇偶校驗法、海明校驗法、CRC校驗法

1.奇偶校驗法

如果采用奇校驗,在傳送每一個數據(一般是1個字節)的時候另外附加一位作為校驗位,當實際數據中1的個數為偶數的時候,這個校驗位就是1.否則,這個校驗位就是0,這樣就可以保證傳送數據滿足奇校驗的要求。在接收方收到數據時,將按照奇校驗的要求檢測數據中1的個數,如果是奇數,表示傳送正確。否則,表示傳送錯誤。

偶校驗的過程和奇校驗的過程一樣,只是檢測數據中1的個數為偶數。當實際數據中1的個數為偶數的時候,這個校驗位就是0,否則這個校驗位就是1.這樣,就可以保證傳送數據滿足偶校驗的要求。在接收方收到數據時,將按照偶校驗的要求檢測數據中1的個數,如果是偶數個1,表示傳送正確。否則,表示傳送錯誤。

 

2.海明校驗法

和奇偶校驗不同之處在於海明碼采用多位校驗碼的方式,在信息數據位中合理加入校驗位,將碼距均勻拉大,校驗位中的每一位都對不同的信息數據位進行奇偶校驗,通過合理地安排每個校驗位對原始數據進行校驗位組合,可以達到發現錯誤,糾正錯誤的目的。

校驗公式:

海明碼是利用在k個數據位設置r個校驗位,構成一個n=k+r位的碼字,然后用r個監督關系式產生的r個校正因子來區分無錯和在碼字中的n個不同位置的一位錯。它必需滿足關系式2r≥n+1 或 2r≥k+r+1(2的校驗位次方>=數據位+校驗位+1)

海明校驗碼是在n個數據位之外增設k個校驗位,從而形成一個k+n位的新的碼字, 使新的碼字的碼距比較均勻地拉大。n與k的關系是1)

(1)A.2k - l≥n + k B.2n - 1≤ n + k C.n = k D.n-1≤k

選(A)

 

3.CRC校驗法

循環冗余檢驗碼簡稱CRC碼,由於其實現的原理十分易於用硬件實現,因此廣泛地應用於計算機網絡上的差錯控制。而且由於它采用的是模二除進行驗算,因此十分適合於以串行同步方式傳送數據塊。

CRC的考查點主要有3個:

常見的CRC應用標准;

計算CRC校驗碼;

驗算一個加了CRC校驗的碼是否有錯誤;

1)常見的CRC標准及應用歸納如表1-4所示:

 

 

2)計算CRC校驗碼

CRC碼中,編碼是由K位信息碼,加上R位的校驗碼組成。要計算CRC校驗碼,需根據CRC生成多項式進行。

使用多項式G(x)=x^5 + x^4 + x +1,對報文10100110進行CRC編碼,則編碼后的報文是什么?

方法與步驟:

步驟1:對報文10100110,在末尾添加所給多項式的最高次階個0,如本題為x^5,則添加5個0,變為:1010011000000。

步驟2:由多項式G(x)=x^5 + x^4 + x +1,得其階數為1的二進制編碼為:110011。

步驟3:步驟1中求得的1010011000000對步驟2中求得的110011進行模二除法,所得到的余數即為校驗碼,把校驗碼添加在原報文尾部即為所求的編碼報文1010011011000,具體如下:

                              

 

注意: 

余數的位數一定要是比除數位數只能少一位,哪怕前面位是0,甚至是全為0(附帶好整除時)也都不能省略

原始報文為11001010101,其生成多項式為X4+X3+X+1.計算編碼后的報文。

步驟1:對報文11001010101,在末尾添加所給多項式的最高次階個0,則添加4個0,添加后的報文為110010101010000

步驟2:由多項式X4+X3+X+1,得其階數為1的二進制編碼為:11011

步驟3:計算

 

如圖,計算一定要比除數小一位,即使補0,0011添加到原始報文的后面,就是結果110010101010011.

3)檢查信息碼是否有CRC錯誤

要想檢查信息碼是否出現了CRC錯誤的計算很簡單,只需用待檢查的信息碼做被除數,除以生成多項式,如果能夠整除就說明沒有錯誤,否則就表示出錯了。另外要注意的是,當CRC檢查出現錯誤時,它是不會進行糾錯的,通常是讓信息的發送方重發一遍

已知道接收到的CRC編碼,求原編碼或判斷是否出錯,如:已知G(x)=x^5 + x^4 + x +1,接收的為1010011011001,問是否出錯?

 

 

 

如上的CRC編碼是錯誤的。

例:以下關於海明碼的敘述中,正確的是6)

A.海明碼利用奇偶性進行檢錯和糾錯

  B.海明碼的碼距為1

  C.海明碼可以檢錯但不能糾錯

  D.海明碼中數據位的長度與校驗位的長度必須相同

  海明碼既可檢錯又可糾錯

例:己知數據信息為 16 位,最少應附加5)位校驗位,才能實現海明碼糾錯。

A.3  B.4   C.5   D.6

根據公式 2的k次方 ≥ n+k+1 , n=16 則 K=5

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM