資料校驗碼
任意兩個碼字之間最少變化的二進位制位數,被稱為資料校驗碼的碼距
例如用四位二進位制數表示16種狀態,此時碼距為1,即兩個碼字之間最少僅有乙個二進位制不同,這種編碼沒有檢錯能力。
檢糾錯能力實現原理:在編碼中,除去合法的碼字外,再加入一些非法的碼字,當某個合法的碼字出現錯誤時,就變成為非法碼字。
碼距越大,檢錯糾錯的能力越強。
奇偶校驗碼:
奇偶校驗碼的碼距為2,能檢測出一位錯誤,組成為n位有效資訊和一位校驗碼
奇校驗:有效資訊和校驗碼「1」的個數為奇數
偶校驗:有效資訊和校驗碼「1」的個數為偶數
交叉奇偶校驗:
進行橫向和縱向的奇偶校驗
漢明碼:
漢明碼有三要素
檢測位的個數
2^k>=n+k+1
k=檢測位的位數
n=二進位制**的位數
二進位制**有4位需要3位檢測位
二進位制**有8位需要4位檢測位
檢測位的位置
2i(i=0,1,2,3,4……)
檢測位的取值
檢測位的取值與該位所在的檢測小組中承擔的奇偶校驗任務有關
c1檢測小組g1小組包含1,3,5,7…
c2檢測小組g2小組包含2,3,6,7,10,11…
c4檢測小組g3小組包含4,5,6,7,12,13…
c8檢測小組g4小組包含8,9,10,11,12,13,14,15,24…
小組佔位
gi小組獨佔2i-1位
gi,gj小組共同佔第2i-1+2j-1
依此類推三個小組
偶原則配置漢明碼時,計算出c1,c2,c3…漢明碼錯誤的位數就是c3,c3,c1依此將其排列成為乙個二進位制數,其對應的十進位制數就是錯誤的位數
對於偶校驗配置 的漢明碼不出錯時p1=0,p2=0,p4=0。
crc碼
首先介紹模2運算:
模2運算的加減的結果想相同,可用異或邏輯實現
兩個相同的資料的模2加減為0,兩個不同的資料為1
模2乘按模2加求部分積的和
例如
模2除
按模2除求部分餘數。每求一位商應使部分餘數減少一位,上商的原則為當餘數的首位為1時,商取1,當部分餘數的首位是0時,商取0。當部分的餘數字數小於位數時,該餘數為最後的餘數
變成乙個多項式後將多項式左移k位,這空出來的k位來拼接校驗碼,k的位數應該為生成多項式g(x)的位數減一
有效資訊為m(x)
生成多項式為g(x)
計算crc碼的步驟:
1.k=g(x)-1
2.m(x)* xk
3.r(x)=m(x)*xk /g(x)的餘數
4.crc碼為m(x)*xk +r(x)
crc碼糾錯:
用crc碼除以生成多項式g(x)得到餘數若為0則沒有出錯,若不為0,則有錯。
對餘數 補0,再進行模2除法就會依此由001到010到100等,在移滿乙個週期後,就得到乙個糾正後的碼字
生成多項式應該滿足的條件
海明碼 CRC冗餘校驗碼
海明碼 也叫漢明碼 具有一位糾錯能力。本文以1010110這個二進位制數為例解釋海明碼的編碼和校驗方法 設資料有n位,校驗碼有x位。則校驗碼一共有2x種取值方式。其中需要一種取值方式表示資料正確,剩下2x 1種取值方式表示有一位資料出錯。因為編碼後的二進位制串有n x位,因此x應該滿足 2x 1 n...
CRC冗餘校驗碼
1 基本概念 crc cyclic redundancy check 是資料通訊領域中最常用的一種查錯校驗碼,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行相似的演算法以保證資料傳輸的正確性與完整性。2 基本原理 這裡先介紹 模2除法 的知識,與 算數除法 類似,只不過 模2除法 ...
常用校驗碼(奇偶校驗碼 海明校驗碼 CRC校驗碼)
一 奇偶校驗碼 二 海明校驗碼 三 crc校驗碼 計算機系統執行時,各個部之間要進行資料交換.交換的過程中,會有發生誤碼的可能 即0變成1或1變成0 由於計算機的儲存是通過二進位制 來實現的的,誤碼會導致儲存的內容發生改變。為確保資料在傳送過程正確無誤,常使用檢驗碼.我們常使用的檢驗碼有三種.分別是...