標籤:
原理:在資料中加入幾個校正碼,並把資料的每一個二進位位分配在幾個同位組中.
設:校正位的個數為r,能表示2^r個資訊,1個表示“沒錯誤”, 2^r -1個指出錯誤發生在哪一位.
k= 2^r –1-r個資訊可用於糾正資料位元.
2^r≥k+r+1
若要檢測並糾正一位錯,同時發現兩位錯,r,k應滿足下列關係: 2^r-1≥k+r (見表3.8)
校正位和資料位元是如何排列的
校正位排列在 2^(i–1) (i =0,1,2,…)的位置上
例:有一個編碼 為D4D3D2D1,由此產生一個海明碼
7 6 5 4 3 2 1
D4 D3 D2 P3 D1 P2 P1
2^2 2^1 2^0
有一位元組的資訊需產生海明碼
D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1
8 4 2 1
海明碼的校正位Pi和數值位Di的關係(每個海明碼的位號要等於參與校正它的幾個檢驗位的位號之和。 )–例:有一個編碼為1011
P3= D4⊕D3 ⊕D2
0 = 1 ⊕ 0 ⊕ 1
P2= D4 ⊕D3 ⊕D1
0 = 1 ⊕ 0 ⊕ 1
P1 = D4 ⊕D2 ⊕D1
1 = 1 ⊕ 1 ⊕ 1
最後 海明碼為1010101
7=4+2+1 6=4+2 5=4+1 3=2+1
設 海明校正碼共m位(m=K+r),形如:
海明碼編碼規律通常是:
1.校正位與資料位元之和為m,每個校正位Pi在被分在位號2^(i-1)的位置,其餘資料位元由低到高排列.
2.海明碼的每一位Hi由多個校正位校正,關係是:被校正的每一位的位號等於校正它的各校正位位號之和.
按上述規律討論一個位元組的海明碼.
D8D7D6D5 D4D3D2D1
8位位元,k=8,根據2^r-1≥k+r , r應為5,m=13
•海明碼可表示為:H13H12……H2H1
1.校正位與資料位元之和為m,每個校正位Pi被分在位號2^(i-1)的位置, P5~P1對應H13,H8,H4, H2 H1
其餘為資料位元,形如:
H13 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1
P5 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1
13 4 1 2 1 8 1 2 1 4 1 2 1
8 2,8 8 8 2,4 4 4 2
每一位的位號等於校正它的各校正位位號之和.
P1參與了D1 D2 D4 D5 D7的校正
P2參與了D1 D3 D4 D6 D7的校正
P3參與了D 2 D3 D4 D8的校正
由此,可以找出有關資料位元形成Pi值偶校正的結果。
P1=D1⊕ D 2 ⊕ D4 ⊕ D5 ⊕ D7
P2 =D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7
P3 =D 2 ⊕ D3 ⊕ D4 ⊕ D8
P4 =D 5 ⊕ D6 ⊕ D7 ⊕ D8
如果要分清是兩位出錯還是一位出錯,還要補充一個P5總校正位。使:
P5=D1⊕D2⊕D3⊕D4⊕D5⊕D6⊕D7⊕D8⊕P4⊕P3
⊕P2⊕P1
由此,可以得出偶校正組。
S1= P1⊕ D1⊕ D 2 ⊕ D4 ⊕ D5 ⊕ D7
S2= P2⊕D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7
S3= P3⊕ D 2 ⊕ D3 ⊕ D4 ⊕ D8
S4= P4⊕ D 5 ⊕ D6 ⊕ D7 ⊕ D8
S5= P5⊕P4⊕P3⊕P2⊕ P1⊕D1⊕D2⊕D3⊕D4⊕D5⊕D6⊕D7⊕D8
S1 ~ S5能反映出13位海明碼的出錯情況.
S1= P1⊕ D1⊕ D 2 ⊕ D4 ⊕ D5 ⊕ D7
S2= P2⊕D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7
S3= P3⊕ D 2 ⊕ D3 ⊕ D4 ⊕ D8
S4= P4⊕ D 5 ⊕ D6 ⊕ D7 ⊕ D8
S4 ~ S1為全0,說明沒錯. S4 ~ S1不為全0,說明有錯. S5=1說明1位出錯,而S5=0說明2位錯,不再有效,且不能查出是哪2位出錯。
S4 ~ S1的編碼值正好等於出錯的海明碼的位號.如:1100和1011,分別表示H12(D8)和H11(D7)出錯。
如果 S4 ~ S1中僅有一個不為0,則表示校正位出錯. S1≠0時P1(即H1)出錯; S2≠0時P2(即H2)出錯; S3≠0時P3(即H4)出錯; S4≠0時P4(即H8)出錯.
如果S4 ~ S1中有2個或2個以上不為0,則表示有1位元據出錯(兩位[指r=4時]或者兩位以上資料同時出錯則檢查不出來)。 S4 ~ S1的編碼值正好等於出錯的海明碼的位號.如:1100和1011,分別表示H12(D8)和H11(D7)出錯。
假設S1 、 S4不為0, S2 、 S3為0,則說明P1和P4兩個校正位出錯,查公式,在S1和S4中同時出現而在S2和S3中不出現的資料僅有D5一個,故D5出錯。或者查表, P1對應H1 , P4對應H8 ,出錯的海明碼位號=1+8=9,即H9出錯, H9對應D5 。
計組_海明校正碼