校驗碼 漢明碼 CRC碼

2021-10-09 23:20:22 字數 2143 閱讀 3727

資料校驗碼

任意兩個碼字之間最少變化的二進位制位數,被稱為資料校驗碼的碼距

例如用四位二進位制數表示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 由於計算機的儲存是通過二進位制 來實現的的,誤碼會導致儲存的內容發生改變。為確保資料在傳送過程正確無誤,常使用檢驗碼.我們常使用的檢驗碼有三種.分別是...