常用校驗碼(奇偶校驗碼 海明校驗碼 CRC校驗碼)

2022-04-03 05:22:57 字數 2949 閱讀 6269

一、奇偶校驗碼

二、海明校驗碼

三、crc校驗碼

計算機系統執行時,各個部之間要進行資料交換.交換的過程中,會有發生誤碼的可能(即0變成1或1變成0),由於計算機的儲存是通過二進位制**來實現的的,誤碼會導致儲存的內容發生改變。為確保資料在傳送過程正確無誤,常使用檢驗碼. 我們常使用的檢驗碼有三種. 分別是奇偶校驗碼海明校驗碼迴圈冗餘校驗碼(crc)

學習資料:常用校驗碼

概念:奇偶校驗碼是奇校驗碼偶校驗碼的統稱. 它們都是通過在要校驗的編碼上加一位校驗位組成.

校驗方法:

如果是奇校驗加上校驗位後,編碼中1的個數為奇數個。如果是偶校驗加上校驗位後,編碼中1的個數為偶數個

水平奇偶校驗碼:對每乙個資料的編碼新增校驗位,使資訊位與校驗位處於同一行

例子:原編碼

奇校驗偶校驗

0000

0000 1

0000 0

0010

0010 0

0010 1

1100

1100 1

1100 0

1010

1010 1

1010 0

當原編碼在傳輸、儲存的過程中發生了誤碼,1的數量就會改變,然後就能校驗出該過程出現了錯誤。

垂直奇偶校驗碼:把資料分成若干組,一組資料排成一行,再加一行校驗碼. 針對每一行列採用奇校驗 或 偶校驗

缺點:只能檢測出奇數字出錯. 如果發生偶數字錯誤就無法檢測

設原編碼為0000,傳輸的過程中變成了1001。如果使用奇校驗,原編碼是00001,傳輸過後會變成10011,1仍然是奇數個,無法校驗;如果使用偶校驗,原編碼是00000,傳輸過後會變成10010,1仍然是偶數個,同樣無法校驗。

奇偶校驗碼無法檢測出哪位出錯.所以屬於無法矯正錯誤的校驗碼。

校驗過程中只知道1的數量發生變化,對於哪個地方發生變化無從知道。

學習資料:海明校驗碼

實現原理:

它的實現原理,是在m個資料位之外加上k個校驗位,從而形成乙個m+k位的新的碼字,使新的碼字的碼距比較均勻地拉大。把資料的每乙個二進位制位分配在幾個不同的偶校驗位的組合中,當某一位出錯後,就會引起相關的幾個校驗位的值發生變化,這不但可以發現出錯,還能指出是哪一位出錯,為進一步自動糾錯提供了依據。

兩個碼組對應位上數字的不同位的個數稱為碼組的距離,簡稱碼距例:1

0101

0000

1這兩個二進位製碼中,有三個不相同的位置,所以碼距為3.

須知:海明校驗碼是放在2的冪次位上的,即「1,2,4,8,16,32······」;

資訊位為m的原始資料,需要加入k位的校驗碼,它滿足m+k+1<2^k;

例子:要計算原始資訊位為101101100的海明校驗碼。

先用m+k+1<2^k計算出校驗位:9+k+1 <2^k→k=4,即校驗位為4位。

因為海明校驗碼是放在2的冪次位上,所以插在位置1,2,4,8中

用到的校驗碼是看當前位置由哪幾個校驗碼所在的位置的和

校驗碼的位置是1,2,4,8。位置3= 1 + 2,所以位置3用到的校驗碼是1和2;位置7 = 1 + 2 + 4組成的,所以位置7用到的校驗碼是1,2和4。

然後將校驗碼校驗的位置記錄下來:

注意:後面的數字串是位置的下標,不是值,值還是0或1。

然後做異或運算(相同時為0,不同時為1)

學習資料:crc的校驗原理以及例子

原理:crc檢驗原理實際上就是在乙個p位二進位制資料序列之後附加乙個r位二進位制檢驗碼(序列),從而構成乙個總長為n=p+r位的二進位制序列;附加在資料序列之後的這個檢驗碼與資料序列的內容之間存在著某種特定的關係。如果因干擾等原因使資料序列中的某一位或某些位發生錯誤,這種特定關係就會被破壞。

實現步驟:

雙方事先約定了乙個r次多項式g(x),即crc碼

crc碼的特點:

例:原編碼:1001001011

則crc碼可以為10011,也可以為11001等

但是:10010這種不可以,因為它的尾巴不是1,1001101011也不行,因為它的位數與原編碼的一致。

要注意的是:crc碼並非是校驗碼,但需要通過crc碼來獲得校驗碼。具體校驗碼的話要先讓原編碼加上crc碼位數個0(即crc碼有的多少位,就要加上多少位0在原編碼的後面)然後用新原編碼除crc碼,得到的餘數就是校驗碼

例:原編碼=1010001101

crc碼設為:110101

校驗碼有5位,因此

新原編碼:101000110100000

然後用新原編碼除以crc碼:

校驗碼就是01110

校驗方法

用原編碼與校驗碼進行模2減法,獲得最終原編碼。此時最終原編碼除以crc碼是可以整除的,由於接收方也有相同的crc碼,在資料傳輸的過程中不發生錯誤,接收方用接收到的資料除以crc碼也是可以整除的,此時為無錯誤。同時,不能整除,說明傳輸過程中資料發生了錯誤。

校驗碼 奇偶校驗碼

1.奇偶校驗碼 通過在編碼中增加一位校驗位來使編碼中1的個數為奇數或者偶數,校驗位可以在原編碼的前面或者後面加。通過加入校驗位後的1個數是奇數還是偶數,可分為兩種 奇校驗 1的個數為奇數 偶校驗 1的個數為偶數 下圖為奇校驗和偶校驗的設定方法。例如 m的ascii碼77,二進位制表示為0100110...

奇偶校驗 海明校驗碼 迴圈冗餘校驗碼

奇偶校驗 奇偶校驗包含奇校驗和偶校驗兩種校驗。奇校驗 odd parity 約定的編碼規律是,讓整個校驗碼 包含有效資訊和校驗位 中 1 的個數為奇數。偶校驗 even parity 約定的編碼規律是,讓整個校驗碼中 1 的個數為偶數。有效資訊 被校驗的資訊 部分可能是奇性 1 的個數為奇數 的,也...

校驗碼之奇偶校驗碼

校驗碼之奇偶校驗碼 在計算機系統中各部件需要進行資料交換,為了確保資料在傳送過程中正確無誤,我們需要使用校驗碼來測試資料是否出錯。校驗的基本思想 將編碼分為合法編碼和錯誤編碼。合理的設計編碼規則使資料在傳送過程中出現某種錯誤就會變成錯誤編碼。碼距 是指乙個編碼系統中任意兩個合法編碼之間至少有多少個二...