欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    CRC冗余校验码的编译码仿真实现(完整版).doc

    • 资源ID:91258978       资源大小:3.06MB        全文页数:35页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    CRC冗余校验码的编译码仿真实现(完整版).doc

    CRC冗余校验码的编译码仿真实现(完整版)(文档可以直接使用,也可根据实际需要修改使用,可编辑 欢迎下载) *实践教学* 兰州理工大学计算机与通信学院2021年秋季学期 计算机通信 课程设计题 目:(13,9)CRC冗余校验码的编译码仿真实现专业班级: 通信工程四班 姓 名: 学 号: 指导教师: 成 绩: 摘要在实际的通信系统中,由于信道传输特性不理想以及加性噪声的影响,传输的信息中不可避免地会发生错误,影响通信系统的传输可靠性。随着数字通信技术的发展,各种业务对系统误码率的要求也逐渐提高,采用差错控制编码技术是提高数字通信可靠性的有效方法之一。差错控制编码就是在发送端的信息码元序列中,以某种确定的编码规则加入一些监督码元,使信息码元与监督码元之间具有某种相关性。接收端通过检验这种相关性是否存在来判断在传输过程中是否出现了误码。本设计研究了CRC循环冗余校验码的原理,以及利用MATLAB对其进行了编程和编译仿真,实现了CRC循环冗余校验码的编码及校验,在接收端收到通过校验的码,从而确定传输过程是否出错,得到的结论和理论上是一致的。关键词:检错码 CRC循环冗余校验码 MATLAB 目录前言1一、基本原理21.1循环码的概念21.2循环码333数学特征 2221.3循环冗余校验码CRC3331.4 CRC校验码的性质31.5 差错编码的基本概念31.6差错编码的基本原理41.7 差错控制编码的方式55551.8 差错编码的特性和能力66661.9 循环冗余校验码(CRC)原理6二、系统分析82.1 循环码(13,9)算法设定82.2 循环码(13,9)编码算法分析8882.3 循环码(13,9)译码算法分析82.4 CRC冗余校验码的实现方法999三、MATLAB语言介绍103.1 MATLAB概述103.2 MATLAB系统组成11四、仿真过程及结果124.1程序流程图124.2 MATLAB的CRC编程134.3 结果分析16五、心得体会17参考文献18前言 在数据通信过程中,衰损,失真和噪声会使通信线路上的信号发生错误。为了减少错误,提高通信质量,使得误码率达到要求,通常采用纠错,检错技术,即差错控制技术。差错控错控制的主要方法是将数据以某种形式进行编码。以前经常采用的电子线路进行编码和差错控制,既复杂又麻烦,而且可靠性又比较低。在计算机通信网中,采用计算机技术进行编码和控制,既简单又方便,而且可靠性还比较高。因此,计算机的应用,使得通信技术得到了很大提升。不仅如此,随着计算机的应用,差错控制技术本身也得到了相应的发展。一、基本原理1.1循环码的概念 循环码:无权码,每位代码无固定权值,任何相邻的两个码组中,仅有一位代码不同。 循环码是线性分组码中一个重要的分支。它的检、纠错能力较强,编码和译码设备并不复杂,而且性能较好,不仅能纠随机错误,也能纠突发错误。  循环码是目前研究得最成熟的一类码,并且有严密的代数理论基础,故有许多特殊的代数性质,这些性质有助于按所要求的纠错能力系统地构造这类码,且易于实现,所以循环码受到人们的高度重视,在FEC系统中得到了广泛应用。1.2循环码333数学特征 即如果c1,c2,是与消息m1,m2对应的码字,则c1+c2必定是与m1+m2对应的码字。 即任一许用码组经过循环移位后所得到的码组仍为该许用码组集合中的一个码组。以3号码组(0010111)为例,左移循环一位变成6号码组(0101110),依次左移一位构成的状态图如图1-1所示。 1011100010111000101110111001111001011001011001011 图1-1循环码中的循环圈 可见除全零码组外,不论循环右移或左移,移多少位,其结果均在该循环码组的集合中(全零码组自己构成独立的循环圈)。1.3循环冗余校验码CRC 循环冗余校验是常用的校验码,在早期的通信中运用广泛,因为早期的通信技术不够可靠 CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。它的编码规则是:移位:将原信息码(kbit)左移r位(k+r=n)相除:运用一个生成多项式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校验码。生成多项式应满足以下原则:a、生成多项式的最高位和最低位必须为1。b、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0。c、不同位发生错误时,应该使余数不同。d、对余数继续做模2除,应使余数循环。1.4 CRC校验码的性质 可靠性:除了正好数据块的比特值是按除数值变化的错误外,循环冗余校验讲检测出其他所有错误,甚至对于上面所提到的四比特错误这种情况放生的可能性仍然是很小的。而且,常用的CRC除数通常有17或是33比特,使得不可检测的错误可能降低到几乎近于零。1.5 差错编码的基本概念 为了提高通信系统的水平,在数字通信系统中,在发送端对信源发送的二进制数字序列附加多余数字与信息数字建立某种相关性。在接收端对这组编码进行检测,若发现错误,则试图找出错误位置并纠正。由此可见,差错控制的原理在于增加冗余度使得原来的信息可以检测传输差错。 新加入的码元越多,冗余度越大,纠错能力越强,但效率会降低。对二进制码而言,一个n位的二进制码的所有组合为N=2n种信息。1.6差错编码的基本原理 差错编码的核心是抗干扰编码,简称差错编码。它的基本思想是通过对信息序列进行某种变换,使得原来彼此独立,互不相干的信息码元列产生某种规律性,从而在接收端有可能根据这种规律性来检验,发现或纠正传输信号序列中的差错。变换的方法不同就构成了不同的差错编码,在系统中使用不同的差错编码方法就产生了不同的差错控制方法。 我们以重复编码来简单地阐述差错编码在相同的信噪比情况下为什么会获得更好的系统性能。假设我们发送的信息0、1(等概率出现),现假设 Pe=10(即平均接收1000个中错一个)。如果我们将信息0编码成00,信息1编码成11,仍然采用上述系统,则在接收端可以作以下判断:如果发送的是00,而收到的是01或10,此时我们知道发生了差错,要求发送端重新传输,直到传送正确为止,只有当收到11时,我们才错误地认为当前发送的是1。因此在这种情况下发生译码错误的概率是0.5pe2;同理,如果发送的是11,只有收到00时才可能发生错误译码,因此在这种情况下发生译码错误的概率也是0.5pe2。所以采用00、11编码的系统比特误码率为 ,即106。系统的性能将明显提高。在上例中,将0、1采用00000、11111编码,在接收端我们用如下的译码方法,每收到5个比特译码一次,采用大数判决,即5个比特中0的个数大于1的个数则译码成0,反之译码成1;不采用ARQ方式。那么,我们看到这种编码方式就变成了纠错编码。由于传输错误当接收端收到11000,10100,10010,10001,01100,01010,01001,00110,00101,00011中的任何一种时,都可以自动纠正成00000。如上所述,将信息码分组,并为每个组附加若干监督的编码,称为“分组码”。在分组码中,监督码元仅监督本码组中的信息码元。分组码一般用符号(n),(k)表示,其中k是每组码二进制信息码元的数目,n是码组的总数目,又称码组的长度。r=n-k为每个码组中的监督码元的数目,按此规定的分组码的结构形式如图1-2所示。码长n=k+r D n-1D n-2D n-3.D n-kDr-1. D0D.图1-2 分组码结构1.7 差错控制编码的方式 在差错控制系统中,差错控制的方式主要有三种:FEC方式发送端首先根据需要先进行编码,然后由发送端发送这种能纠错的码在接收端解码器根据码的冗余进行译码,并自动纠正的传输差错。系统框图如图1-3所示。FEC编码FEC译码前向信道进 出 图1-3前向纠措方式 发送端首先对发送序列进行差错编码,生成一个可以检测出错误的校验序列,然后连同数据一起发送出去。接收端根据校验序列的编码规则判断是否传错,并把判决结果通过反馈通道传回发送端。若无错,接收端确认接受,同时发送端缓冲器清除该序列。当出现差错时,接收端通过回送确认信号自动控制发送端原先帧的重发,直到接收端接受正确为止。系统框图如图1-4所示。编码 缓冲 信道 缓冲 译码 信源 信宿 信道图1-4 自动请求重发(ARQ)方式 HEC方式是FEC和ARQ方式的结合,发送端发送的码不仅能检测错误,而其能在一定程度上纠正错误,接收端译码器收到码组后,首先检查传输差错的情况,如果差错在码的纠错能力以内,则自动进行纠错,若错误超出纠错能力,但能检测出来,则通过反馈信道给发送端发送一个反馈信息,请求重发出错的信息。其系统框图如图1-5所示。信源 信宿ARQ 译码 信道编码ARQ 信道 图1-5混合纠错方式1.8 差错编码的特性和能力就是从一个顶点移动到另一个顶点所经历立方体的最少边数。所谓最小距离就是立方体中从一个顶点移到另一个顶点所经历的最少边数 。 定理1若一种码的最小距离为d0,则它能检查传输错误个数(检错能力)e应满足:d0>=e+1 定理2若一种码的最小距离为d0,则它能纠正传输错误个数(纠错能力)t应满足:d0>=2t+1 定理3若一种码的最小距离为d0,则它的检错能力和纠错能力应满足:d0>=e+t+1 (e>=t)1.9 循环冗余校验码(CRC)原理 在计算机通信中用的最广泛检错码是一种漏检错率低得多也便于实现的循环冗余校验码,又称多项式码。这是因为,任何一个二进制数位串组成的代码都可以和一个只含有0和1的两个系数的多项式建立一一对应的关系。一个k位帧可以看成是从X k-1到X0的k次多项式的系数序列,这个多项式的阶数为k-1,高位时X k-1项的系数,下一位是X k-2项的系数,以此类推。例如,1011011有7位,表示成多项式是X6+X4+X3+X+1。CRC校验的思想是利用线性编码的理论,在发送端根据要传一个n比特的帧或报文,发送器生成一个r比特的序列。这样形成的帧将由(n+r)比特组成。这个帧刚好能够被某个预先确定好的数整除。接收端用相同的数去除外来的帧,如果无余数,则认为无差错。循环冗余校验码与奇偶校验码不同,后者是字符校验一次,而前者是字符串校验一次。在同步串行通信中,几乎都是用这种校验方法。一个n位的循环码是由k位信息位加上r位校验位组成的,其中r=n-k。如图1-6所示。 n位循环码 K位 R位(R=n-k) 信息位 校验位(CRC校验)图1-6 n位循环码通常把这样的新组成的二进制位序列叫做循环冗余码(CRC)。表征CRC码的多项式叫生成多项式。K位二进制数加上r位CRC码后,即信息位要向左移(n-r)位,这相当于B(X)乘以Xr B(X)被生成多项式除,得整数多项式加上余数多项式。由以上分析可知,CRC校验的关键是如何求出余数,此余数即为校验码(CRC校验码)。以前通常用数字电路来实现,而现在用计算机来完成。二、系统分析2.1 循环码(13,9)算法设定循环码是线性分组码的一种,具有严密的代数学理论。循环码除了具有线性分组码的封闭性,即两个循环码组的模二加仍是一个循环码组外,还具有循环性,即一个循环码组循环移位后,将最右端的码组移至左端,仍是一个循环码组。我们由生成多项式g(x)很容易计算出生成矩阵G,g(x)必须为一个常数项不为0的(n-k)次多项式,并且Xn+1是一个因式,本次课程设计选取循环码(13,9)的生成多项式g(x)=x4+x+1。2.2 循环码(13,9)编码算法分析 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校验码。 该编码算法比较简单,只需要三步即可。第一步,将信息码组m(x)乘以x4得到m(x)x4;第二步,计算上式与g(x)的除法,得到商q(x)和余数r(x);最后,计算编码后的码组多项式g(x)=m(x)x4+r(x)。2.3 循环码(13,9)译码算法分析设接收到的码组位R(x),若C(x)=R(x),则说明接收到的码组正确,若该式不成立,则说明接收到的码组错误。且有R(x)=C(x)+E(x),其中E(x)为伴随式。如果要纠正一位错误(若要纠正多位错,则需要监督矩阵的位数),当然,为了提高效率也要增加信息位的长度。实际上,一个16位的码组中有两位都出错的概率要比只错一位的概率小得多。这里,E(x)有24种组合。一个15位的码组中若哪一位出了错,经过计算,伴随式与错误图样均有一定的关系。2.4 CRC冗余校验码的实现方法CRC计算可以靠专用硬件来实现,但对于低成本的微控制器系统,在没有硬件支持的情况下实现CRC检验,其关键问题是如何通过软件来实现CRC计算,也就是CRC算法的问题。到达接收方的数据单元首先到达的是数据,然后是CRC校验码。接收方将整个数据串当作一个整体去除以用来产生循环冗余校验余数的同一个除数。如果数据串无差错地到达接收方,循环冗余校验器将产生余数0。因此数据单元将通过检验。如果在传输中数据单元被改变,除法将产生非零余数,因此数据单元将通不过检验。尽管CRC在数学上是复杂的,但可以用简单的,便宜的硬件来实现,并且绝大多数是硬件实现。CRC校验编码与译码的电路是相同的。对于带有CPU的嵌入式系统,可以用软件实现CRC校验。其优点是模块代码少,修改方便,可移植性好。但缺点是计算量大,与硬件实现相比,速度较慢。CRC校验程序是根据CRC校验码的产生原理来设计的,通常采用MATLAB进行编译。三、MATLAB语言介绍3.1 MATLAB概述 MATLAB是美国Math Works公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB和Mathematica、Maple、MathCAD并称为四大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的主要功能有:1)数值分析。2)数值和符号计算。3)工程与科学绘图。4)控制系统的设计与仿真。5)数字图像处理。6)数字信号处理。7)通讯系统设计与仿真。8)财务与金融工程。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。 MATLAB的优势特点有:1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。 MATLAB可以用来进行以下各种工作:数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理技术、数字信号处理技术、通讯系统设计与仿真、财务与金融工程、管理与调度优化计算(运筹学)。MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。3.2 MATLAB系统组成MATLAB系统由五个主要部分组成,下面分别加以介绍。1.MATLAB语言体系 MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算发设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。2.MATLAB工作环境 这是对MATLAB提供给用户使用的管理功能的总称,包括管理工作空间的变量,数据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。3.图形句柄系统 这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层次MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层次MATLAB命令,以及开发GUI应用程序的各种工具。4.MATLAB数学函数库 这是对MATLAB使用的各种数学算法的总称,包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。5.MATLAB应用程序接口(API)  这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用子程序(动态链接),读写MAT文件的功能。 综上所述,可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配置各种各样的工具箱,以完成一些特定的任务。 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 MATLAB的源程序都是以扩展名为m的文件来存放的。这种.m文件(或称m文件)其实就是一个纯文本文件,它采用的是MATLAB所特有的一套语言及语法规则。MATLAB进行信号处理实际上就是通过编辑和运行这种.m文件来完成的。.m文件有两种写法,一种称为脚本(Script),就像批处理文件一样,包含了一连串的MATLAB命令,执行时依序进行;另一种称为函数(Function),与在命令行中输入的命令一样,函数能接收输入的参数,然后执行并输出结果。 四、仿真过程及结果4.1程序流程图余数是否为零 输出接收端的码 结束输出erro=0开始初始化,随机产生信息码并输出 添加冗余比特位 循环计算长除 是否除完 合成编码序列输出 用合成码长除生成多项式 是否除完利用MATLAB对CRC循环冗余校验码的生成及还原过程进行仿真,其编码的流程图如4.1所示。 N Y N Y N Y 图4-1CRC编码流程图4.2 MATLAB的CRC编程1. MATLAB编程% CRC 编码主程序clear;clc;close all;uncode_sequence=randint(1,9)sequence_length = length(uncode_sequence); % 得到原始信号长度crc_ccitt = 1 0 0 1 1; % 常用的CRC生成多项式add_bit = zeros(1,4); % 添加冗余比特位crc_coded_sequence = uncode_sequence zeros(1,4); % 初始化输出检错码序列uncode_sequence = uncode_sequence add_bit;remainder_bits = uncode_sequence; % 初始化余数数组for k = 1:sequence_length % 开始循环计算长除得到最终余数add_zeros = zeros(1,sequence_length-k); % 加入冗余位参与模2运算 register_bits = crc_ccitt add_zeros; % 构造除数数组if remainder_bits(1) = 0 % 被除数第一位为0则将除数所有位置0 register_bits = zeros(1,length(register_bits); endremainder_bits = bitxor(register_bits,remainder_bits); % 将除数与被除数进行异或操作register_bits = crc_ccitt; % 将寄存器恢复为除数数组remainder_bits(1) = ; % 去除模2后得到的被除数的第1位endadd_len = length(crc_coded_sequence) - length(remainder_bits); % 生成余数序列的冗余位以叠加到编码序列remainder_bits = zeros(1,add_len),remainder_bits; % 余数序列添加冗余crc_coded_sequence = crc_coded_sequence + remainder_bits % 合成编码序列sequence_length = length(crc_coded_sequence); % 得到冗余编码的长度original_sequence = crc_coded_sequence; % 初始化输出序列 crc_ccitt = 1 0 0 1 1; % 常用的CRC生成多项式 remainder_bits = crc_coded_sequence; % 初始化余数数组 cycle_length = sequence_length-length(crc_ccitt)+1; % 计算长除法的循环周期 for k = 1:cycle_length % 开始循环计算长除得到最终余数 add_zeros = zeros(1,cycle_length-k); % 加入冗余位参与模2运算 register_bits = crc_ccitt add_zeros; % 构造除数数组 if remainder_bits(1) = 0 % 被除数第一位为0则将除数所有位置0 register_bits = zeros(1,length(register_bits); end remainder_bits = bitxor(register_bits,remainder_bits); % 将除数与被除数进行异或操作 register_bits = crc_ccitt; % 将寄存器恢复为除数数组 remainder_bits(1) = ; % 去除模2后得到的被除数的第1位 end if sum(remainder_bits) = 0 % 传输码元中没有发生奇数个错误 original_sequence = crc_coded_sequence(1:cycle_length) else err = 1 % 码元传输发生错误 end2. MATLAB仿真结果CRC循环冗余校验码利用MATLAB仿真出来的结果如图4.2所示 图4-2MATLAB仿真图4.3 结果分析CRC校验的基本思想是利用线性编码理论,在发送端根据要传送一个n比特的帧或报文,发送器生成一个r比特的序列,称为帧检验序列(FCS)。这样形成的帧将由(n+r)比特组成。这个帧刚好能被某个预先规定的数整除。接收器用相同的数去除外来的帧,结果无余数,则认为无差错。循环冗余校验与奇偶校验不同,或者是一个字符校验一次,而前者是一个数据块校验一次。在同步通信中,几乎都使用这种校验方法。二进制多项式的加减运算为模2加减运算,即两个码多项式相加时,对应系数进行模2加减。所谓模2加减就是各位做不带进位、借位的按位加减。这种加减运算实际上是逻辑上的异或运算,即加法和减法等价。 信息多项式和余数多项式可以合并成一个新的多项式(称为循环码的码多项式),则该多项式是生成多项式的整数倍,即能被声称多项式整除。根据这一原理,在发送端用信息码多项式除以生成多项式所得的余数多项式就是所要加的监督位。将循环码的码多项式除以生成多项式,若能除尽,说明传输正确,否则说明出错。CRC校验的关键是如何求出余数,此余数即为校验码(CRC校验码)。以前用数字电路来实现,而现在可以用计算机来完成。为了传输的正确性,在接收端要有一个CRC检验器。它的功能和发生器一样,当收到CRC冗余校验码后,做同样的模2除法(注意,这里采用的生成多项式一定要与发送端相同)。如果余数是0,则说明传输正确;否则,传输错误,应重传。本次课设通过对(13,9)循环码的编译码的设计与仿真得出仿真过程得到的结果和理论是一致的。五、心得体会 随着创新设计的结束,通信的目的是要把信息及时可靠地传送给对方,因此要求一个通信系统传输消息必须可靠与快速,在数据通信系统中可靠与快速往往是一对矛盾。为了解决可靠性,通信系统都采用了差错控制。做创新设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,让我们对平时学习的理论知识与实际操作相结合,在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高,学会将知识运用于实际的方法,提高分析和解决问题的能力。在这次创新设计中,我发现了很多自身的不足,比如基础知识不扎实,缺乏耐心,经不起挫折,容易丧失信心等等,这些必须在将来的学习生活中慢慢改进,加以克服。我掌握MATLAB仿真平台的使用方法,应该说是收益良多。从中我懂得真理需要在一次又一次不断的实践中才能获得,不但在知识上,更在人生道路上给我上了重要的一课。在设计的过程中,不断的尝试,不断的遇到困难,不断的想办法克服困难,以前碰到困难就找别人帮忙,这次独立完成这个课程设计,使我感受颇多,也只有这样不断的向前,才能真正学到、掌握知识。最后,我在设计中遇到了种种难题,经过不屑的努力和积极查阅资料与同学的一起讨论终于完成了这次创新设计。谢谢老师与同学在这次创新设计中对我们的帮助。参考文献1 吴玲达,李国辉,杨冰 等著. 计算机通信原理与技术M. 国防科技大学出版社,20032 潘新民 著. 计算机通信技术M. 电子工业出版社,20033 孙丽华 著. 信息论与纠错编码M. 电子工业出版社,20054 Pro著,张力军译. 数字通信(第四版)M. 电子工业出版社,20046王兴亮.数字通信原理与技术(第二版).西安电子科技大学出版社.20007沈越泓 高媛媛 魏以民.通信原理.机械工业出版社.20042021年江苏对口单招数学仿真模拟试题及答案一、选择题(本大题共12小题,每小题5分;共60分。在每小题给出的四个选项中,选出一个符合题目要求的选项。)1给定下列结论:正确的个数是( )用20长的铁丝折成的矩形最大面积是252;命题“所有的正方形都是矩形”的否定是“所有的正方形都不是矩形”;函数y=2-x与函数y=logx的图像关于直线y=x对称。A0B1C2D32已知(其中i为虚数单位),则以下关系中正确的是( )ABCD3函数的零点所在的区间是( )ABCD4如果执行如图所示的程序框图,那么输出的S=( )A1BCD5在的面积等于( )ABCD6某校对高三年级的学生进行体检,现将高三男生的体重(单位:)数据进行整理后分成五组,并绘制频率分布直方图(如图所示)。根据一般标准,高三男生的体重超过65属于偏胖,你

    注意事项

    本文(CRC冗余校验码的编译码仿真实现(完整版).doc)为本站会员(可****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开