史上最通俗的海明碼編碼計算、檢錯和錯誤修正原理解析

來源:互聯網
上載者:User

以下是筆者一節視頻課程中的PPT內容,細緻而又非常通俗地講解了海明碼的編碼計算、檢測錯和錯誤修正原理,如果因為PPT比較簡潔看不明白,可結合我的視訊來看,本節課程的視頻連結如下(可免費觀看,我全部課程5折搶購中!):http://edu.51cto.com/lesson/id-21540.html
一、海明碼檢錯/錯誤修正基本思想
 海明碼(Hamming Code)是一個可以有多個校正位,具有檢測並糾正一位錯誤碼的錯誤修正碼,所以也僅用於通道特性比較好的環境中,如以太區域網路。它的檢錯、錯誤修正基本思想如下:

(1)將有效資訊按某種規律分成若干組,每組安排一個校正位通過異或運算進行校正,得出具體的校正碼

(2)在接收端同樣通過異或運算看各組校正結果是否正確,並觀察出錯的校校組,或者多個出錯的校正組的共同校正位,得出具體的出錯位元位

(3)對錯誤位取反來將其糾正
 二、海明碼計算
  海明碼計算要按以下步驟來進行:計算校正碼位元→確定校正碼位置→確定校正碼

   1. 計算校正碼位元

    假設用N表示添加了校正碼位後整個傳輸資訊的二進位位元,用K代表其中有效資訊位元,r表示添加的校正碼位元,它們之間的關係應滿足:N=K+r≤2r-1(是為了確保r位校正碼能校正全部的資料位元,因為r位校正碼所能表示的最大十進位數為2r-1,同時也確保各位碼本身不被其他校正碼校正)

資訊碼位元

1

2~4

5~11

12~26

27~57

58~120

121~247

校正碼位元

2

3

4

5

6

7

8

   2. 確定校正碼位置

海明碼的校正碼的位置必須是在2n次方位置(n從0 開始,分別代表從左邊數起分別是第1、2、4、8、16……),資訊碼也就是在非2n次方位置

   3. 確定校正碼

  • 校正位置選擇原則:第i位校正碼從當前校正碼位開始,每次連續校正i位後再跳過i位,然後再連續校正i位,再跳過i位,以此類推。確定每個校正碼所校正的位元位:
P1校正碼位校正的碼字位為:第1位(也就是P1本身)、第3位、第5位、第7位、第9位、第11位、第13位、第15位,……。
  • P2校正碼位校正的碼字位為:第2位(也就是P2本身)、第3位,第6位、第7位,第10位、第11位,第14位、第15位,……。
  • P3校正碼位校正的碼字位為:第4位(也就是P4本身)、第5位、第6位、第7位,第12位、第13位、第14位、第15位,第20位、第21位、第22位、第23位,……。
  • Pn校正碼位校正的碼字位為:第2n-1位(也就是Pn本身)、第2n-1+1位、第2n-1+2位、第2n-1+3位、……、第2n-1位,第3×2n-1位、第3×2n-1+1、……、第2×2n-1位,第5×2n-1位、第5×2n-1+1位、第3×2n-1位,……、第7×2n-1位、第7×2n-1+1位、……、第4×2n-1位,……,第(2m-1) 2n-1位、……第m×2n-1位

    最後每組通過異或邏輯運算(與偶校正原理一樣),使每組的運算結果為0,即可得出第i位校正碼的值

    4. 實現校正和錯誤修正

把以上這些校正碼所校正的位分成對應的組,則在接收端的對各校正位再進行邏輯“異或運算”,如果採用的是偶校正,正常情況下均為0。

    如果最終發現只是一個校正組中的校正結果不符,則直接可以知道是對應校正組中的校正碼在傳輸過程中出現了差錯,因為所有校正碼所在的位是只由對應的校正碼進行校正;
如果發現多組校正結果不正確,則查看這些組中公用校正的資料位元(只有資料位元才可能被幾個校正碼進行校正),以最終確定是哪個資料位元出了差錯(海明碼只能檢查一位出錯);
最後,對所找到的出錯資料位元取反即可實現錯誤修正。


三、海明碼計算樣本

原資訊碼:10011101

(1)確定校正碼位元

原始資訊碼一共8,根據前面的表可得知校正碼位元為4

(2)確定校正碼位置

??1?001?1101

(2)電腦各位校正碼

Pn校正碼位校正的碼字位為:第2n-1位(也就是Pn本身)、第2n-1+1位、第2n-1+2位、第2n-1+3位、……、第2n-1位,第3×2n-1位、第3×2n-1+1、……、第2×2n-1位,第5×2n-1位、第5×2n-1+1位、第3×2n-1位,……、第7×2n-1位、第7×2n-1+1位、……、第4×2n-1位,……,第(2m-1) 2n-1位、……第m×2n-1位
P1(n=1):1、3、5、7、9、11   #----檢驗的bit位,下同

             1    1    0    1   1    0     #----對應位的值,下同

P2(n=2):2、3、6、7、10、11

             1    1     0    0   1     1

P3(n=3):4、5、6、7、12

              0   0    0    1    1  

P4(n=4):8、9、10、11、12

              1    1    1     0      1

最終得出插入校正碼後的資訊碼為:111000111101



【我的視訊課程全部5折秒殺中,7月1號晚24點前有效!】

我的視訊課程首頁:http://edu.51cto.com/pack/view/id-3.html 

購終身會員,享所有課程,加入本人公眾帳號“王達大講堂”瞭解詳情

聯繫我們

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