zoukankan      html  css  js  c++  java
  • 4.3差错控制CRC

    循环冗余码  

    奇偶校验码作为一种检错码虽然简单,但是漏检率太高。在计算机网络和数据通信中用E得最广泛的检错码,是一种漏检率低得多也便于实现的循环冗余码CRC (Cyclic Redundancy .Code),CRC码又称为多项式码。

        任何一个由二进制数位串组成的代码,都可以惟一地与一个只含有0和1两个系数的多项式建立一一对应的关系。例如,代码1010111对应的多项式为X6+X4+X2+X+1,同样.多项式X5+X3+X2+X+1对应的代码为101111。

        CRC码在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(X)来得到。 k位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由k位信息位后面加上r位冗余位组成的 n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr·K(X)+R(X)。例如

        信息位:1011001→K(X)=X6+X4+X3+1

        冗余位:1010→R(X)=X3+X

        码字:10110011010→T(X)=X4·K(X)+R(X)

        =X10+X8+X7+X4+X3+X

        由信息位产生冗余位的编码过程,就是已知K(X)求R(X)的过程。在CRC码中可以通过找到一个特定的r次多项式G (X)(其最高项Xr的系数恒为1),然后用Xr·K (X)去除以G(X),得到的余式就是R(X)。特别要强调的是,这些多项式中的"+"都是模2加(也即异或运算);此外,这里的除法用的也是模2除法, 即除法过程中用到的减法是模2减法,它和模2加法的运算规则一样,都是异或运算,这是一种不考虑加法进位和减法借位的运算,即

        0+O=0,0+1=1,1+0=1,1+1=0

        0-0=0,0-1=1,1-0=1,1-1=0

        在进行基于模2运算的多项式除法时,只要部分余数首位为1,便可上商1,否则上商0。然后按模2减法求得余数,该余数不计最高位。当被除数逐位除完时,最后得到比除数少一位的余数。此余数即为冗余位,将其添加在信息位后便构成CRC码字。

        仍以上例中K(X)=X6+X4+X3+1为例(即信息位为1011001),若G(X)=X4+X3+1

    (对应代码11001),取r=4,则X4·K(X)=X10+X8+X7+X4(对应代码为0110010000),其由模2除法求余式R(X)的过程所示如下:

        得到的最后余数为1010,这就是冗余位,对应R(X)=X3+X。

        由于R(X)是Xr·K(X)除以G(X)的余式,那么下列关系式必然满足

        Xr·K(X)=G(X)Q(X)+R(X)

        其中Q(X)为商式。根据模二运算规则R(X)+R(X)=0的特点,可将上式改记为

        [Xr-K(X)+R(X)]/G(X)=Q(X)

        即    T(X)/G(X)=Q(X)

        由此可见,信道上发送的码字多项式T(X)=Xr-K(X)+R(X)。若传输过程无错,则接收方收到的码字也对应于此多项式,也即接收到的码字多项式能被G(X)整除。因而接收端的校验过程就是将接收到的码字多项式除以G(X)的过程。若余式为零则认为传输元差错;若余式不为零则传输有差错。

        例如,前述例子中若码字10110011010经传输后由于受噪声的干扰,在接收端变成为10110011100,则求余式的除法如下:

    求得的余式不为零,相当于在码字上面半加上了差错模式00000000110。差错模式对应的多项式记为E(X),上例中E(X)=X2+X。有差错时,接收端收到的不再是T(X),而是T(X)与E(X)之模二加,即

        [T(X)+E(X)]/G(X)=T(X)/G(X)+E(X)/G(X)

    若E(X)/G(X)=0,则这种差错就能检测出来;若E(X)/G(X)=0,那么由于接收到的码字多项式仍然可被G(X)整除,错误就检测不出来,也即发生了漏检。

        理论上可以证明循环冗余校验码的检错能力有以下特点:

        (1)可检测出所有奇数位错。

        (2)可检测出所有双比特的错。

        (3)可检测出所有小于、等于校验位长度的突发错。

        CRC码是由r-K(X)除以某个选定的多项式后产生的,所以该多现式称生成多项式。一般来说,生成多项式位数越多校验能力越强。但并不是任何一个r+1位的二进制数都可以做生成多项式。目前广泛使用的生成多项式主要有以下四种:

        (1)CRC12=X12+X11+X3+X2+1

        (2)CRC16=X16+X15+X2+1(IBM公司)

        (3)CRC16=X16+X12+X5+1(CCITT)

        (4)CRC32=X32+X26+X23+X22+X16+X11+X10+X8+X7+X5+X4+X2+X+1

     

    1.CRC的工作方法
      在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循环冗余码同样的算法进行校验,
        若有错,需重发。
     2.循环冗余码的产生与码字正确性检验例子。
     例1.已知:信息码:110011 信息多项式:K(X)=X5+X4+X+1
          生成码:11001    生成多项式:G(X)=X4+X3+1(r=4)
        求:循环冗余码和码字。
      解:1)(X5+X4+X+1)*X4的积是 X9+X8+X5+X4 对应的码是1100110000。
        2)积/G(X)(按模二算法)。
        由计算结果知冗余码是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)用字码除以生成码,余数为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)(余数)
     

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

     3.循环冗余码的工作原理
      循环冗余码CRC在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(X)来得到,K位要发送的信息位可对应于一个(k-1)
        次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr*K(X)+R(X)。

     4.循环冗余校验码的特点
      1)可检测出所有奇数位错;
      2)可检测出所有双比特的错;
      3)可检测出所有小于、等于校验位长度的突发错。 
  • 相关阅读:
    RTSP协议视频智能分析平台EasyNVR新增H265播放器EasyPlayer和EasyWasmPlayer的区别介绍
    RTSP拉流协议视频平台EasyNVR硬件设备意外断电重启无法进入initramfs界面配置如何解决?
    RTSP拉流协议视频平台EasyNVR多点认证造成潜在威胁?EasyNVR多点认证机制优化
    【BUG修复】网络流媒体协议RTSP拉流平台EasyNVR增加鉴权抵御外部攻击优化
    RTSP视频平台EasyNVR作为下级平台通过GB28181级联传输视频流时的多播Multicast协议介绍
    【硬件设备】RTSP协议安防视频平台EasyNVR视频边缘计算网关设备如何关闭图形化网卡配置功能?
    【硬件设备】RTSP协议安防视频平台EasyNVR视频边缘计算网关设备修改/etc/network/interfaces后配置界面消失如何修复?
    RTSP协议视频智能分析/内容识别平台EasyNVR安防视频云服务关于POST接口C#调用的例子介绍说明
    RTSP协议视频智能分析/智能识别系统EasyNVR新增演示模式下用户登录有效期限时5分钟说明
    RTSP协议视频智能分析/智能识别服务平台EasyNVR新增自定义登录失败锁定用户功能
  • 原文地址:https://www.cnblogs.com/anderson0/p/2660859.html
Copyright © 2011-2022 走看看