ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:107.25KB ,
资源ID:10889063      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10889063.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机通信课程设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机通信课程设计.docx

1、计算机通信课程设计*实践教学*计算机与通信学院2010年春季学期计算机通信课程设计题 目:计算机通信中循环冗余校验码的设计专业班级: 通信工程(2)班 姓 名: 学 号: 指导教师: 成 绩: 摘要通信的目的是要把信息及时可靠地传送给对方,因此要求一个通信系统传输消息必须可靠与快速,在数字通信系统中可靠与快速往往是一对矛盾。为了解决可靠性,通信系统都采用了差错控制。循环冗余校验码是常用的校验码,用于通信系统中数据可靠性的检查,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。本设计采用编程的方法,用MATLAB程序语言实现循环冗余校验码的生成器与校验器,用计算机完成对数据的校验与检

2、测,操作简单,设计效率高,处理速度快,计算精度高。关键词:计算机通信;循环冗余校验码(CRC);MATLAB仿真目录第1章 概述 1第2章 循环冗余校验码CRC 32.1 循环冗余校验码CRC原理 32.2 CRC码的生成与校验 32.3举例说明 4第3章 详细设计及仿真 53.1目的及意义 53.2 设计任务及要求 53.3软件流程图 63.4 MATLAB程序实现 63.5 MATLAB运行结果 8第4章 开发平台简介 9总结 11参考文献 12第1章 概述1.1 计算机通信计算机和通信,是当今社会最活跃的两个领域,计算机的发展促进了通信事业的发展,同样,通信的发展也扩大了计算机的应用范围

3、,并向计算机提出了更高的要求.因此,计算机和通信时密不可分的。二者互为促进,共同发展,从而推动了人类社会的发展和进步。今后计算机通信的发展方向是:1、由过去的单位通信向个人通信发展.随着计算机通信的发展,20世纪八十年代末的个人通信,如BP机,移动通信的出现和逐渐普及,使个人通信逐渐实现5W,即任何人在任何时间,任何地点都可以同任何人,以任何方式通信。目前,离此目标还有一定的距离,但已经看到了曙光。2.计算机通信网由专业网向公用网发展,又由公用网向互联网进步,如今已经形成了跨行业,跨地区的计算机互联网络。3从交换信息的形式上,由原来的电路交换发展到报文交换。为进一步提高通信速率,又逐渐形成了分

4、组交换和信元交换。4.由单一的通信网,如广播网,电视网,电话网等,逐渐向综合业务数据通信网发展。5.从网络的体系结构讲,由微机与主机的通信,发展到对等通信,再到客户与服务器之间的通信。自动网络出现以后,通信方法又有了变化-从站点到浏览器,是通信逐渐从简单到复杂,从单一向多用户,大信息年发展。1.2 纠错码纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别 ,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码

5、之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。 纠错编码又称信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。 为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定

6、的关系。关系的建立称为编码。码字到达收端后,用编码时所用的规则去检验。如果没有错误,则原规则一定满足,否则就不满足。由此可以根据编码规则是否满足以判定有无错误。当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为线性码;否则称为非线性码。检错码与其他手段结合使用,可以纠错。检错反馈重发系统(ARQ系统)就是一例。 在构造纠错码时,将输入信息分成 k位一组以进行编码。若编出的校验位仅与本组的信息位有关,则称这样的码为分组码。若不仅与本组的 k个信息位有关,而且与前若干组的信息位有关,则称为格码。这种码之所以称为格码,是

7、因为用图形分析时它象篱笆或格架。线性格码在运算时为卷积运算,所以叫卷积码。1.3 循环冗余校验码CRC为了保证传输过程的正确性,需要对通信过程进行差错控制。在计算机通信中用的最广泛的是漏检率低便于实现的循环冗余校验码CRC,它是由分组线性码的分支而来,其主要应用时二元码组,编码简单且误判概率比较低,循环冗余校验码CRC是利用线性编码理论,在发送端根据要传送的一个n比特的帧或报文,发送器生成一个r比特的序列,成为帧检验序列(FCS)。这样形成的帧将由(n+r)个比特组成。这个帧刚好能被某个预先确定的书整除。接收器用相同的数去除外来的帧,如果无余数,则认为无错。第2章 循环冗余校验码CRC2.1

