漢明距離講解

2021-09-19 12:21:42 字數 1709 閱讀 5914

碼字a為 10001001

碼字b為 10110001

那麼不同的字元數為3,漢明距離就是3

不難看出,漢明距離就是兩個碼不同的數的個數。

在乙個碼組集合中,任意兩個碼字之間對應位上碼元取值不同的位的數目定義為這兩個碼字之間的漢明距離。即

d(x,y)=∑xi

⊕yi\sum \oplus

∑xi​⊕y

i​這裡i=0,1,…n-1,x,y都是n位的編碼,⊕表示異或

例如:(00)與(01)的距離是1,(110)和(101)的距離是2。在乙個碼組集合中,任意兩個編碼之間漢明距離的最小值稱為這個碼組的最小漢明距離。最小漢明距離越大,碼組越具有抗干擾能力。

下面我們用d表示碼組的最小漢明距離。

當碼組用於檢測錯誤時,設可檢測e個位的錯誤,則d≥e

+1d \geq e+1

d≥e+

1\quad

設有兩個距離為d的碼字a和b,如果a出現了e個錯誤,則a變成了以a為圓心,e位半徑的球體表面的碼字。為了能夠準確地分辨出這些碼字既不是a也不是b,那麼a誤碼後變成的球面上的點與b至少應該有一位距離(如果b在球面上或在球面內部則無法分辨出到底b是不是a的錯誤碼),即a與b之間的最小距離d≥e

+1d \geq e+1

d≥e+1。

若碼組用於糾錯,設可糾錯t個位的錯誤,則 d≥2

∗t+1

d \geq 2*t+1

d≥2∗t+

1\quad

設有碼字a和b,如果a出現了t個錯誤,b也出現了t各錯誤,則a碼變成以a為圓心,t為半徑的球面上的碼字;b碼變成以b為圓心,t為半徑的球面上的碼字。為了在出現t個錯之後仍能分辨乙個碼字到底是屬於a的錯碼還是屬於b的錯碼,a,b為球心的兩個球面應該不相交,即球心a,b之間距離應該大於2t,所以d>=2t+1。

如果碼組用於糾正t個錯,檢測e個錯,則d≥e

+t+1

d \geq e+t+1

d≥e+t+

1\quad

這裡e>t,這種檢錯糾錯方式結合的情況同上述兩個情況類似。當碼字出現t個或者小於t個錯時,系統按照糾錯方式工作。當碼字出現超過t個錯而小於等於e個錯時,系統按照檢錯方式工作;當a出現e個錯,b出現t個錯時,既要糾正b的錯,又要發現a的錯,則以a為球心,e為半徑的球和以b為球心,t為半徑的球應該不相交,所以a,b之間的距離應該大於等於e+t+1,即d≥e

+t+1

d \geq e+t+1

d≥e+t+

1。n位的碼字可以用n維空間的超立方體的乙個頂點來表示。兩個碼字之間的漢明距離就是超立方體兩個頂點之間的一條邊,而且是這兩個頂點之間的最短距離。

以這張圖為例,n=3時,三維的正方體。

需要糾錯時,碼表如圖二所示,包含這四個碼,當且僅當出現1位錯誤時,都可以檢測出來,而需要查出是哪個出錯了就略顯麻煩。

於是需要圖三,只包含兩個碼,如果錯誤位數是1的話,那麼它原來的就是距離它最近的那個碼,這一點是可以類推到高維的。

這題因為傳輸過來的碼與 第二個 碼漢明距離最小,所以原來就是它了。

參考文獻

Hamming Distance 漢明距離

在資訊理論中,hamming distance 表示兩個等長字串在對應位置上不同字元的數目,我們以d x,y 表示字串x和y之間的漢明距離。從另外乙個方面看,漢明距離度量了通過替換字元的方式將字串x變成y所需要的最小的替換次數。舉例說明以下字串間的漢明距離為 karolin and kathrin ...

漢明距離總和

題目 兩個證書的漢明距離指的是這兩個數字的二進位制數對應值不同的數量。計算乙個陣列中,任意兩個數之間漢明距離的總和。示例 輸入 4,14,2 輸出 6 解釋 在二進位制表示中,4表示為0100,14表示為1110,2表示為0010。這樣表示是為了提現後四位之間的關係 所以答案為 hammingdis...

Hamming Distance漢明距離

漢明距離是使用在資料傳輸差錯控制編碼裡面的,漢明距離是乙個概念,它表示兩個 相同長度 字對應位不同的數量,我們以d x,y 表示兩個字x,y之間的漢明距離。對兩個字串進行異或運算,並統計結果為1的個數,那麼這個數就是漢明距離。在資訊理論中,兩個等長字串之間的漢明距離是兩個字串對應位置的不同字元的個數...