基于MATLAB的差错控制技术仿真本科毕业论文

发布时间 : 星期一 文章基于MATLAB的差错控制技术仿真本科毕业论文更新完毕开始阅读

西安工业大学北方信息工程学院毕业设计(论文) (7,4)循环码编码流程图如图2.2所示。

确定A(x): 初始化 m(x)xn?k m(x)?xn?k确定余式r(x): r(x)? g(x)A(x)?xn?k?m(x)?r(x) 储存 A(x) 图2.2 循环码编码流程图

2.3.4循环码译码原理

对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单,可以由式(2.12)通过判断接收到的码组多项式B(x)是否能被生成多项式g(x)整除作为依据。当传输中未发生错误时,也就是接收的码组与发送的码组相同,即A(x)=B(x),则接收的码组B(x)必能被g(x)整除;若传输中发生了错误,则A(x)≠B(x),B(x)不能被g(x)整除。因此,可以根据余项是否为零来判断码组中有无错码。

需要指出的是,有错码的接收码组也有可能被g(x)整除,这时的错码就不能检出了。这种错误被称为不可检错误,不可检错误中的错码数必将超过这种编码的检错能力。

在接收端为纠错而采用的译码方法自然比检错要复杂许多。为了能够纠错要求每个可纠正的错误图样必须和校正子之间存在某种对应关系。

纠错可以按照下述步骤进行:首先,由接收到的码多项式B(x)计算校正子(伴随式)多项式S(x);其次,由校正子S(x)确定错误图样E(x)。基于错误图样识别的译码器称为梅吉特译码器;最后,将错误图样E(x)与B(x)相加,纠正错误。

9

西安工业大学北方信息工程学院毕业设计(论文) 编码为(7,4)循环码的译码流程图如图2.3所示。

S(x)=0,无误码 否

否 是 由S(x)确定错误图样E(x)

纠错C(x)=E(x)+R(x) 由R(x)确定S(x)的余式。S(x)=错误!未找到引用源。 初始化 存储C(x) 图2.3 译码程序框图

10

3 Matlab软件与Simulink仿真平台

3 Matlab软件与Simulink仿真平台

3.1Matlab

3.1.1Matlab发展史

在当今科学技术飞速发展的社会,Matlab已经成为国际上最为流行的科学与工程计算及仿真的软件工具。Matlab语言的功能也越来越强大,不断适应新的要求提出新的解决方法,而它亦不再是一个简简单单的“矩阵实验室[9]”,它已经成为了一种具有广泛的应用前景的全新计算机高级编程语言了,有人将它称之为为第四代计算机语言,它在国内外的高校和研究部门正扮演着重要的角色。由此可预见,在科学运算、工程仿真、自动控制与科学绘图领域 Matlab语言将长期保持其独一无二的地位。

20世纪70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用Eispack和Linpack的Fortran子程序库。Eispack是特征值求解的Fortran程序库,Linpack是解线性方程的程序库。在当时,这两个程序库代表矩阵运算的最高水平。其语言的首创者Cleve Moler教授参与编写了数值分析领域一些著名的著作和两个重要的Fortran程序Eispack和Linpack,并且他在数值分析,特别是在数值线性代数的领域中很有影响,他曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授。1980年前后,当时的新墨西哥大学计算机系主任Moler教授在讲授线性代数课程时,发现了用其它高级语言编程极为不便,于是他开始自己动手,利用业余时间为学生编写Einpack和Linpack的接口程序。Cleve Moler给这个接口程序取名为Matlab,该名为矩阵(matrix)和实验室(laboratory)两个英文单词的前三个字母的组合。这一软件利用了当时数值线性代数领域最高水平的Eispack和Linpack两大软件包中可靠的子程序,用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。

直到1984年,Cleve Moler和 John Lithe成立了MathWorks[10]公司,正式把Matlab推向市场,并继续进行Matlab的研究和开发。

在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算型软件,如 Matlab、Xmath、Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,如Mathematica、Maple等,这类软件以符号计算见长,能给出解析解和任意精度解,其缺点是处理大量数据时效率较低。MathWorks公司顺应多功能需求之潮

11

西安工业大学北方信息工程学院毕业设计(论文)

流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算、文字处理、可视化建模和实时控制能力,开发了适合多学科、多部门要求的新一代科技应用软件Matlab。经过多年的国际竞争,Matlab 已经占据了数值型软件市场的主导地位。

在Matlab进入市场前,国际上的许多应用软件包都是直接以Fortran和C语言等编程语言开发的。这种软件的缺点是使用面窄、接口简陋、程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。Matlab的出现,为各国科学家开发学科软件提供了新的基础。在Matlab问世不久的20世纪80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在Matlab上重建。

The MathWorks公司于1992年推出了具有划时代意义的Matlab4.0版本,并于1993年推出了其微机版, 可以配合Microsoft Windows一起使用,使之应用范围越来越广。1994年推出的4.2版本扩充了4.0版本的功能,尤其在图形接口设计方面更提供了新的方法。1997年推出的Matlab 5.0版允许了更多的数据结构,如单元数据、数据结构体、多维矩阵、对象与类等,使其成为一种更方便编程的语言。1999年初推出的Matlab 5.3版在很多方面又进一步改进了Matlab语言的功能。2000年10月底推出了其全新的 Matlab6.0正式版(Release 12),在核心数值算法、接口设计、外部接口、应用桌面等诸多方面有了极大的改进。虽然Matlab语言是计算数学专家倡导并开发的,但其普及和发展离不开自动控制领域学者的贡献。甚至可以说,Matlab语言是自动控制领域学者和工程技术人员捧红的,因为在Matlab语言的发展进程中,许多有代表性的成就和控制界的要求与贡献是分不开的。迄今为止,大多数工具箱也都是控制方面的。

Matlab软件具有着强大的数学运算能力和方便实用的绘图功能以及语言的高度集成性,而且它在其它科学与工程领域的应用亦是越来越广,有着广阔的应用前景和不可估量的潜能。子曰:“工欲善其事,必先利其器”。在决工程方面的问题需正确效率的“善假于物”,而有一种行之有效的工具能解决在教学与研究中遇到的问题,那么Matlab当仁不让的正是此“物”。它可以帮助使用者从繁琐、无谓的底层编程中解放出来。 3.1.2 M文件

Matlab除了如前所述的在命令窗口进行的直接交互的指令操作方式外,另外一种更为重要的工作方式就是m档的编程工作方式[11]。m档有两种形式,一种是脚本档(Script File),另一种是函数文件(Function File)。m文件的扩展名为\\.m。m档可以通过任何纯文本编辑器进行编辑,Matlab中也有自带的文本编辑器,使用edit命令即可开启。

12

联系合同范文客服:xxxxx#qq.com(#替换为@)