8、循环冗余校验码CRC原理CRC校验采用多项式编码方法。被处理的数据块可以看作是一个n阶的二进制多项式,因为任何一个有二进制数位串组成的代码都可以和一个只含0或1两个系数的多项式建立一一对应的关系,一个k位帧可以看成是从Xk-1项到X0的k次多项式的系数序列,这个多项式的阶数为k-1,高位(最左边)是Xk-1项的系数,下一位是Xk-2项的系数,依次类推。如一个8位二进制数10110101可以表示为:X7+X5+X4+X2+1 。多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算采用模2运算,加减时不进,错位,和逻辑异或运算一致。 采用CRC校验时,发送方和接收方用同一个生成多项

9、式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。 CRC校验可以100地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。本实验采用16位CRC校验,可以保证在1410 bit码元中只含有一位未被检测出的错误 。本设计使用CCITT-16,其生成多项式g(x)= X16+X12+X5 +1。2.2 CRC码的生成与校验CRC校验码的编码方法是用待发送的二进制数据t(x)除以生

10、成多项式g(x),将最后的余数作为CRC校验码。其实现步骤如下: (1) 设待发送的数据块是m位的二进制多项式t(x),生成多项式为r+1阶的g(x)。在数据块的末尾添加r个0,数据块的长度增加到m+r位,对应的二进制多项式为 。 (2) 用生成多项式g(x)去除 ,求得余数为阶数为r-1的二进制多项式y(x)。此二进制多项式y(x)就是t(x)经过生成多项式g(x)编码的CRC校验码。 (3) 用从第二步得到的r个比特的CRC校验码替换原数据单元末尾附加的r个0。如果余数位数小于r,则最左的默认位数为0,就是包含了CRC校验码的待发送字符串。 从CRC的编码规则可以看出,CRC编码实际上是将

11、代发送的m位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式 ,所以解码时可以用接受到的数据去除g(x),如果余数位零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误。同时 可以看做是由t(x)和CRC校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据。 2.3举例说明发送端:例如:已知:信息码:1010 信息多项式:K(x)=X3+ X生成码:1011 生成多项式:G(x)=X3+X+1(r=3)解: 1)(X 3+ X )* X 3 的积是X 6+ X 4对应的码字是10100002) 积G(X)(按模二算法) 由计算

12、结果知冗余码是011,CRC 码(码字)就是1010011接收端:例如:已知:接受码字:1 0 1 0 0 1 1多项式:T(x)=X6+X4+X+1生成码:1011 生成多项式:G(x)=X3+X+1(r=3)求:码字的正确性。若正确,则指出冗余码和信息码。解:1) 用CRC 码(码字)除以生成码,余数为0 ,所以CRC 码(码字)正确。2) 因r=3,所以冗余码是:011,信息码是:1010。第3章 详细设计及仿真3.1目的及意义纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠

13、错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。CRC(Cyclic Redundancy Check)循环冗余校验码,是常用的校验码,在早期的通信中运用广泛,因为早期的通信技术不够可靠(不可靠性的来源是通信技术决定的,比如电磁波通信时受雷电等因素的影响),不可靠的通信就会带来“确认信息”的困惑。对通信

14、的可靠性检查就需要校验,校验是从数据本身进行检查,它依靠某种数学上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。3.2 设计任务及要求设计任务:用MATLAB软件实现CRC校验码的生成器和校验器的设计。工作要求:1、掌握CRC校验码的生成器和校验器原理;2、熟悉MATLAB软件及仿真;3、对于给定生成多项式,实现生成器和校验器的设计;3.3软件流程图 N Y N Y 3.4 MATLAB程序实现% CRC 编码主程序clear;clc;close all;uncode_sequence=randint(1,10)sequence_l

