回覆列表
  • 1 # 使用者5464423892263

    以資料碼1101為例講講漢明碼的編碼原理,此時D8=1、D4=1、D2=0、D1=1,在P1編碼時,先將D8、D4、D1的二進位制碼相加,結果為奇數3,漢明碼對奇數結果編碼為1,偶數結果為0,因此P1值為1,D8+D2+D1=2,為偶數,那麼P2值為0,D4+D2+D1=2,為偶數,P3值為0。這樣,參照上文的位置表,漢明碼處理的結果就是1010101。在這個4位資料碼的例子中,我們可以發現每個漢明碼都是以三個資料碼為基準進行編碼的。下面就是它們的對應表:

      漢明碼

      編碼用的資料碼

      P1

      D8、D4、D1

      P2

      D8、D2、D1

      P3

      D4、D2、D1

      從編碼形式上,我們可以發現漢明碼是一個校驗很嚴謹的編碼方式。在這個例子中,透過對4個數據位的3個位的3次組合檢測來達到具體碼位的校驗與修正目的(不過只允許一個位出錯,兩個出錯就無法檢查出來了,這從下面的糾錯例子中就能體現出來)。在校驗時則把每個漢明碼與各自對應的資料位值相加,如果結果為偶數(糾錯程式碼為0)就是正確,如果為奇數(糾錯程式碼為1)則說明當前漢明碼所對應的三個資料位中有錯誤,此時再透過其他兩個漢明碼各自的運算來確定具體是哪個位出了問題。

  • 中秋節和大豐收的關聯?
  • 喇叭裡的磁鐵有什麼作用?