fgc536
DCS、PLC
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 557 個
工控威望: 1103 點
下載積分: 1429 分
在線時間: 36(小時)
注冊時間: 2007-01-12
最后登錄: 2017-12-23
查看fgc536的 主題 / 回貼
樓主  發(fā)表于: 2008-05-16 13:44
    1.CRC的工作方法
  在發(fā)送端產(chǎn)生一個循環(huán)冗余碼,附加在信息位后面一起發(fā)送到接收端,接收端收到的信息按發(fā)送端形成循環(huán)冗余碼同樣的算法進行校驗,
    若有錯,需重發(fā)。
 2.循環(huán)冗余碼的產(chǎn)生與碼字正確性檢驗例子。
 例1.已知:信息碼:110011 信息多項式:K(X)=X5+X4+X+1
      生成碼:11001   生成多項式:G(X)=X4+X3+1(r=4)
    求:循環(huán)冗余碼和碼字。
  解:1)(X5+X4+X+1)*X4的積是 X9+X8+X5+X4 對應(yīng)的碼是1100110000。
    2)積/G(X)(按模二算法)。
    由計算結(jié)果知冗余碼是1001,碼字就是1100111001。 

               1 0 0 0 0 1←Q(X)
  G(x)→1 1 0 0 1 )1 1 0 0 1 1 0 0 0 0←F(X)*Xr 
           1 1 0 0 1     ,
                1 0 0 0 0
                1 1 0 0 1
                 1 0 0 1←R(X)(冗余碼)
 

 例2.已知:接收碼字:1100111001 多項式:T(X)=X9+X8+X5+X4+X3+1
      生成碼 :  11001    生成多項式:G(X)=X4+X3+1(r=4)
    求:碼字的正確性。若正確,則指出冗余碼和信息碼。
  解:1)用字碼除以生成碼,余數(shù)為0,所以碼字正確。 

              1 0 0 0 0 1←Q(X)
 G(x)→1 1 0 0 1 )1 1 0 0 1 1 1 0 0 1←F(X)*Xr+R(x) 
          1 1 0 0 1     ,
               1 1 0 0 1
               1 1 0 0 1
                   0←S(X)(余數(shù))
 

    2)因r=4,所以冗余碼是:11001,信息碼是:110011
    

 3.循環(huán)冗余碼的工作原理
  循環(huán)冗余碼CRC在發(fā)送端編碼和接收端校驗時,都可以利用事先約定的生成多項式G(X)來得到,K位要發(fā)送的信息位可對應(yīng)于一個(k-1)
    次多項式K(X),r位冗余位則對應(yīng)于一個(r-1)次多項式R(X),由r位冗余位組成的n=k+r位碼字則對應(yīng)于一個(n-1)次多項式T(X)=Xr*K(X)+R(X)。

 4.循環(huán)冗余校驗碼的特點
  1)可檢測出所有奇數(shù)位錯;
  2)可檢測出所有雙比特的錯;
  3)可檢測出所有小于、等于校驗位長度的突發(fā)錯。


模2除法每一步的模2減法,可以簡單的理解為就是按位異或,各種情況的結(jié)果為
  0  0  1  1
  0  1  0  1
--- --- --- ---
  0  1  1  0
例子3.1
計算余數(shù)(可以不考慮模2除法的結(jié)果,光考慮余數(shù))
      101100110000
      10011
--------------------------
        1010110000
        10011
--------------------------
          11010000
          10011
--------------------------
            1001000
            10011
--------------------------
              0100
發(fā)送端的碼字應(yīng)為101100110100
要贏別人,先贏自己!