循环冗余校验码的仿真与实现.doc
《循环冗余校验码的仿真与实现.doc》由会员分享,可在线阅读,更多相关《循环冗余校验码的仿真与实现.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、*实践教学* 兰州理工大学计算机与通信学院2013年秋季学期 计算机通信与网络 课程设计题 目:(15,11)CRC冗余校验码的编译码仿真实现 专业班级: 通信工程(4)班 姓 名: 王 强 学 号: 指导教师: 彭 清 斌成 绩: 摘 要现代社会的生产和生活都需要借助计算机网络来完成,在计算机网络日益发达的今天,人们对数据传输的准确性和传输的速度要求越来越高,数据传输不仅要保证实时,还要保证准确。因此,数据通信技术是计算机通信网络技术发展的基础,已经为现代生活中不可缺少的一部分。但是通过通信信道传输的数据往往会有差错的产生,而且差错的产生是不可避免的,因此我们的任务是分析循环码算法的实现原理
2、及研究检查是否出现差错及如何纠正差错。循环冗余校验码(CRC)是目前应用最广的纠错编码之一。本次课设论述了循环冗余码的算法及其在数据通信中的作用,研究了纠错码及循环冗余校验码的原理,以及利用MATLAB对其进行了编程和编译仿真,实现了CRC循环冗余校验码的编码及校验,在接收端收到通过校验的码,从而确定传输过程是否出错,得到的结论和理论上是否一致。关键词:检错码 CRC循环冗余校验码 MATLAB 计算机通信目录前 言1一、基本原理21.1计算机通信与纠错码21.1.1 计算机通信21.1.2 纠错码21.1.3 纠错原理31.2 CRC循环冗余校验码41.2.1 CRC的介绍41.2.2 CR
3、C的基本原理5二、推导过程9三、MATLAB语言编程与运行113.1 MATLAB语言的介绍113.2 程序流程图133.3 MATLAB程序14设计总结17致 谢18参考文献19前 言通信技术的发展和新业务的不断出现对计算机网络通信系统的服务质量和数据的传输速度提出了更高的要求,数据交换量的迅速增加也加重了计算机网络的通信负担,网络很难对所有的数据进行完全正确的传输,网络通信中的实时差错控制技术显得尤为重要。本设计中对实时差错控制的分类和检测方法进行了分析,并在此基础上提出网络通信实时差错的控制方式。CRC校验也叫循环冗余校验码,它在数据通信中利用广泛,技术人员可以任意选定校验字段和信息字段
4、的长度,具有纠错能力强、知名度高以及应用广泛的特点。CRC校验的原理是在k位的信息码之后拼接r位校验码,编码的整个长度是n位。该种校验属于分块的校验,在编码的过程中会生成一段校验码,并将原信息与校验码一同发送到接收端。 同时,本次课程设计利用MATLAB软件进行仿真,并通过仿真的结果对CRC码做出分析,得出相应的结果,进而对于实时网络通信中的实时差错控制不仅有完备的编码方式和编码方法,还通过质量评估来保证了差错控制系统的性能良好,差错控制技术在计算机网络通信中的作用也越来越明显。一、基本原理1.1计算机通信与纠错码1.1.1 计算机通信 计算机通信是一种以数据通信形式出现,在计算机与计算机之间
5、或计算机与终端设备之间进行信息传递的方式。它是现代计算机技术与通信技术相融合的产物,在军队指挥自动化系统、武器控制系统、信息处理系统、决策分析系统、情报检索系统以及办公自动化系统等领域得到了广泛应用。 计算机通信按照传输连接方式的不同,可分为直接式和间接式两种。直接式是指将两部计算机直接相联进行通信,可以是点对点,也可以是多点通播。间接式是指通信双方必须通过交换网络进行传输。 按照通信覆盖地域的广度,计算机通信通常分为局域式、城域式和广域式三类。 局域式是指在一局部的地域范围内(例如一个机关、学校、军营等)建立计算机通信。局域计算机通信覆盖地区的直径在数公里以内。 城域式是指在一个城市范围内所
6、建立的计算机通信。城域计算机通信覆盖地区的直径在十公里到数十公里。 广域式是指在一个广泛的地域范围内所建立的计算机通信。通信范围可以超越城市和国家,以至于全球。广域计算机通信覆盖地区的直径一般在数十公里到数干公里乃至上万公里。 在通常情况下,计算机通信都是由多台计算机通过通信线路连接成计算机通信网进行的,这样可共享网络资源,充分发挥计算机系统的效能。1.1.2 纠错码纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别 ,即把原码字
7、按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。 纠错编码又称信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。 为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。准确地说,即把原
8、码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。关系的建立称为编码。码字到达收端后,用编码时所用的规则去检验。如果没有错误,则原规则一定满足,否则就不满足。由此可以根据编码规则是否满足以判定有无错误。当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为线性码;否则称为非线性码。检错码与其他手段结合使用,可以纠错。检错反馈重发系统(ARQ系统)就是一例。 在构造纠错码时,将输入信息分成 k位一组以进行编码。若编出的校验位仅与本组的信息位有关,则称这样的码为分组码。若不仅与本组的 k个信息位有关,
9、而且与前若干组的信息位有关,则称为格码。这种码之所以称为格码,是因为用图形分析时它象篱笆或格架。线性格码在运算时为卷积运算,所以叫卷积码。1.1.3 纠错原理 纠错码能够检错或纠错,主要是靠码字之间有较大的差别。这可用码字之间的汉明距离 d(x,y)来衡量。它的定义为码字x与y之间的对应位取不同值的码元个数。一种纠错码的最小距离 d定义为该种码中任两个码字之间的距离的最小值。一种码要能发现e个错误,它的最小距离d应不小于e+1。若要能纠正t个错误,则d应不小于2t+1。一个码字中非零码元的个数,称为此码字的汉明重量。一种码中非零码字的重量的最小值,称为该码的最小重量。对线性码来说,一种码的最小
10、重量与其最小距离在数值上是相等的。 在构造线性码时,数字上是从n维空间中选一k维子空间,且使此子空间内各非零码字的重量尽可能大。当构造循环码时,可进一步将每一码字看成一多项式,将整个码看成是多项式环中的理想,这一理想是主理想,故可由生成多项式决定;而多项式完全可由它的根规定。这样,就容易对码进行构造和分析。这是BCH码等循环码构造的出发点。一般地说,构造一种码时,均设法将它与某种代数结构相联系,以便对它进行描述,进而推导它的性质,估计它的性能和给出它的译码方法。若一种码的码长为n,码字数为M,或信息位为h,以及最小距离为d,则可把此码记作【n,M,d】码。若此码为线性码,常简记作(n,k)或(
11、n,k,d)码。人们还常用R=log2M/n表示码的信息率或简称码率,单位为比特/码元。R越大,则每个码元所携带的信息量越大,编码效率越高。纠错码实现中最复杂的部分是译码。它是纠错码能否应用的关键。根据式(1),采用的码长n越大,则误码率越小。但n越大,编译码设备也越复杂,且延迟也越大。人们希望找到的译码方法是:误码率随码长n的增加按指数规律下降;译码的复杂程度随码长n的增加接近线性地增加;译码的计算量则与码长 n基本无关。可惜,已经找到的码能满足这样要求的很少。不过由于大规模集成电路的发展,既使应用比较复杂的但性能良好的码,成本也并不太高。因此,纠错码的应用越来越广泛。 纠错码传输的都是数字
12、信号。这既可用硬件实现,也可用软件实现。前者主要用各种数字电路,主要是采用大规模集成电路。软件实现特别适合计算机通信网等场合。因为这时可以直接利用网中的计算机进行编码和译码,不需要另加专用设备。硬件实现的速度较高,比软件可快几个数量级。 在传信率一定的情况下,如果采用纠错码提高可靠性,要求信道的传输率增加,带宽加大。因此,纠错码主要用于功率受限制而带宽较大的信道,如卫星、散射等系统中。纠错码还用在一些可靠性要求较高,但设备或器件的可靠性较差,而余量较大的场合,如磁带、磁盘和半导体存储器等。 在分组码的研究中,谱分析的方法受到人们的重视。纠同步错误码、算术码、不对称码、不等错误纠正码等,也得到较
13、多的研究。1.2 CRC循环冗余校验码 1.2.1 CRC的介绍在计算机通信中用得最广泛的检错码是一种漏检率低得多也便于实现的循环冗余校验码CRC(Cyclical Redundancy Checking),又称多项式码。这使因为,任何一个由二进制数位串组成的代码都可以和一个含有0和1两个系数的多项式建立一一对应关系,一个k位帧可以看成是从到的k次多项式的系数序列,这个多项式的阶数为k-1,高位(最左边)是项的系数,下一位是 例如,有7位,表示生成多项式是;而生成多项式对应的位串是。CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长
14、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校验码。1.2.2 CRC的基本原理CRC 校验的基本思想是利用线性编码理论,
15、在发送端根据要传送的k 位二进制码序列,以一定的规则产生一个校验用的监督码(CRC 码)r 位,并附在信息后边,构成一个新的二进制码序列数共 (k+r) 位,最后发送出去。在接收端,则根据信息码和CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。16 位的CRC 码产生的规则是先将要发送的二进制序列数左移16 位(乘以216)后,再除以一个多项式,最后所得到的余数既是CRC 码。求CRC 码所采用模2 加减运算法则,既是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律。接收方将接收到的二进制序
16、列数(包括信息码和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、多项式与二进
17、制数码 多项式和二进制数有直接对应关系:x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。可以看出:x的最高幂次为R,转换成对应的二进制数有R+1位。 多项式包括生成多项式G(x)和信息多项式C(x)。 如生成多项式为G(x)=, 可转换为二进制数码11011。 而发送信息位 1111,可转换为数据多项式为C(x)=。 2、生成多项式 是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。 在发送方,利用生成多项式对信息多项式做模2除生成校验码。在接受方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。
18、应满足以下条件: a、生成多项式的最高位和最低位必须为1。 b、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0。 c、不同位发生错误时,应该使余数不同。 d、对余数继续做模2除,应使余数循环。 将这些要求反映为数学关系是比较复杂的。但可以从有关资料查到常用的对应于不同码制的生成多项式如下所示: NK 码距dG(x)多项式 G(x)7 4 3 10117 4 3 11017 3 4 111017 3 4 101111511 3 10011157 5 3126 3 3121 5 6357 3 6351 5 0110411024 3、模2除(按位除) 模2除做法与
19、算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位。所以实际上就是异或。然后再移位移位做下一位的模2减。步骤如下: a、用除数对被除数最高几位做模2减,没有借位。 b、除数右移一位,若余数最高位为1,商为1,并对余数做模2减。若余数最高位为0,商为0,除数继续右移一位。 c、一直做到余数的位数小于除数时,该余数就是最终余数。 4、CRC码的生成步骤生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为0和1取值的多项式一一对应。例如:代码对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码。 (1)、将x的最高幂次为R的生成多
20、项式G(x)转换成对应的R+1位二进制数。 (2)、将信息码左移R位,相当与对应的信息多项式C(x)*2R (3)、用生成多项式(二进制数)对信息码做模2除,得到R位的余数。 (4)、将余数拼到信息码左移后空出的位置,得到完整的CRC码。 5、CRC的和纠错 在接收端收到了CRC码后用生成多项式为G(x)去做模2除,若得到余数为0,则码字无误。若如果有一位出错,则余数不为0,而且不同位出错,其余数也不同。可以证明,余数与出错位的对应关系只与码制及生成多项式有关,而与待测碼字(信息位)无关。下面给出了G(x)1011,C(x)1010的出错模式,改变C(x)(码字),只会改变表中码字内容,不改变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 冗余 校验码 仿真 实现
限制150内