循环冗余编码(CRC)原理

{Graygift} 2009年03月10日 星期二7:55 下午. 点击量:312 次

今天学了CRC,也就是循环冗余编码。感觉很难懂,就去上网去看,把自己搞得差不多懂了,不它写下了,方便以后忘了可以回忆一下。
循环冗余编码工作原理
G(X)=生成多项式
f(X)=信息位==>(注:就是要发送的信息)
R(X)= f(X) · x^k ∕ G(X)的余式==>(注:就是校验码)
T (X)= f(X) · x^k + R(X)
T (X)=实际发送的信息位== >(注:就是实际发送的信息)
k=G(X)中X的最高指数
Q(X)=f(X) · x^k ∕ G(X)的商
验证结果
f(X) · xk ∕ G(X)能除尽则接收正确。
否则则接收出错,要求发送方重发。
例如:信息字段代码为: 1011001;对应m(x)=x^6+x^4+x^3+1
      假设生成多项式为:g(x)=x^4+x^3+1;则对应g(x)的代码为: 11001
      x^4*m(x)=x^10+x^8+x^7+x^4 对应的代码记为:10110010000;
采用多项式除法: 得余数为: 1010     (即校验字段为:1010)
发送方:发出的传输字段为: 1 0 1 1 0 0 1 1 0 10
                                        信息字段       校验字段
接收方:使用相同的生成码进行校验:接收到的字段/生成码(二进制除法)如果能够除尽,则正确,

其中我们还要了解的是
多项式与二进制数码
多项式和二进制数有直接对应关系:x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。可以看出:x的最高幂次为R,转换成对应的二进制数有R+1位。
多项式包括生成多项式G(x)和信息多项式C(x)。
如生成多项式为G(x)=x ^4 +x^ 3 +x+1, 可转换为二进制数码11011。
而发送信息位 1111,可转换为数据多项式为C(x)=x^ 3 +x ^2 +x+1。如我们老师的示意图:

 

crc原理

crc原理

对《循环冗余编码(CRC)原理》有 3 条评论

  • URZERO 说:
    #1楼.
    2009年03月10日 星期二 8:06 下午

    想当年我也把inove改得添花乱缀,不错

    回复回复

    Graygift 回复:

    @URZERO
    呵呵,我也刚开始用wordpress,也就一个星期时间啊,一开始就看到这很好看,就先用这,等有本事了再改吧,嘻嘻

    回复回复
  • 海 说:
    #2楼.
    2009年03月11日 星期三 9:18 上午

    GOOD

    回复回复

对《循环冗余编码(CRC)原理》评论

XHTML:您可以使用这些标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

:| :x :twisted: :roll: :oops: :o :mrgreen: :lol: :idea: :evil: :cry: :arrow: :P :D :?: :? :) :( :!: 8O 8)