檢錯與糾錯碼

2022-09-13 11:12:08 字數 1845 閱讀 3364

1.奇偶校驗法:

奇校驗,數值部分各個位上數的和與校驗位的和應是乙個奇數,即,1的個數為奇數個,包括校驗位。常用於同步傳輸。

偶校驗,包括校驗位有偶數個1,常用於非同步傳輸或低速傳輸。

通常是在每個位元組後增加乙個附加位(奇偶校驗位),即每個位元組傳送九位資料。

缺點,數字的錯誤以及偶數個位的錯誤檢測不出來,無法定位錯誤。

例:

2.迴圈冗餘校驗法:

迴圈冗餘(crc)檢驗:資料m後面新增供差錯檢驗用的n位冗餘碼,然後構成乙個幀傳送出去,一共傳送(k+n)位。【模2運算求n:m÷p=q…r,n即r】,校驗時除以p(模2運算),餘數r為0,則接受,不為0,則判定這個幀有差錯。 

具體:在傳送端,先把資料劃分為組,假定每個組k個位元。現假定待傳送的資料m=101001(k=6)。crc運算就是在資料m後面新增供差錯檢驗用的n位冗餘碼,然後構成乙個幀傳送出去,一共傳送(k+n)位。在要傳送的資料後面加n位的冗餘碼,雖然增加了資料傳送的開銷,但卻可以進行差錯檢測。 

這n位冗餘碼可以通過下面的方法得出。用二進位制的模2運算進行2^n乘m的運算,即在m後面新增n個0。得到k+n位的數除以收發雙方事先商定的長度為(n+1)位的除數p(p也可叫做生成多項式g,沒固定),得出商是q,餘數是r(n位,比p少一位)。

例:

m=101001(k=6),假定除數p=1101(n=3,n比除數p少一位,即n為3位).經模2除法運算(實際上是除數和被除數做異或運算)後的結果是:商q=110101(這個商並沒有什麼用),而餘數r=001,這個餘數r就作為冗餘碼拼接在m之後傳送出去,這種為了進行檢錯而新增的冗餘碼常稱為幀檢驗序列fcs,因此加上fcs後傳送的幀是101001001(一共k+n位)。

在接收端把接收到的資料以幀為單位進行crc檢驗:把收到的每一幀都除以同樣的除數p(模2除法),然後檢查得到的餘數r。

如果在傳輸過程中無差錯,那麼經過crc檢驗後得出的餘數r肯定是0。

但如果出現誤碼,那麼餘數r仍等於0的概率是非常小的。

總結:

(1)若得出的餘數r=0,則判定這個幀沒錯,就接受。

(2)若餘數r!=0;則判定這個幀有差錯(但無法確定是哪一位或者或者哪幾位出現了差錯),就丟棄。

再例如:

備註:模2運算:一種二進位制演算法,crc校驗技術中的核心部分。與四則運算相同,模2運算也包括模2加、模2減、模2乘、模2除四種二進位制運算。

與四則運算不同的是模2運算不考慮進製和借位(等同於「異或」運算),即模2加法是不帶進製的二進位制加法運算,模2減法是不帶借位的二進位制減法運算。

例:1+1=0+0=0

3.海明碼:

設資料有n位,校驗碼有x位。則校驗碼一共有2x種取值方式。其中需要一種取值方式表示資料正確,剩下2x-1種取值方式表示有一位資料出錯。因為編碼後的二進位制串有n+x位,因此x應該滿足 2x-1 ≥ n+x   (備註:

bch糾錯碼 碼長8 密碼學BCH糾錯編碼演算法

日止 實驗目的 通過實驗熟練掌握 bch糾錯編碼演算法,學會bch 糾錯編碼演算法程式設計,提高c 程式設計能 力實驗要求 開發環境要求 軟體環境 windows98 windowsxp windows2000 c 環境 硬體環境 計算機 c 512mram 60g以上硬碟,輸入輸出裝置 技術文件要...

網路技術原理之檢錯與糾錯

二維奇偶校驗 迴圈冗餘校驗 crc 是一種通過多項式除法檢測錯誤的方法,將每個位元串看作乙個多項式,採用模2運算。通常它將位元串 bn 1bn 2bn 3 b2b1b0解釋成多項式 bn 1xn 1 bn 2xn 2 bn 3xn 3 b2x2 b1x1 b0x0 如果採用多項式編碼的方式,傳送方和...

資料鏈路層(2) 差錯控制之碼距 檢錯與糾錯

一 什麼是碼距 碼距就是兩個碼字c1與c2之間不同的位元數。如 1100與1010的碼距為2,1111與0000的碼距為4。乙個編碼系統的碼距就是整個編碼系統中任意 所有 兩個碼字的最小距離。若乙個編碼系統有四種編碼分別為 0000,0011,1100,1111,此編碼系統中0000與1111的碼距...