計算機組成原理-漢明碼相關計算

今天覆習計算機組成原理中看到了漢明碼的計算,其中有些知識書上沒有完全講到,我這裏根據自己的複習梳理下計算的幾個方法。


檢測位的小組

首先檢測位的小組的劃分書上說的有點不好理解,這裏一種比較容易的理解方法是:
C1:小組中的數最後一個數的二進制數爲1:1,3,5,7,9,11
C2:小組中的倒數第二個數的二進制數爲1:2,3,6,7,10,11
C4:小組中的倒數第三個數的二進制數爲1:4,5,6,7,12,13
C8:小組中的倒數第四個數的二進制數爲1:8,9,10,11,12,13

依次類推

在做題的過程中,基本上只需要記住前四組的前六位就可以了


根據不同的代碼長度n,所需要的檢測位的個數爲:2^k>= n+ k + 1

經常用的就是:

n k
1 2
2~4 3
5~11 4

然後檢測位的插入位置是1,2,4,8,…,2^k-1

例如插入三個檢測位,傳遞信息爲:b1b2b3b4,則它們的位置安排如下:

二進制序號 1 2 3 4 5 6 7
名稱 C1 C2 b1 C4 b2 b3 b4

計算

求相應的漢明碼

例子:0101 求相應的漢明碼

二進制序號 1 2 3 4 5 6 7
名稱 C1 C2 0 C4 1 0 1

配偶原則:
C1=3+5+7=0C1 = 3+5+7 = 0
C2=3+6+7=1C2 = 3+6+7 = 1
C4=5+6+7=0C4 = 5+6+7 = 0
配奇原則:
C1=3+5+7=1C1 = \frac{}{3+5+7}=1
C2=3+6+7=0C2 = \frac{}{3+6+7}=0
C4=5+6+7=1C4 = \frac{}{5+6+7}=1

配偶原則:使小組位中的1的個數爲偶數
奇配原則:取配偶原則的相反數

簡單的方法就是直接在二進制序號找出小組中的數

C1:1,357
C2:2,367
C4:4,567

最後得到0101的漢明碼爲(配偶原則):0100101
最後得到0101的漢明碼爲(配奇原則):1001101


漢明碼的糾錯

例子:接收到的漢明碼爲 0011001,求欲傳送的代碼

二進制序號 1 2 3 4 5 6 7
名稱 0 0 1 1 0 0 1

對於任意不同的n位信息,下面的步驟均可以配置漢明碼:

配偶原則:
P1=1+3+5+7=0P1 = 1 + 3 + 5 + 7 = 0
P2=2+3+6+7=0P2 = 2 + 3 + 6 + 7 = 0
P4=4+5+6+7=0P4 = 4 + 5 + 6 + 7 = 0

即P1 P2 P4 = 000,表示沒有位錯誤,故欲傳送的信息爲:1001

配奇原則:

P1=1+3+5+7=1P1 = \frac{}{1+3+5+7}=1
P2=2+3+6+7=1P2 = \frac{}{2+3+6+7}=1
P4=4+5+6+7=1P4 = \frac{}{4+5+6+7}=1

即P1 P2 P4 = 111,表示第七位錯誤,可糾正爲:0011000 ,故欲傳送的信息爲:1000

發佈了95 篇原創文章 · 獲贊 141 · 訪問量 41萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章