計組_海明校正碼

來源:互聯網
上載者:User

標籤:

 原理:在資料中加入幾個校正碼,並把資料的每一個二進位位分配在幾個同位組中.

設:校正位的個數為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 。

計組_海明校正碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.