当前位置: 首页 > 其他范文 > 其他范文

课程设计成果说明书

作者:探索真理者 | 发布时间:2021-01-07 01:22:00 收藏本文 下载本文

课程设计成果说明书 题 目:

CRC 校验码的软件实现 学 生 姓 名 :

叶 松 金 学 号 :

学 院 :

机 电 工 程 学 院 班 级 :

A05 电 信 指 导 教 师 :

赵 秋 亮、张 华 浙江海洋学院教务处 2009 年 1 月 1 日

浙江海洋学院《课程设计成果说明书》规范要求 课程设计说明书是课程设计主要成果之一,一般在 2000~3000 字。

1.说明书基本格式 版面要求:打印时正文采用 5 号宋体,A4 纸,页边距上、下、左、右均为 2cm,行间距采用固定值 20 磅,页码底部居中。文中标题采用 4 号宋体加粗。

2.说明书结构及要求(1)封面(2)课程设计成绩评定表(3)任务书(指导教师下发)(4)摘要 摘要要求对内容进行简短的陈述,一般不超过 300 字。关键词应为反映主题内容的学术词汇,一般为 3-5 个,且应在摘要中出现。

(5)目录 要求层次清晰,给出标题及页次。最后一项为参考文献。

(6)正文 正文应按照目录所确定的顺序依次撰写,要求论述清楚、简练、通顺,插图清晰整洁。文中图、表及公式应规范地绘制和书写。

(7)参考文献

浙江海洋学院 课程设计 成绩评定表 2008—2009 学年 第 1 学期 学院 机电工程学院 班级 A05 电信 专业 电子信息工程 学生姓名(学 号)叶松金()课程设计名 称 通信技术课程设计 题 目 CRC 校验码的软件实现 指导教师评语 指导教师签名:

年 月 日 答辩评语及成绩 答辩小组教师签名:

年 月 日

浙江海洋学院 课程设计 任务书 2008—2009 学年 第 1 学期 学院 机电工程学院 班级 A05 电信 专业 电子信息工程 学生姓名(学号)叶松金()课程 名称 通信技术课程设计 设计 题目 CRC 校验码的软件实现 完成 期限 自 2008 年 12 月 29 日至 2009 年 1 月 2 日 共 1 周 设 计 依 据 本次设计所需知识 1.通信技术基础知识 CRC 校验码的基本思想是利用线性编码理论,在发送端根据要传送的 k 位二进制码序列,以一定的规则产生一个校验用的监督码(即 CRC码)r 位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和 CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。

2.软件基础知识 熟练使用 C、MATLAB、MAX-PLUS2 等编程语言中的任意一种,能够用软件实现所设计的校验码 设 计 要 求 及 主 要 内 容 1. 设计一个传送二进制码序列长度为 k 位,校验码长度 r=16 位的 CRC校验软件实现程序。

2.循环码的生成多项式采用 G(x)=x16 +x 12 +x 5 +1 3.用程序实现所设计的校验码,所选语言可为自己熟悉的程序语言,比如 C,MATLAB,MAX-PLUS 2 等。

3.详细写出软件实现过程并举例仿真,如 k=24 时的任意 24 位长二进制序列的 16 位长校验码值。

参 考 资 料 1 《程控交换技术》 2 《通信原理》 3 课程设计成果说明书样稿 4 其他资料自选 指导教 师签字 日期

C CRC 校验码的软件实现 叶松金(浙江海洋学院 机电工程学院 浙江 舟山 316000)摘要 数据通信技术是计算机网络发展的基础,已经成为现代生活必不可少的一部分。通信的目的是把信息及时可靠地传输给对方,但通过通信信道传输的数据往往会有差错产生,并且不可避免。为保证数据传输的正确性,需要对通信过程进行差错控制。循环冗余校验 CRC 由于编码简单、误判概率低,在通信系统中得到了广泛的应用。本文详细介绍了循环冗余校验 CRC 的差错控制原理,提出了 Matlab 软件程序实现方法,并进行了相关仿真和验证。

关键字:循环冗余校验 CRC 差错控制 Matlab

目 录 前 言..............................................................................................错误!未定义书签。

1. CRC 分类...................................................................................错误!未定义书签。

