> hamming | (7,4) | ecc <
// 漢明碼 – 用於可靠資料傳輸的錯誤更正碼
[更正]
錯誤更正
自動偵測並修正資料中的單一位元錯誤。
[偵測]
雙位元錯誤偵測
可以偵測(但無法更正)每個區塊中的雙位元錯誤。
[高效率]
額外負擔極低
每 4 個資料位元只需 3 個奇偶位元(效率 75%)。
>> 技術說明
漢明碼的運作原理:
Hamming(7,4) 代碼在每 4 個資料位元後加入 3 個奇偶位元,形成 7 位元區塊。奇偶位元放置在 2 的冪次位置(1、2、4)。當發生錯誤時,聯合綜合症(奇偶檢查結果)會直接指出出錯位元的位置。
Hamming(7,4) 結構:
資料:1011(4 位元) 位置:P1 P2 D1 P3 D2 D3 D4 Hamming:1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0
為什麼選擇漢明碼:
- >記憶體錯誤更正
- >衛星通訊
- >資料儲存系統
- >網路傳輸
- >RAID 陣列
>> 常見問題
什麼是漢明碼?
漢明碼是 Richard Hamming 在 1950 年提出的一種錯誤更正碼。透過在資料中加入奇偶位元,系統可以自動偵測並修正單一位元錯誤。
(7,4) 代表什麼意思?
Hamming(7,4) 代表總共 7 位元,其中 4 位元是資料位,3 位元是奇偶位。它可以修正 7 位元區塊中任何一個單一位元錯誤。其他變體包括 (15,11)、(31,26) 等。
錯誤更正是如何運作的?
接收資料時會重新計算奇偶位元。如果結果不一致,綜合症(差值)會直接指出哪一個位元出錯。只要將該位元翻轉即可完成修正。
漢明碼與其他 ECC 編碼有何不同?
對於單一位元錯誤,漢明碼簡單又高效;像 Reed–Solomon 這類更複雜的編碼可以修正多位元錯誤,但需要更高的額外負擔。漢明碼非常適合低雜訊通道。