海明碼的詳細解讀及做題步驟

2021-10-18 13:22:13 字數 2376 閱讀 1945

我們知道,傳送端在傳送資料給接收端時,在傳輸鏈路中有可能受到干擾導致資料傳輸錯誤,因此在接受端我們需要對接收到的資料進行檢驗,驗證資料是否正確。如果資料發生了錯誤,接收端會選擇對資料進行糾錯或者要求傳送端進行重發。

在計算機發展的早期我們常採用的校驗方法是奇偶校驗,用1個位元位來標記校驗結果。所以當我們的資料有n位時,要傳輸給接收端的資料有n+1位

採用奇校驗時,若所要傳輸的資料含有奇數個1,則校驗位為0;反之,含有偶數個1,則校驗位為1。

採用偶校驗時,若所要傳輸的資料含有偶數個1,則校驗位為0;反之,含有奇數個1,則校驗位為1。

奇偶校驗功能簡單,實現起來容易,但是它只能發現資料發生了錯誤,無法確定是哪個位置發生了錯誤,只能要求傳送方重發,且當資料發生了偶數個錯誤時,奇偶檢驗無法發現錯誤,也就是說它沒有糾錯功能,因此我們採用更為先進的海明碼。

海明碼不僅具有糾錯功能,還能根據驗算過程判斷出發生錯誤的位置。下面讓我們來看看海明碼的計算原理叭。

①假設資料位為 n 位,校驗位有 k 位,則海明碼有 n + k 位,且 n 和 k 需滿足 2? − 1 ≥ n + k 等式( 可以用 2k − 1 > n 簡化計算 )。如:

當 n = 8   時,則 k = 4 ;

當 n = 16 時,則 k = 5 。

用符號 d 代表資料位,p 代表校驗位,h 代表海明碼,則 p? = ?2?−1 ,也就是說第 i 個校驗位在海明碼的第 2?−1 個位置上。當確定好校驗位在海明碼的位置之後,剩下的位置則由資料位進行填充。

根據①和②,我們便可以確定資料位為 n 時,校驗位 k 的值及海明碼的格式( 這裡以資料位為 8 位舉例 ):

根據①,因為 n = 8 且 2k-1>n ,所以 k = 4 ,所以海明碼有 8 + 4 = 12 位。

根據②,可以覺得4個校驗位 p1、p2、p3、p4 分別在海明碼的 h1、h2、h4、h8 的位置上,如上圖所示。

③每一位海明碼都會被校驗到,其中,被校驗的海明碼它的下標等於參與校驗的所有檢驗碼下標之和( 對應存放 d 時 ),而校驗位由自身校驗( 對應存放 p 時 )

根據③我們可以確定每一位海明碼,它是由哪些校驗碼進行校驗的,而這些校驗碼便構成了該海明碼的校驗碼組,如下圖所示。

很容易看出p 所在的海明碼的校驗位組都是校驗位,而 d 所在的海明碼的校驗位組遵循「被校驗的海明碼它的下標等於參與校驗的所有檢驗碼下標之和」。如 h12 中的校驗位組是 p3 和 p4 ,是因為 12 = 8 + 4 ,即 h12 的校驗位組由 h8 和 h4 組成。

採用偶檢驗時,各檢驗位的值等於含有該檢驗位的資料位的異或運算結果。

補充:異或運算的規則是:

0 ⨁ 0 = 0            0 ⨁ 1 = 1

1 ⨁ 1 = 0            1 ⨁ 0 = 1

至此傳送端就確定完每一位海明碼的值應該為 0 還是 1 了。 那麼接收端要如何確定收到的海明碼是否正確呢?若是不正確時,其錯誤的位置又要如何確定?

接收端在接收到海明碼後,對將校驗位 p 與其相對應的資料位 d 進行異或運算,並根據運算結果生成編碼結果 g4g3g2g1(這裡還是以資料位 8 位時舉例,若是 16 位,則結果為 g5g4g3g2g1)。

注意觀察 p 和後面的 d 組資料之間的關係,如果進行偶檢驗,沒有錯誤時,g4g3g2g1 應該全為0( 奇檢驗時無錯全為1 )。不全為0則說明發生了錯誤,且g4g3g2g1的值化成十進位制值 m 就指出了海明碼的第 m 個位置出現了錯誤,如 g4g3g2g1 = 1000 說明海明碼 h8 出現了錯誤。

LCD1602的解讀(詳細步驟分析)

程式設計初始化條件 寫命令 lcd1602液晶模組內部的控制器共有11條控制指令 ddram display data ram 是顯示資料隨機儲存器 cgrom 1602液晶模組內部的字元發生儲存器 cgrom custom glyph read only memory定製字元唯讀儲存器 已經儲存了...

超詳細的海明校驗碼方法解讀

海明校驗碼原理 在有效的資訊為中加入幾個校驗位形成海明碼,使碼距 rjazgj1 比較均勻地拉大,並把海明碼的每個二進位制位分配到幾個奇偶校驗組 rjazgj2 中。當某一位出錯後,就會引起有關的幾個校驗位的值發生變化,這不但可以發現錯誤,還能指出錯誤的位置,為自動糾錯提供了依據。公式 例 設傳輸的...

法的詳細步驟 水泥窯耐火磚內襯施工步驟及砌築要求

水泥窯耐火磚內襯採用拱胎法進行砌築,可使用砌磚機並以環砌法施工。1.水泥窯耐火磚襯施工步驟 1 施工前準備 搭建好過橋,清理乾淨施工場地,拉砌築輔助線。2 施工流程 1 先砌築下半環耐火磚襯 2 下半圈砌築完成,將拱胎模平台支設穩定牢固 3 將耐火磚置於平台的夾緊裝置上,並由液壓缸在窯體上將其頂緊 ...