1.1.标准 CRC.........................................................................错误!未定义书签。

1.2.非标准 CRC.......................................................................错误!未定义书签。

2. CRC 校验原理..............................................................................错误!未定义书签。

3. CRC 校验算法分析........................................................................错误!未定义书签。

4. 循环冗余校验 CRC 的 Matlab 实现及分析..............................................错误!未定义书签。

5. CRC 举例验证及仿真......................................................................错误!未定义书签。

[参考文献]........................................................................................错误!未定义书签。

前 言 在数字数据通信中,由于信道上存在的各种复杂因数的影响,所传输的信号将受到不同程度的干扰,以至于在接收时发生错误。为保证数据在传输过程中的可靠性,必须对其进行校验,以检测所接收到的数据是否有误。循环冗余校验CRC(Cyclic Redundancy Code)就是一种被广泛采用的差错控制方法和数据编码方法。它具有编码和解码简单,检错和纠错能力强等特点,能有效的对数据进行编码,并可以显著地提高系统的检错能力,从而能够有效的保证数据传输的可靠性和正确性,因此在数据通信和计算机通信中有着广泛的应用。CRC校验码的计算一般可分为软件和硬件实现两种方法。本文讨论了CRC算法的Matlab实现,给出了具体程序,并运用Matlab这一强大的工具进行了仿真和验证。

1 1. . C CRC 分类 目前 CRC 的使用分为标准和非标准两种,非标准为用户自定义 CRC 的生成多项式,而标准是已被国际标准化组织规定的生成多项式。

1.1.标准 CRC 在通信协议中常见并被广泛使用的,主要有以下几种(见表 1)表 1 常用的几种 CRC 名称 生成多项式 简记 CRC-4 14  x x 0x13 CRC-16 12 15 16   x x x 0x18005 CRC-CCITT 15 12 16   x x x 0x11021 CRC-32 12 4 5 7 8 10 12 16 22 23 26 32            x x x x x x x x x x x x 0x104C11DB7 1.2.非标准 CRC 非标准的 CRC 一般是为了某种用途而采用的不同于标准的生成多项式,实际操作原理相同。主要是用于需要 CRC 但需要低成本的应用,或者为了减轻处理机的处理负担,又能保证数据可靠性的折中办法。

2 2. . C CRC 校验 原理 CRC 校验利用线性编码理论,在发送端根据要传送的 k 位二进制码序列,以一定的规则产生一个校验用的监督码(即 CRC 码)r 位,并附在信息后面,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和 CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。

在代数编码理论中,将一个码组表示为一个多项式,码组中各码元作为多项式的系数。例如:表示为0 1 2 3 4 5 6* 1 * 0 * 1 * 0 * 0 * 1 * 1 x x x x x x x      ,即 12 5 6   x x x。

设编码前的原始信息多项式为 P(x),P(x)的最高次幂加 1 等于 k;生成多项式为 G(x),G(x)的最高次幂等于 r;CRC 多项式为 R(x);编码后带循环校验码 CRC 的信息多项式为 T(x)。

