您好,登錄后才能下訂單哦!
海明碼(Hamming Code)是一個可以有多個校驗(yàn)位,具有檢測并糾正一位錯誤代碼的糾錯碼,所以它也僅用于信道特性比較好的環(huán)境中,如以太網(wǎng)中,因?yàn)槿绻诺捞匦圆缓玫那闆r下,出現(xiàn)的錯誤通常不是一位。
海明碼的檢錯、糾錯基本思想是將有效信息按某種規(guī)律分成若干組,每組安排一個校驗(yàn)位進(jìn)行奇偶性測試,然后產(chǎn)生多位檢測信息,并從中得出具體的出錯位置,最后通過對錯誤位取反(原來是1就變成0,原來是0就變成1)來將其糾正。
根據(jù)海明碼的糾錯原理,得出了:
m+k+1<=2K
其中:m表示有效的信息位數(shù);k表示用于糾錯的位數(shù)。滿足了上面的公式,才能進(jìn)行糾錯。
舉例說明,假設(shè)有一組信息碼為:1101 0111 0,如何計(jì)算海明碼?
一、確定糾錯用的冗余位數(shù)
M=9,那么,9+k+1<=2k,由此得出k=4,也就是說要在原始有效信息位填充4bit二進(jìn)位。
二、冗余填充位的計(jì)算
4個bit的冗余位按照海明碼的原理要填充在2n位上,即1、2、4、8……位上。由此得出如下的表格
將信息位與冗余位間的關(guān)系整理成一張表格如下。
由此得出:
第1個冗余位由3、5、7、9、11、13參與校驗(yàn)
第2個冗余位由3、6、7、10、11參與校驗(yàn)
第4個冗余位由5、6、7、12、13參與校驗(yàn)
第8個冗余位由9、10、11、12、13參與校驗(yàn)
如果全部按偶校驗(yàn)計(jì)算得出如下圖結(jié)果:
可以這樣理解:
第1bit位:B1⊕B3⊕B5⊕B7⊕B9⊕B11⊕B13=0⊕1⊕1⊕1⊕0⊕1⊕0=0
第2bit位:B2⊕B3⊕B6⊕B7⊕B10⊕B11 =0⊕1⊕0⊕1⊕1⊕1=0
第4bit位:B4⊕B5⊕B6⊕B7⊕B12⊕B13 =1⊕1⊕0⊕1⊕1⊕0=0
第8bit位:B8⊕B9⊕B10⊕B11⊕B12⊕B13 =1⊕0⊕1⊕1⊕1⊕0=0
我們稱上面的4個式子為監(jiān)督關(guān)系式。
也就是說,校驗(yàn)與原有的信息做異或運(yùn)算按偶校驗(yàn)計(jì)算得出的結(jié)果全部是0 。
因此,這4個bit的冗余位是:0011
三、信息校驗(yàn)
假設(shè)有一位數(shù)據(jù)出錯了,我們這里假設(shè)是第10位在傳輸過程中由1變成了0,出錯了,這樣上面的4個監(jiān)督關(guān)系式就會發(fā)生變化,變成如下:
第1bit位:B1⊕B3⊕B5⊕B7⊕B9⊕B11⊕B13=0⊕1⊕1⊕1⊕0⊕1⊕0=0
第2bit位:B2⊕B3⊕B6⊕B7⊕B10⊕B11 =0⊕1⊕0⊕1⊕0⊕1=1
第4bit位:B4⊕B5⊕B6⊕B7⊕B12⊕B13 =1⊕1⊕0⊕1⊕1⊕0=0
第8bit位:B8⊕B9⊕B10⊕B11⊕B12⊕B13 =1⊕0⊕0⊕1⊕1⊕0=1
由此可以看出,1和4式?jīng)]有錯,而2和8出現(xiàn)了錯誤,由此B3、B6、B7、B10、B11、B9、B12、B13可能是出錯位,但是從1和4位可以看出正確的位是:B3、B5、B7、B9、B11、B13、B6、B12,從可能出錯的位中把正確的去掉,就剩下了B3、B6、B7、B10、B11、B9、B12、B13(紅色字是去掉的位),這樣就僅剩下第10位了,這樣我們把10進(jìn)行反轉(zhuǎn)就得到了正確的信息了。
更簡單的方法是由高位往低位寫(即由第8位寫到第一位)結(jié)果是1010,轉(zhuǎn)換為10進(jìn)制數(shù)為10,就是第10位出錯了
有這樣一道題:
使用海明碼進(jìn)行前向糾錯,如果冗余為4位,那么信息位最多可以用到多少位?假定碼字位a6 a5 a4 a3 a2 a1 a0,并且有下面的監(jiān)督關(guān)系式:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
若S2S1S0=110,則表示出錯位是哪一位?
答案:可以用到11位;a5位出錯
寫得不好,請指教!?。?!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。