海明碼

1.海明碼的概念

  海明碼是一種能夠糾正一位差錯的編碼。它是利用在信息位爲k位,增長r位冗餘位,構成一個n=k+r位的碼字,而後用r個監督關係式產生
   的r個校訂因子  來區分無錯和在碼字中的n個不一樣位置的一位錯。它必需知足如下關係式:
         2r>=n+1  或  2r>=k+r+1
  海明碼的編碼效率爲:
            R=k/(k+r)
  式中 k爲信息位位數
     r爲增長冗餘位位數 

2.海明碼的生成與接收

 方法一:

  1)海明碼的生成。

 例1.已知:信息碼爲:"0010"。海明碼的監督關係式爲:(推導過程略)
        S2=a2+a4+a5+a6
        S1=a1+a3+a5+a6
        S0=a0+a3+a4+a6
     
    求:海明碼碼字。

方法二:(不用查表,方便編程) 例題: .已知海明碼的監督關係式爲:  S2=a2+a3+a4+a6  S1=a1+a4+a5+a6  S0=a0+a3+a4+a5  接收端收到的碼字爲a6a5a4a3a2a1a0=1010100,問在最多一位錯的狀況下發送端發送的碼字是什麼?(寫出推演過程)。 答案: 1.(1)根據海明碼的監督關係式 S2=a2+a3+a4+a6  S1=a1+a4+a5+a6  S0=a0+a3+a4+a5,得下表: S2S1S0  000  001  010  011  100  101  110  111   錯誤位置  無錯  a0  A1  a5  a2  a3  a6  a4    (2)將a6a5a4a3a2a1a0=1010100分別代入海明碼的監督關係式  得:(其中「+」號表示異或運算);  s2=1+0+1+1=1  s1=0+1=0+1=0  s0=0+0+1+0=1  即s2s1s0=101  (3)查表可知:接收到的比特序列第4位有錯,正確的應是:  a6a5a4a3a2a1a0=1011100  某公司採用一條租用專線(Leased line)與在外地的分公司相連,使用的MODEN的數據傳輸率爲2400bps,現有數據12*106 字節,若以異步 方式傳送,不加校驗位,1位中止位則最少須要多少時間(以秒爲單位)才能傳輸完畢? 答: 以異步方式傳送一個字節數據,須要加1位起始位,1位中止位,實際須要傳送8+2=10位. 故: (12*106*10)/2400 =5*104秒  若10Mbps的CSMA/CD局域網的節點最大距離爲2.5Km,信號在媒體中的傳播速度爲2*108 m/s,求該網的最短幀長  解答: 10Mbps表示 每秒鐘傳輸10*106 位數據 ,  CSMA/CD,信號須要返回才能知道有沒有碰撞,因此傳輸一次信號須要兩倍距離, 先算出信號在節點完整傳輸一次所須要的時間: 2*(2.5*103)/2*108 =2.5*10-5 秒 ,而後算出幀長 =2.5*10-5 * 10*106 =250bit  ** 某令牌環媒體長度爲10Km,信號傳播速度爲200m/us,數據傳輸率爲4Mbps,環路上共有50個站點,每一個站點的接口引入1位延遲, 試計算環的比特長度. 解答: {(10*10^3 )/(200*10^6)} * 4*10^6 =0.2*10^3=200bit 200+50*1=250bit 一共是250比特 用速率爲1200bps的調制解調器(無校驗位,一位中止位),則每分鐘最多傳輸的漢字是多少(漢字爲雙字節)  解答:(1200*60)/{(8+2)*2}=3600個 設信息碼爲101 ,採用生成多項式G(X)爲G(X)=X^4+X^3+X^2+X+1,生成的循環碼是多少?  解答:略 1011101 在數據傳輸過程當中,若接收方收到發送方送來的信息爲11010110111,生成多項式G(X)=X4+X3+x+1,接收方收到的數據是否 正確?(寫出判斷依據及推演過程)。 解答:(1)由於G(X)=X4+X3+x+1,故其對應的二進制比特串爲11011  (2)又由於接收到的信息爲11010110111,故可有二進制除法。  (3)11010110111÷11011(除法的詳細過程略)  (4)因上述除法的餘數爲0,故接收到的信息爲正確信息。即發送過程當中未出現錯誤    設LAN採用路由器與X.25 網相連,如今路由器每秒轉發200個分組,分組長度爲X.25網的標準128字節,問: (1)路由器的轉發速率是多少Mbps? (2)計算一分鐘內的通訊費用(通訊量按段來計算,每段64字節,需0.03元) 解答:(1)路由器的轉發速率爲 200(分組/秒)*128(字節/分組) =2560字節/秒 =2560*8位/秒 =0.02048Mbps (2)一分鐘傳輸的費用 ={(2560*60)/ 64} * 0.03  =72元/分鐘 ________________________________________________________________ 注:若是K=4,那麼 s0=a0+a1+a3+a4+a6 s1=a0+a2+a3+a5+a6 s2=a1+a2+a3+a7 s3=a4+a5+a6+a7 ______________________________________________________________________  解:1)由監督關係式知冗餘碼爲a2a1a0。     2)冗餘碼與信息碼合成的海明碼是:"0010a2a1a0"。      設S2=S1=S0=0,由監督關係式得:         a2=a4+a5+a6=1         a1=a3+a5+a6=0         a0=a3+a4+a6=1       所以,海明碼碼字爲:"0010101"       2)海明碼的接收。   例2.已知:海明碼的監督關係式爲:         S2=a2+a4+a5+a6         S1=a1+a3+a5+a6         S0=a0+a3+a4+a6       接收碼字爲:"0011101"(n=7)     求:發送端的信息碼。   解:1)由海明碼的監督關係式計算得S2S1S0=011。     2)由監督關係式可構造出下面錯碼位置關係表:  S2S1S0 錯碼位置  000 無錯  001 a0  010 a1  100 a2  011 a3  101 a4  110 a5  111 a6  3)由S2S1S0=011查表得知錯碼位置是a3。  4)糾錯--對碼字的a3位取反得正確碼字:"0 0 1 0 1 0 1"  5)把冗餘碼a2a1a0刪除得發送端的信息碼:"0010"     3)由S2S1S0=011查表得知錯碼位置是a3。     4)糾錯--對碼字的a3位取反得正確碼字:"0 0 1 0 1 0 1"     5)把冗餘碼a2a1a0刪除得發送端的信息碼:"0010"
相關文章
相關標籤/搜索