发送方编码方法:将原始信息多项式 P(x)乘以rx(即对应的二进制码序列左移 r 位),再与生成多项式 G(x)做模 2 除,所得余式即为循环校验码 CRC。用公式表示为)()()(x R x P x x Tr 。

接收方解码方法:将 T(x)除以 G(x),若余数为 0,则说明传输中无错误发生,否则说明传输有误。

举例来说,设原始信息码为 1010,生成多项式为 1011,即 x x x P  3)(,1)(3   x x x G,计算循环校验码 CRC 的过程用竖式法表示如下。

G(X)→*** ←P(x)*rx(右移 r 位)1011-------1000 1011-----011 ←R(x)(CRC 码)最后得到余式为 011, 注意到 G(x)最高幂次 r=3,得出 CRC 为 011,T(x)= 如果传输无误,)()(x Gx T无余式。回头看一下上面的竖式除法,如果被除数是,显然在商最后一个 1 时,就能除尽。若传输有误,就有余式存在。

3 3. . C CRC 校验算法分析 CRC 检验码的编码方法是用待发送的二进制数据 P(x)除以生成多项式 G(x),将最后的余式作为CRC 校验码。其实现步骤如下:

(1)设待发送的数据块是 k 位的二进制多项式 P(x),生成多项式为 r 阶的 G(x)。在数据块的末尾添加 r 个 0,数据块的长度增加到 k+r 位,对应的二进制多项式为)(x P x r。

(2)用生成多项式 G(x)去模 2 除)(x P x r。求得余数为 r-1 阶的二进制多项式 R(x)。此二进制多项式 R(x)就是 P(x)经生成多项式 G(x)编码的 CRC 校验码。

(3)将校验码 R(x)添至 P(x)的末尾,即可得到包含 CRC 校验码的待发送字符串。

从 CRC 的编码规则可以看出,CRC 编码实际上是将待发送的 k 位二进制多项式 P(x)转换成了可以被 G(x)除尽的 k+r 位二进制多项式 T(x)。所以,进行译码时可以用接收到的数据去除 G(x),如果余数为 0,则表示传输过程没有错误;否则,传输过程存在错误。

4 4. . 循环冗余校验 C CRC 的 的 b Matlab 实现及分析 由于 Matlab 语言简洁紧凑,使用方便灵活,故选用 matlab 完成 CRC 的软件实验。给出程序如下:

P=input("请输入待发送数据的二进制序列")m=length(P);G=[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1];A=[P,zeros(1,16)];for i=[1:m] if A(i)==1 for j=(1:17)A(i+j-1)=xor(A(i+j-1),G(j));end end

end for k=[1:16] CRC16(k)=A(m+k);end CRC16 首先由用户输入待发送数据的二进制序列赋给两个数组 P。由于 Matlab 本身的特点,在数据输入时都是以数组的形式呈现。另外,由于采用 CRC 校验时,生成多项式的首位和最后一位必须为 1,在这里我们采用 CRC-CCITT,即 15 12 16   x x x。由程序检测出待发送数据和生成多项式的位数,赋给 m,由于采用 CRC-CCITT,这里 n=17,接着将待发送数据的末尾添加 n-1 个 0,并传递给数组 A。将数组A 与生成多项式做模 2 除运算。模 2 除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位。所以实际上就是异或。然后再移位做下一位的模 2 减。首先将数组 A 的第一位与数组 G 的第一位做异或运算,并将结果重新赋给 A,判断 A 的首位是否为 1,继续循环做下一位的异或运算,直到余数的位数小于除数。将最后得到的数组 A 的前 m 位的 0 去掉,就得到所需的循环冗余校验码 CRC。将 CRC 添加到待发送数据末尾就可到包含 CRC 校验码的待发送字符串。

5 5. . C CRC 举例验证及仿真 输入 24 位长二进制序列,采用生成多项式 1)(5 12 16    x x x x G,即生成多项式序列为 00001,运行程序得到 CRC 为 0010。

与理论得到的 CRC 值一致,编程成功。

图 1 程序仿真运行结果

[ 参考文献] [1] 张翠霞,刘齐宏,唐常杰.基于 GEP 的非线性系统辨识算法[J].微计算机信息.2006,12-1:234-236.[2] 陈怀琛,吴大正,高西全.MATLAB 及在电子信息课程中的应用[M].电子工业出版社,2006.3.[3] 王新梅.纠错码与差错控制.人民邮电出版社,1989.[4] 宋焕章.计算机纠错编码.国防科技大学出版社,1990.[5] 樊昌信,吴成柯.通信原理[M].国防工业出版社,2006.6.[6] 叶敏.程控数字交换与交换网[M].北京邮电大学出版社,2003.

采矿学课程设计说明书

螺旋桨设计说明书课程设计

网上书城数据库设计说明书课程设计

简单模型机设计说明书(课程设计)

《电力拖动与控制系统》课程设计说明书

本文标题: 课程设计成果说明书
链接地址:https://www.dawendou.com/fanwen/qitafanwen/362940.html

版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《课程设计成果说明书》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

重点推荐栏目

关于大文斗范文网 | 在线投稿 | 网站声明 | 联系我们 | 网站帮助 | 投诉与建议 | 人才招聘 | 网站大事记
Copyright © 2004-2025 dawendou.com Inc. All Rights Reserved.大文斗范文网 版权所有