漢明碼


漢明碼

編碼過程

  1. 先根據信息位位數確定校驗位個數
  2. 按規則排列信息位與校驗位
  3. 給信息位分組並且分配一個相應的校驗位
  4. 根據分組中的信息位確定校驗位的取值

校驗位位數

k個校驗位必須能確定n個信息位和k個校驗位傳輸時是否發生bit跳變

k個校驗位能表示2k種情況,其中1種為無錯誤,剩下的2k-1種情況要能表示n個信息位和k個校驗位哪一個出錯了

因此校驗位的位數k必須滿足\(2^{k} - 1 \ge n + k\)

信息位與校驗位的位置

  • 將校驗位放入2k(k>=0)的位置其余位置依次放入信息位

image

分組規則

  • 將所有序號寫成2k(k>=0)之和(如 15=8+4+2+1),其中含有相同的2k(k>=0)的為一組(如下圖)

image

  • 也可以這樣理解 將序號轉為k位(k為校驗位個數)2進制數, 第i位為1的分到第i分組

image

校驗位的取值

由於海明(漢明)碼采用的是偶校驗的策略, 所以每個分組中1的個數為偶數個

  • 肉眼觀察分組中1的個數, 然后判斷校驗位為1還是0
  • 或者將分組中的信息位相異或

image

糾錯

1bit發生錯誤可以糾錯 2bit發生錯誤可以發現但無法糾錯

將P1,P2,P3……所在的分組中的bit位相異或得到S1,S2,S3……

將S1,S2,S3……按照低位到高位的順序組成二進制數,若為0則無錯,若不為零則其對應的十進制數就是發生bit跳變的bit的序號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM