(15,11)crc冗余循环码仿真实现2
- 格式:docx
- 大小:68.72 KB
- 文档页数:24
CRC循环冗余校验CRC的算法分析及其实现方法摘要:循环冗余校验(Cyclic Redundancy Check)是一种编码简单,且高效、可靠的差错控制方法,广泛应用于测控及数据通信领域。
阐述用循环冗余校验码CRC进差错控制的原理、并介绍使用硬件和软件两种方式实现CRC码的方法。
关键词:循环冗余校验 CRC 软件实现查表法循环冗余校验(Cyclic Redundancy Check),简称循环码或CRC码,是一种高效、可靠的检错和纠错码。
由于检错能力强,误判概率很低,并且编、译码电路简单,因而在工业检测及数据通信领域应用甚广。
目前,循环码常用作检错码。
下面重点CRC的原理及其软件、硬件实现方法。
1、CRC校验的原理CRC码是一种线性,分组的系统码,通常前k位为信息码元,后r位为监督码元。
CRC校验的基本思想是利用线性编码理论,以一定的规则产生一个校验用的监督吗(即CRC码)r位,并附在信息后边,构成一个新的二进制码序数共n=k+r位,最后发送出去,其格式如图1所示。
在接收方,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。
图1 CRC格式的生成r位的CRC码产生的规则是先将要发送的二进制序数左移r位(即乘以2r)后,再除以一个生成多项式,最后所得到的余数就是CRC吗,如(1)式所示。
其中,B(X)表示k 位的二进制序列数,G(X)为生成多项式,Q(X)位伤多项式,R(X)是余数多项式(即CRC码)。
多项式X"B(X)/G(X)=Q(X)+R(X)/G(X) (1)把(1)式移项得X"B(X)-R(X)=Q(X)G(X) (2)由于模2的加法、减法运算等价,所以(2)式可表示为:X"B(X)+R(X)=Q(X)G(X)=T(X) (3)T(X)就是发送方要发送的数据及其CRC码,与图1所示的格式一致。
另外,T(X)正好能被G(X)整除。
由(3)式可知,如果接收方收到的信息T"(X)没有发生错误,与T(X)相同,则T"(X)同样能被生成多项式G(X)整除,即余数为0.若余数不为0,则表示在通信过程中发生了错误,接收方应要求发送方重发。
循环冗余校验编解码电路设计实验报告一、引言循环冗余校验(CRC)是一种常用于检测和校正数据传输错误的技术。
在通信领域,CRC编解码电路是一种重要的硬件设计,用于验证数据传输的准确性。
本实验旨在通过设计循环冗余校验编解码电路,探索其工作原理和实际应用。
二、背景知识1.循环冗余校验原理循环冗余校验利用多项式除法的性质来实现数据校验。
发送端将数据和校验值进行运算得到余数,并将余数附加到数据后一起发送。
接收端通过对接收到的数据进行除法运算,得到的余数判断数据是否正确。
2.CRC编码过程–发送端:将数据进行扩展,加上用于校验的位数,并使用预定的生成多项式进行除法运算得到余数,将余数附加在数据后面发送出去。
–接收端:接收到数据后,再次进行除法运算,得到的余数为0则说明数据传输正确,否则说明存在错误。
3.CRC解码过程–发送端:发送数据和余数。
–接收端:接收数据和余数,使用与发送端一样的生成多项式进行除法运算,得到的余数判断数据是否正确。
三、实验设计与实现1. 实验目的了解循环冗余校验的原理,并通过设计和实现循环冗余校验编解码电路加深对其理解。
2. 实验器材与材料•FPGA开发板:用于搭建实验电路•Vivado软件:用于设计和验证电路•扁平电缆:用于连接FPGA开发板和外部设备3. 实验步骤1.了解所用的生成多项式,确定校验位数和除法运算方式。
2.使用Vivado软件创建工程,选择适合的FPGA开发板型号。
3.设计循环冗余校验编码模块,并使用Verilog语言进行描述。
4.设计循环冗余校验解码模块,并使用Verilog语言进行描述。
5.设计测试模块,用于生成测试数据和验证结果。
6.进行RTL级仿真,验证电路设计的正确性。
7.将设计文件综合、实现和下载到FPGA开发板。
8.在FPGA开发板上测试编解码电路的功能和性能。
9.分析实验结果,总结经验和教训。
四、实验结果与分析1. RTL级仿真结果在RTL级仿真中,我们生成了不同的输入数据,并通过编解码电路计算得到校验值和余数。
crc循环冗余校验matlab 实现-概述说明以及解释1.引言1.1 概述概述部分的内容:CRC(循环冗余校验)是一种在数据通信中常用的差错检测方法。
它通过对发送数据进行一系列的计算和校验,以判断接收数据是否出现了错误或被篡改。
CRC技术广泛应用于各种数据传输系统,包括计算机网络、无线通信、存储设备等。
CRC算法的原理是将发送数据看作一个多项式,并利用这个多项式进行一系列的运算。
通过对多项式进行除法运算,得到一个余数。
发送方将这个余数附加在数据后面发送给接收方。
接收方同样利用CRC算法对接收到的数据进行一系列的运算,得到一个余数。
如果发送方和接收方的余数一致,则可以认为数据传输没有出现错误;反之,如果余数不一致,则说明数据发生了错误或被篡改。
Matlab是一种功能强大的科学计算软件,也是进行CRC算法实现的优秀工具。
通过Matlab的计算和编程能力,我们可以方便地编写CRC算法的相关代码,实现CRC校验的过程。
Matlab提供了各种函数和工具箱,可以帮助我们进行多项式的运算、二进制数据的转换以及CRC校验码的计算等操作。
本篇文章将详细介绍如何在Matlab中实现CRC循环冗余校验。
首先,我们将介绍CRC算法的基本原理和步骤。
然后,我们将详细讲解如何使用Matlab进行CRC校验的编程实现,包括数据的转换、多项式的计算和余数的检验。
最后,我们将通过实际的案例来展示Matlab实现CRC的应用场景和效果。
通过阅读本文,读者将能够了解CRC循环冗余校验的基本原理和应用场景,并能够使用Matlab进行CRC算法的实现和应用。
本文的内容将有助于读者提高对CRC技术的理解和掌握,在进行数据通信和差错检测的相关工作中发挥更好的作用。
文章结构部分应该涵盖关于整篇文章章节的简要说明,以下是一种可能的编写方式:1.2 文章结构本文共分为三个主要部分:引言、正文和结论。
每个部分的内容如下所述:1. 引言在引言部分,我们将首先对文章所涉及到的主题进行概述,包括简要介绍循环冗余校验(CRC)的概念和应用领域。
crc校验-循环冗余校验原理和方法-回复CRC校验(Cyclic Redundancy Check)是一种在数据传输过程中常用的错误检测技术。
它通过对数据进行计算并生成一组校验码,用于检测数据是否在传输过程中发生了错误。
CRC校验算法广泛应用于计算机网络、通信系统以及存储设备等领域。
一、原理:CRC校验是基于二进制的模2除法实现的。
它可以用来检测数据传输过程中是否出现了错误,但不能纠正错误。
CRC校验使用一个固定的生成多项式(通常是16位或32位),该多项式作为校验算法的一部分。
生成多项式被称为“生成多项式”或“CRC多项式”。
在进行CRC校验时,发送方和接收方都需要使用相同的生成多项式。
CRC校验的基本原理是在发送数据之前,发送方计算数据和生成多项式的除法,并将得到的余数(或称为校验码)追加到待发送的数据之后。
接收方在接收到数据后,同样计算数据和生成多项式的除法,并将得到的余数与接收到的校验码进行比较。
如果余数为0,说明数据传输过程中没有发生错误;如果余数不为0,说明数据传输过程中出现了错误。
二、方法:1. 选择生成多项式:在进行CRC校验时,首先需要选择一个适当的生成多项式。
常用的生成多项式有CRC-16、CRC-32等。
这些多项式都是经过严格计算和测试的,可以提供较高的校验能力。
2. 划定消息的边界:在进行CRC校验之前,需要将待发送的数据划分为消息和一些冗余位。
通常,消息包括需要传输的原始数据,而冗余位则由生成多项式的系数决定。
3. 数据和生成多项式的除法:使用生成多项式对消息和冗余位进行除法。
具体操作可以采用多种方法实现,例如位操作、字节操作以及表格查找等。
根据除法运算的性质,进行进位运算、模2求和等,最终得到一个余数。
4. 拼接校验码:将得到的余数追加到消息的末尾,得到一个完整的数据帧。
这个余数被称为校验码,它包含了数据中可能出现的错误的信息。
5. 数据传输:将带有校验码的数据帧发送给接收方。
循环冗余校验 CRC 的算法分析和程序实现西南交通大学计算机与通信工程学院 刘东摘要 通信的目的是要把信息及时可靠地传送给对方,因此要求一个通信系统传输消息必须可靠与快速,在数字通信系统中可靠与快速往往是一对矛盾。
为了解决可靠性,通信系统都采用了差错控制。
本文详细介绍了循环冗余校验CRC (Cyclic Redundancy Check )的差错控制原理及其算法实现。
关键字 通信 循环冗余校验 CRC-32 CRC-16 CRC-4概述在数字通信系统中可靠与快速往往是一对矛盾。
若要求快速,则必然使得每个数据码元所占地时间缩短、波形变窄、能量减少,从而在受到干扰后产生错误地可能性增加,传送信息地可靠性下降。
若是要求可靠,则使得传送消息地速率变慢。
因此,如何合理地解决可靠性也速度这一对矛盾,是正确设计一个通信系统地关键问题之一。
为保证传输过程的正确性,需要对通信过程进行差错控制。
差错控制最常用的方法是自动请求重发方式(ARQ )、向前纠错方式(FEC )和混合纠错(HEC )。
在传输过程误码率比较低时,用FEC 方式比较理想。
在传输过程误码率较高时,采用FEC 容易出现“乱纠”现象。
HEC 方式则式ARQ 和FEC 的结合。
在许多数字通信中,广泛采用ARQ 方式,此时的差错控制只需要检错功能。
实现检错功能的差错控制方法很多,传统的有:奇偶校验、校验和检测、重复码校验、恒比码校验、行列冗余码校验等,这些方法都是增加数据的冗余量,将校验码和数据一起发送到接受端。
接受端对接受到的数据进行相同校验,再将得到的校验码和接受到的校验码比较,如果二者一致则认为传输正确。
但这些方法都有各自的缺点,误判的概率比较高。
循环冗余校验CRC (Cyclic Redundancy Check )是由分组线性码的分支而来,其主要应用是二元码组。
编码简单且误判概率很低,在通信系统中得到了广泛的应用。
下面重点介绍了CRC 校验的原理及其 算法实现。
循环冗余校验算法的实现CRC算法的基本原理是利用多项式除法来计算校验码。
发送方在发送数据前,通过一系列计算将数据块与一个固定的多项式进行除法运算,得到一个余数,然后将余数作为校验码附加到数据末尾一起发送。
接收方接收到数据后,同样进行一系列计算,并与接收到的校验码进行比较,如果余数为0,则说明数据传输无错误,否则存在传输错误。
以下是CRC算法的一种实现方式,基于二进制多项式除法运算。
1.初始化:选择一个n+1位的CRC生成多项式,以及一个初始值为0的n位寄存器。
将数据附加上n个0,对应于寄存器的n个位。
2.逐位处理:从最高位(左边)开始,逐位处理数据。
a.检查最高位的值:如果为1,将寄存器的最高位与CRC生成多项式进行异或运算;如果为0,继续下一位。
b.将寄存器向左移动一位,将数据的下一位放在寄存器的最低位。
c.重复上述步骤,直到处理完所有位。
3.得到校验码:将最终的寄存器值作为校验码附加到数据末尾。
4.传输数据:将带有校验码的数据进行传输。
5.接收数据:接收方同样执行CRC算法,生成一个余数。
a.如果余数为0,说明数据传输无错误。
b.如果余数不为0,说明存在传输错误。
CRC算法的关键在于选择合适的CRC生成多项式,不同的CRC生成多项式对应不同的CRC算法。
常用的CRC算法包括CRC-16、CRC-32等。
为了提高CRC算法的性能,可以使用查表法来优化计算过程。
通常会预先计算并存储一个CRC表,其中包含每个可能的输入值对应的CRC余数。
在执行CRC计算时,可以通过查表来代替每一位的异或运算和移位运算,从而提高计算速度。
总结起来,CRC算法是一种可靠高效的校验算法,可用于检测和纠正数据传输中的错误。
通过选择合适的CRC生成多项式,并结合查表法来优化计算过程,可以实现高性能的CRC校验算法。
******************实践教学*******************兰州理工大学计算机与通信学院2013年秋季学期《计算机通信与网络》课程设计题目:(15,11)CRC冗余校验码的编译码仿真实现专业班级:通信工程(4)班姓名:王强学号:10250424指导教师:彭清斌成绩:摘要现代社会的生产和生活都需要借助计算机网络来完成,在计算机网络日益发达的今天,人们对数据传输的准确性和传输的速度要求越来越高,数据传输不仅要保证实时,还要保证准确。
因此,数据通信技术是计算机通信网络技术发展的基础,已经为现代生活中不可缺少的一部分。
但是通过通信信道传输的数据往往会有差错的产生,而且差错的产生是不可避免的,因此我们的任务是分析循环码算法的实现原理及研究检查是否出现差错及如何纠正差错。
循环冗余校验码(CRC)是目前应用最广的纠错编码之一。
本次课设论述了循环冗余码的算法及其在数据通信中的作用,研究了纠错码及循环冗余校验码的原理,以及利用MATLAB对其进行了编程和编译仿真,实现了CRC循环冗余校验码的编码及校验,在接收端收到通过校验的码,从而确定传输过程是否出错,得到的结论和理论上是否一致。
关键词:检错码 CRC循环冗余校验码 MATLAB 计算机通信目录前言 (1)一、基本原理 (2)1.1计算机通信与纠错码 (2)1.1.1 计算机通信 (2)1.1.2 纠错码 (2)1.1.3 纠错原理 (3)1.2 CRC循环冗余校验码 (4)1.2.1 CRC的介绍 (4)1.2.2 CRC的基本原理 (5)二、推导过程 (9)三、MATLAB语言编程与运行 (11)3.1 MATLAB语言的介绍 (11)3.2 程序流程图 (13)3.3 MATLAB程序 (14)设计总结 (17)致谢 (18)参考文献 (19)前言通信技术的发展和新业务的不断出现对计算机网络通信系统的服务质量和数据的传输速度提出了更高的要求,数据交换量的迅速增加也加重了计算机网络的通信负担,网络很难对所有的数据进行完全正确的传输,网络通信中的实时差错控制技术显得尤为重要。
*****************实践教学*****************兰州理工大学计算机与通信学院2013年秋季学期计算机通信课程设计题目:(15,11)CRC冗余校验码的编译码仿真实现专业班级:姓名:学号:指导教师:成绩:摘要通信是信息远距离的传送,是人类生产和生活的主要支撑。
通信的目的是要把信息及时可靠地传送给对方,在数据通信过程中,衰损、失真、和噪声会使通信线路上的信号发生错误。
差错控制可以减少错误、提高通信质量,可以改善传输信道的电气特性,使误码率达到要求。
CRC(Cyclical Redundancy Checking)循环冗余校验码是一种重要的线性分组码,通过多项式除法检测错误,是在数据通信和数据检测中广泛应用的检错校验的循环码。
本设计研究了CRC循环冗余校验码的原理,以及利用C语言对其进行了编程和编译仿真,实现了CRC循环冗余校验码的编码及校验,在接收端收到通过校验的码,从而确定传输过程是否出错,得到的结论和理论上是一致的。
关键词:检错码;CRC循环冗余校验码;matlab目录前言 (1)一、基本原理 (2)1.1 循环冗余校验码 (2)1.1.1 循环冗余码的基本介绍 (2)1.2 纠错码 (8)1.2.1 纠错码基本介绍 (8)1.2.2 纠错原理 (8)1.3 检错码 (9)1.3.1 检错码介绍 (9)二、MATLAB基本介绍 (11)2.1 MA TLAB的介绍 (11)2.2 MA TLAB的组成部分 (11)2.3 MA TLAB的特点 (11)2.4 MA TLAB的优势 (12)三、系统设计仿真及其分析 (13)3.1 CRC循环冗余校验码的编译码程序 (13)3.2 程序流程图 (14)3.3 运行结果及其分析 (14)3.3.1 运行结果 (15)3.3.2 结果分析 (15)总结 (17)致谢 (18)参考资料 (19)附录 (20)前言循环冗余校验码CRC(Cyclical Redundancy Checking)是目前通信系统中最常用的一种差错控制编码。
它就是在发送端的信息码元序列中,以某种确定的编码规则加入一些监督码元,使信息码元与监督码元之间具有某种相关性。
接收端通过检验这种相关性是否存在来判断在传输过程中是否出现了误码。
循环冗余校验码是一种高效率且可靠的方法, 由线性分组码分支而来的, 是一种通过多项式除法检测错误的很不寻常而又巧妙的方法, 一方面它有很强的检测能力, 二是它的编码器电路及错误检测器电路都很容易实现, 它的优点使它在通信系统中得到了广泛的应用。
利用CRC进行检错的过程可简单描述为:在发送端根据要传送的二进制码序列,以一定的规则产生一个校验用的监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数,然后发送出去。
在接收端根据信息码和CRC码之间所遵循的规则进行检验,一旦传输过程中发生差错,则信息码元与监督码元之间的关系遭到破坏,从而可以发现错误,乃至纠正错误。
CRC校验采用多项式编码方法,被处理的数据块表示为一个二进制多项式。
一、基本原理1.1 循环冗余校验码1.1.1 循环冗余码的基本介绍CRC(Cyclic Redundancy Check)循环冗余校验码是常用的校验码,在早期的通信中运用广泛,因为早期的通信技术不够可靠(不可靠性的来源是通信技术决定的,比如电磁波通信时受雷电等因素的影响),不可靠的通信就会带来确认信息的困惑,书上提到红军和蓝军通信联合进攻山下的敌军的例子,第一天红军发了条信息要蓝军第二天一起进攻,蓝军收到之后,发一条确认信息,但是蓝军担心的是确认信息如果也不可靠而没有成功到达红军那里,那自己不是很危险?于是红军再发一条对确认的确认信息,但同样的问题还是不能解决,红军仍然不敢贸然行动。
对通信的可靠性检查就需要校验,校验是从数据本身进行检查,它依靠某种数学上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。
物理过程所引起的差错,在某些物理过程所引起的差错,在某些介质中通常是突发的而不是单个的。
网络设计者已经研究出两种基本的策略来处理差错。
一种方法是在每一个要发送的数据块上附加足够的冗余信息,使接收方能够推导出已发出的字符应该是什么。
另一种方法是只加足够的冗余位,使接收方知道差错发生,但不知道是什么样的差错,然后要求接收方重新进行传输。
前者的策略是使用纠错码(error-correcting code),而后者则使用检错码(error-detecting code)。
CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。
它的编码规则是:1、首先将原信息码(kbit)左移r位(k+r=n)2、运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码。
非常简单,要说明的:模2除就是在除的过程中用模2加,模2加实际上就是我们熟悉的异或运算,就是加法不考虑进位,公式是:0+0=1+1=0,1+0=0+1=1即“异”则真,“非异”则假。
由此得到定理:a+b+b=a 也就是“模2减”和“模2加”直值表完全相同。
有了加减法就可以用来定义模2除法,于是就可以用生成多项式g(x)生成CRC校验码。
例如:g(x)=x4+x3+x2+1,(7,3)码,信息码110产生的CRC码就是:对于g(x)=x4+x3+x2+1的解释;(都是从右往左数)x4就是第五位是1,因为没有x1所以第2位就是0。
11101 | 110,0000(设a=11101 ,b=1100000)取b的前5位11000跟a异或得到101101加上b没有取到的00得到10100然后跟a异或得到01001也就是余数1001余数是1001,所以CRC码是110,1001标准的CRC码是,CRC-CCITT和CRC-16,它们的生成多项式是:CRC-CCITT=x^16+x^12+x^5+1CRC-16=x^16+x^15+x^2+11.1.2 循环冗余码原理CRC 校验的基本思想是利用线性编码理论,在发送端根据要传送的k 位二进制码序列,以一定的规则产生一个校验用的监督码(CRC 码)r 位,并附在信息后边,构成一个新的二进制码序列数共(k+r) 位,最后发送出去。
在接收端,则根据信息码和CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。
16 位的CRC 码产生的规则是先将要发送的二进制序列数左移16 位(乘以216)后,再除以一个多项式,最后所得到的余数既是CRC 码。
求CRC 码所采用模2 加减运算法则,既是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律。
接收方将接收到的二进制序列数(包括信息码和CRC 码)除以多项式,如果余数为0,则说明传输中无错误发生,否则说明传输有误。
在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。
对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。
根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。
校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2R,这样C(x)的右边就会空出R位,这就是校验码的位置。
通过C(x)*2R除以生成多项式G(x)得到的余数就是校验码。
几个基本概念1、多项式与二进制数码多项式和二进制数有直接对应关系:x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。
可以看出:x 的最高幂次为R ,转换成对应的二进制数有R+1位。
多项式包括生成多项式G(x)和信息多项式C(x)。
如生成多项式为G(x)=134+X +X +X ,可转换为二进制数码11011。
而发送信息位 1111,可转换为数据多项式为C(x)=123+X +X +X 。
2、生成多项式是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。
在发送方,利用生成多项式对信息多项式做模2除生成校验码。
在接受方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。
应满足以下条件:a 、生成多项式的最高位和最低位必须为1。
b 、当被传送信息(CRC 码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0。
c 、不同位发生错误时,应该使余数不同。
d 、对余数继续做模2除,应使余数循环。
将这些要求反映为数学关系是比较复杂的。
但可以从有关资料查到常用的对应于不同码制的生成多项式如下所示:N K 码距d G(x)多项式 G(x)7 4 3 13+X +X 10117 4 3 123+X +X1101 7 3 4 1234+X +X +X 111017 3 4 124+X +X +X 1011115 11 3 14+X +X 1001115 7 5 14678+X +X +X +X 11101000131 26 3 125+X +X 10010131 21 5 13568910+X +X +X +X +X +X 1110110100163 57 3 16+X +X 100001163 51 5 12451012+X +X +X +X +X 10100001101011041 1024 121516+X +X +X 110000000000001013、模2除(按位除)模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位。
所以实际上就是异或。
然后再移位移位做下一位的模2减。
步骤如下:a、用除数对被除数最高几位做模2减,没有借位。
b、除数右移一位,若余数最高位为1,商为1,并对余数做模2减。
若余数最高位为0,商为0,除数继续右移一位。
c、一直做到余数的位数小于除数时,该余数就是最终余数。
4、CRC码的生成步骤生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为“0”和“1”取值的多项式一一对应。
例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。
(1)、将x的最高幂次为R的生成多项式G(x)转换成对应的R+1位二进制数。
(2)、将信息码左移R位,相当与对应的信息多项式C(x)*2R(3)、用生成多项式(二进制数)对信息码做模2除,得到R位的余数。
(4)、将余数拼到信息码左移后空出的位置,得到完整的CRC码。