漢明碼編碼的錯誤修正原理

來源:互聯網
上載者:User

漢明碼編碼的錯誤修正原理

出自:http://user.qzone.qq.com/48052347/blog/1297330476

參考:漢明碼校正原理解析   甘家寶

1.        簡介:

當電腦儲存或移動資料時,可能會產生資料位元錯誤,這時可以利用漢明碼來檢測並錯誤修正,簡單的說,漢明碼是一個錯誤校正碼碼集,由Bell實驗室的R.W.Hamming發明,因此定名為漢明碼。

2.        漢明碼的定義和漢明碼不等式:

設:m=資料位元數,k=校正位元為,n=總編碼位元=m+k,有Hamming不等式:

-

1.   漢明碼不等式含義:

a)      
總資料長度為N,如果每一位元據是否錯誤都要記錄,就需要N位來儲存。

b)      
每個校正位都可以表示:對或錯;校正位共K位,共可表示2^k 種狀態

c)        總編碼長度為N,所以包含某一位錯和全對共N+1種狀態。

d)      
所以2^k≧N+1

e)        資料表見下

2.   Hamming碼缺點:

無法實現2位或2位以上的錯誤修正,Hamming碼只能實現一位錯誤修正。

3.   以典型的4位元據編碼為例,示範漢明碼的工作過程

a)  
資料存放區格式:

依照此前的漢明碼不等式計算出,當資料位元為4位時,漢明碼校正位至少為3位,如上方式排列

可以看的出D8、D4、D2、D1中的數字都是2的整數冪

b)  
漢明校正碼的插入規律:

l  設:編碼位代號k,校正碼位代號p,資料位元代號n

l  某個校正碼Pp將處於整個編碼的第k位

l  k=2^(p-1)=2的(p-1)次方

l  以資料位元為5的一組9位元編碼為例,如下:

c)  
校正位與資料位元的對應關係:

註:^是邏輯運算子異或.

P1=D8^D4^D1

P2=D8^D2^D1

P3=D4^D2^D1

小解釋:資料位元共4位每行等式都缺少一位,而缺少的這位元據位正好是DX,等式左邊的校正位為PY,X=2^y(2的y次方)

d)  
校正位如何參與計算:

P1’=P1^D8^D4^D1

P2’=P2^D8^D2^D1

P3’=P3^D4^D2^D1

從高到低排列的位元:P3’ P2’ P1’表示的就是出錯的編碼位,從000-011-101-110-111共5種組合,其中000表示沒錯,011表示第三位錯誤,101,110,111分別表示第5,6,7位錯誤。可表示原資料位元D8D4D2D1某一位錯&沒錯的一共5種狀態.

e)  
設有一數字為:1101,帶入運算:

l  D8=1、D4=1、D2=0、D1=1,

l  P1 =1,P2=0、P3=0。

l  漢明碼處理的結果就是1010101

l  假設:D8出錯,P3’ P2’ P1’=011=十進位的3,即表示編碼後第三位出錯,對照儲存格式表,果然就是D8錯誤.

l  假設:D4錯誤,P3’ P2’ P1’=101=十進位的5,即表示編碼後第五位出錯,對照儲存格式表,果然就是D4錯誤.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.