文档详情

CRC算法的MATLAB仿真.doc

发布:2017-08-14约7.37千字共15页下载文档
文本预览下载声明
通信系统综合设计与实践 题目 CRC算法的MATLAB仿真 院(系)名称 信息工程学院 专业名称 通信工程 姓名学号 指导教师 2012年 5 月 22 日 CRC算法的MATLAB仿真设计 摘 要 数据通信技术是计算机网络技术发展的基础,已经为成现代生活中必不可少的一部分。但通过通信信道传输的数据往往会有差错的产生,而且差错的产生是不可避免的,我们的任务是分析研究检查是否出现差错及如何纠正差错。循环冗余码(CRC)是目前应用最广的检错纠错编码方法之一。论述了CRC的原理及其在数据通信中的作用,并提出了用语言实现CRC校验的程序设计。1. CRC算法的基本工作原理 3 2. CRC算法仿真的意义 4 3. 仿真过程 5 4. 纠错方法 5 5. 仿真方法 9 6. 仿真结果的预计 14 7. 仿真结果的意义 14 CRC算法的基本工作原理 循环冗余码CRC检验技术广泛应用与测控及通信领域,其基本原理是:利用线性编码理论,在发送端根据要传送的K位二进制码序列,以一定的规则产生一个校验用的监督码(即CRC码)r位,并附在信息位后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。 CRC算法仿真的意义 在有噪声的信道中传输信息会产生差错,为了减少差错需要在传输的信息序列中引入冗余码来增加通信系统的可靠性。为了减少接收错误码元的数量,需要在发送码元序列中加入监督码元。这样做的结果是发送序列增长,冗余度增大。若仍须保持发送信息码元速率不变,则传输速率必须增大。但在通信系统中,可靠性与有效性是对矛盾,要求有效性提高,必然使每个码元所占的时间缩短,从而受干扰和产生错误的可能性增大,可靠性降低;要提高信息的可靠性,又使信息速率变慢有效性降低。因此,合理的解决有效性与可靠性这对矛盾,是正确设计一个通信系统的关键问题之一,为保证传输过程的可靠性,就需要对通信过程进行差错控制。 循环冗余校验码CRC(cyclic redundancy check)是一种高效率且可靠的方法,由线性分组码分支而来的,是一种通过多项式除法检测错误的方法,一方面它有很强的检测能力,而是它的编码器电路及错误检测器电路都很容易实现,它的优点使它在通信系统中得到了广泛的应用。 仿真过程 在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)×2n;这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)×2n除以生成多项式G(x)得到的余数就是校验码。 判断余数是否为零。 纠错方法 循环冗余校验(CRC)是一种重要的线性分组码,不但具有极强的检测能力,而且编解码器采用硬件实现比较简单,特别适合于检测错误,同时还能纠正单比特错误。利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位校验码,附在原始信息后边,构成一个共k+r位的新的二进制码序列数,然后发送出去;在接收端,根据信息码和校验码之间所遵循的规则进行检验,以确定传送中是否出错。在差错控制理论中,这个规则被称为生成多项式。根据r的阶数,可以构造CRC4,CRC16,以及CRC32等不同的生成多项式。通过CRC校验码对整个帧结构进行保护是对随机和突发错误进行检测的最好方法。 ?目前在传输系统中使用最广泛的数据报文封装结构为通用帧结构(GFP)。GFP在接收定帧时不采用特殊字节进行帧对齐,而是通过对GFP核心帧头的长度域PLI进行CRC16计算,从而判断下一GFP帧的开始来达到定帧的目的。在发送的时候,这个长度域加上其CRC16校验和构成了GFP的核心帧头。除了核心帧头以外,GFP的静荷类型帧头同样也是收到CRC16的保护。在GFP中,无论是核心帧头中的长度域还是静荷类型帧头中的类型域对于GFP来说都是非常重要的信息,因此在标准中都对其定义了单比特误码的纠错要求。具有同样检错和纠错要求的标准还有RFC2823。 令T(x)=an-1xn-1+an-2xn-2+…a2x2+a1x1+a0为发送的信息序列,这里采用数组T=[an-1,an-1,…a2,a1,a0]来表示,其中ai=0 or 1,0≤i≤n-1。 同时令接收信息序列表示为T(x)=bn-1xn-1+bn-2xn-2+…+b1x1+b0,这里仍然采用数组来表示,其中bi=0 or
显示全部
相似文档