15、ength = length(uncode_sequence); % 得到原始信号长度crc_ccitt = 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1; % 常用的CRC生成多项式add_bit = zeros(1,16); % 添加冗余比特位crc_coded_sequence = uncode_sequence zeros(1,16); % 初始化输出检错码序列uncode_sequence = uncode_sequence add_bit;remainder_bits = uncode_sequence; % 初始化余数数组for k = 1:sequence

16、_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_bit

17、s = 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 = leng

18、th(crc_coded_sequence); % 得到冗余编码的长度original_sequence = crc_coded_sequence; % 初始化输出序列 crc_ccitt = 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1; % 常用的CRC生成多项式remainder_bits = crc_coded_sequence; % 初始化余数数组cycle_length = sequence_length-length(crc_ccitt)+1; % 计算长除法的循环周期 for k = 1:cycle_length % 开始循环计算长除得到最终余数 add_

19、zeros = zeros(1,cycle_length-k); 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_bit

20、s(1) = ; % 去除模2后得到的被除数的第1位 end if sum(remainder_bits) = 0 % 传输码元中没有发生奇数个错误 original_sequence = crc_coded_sequence(1:cycle_length) else err = 1 % 码元传输发生错误 end3.5 MATLAB运行结果第4章 开发平台简介MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大

21、部分。基本功能MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,

22、FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题MATLAB特点:(1)友好的工作平台和编程环境MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图

23、形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 (2)简单易用的程序语言Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用

24、户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C语言基础上的,因此语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 (3)强大的科学计算机数据处理能力MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果

25、,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C+ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。 (4)出色的图形处理功能 MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以

26、对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以

27、得到满足。 (5)应用广泛的模块集合工具箱MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Tool

28、box)家族中有了自己的一席之地。 (6)实用的程序接口和发布平台新版本的MATLAB可以利用MATLAB编译器和C/C+数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C+代码。允许用户编写可以和MATLAB进行交互的C或C+语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的

29、应用。 (7)应用软件开发(包括用户界面)在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。 总结课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 此次课程设计主要通过MATLAB软件编写程序,实现计算机通信中循环冗余校验码生成器及校验器的设计,并利用MATLAB仿真,对数据进行处理。设计中用到了循环冗余校验、MATLAB编程等方面的知识。由于

30、对MATLAB编程不熟悉,导致在设计的过程中无法正确编写生成器及校验器的程序,使生成的冗余码产生错误,译码的结果也发生错误,使得在设计过程中绕了许多弯路,做了许多的无用功。设计过程中查阅了大量的有关循环冗余校验码设计的书籍,巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的必要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟跟平时的理论还是存在着很大的差异,难免会遇到过各种各样的问题,

31、同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总之,通过这次课程设计之后,我发现自己的不足之处还很多,我下去以后一定把以前所学过的知识重新温故。最后,也是最重要的一点,我们学会了一种快速有效的学习方法。以往的学习都是老师讲学生记,不懂得地方就靠解答大量习题帮助记忆,学习的主要目的是通过最后的考试。课程设计使我们发现最重要的是能运用所学的知识。在整个计算机通信课程的学习过程中,我们突破了传统学习模式,把被动接受转变为主动学习。不再是用学到的知识解题,而是在实际运用时遇到什么学什么,重在把知识应用于实际。总之,这学期的计算机通信课程设计,让我学到了很多,受益匪浅。由衷感谢老师提供给我们这样一个锻炼自己的机会,也感谢老师的指导,让我学到了很多知识。参考文献:1 吴玲达,李国辉,杨冰 等著. 计算机通信原理与技术M. 国防科技大学出版社,2003,2 潘新民 著. 计算机通信技术M. 电子工业出版社,20033 孙丽华 著. 信息论与纠错编码

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1