漢明碼計算機
由四個資料位元產生漢明 (7,4) 碼,並偵測或修正傳輸中的單位元錯誤。
漢明 (7,4) 碼
以偶同位檢查編碼四個資料位元,也可選擇檢查接收到的七位元碼。
關於漢明碼計算機
漢明碼是數學家理查德·漢明提出的一類錯誤更正碼。它在資料字的特定位置加入同位元,讓接收端能辨識並修復一個改變的位元。此處採用的漢明 (7,4) 方案將四個資料位元轉為七位元碼字,簡潔示範數位通訊、電腦記憶體、儲存系統及嵌入式電子裝置使用的錯誤控制原理。
七個碼位由一至七編號。同位元放在第一、第二及第四位,因為這些位置編號是二的冪次。原始四個資料位元放在第三、第五、第六及第七位。每個同位元檢查不同但重疊的位置群組。本計算機使用偶同位檢查,表示加入同位元後,各受檢群組中的一必須有偶數個。
對資料位元 d1、d2、d3、d4,同位元 p1 檢查 d1、d2、d4;p2 檢查 d1、d3、d4;p4 檢查 d2、d3、d4。排列順序為 p1, p2, d1, p4, d2, d3, d4。因此,1011 編碼後得到 0110011。可透過計算各群組中一的個數驗證。
七位元碼抵達時,接收端重新執行三項同位檢查。未通過的檢查形成三位元症候值,其數值指出錯誤位置。症候值為一代表第一位,為五代表第五位,為零則表示沒有單位元錯誤。翻轉指定位置可還原原本有效的碼字。選填的接收碼欄位示範此過程,並顯示修正序列。
標準漢明 (7,4) 碼保證能修正單位元錯誤,但無法可靠區分所有雙位元錯誤。擴充漢明碼增加整體同位元,可達成單錯修正與雙錯偵測。本計算機刻意聚焦於經典七位元版本及偶同位檢查。請只輸入零與一,不含空白、前綴或分隔符號,確保位元位置明確。
漢明碼範例
| 資料或接收碼 | 結果 | 說明 |
|---|---|---|
| 資料 1011 | 0110011 | 同位元為 0、1、0。 |
| 資料 1101 | 1010101 | 同位元為 1、0、0。 |
| 接收碼 0010101 | 位置 1 發生錯誤 | 翻轉第一個位元可還原 1010101。 |
如何使用漢明碼計算機
- 輸入恰好四個二進位資料位元,不含空白或分隔符號。
- 可選填接收到的七位元碼字,以檢查傳輸錯誤。
- 按計算漢明碼,產生偶同位碼字。
- 若已提供接收碼,請查看症候值與修正後的編碼。
漢明碼常見問題
漢明 (7,4) 是什麼意思?
碼字共七個位元,包含四個原始資料位元;其餘三個提供錯誤修正用的同位資訊。
這個計算機使用哪種同位檢查?
三個群組都採偶同位檢查,因此有效群組包含偶數個值為一的位元。
症候值如何定位錯誤?
每個未通過的同位檢查貢獻一個二進位位值。合計數值等於單一錯誤位元的位置,從一開始編號。
漢明 (7,4) 可以修正兩個錯誤嗎?
不行,它設計用來修正每個碼字的一個位元變化。兩個位元改變可能產生誤導的症候值,不應視為可安全修正。
漢明碼用在哪裡?
它用於編碼理論教學,也見於記憶體、通訊與儲存設計。實際系統常依可靠性需求採用擴充或更強的編碼。