回覆列表
  • 1 # 使用者3321390249605

    海明碼(Hamming Code )編碼的關鍵是使用多餘的奇偶校驗位來識別一位錯誤。

      碼字(Code Word) 按如下方法構建:   1、把所有2的冪次方的資料位標記為奇偶校驗位(編號為1, 2, 4, 8, 16, 32, 64等的位置)   2、其他資料位用於待編碼資料. (編號為3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17等的位置)   3、每個奇偶校驗位的值代表了程式碼字中部分資料位的奇偶性,其所在位置決定了要校驗和跳過的位元位順序。  位置1:校驗1位,跳過1位,校驗1位,跳過1位(1,3,5,7,9,11,13,15,…)   位置2:校驗2位,跳過2位,校驗2位,跳過2位 (2,3,6,7,10,11,14,15,…)   位置4:校驗4位,跳過4位,校驗4位,跳過4位 (4,5,6,7,12,13,14,15,20,21,22,23,…)   位置8:校驗8位,跳過8位,校驗8位,跳過8位(8-15,24-31,40-47,…)   …   如果全部校驗的位置中有奇數個1,把該奇偶校驗位置為1;如果全部校驗的位置中有偶數個1,把該奇偶校驗位置為0.   舉例說明:   一個位元組的資料:10011010   構造資料字(Data Word),對應的校驗位留空_ _ 1 _ 0 0 1 _ 1 0 1 0   計算每個校驗位的奇偶性 ( ?代表要設定的位元位):   位置1檢查1,3,5,7,9,11:   ? _ 1 _ 0 0 1 _ 1 0 1 0. 偶數個1,因此位置1設為0,即: 0 _ 1 _ 0 0 1 _ 1 0 1 0   位置2檢查2,3,6,7,10,11:   0 ? 1 _ 0 0 1 _ 1 0 1 0. 奇數個1,因此位置2設為1,即: 0 1 1 _ 0 0 1 _ 1 0 1 0   位置4檢查4,5,6,7,12:   0 1 1 ? 0 0 1 _ 1 0 1 0. 奇數個1,因此位置4設為1,即: 0 1 1 1 0 0 1 _ 1 0 1 0   位置8檢查8,9,10,11,12:   0 1 1 1 0 0 1 ? 1 0 1 0. 偶數個1,因此位置8設為0,即: 0 1 1 1 0 0 1 0 1 0 1 0   因此碼字為: 011100101010.

  • 中秋節和大豐收的關聯?
  • 二哈和胖橘貓,哪一個才是你的最愛?