Shell脚本 vbscript cassandra Movejs 八大员 管理后台框架 jquery遍历子元素 js鼠标离开事件 mac安装hadoop 基于bootstrap的框架 如何升级python kali重启网卡 idea全局替换 cad正在执行命令 kubernetes实战 python安装教程 python做界面 java8特性 java数据 java编译 java初学 java时间格式 java的map java结束线程 java删除文件 jdk环境配置 java文件读写 java读取文本 网页游戏代码 ie模拟器 vbscript程序员参考手册 万能低格工具 ps校正倾斜照片 苹果手机老是自动重启 vue上传文件 c语言指数函数 tampermonkey js保留两位小数 远程桌面管理软件 挑战程序设计竞赛
当前位置: 首页 > 学习教程  > 编程语言

计算机网络:循环冗余码CRC

2021/1/13 19:41:48 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

循环冗余码(CRC)又称为多项式编码,将任何一个由二进制位串组成的编码,与一个只含有0和1两个系数的多项式建立一一对应关系。如:位串1010111对应的多项式为;多项式对应的位串为101111。 多项式的算术运算采…

循环冗余码(CRC)又称为多项式编码,将任何一个由二进制位串组成的编码,与一个只含有0和1两个系数的多项式建立一一对应关系。如:位串1010111对应的多项式为X^{6}+X^{4}+X^{2}+X+1;多项式X^{5}+X^{3}+X^{2}+X^{1}+1对应的位串为101111。

多项式的算术运算采用代数域理论的规则。以2为模来完成,即加法没有进位,减法没有借位,模2加法和模2减法都等同于亦或运算。

运算样例

CRC编码原理:

使用CRC时,发送方和接收方必须预先商定一个生成多项式G(X),发送方编码和接收方校验都是利用预先商定的生成多项式来得到。假设G(X)的阶为r,发送方要发送的信息位为k位,CRC的基本思想就是在信息位的尾部追加一个r位的冗余位,使得信息位与冗余位构成的码字所对应的多项式能够被G(X)除尽。当接收方收到码字之后,用G(X)去除对应的码字,如果有余数则表示传输过程中有错误。

 

CRC具体编码过程:

①收发双方预先商定一个生成多项式G(X),最高次数为r。——>②将发送方要发送的信息位转换为对应的多项式K(X)。——>③G(X)去除X^{r}K(X)得到的余式就是冗余位对应的多项式R(X)。——>④发送的码字(信息位+冗余位):T(X)=X^{r}K(X)+R(X)。

 

CRC编码举例说明:

发送方要发送的信息位为:1010001,对应的多项式K(X)=X^{6}+X^{4}+1,生成多项式为G(X)=X^{4}+X^{2}+X+1;由此可知冗余位的位数为 r =4,因此X^{r}K(X)=X^{10}+X^{8}+X^{4}(10100010000)。

G(X)去除X^{r}K(X):

通过除法运算可知,R(X)=1101;故发送的码字(信息位+冗余位):T(X)=X^{r}K(X)+R(X)=101002^{-r}011101。

 

CRC的相关重要性质:

  1. G(X)含有X+1的因子,则能检测出所有的奇数错误。

  2. 若G(X)中不含有X的因子,换句话说,G(X)中含有常数项1,那么能检测出所有突发长度\leqslant r的突发错误。

  3. 若G(X)中不含有X的因子,而且对于任何0< e\leqslant n-1的e,除不尽X^{e}+1,则能检测出所有的双错。

  4. 若G(X)中不含有X的因子,则对于突发长度为r+1的突发错误的漏检率为2^{-(r-1)}

  5. 若G(X)中不含有X的因子,则对于突发长度b\geqslant r+1的突发错误的漏检率为2^{-r}

 

Ending... ...


本文链接: http://www.dtmao.cc/news_show_600155.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?