《MATLAB语言》课程论文基于MATLAB的基本数字逻辑电路搭建与仿真姓名:岳鹏飞学号:12009243754专业:电子信息工程班级:2010级指导老师:汤全武学院:物理电气信息学院完成日期:2011年12月17日2基于MATLAB的基本数字逻辑电路搭建与仿真(岳鹏飞120092437542010级电子信息工程班)[摘要]数字电路课程中涉及的主要内容是一些分析波形的问题,例如一些基本的逻辑电路。这些问题往往抽象,难于理解,同时不易掌握。而MATLAB语言正是处理这些问题的好帮手。借助MATLAB的Simulink工具箱,仿真辅助学习,对数字电路的学习将有很大的帮助。此外,利用其可以减少工作量,节约时间,提高工作效率,加深理解,同时可以培养应用能力,加强分析问题、解决问题的能力。本文介绍了利用MATLAB对基本的数字逻辑电路建立完整仿真模型的过程和进行动态仿真的方法,最后给出仿真结果,验证了方法的可行性和模型的正确性。[关键字]MATLABSimulink数字逻辑电路建模仿真一、问题的提出MATLAB是英文MATrixLABoratory(矩阵实验室)的缩写。MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。它是适合多学科、多种工作平台的功能强大、界面友好、且开放性很强的大型优秀应用软件,同时也是国内外高等院校数学、数值分析、数学建模、数字信号处理、自动控制理论以及工程应用等课程的基本教学和实验仿真工具。Simulink是MATLAB的重要组成部分。它是MathWorks公司于20世纪90年代初开发的,在MATLAB环境下对动态系统进行建模、仿真和分析的一个软件包。“Simulink”一词有两层含义,“Simu”表明它可用于系统仿真;“link”表明它能进行系统连接。在该软件环境下,用户可以在屏幕上调用现成的模块,并将它们适当连接起来以构成系统的模块,即所谓的可视化建模。建模以后,该模型为对象运行Simulink中的仿真程序,可以对模块进行仿真,并可以随时观察仿真结果和干预仿真过程。Simulink由于功能强大、使用简单方便,已成为应用最广泛的动态系统仿真软件。众所周知,数字电路课程是电类专业一门重要的专业基础课(主干课)。学生学好该课程对后续专业课的学习至关重要。由于该课程涉及的主要内容是一些分析波形的问题,而且抽象,难于理解。借助仿真辅助学习,对课程的学习将有很大的帮助。数字电路课程中涉及的基本门电路包括非门、与门、与非门、或门、或非门、异或门等,在Simulink库中都可实现。Simulink库中提供了一个LogicalOperator模块,将其拖动到所建文件中,双击该模块并合理选择功能,即可很方便的实现基本的逻辑关系。本文旨在使用MATLAB对基本的数字逻辑电路进行建模和仿真,并对仿真结果进行分析和验证。二、常用模块简介一个数字系统通常包含有许多数字逻辑电路。根据逻辑功能的不同特点,可以把这些逻辑电路分成两大类,一类叫组合逻辑电路,另一类叫做时序逻辑电路。根据数字电路课程内容,以门电路→组合逻辑电路;触发器→时序逻辑电路为主要内容为思路。1、主模块(基本逻辑关系)3六种常用的逻辑关系,位于Simulink库中MathsOperations子库中的LogicalOperator模块,将其拖动到所建M文件中。然后,双击该模块后将出现以下六种逻辑关系,按需选择。六种模块关系如图1所示。图1主模块(基本逻辑关系)四种常用的触发器,位于SimulinkLibrary中SimulinkExtras子库中的FlipFlops模块。2、辅助模块(信号发生器、时针、显示器等)辅助模块如图2所示。图2辅助模块(信号发生器、时针、显示器等)还可以根据需要,混合使用常用库中的模块来组合系统,也可以封装自定义的模块等。三、基本逻辑关系实例1、自建三个输入信号signal1、signal2、signal2,实现一个异或的逻辑关系并运行。(1)打开MATLAB进入Simulink新建一个model在Simulink找SignalBuilder。(2)在Simulink→LogicalOperator中,找and(与门),可双击修改属性为xor(异或门)。再找到scope(示波器)。(3)对该题进行分析,在Simulink工具箱中找到相应能够实现其逻辑功能的模块并修改模块参数,在连线并设置仿真参数。题1.1SignalBuilder的建立如图1所示。图1SignalBuilder的建立4题1.2异或门和示波器的建立如图2所示。图2异或门和示波器的建立题1.3异或门参数的修改如图3所示。图3异或门参数修改题1.3总模型的建立如图4所示。图4问题1基于MATLAB搭建的基本数字逻辑电路模型5问题1输入信号结果仿真如图4所示。图5问题1中输入信号波形问题1输出波形的仿真如图6所示。图6问题1中输出信号波形2、请用Simulink搭建出下面的数字逻辑电路DBCAZ'1(1))'')((')(2CBBADDBCABZ(2)并自己选定信号验证这两个电路是等价的。分析:(1)打开MATLAB进入Simulink新建一个model。(2)在Simulink→sources找plusegenerator。(3)在Simulink→LogicalOperator中,找and(与门),可双击修改属性为or(或门)或not(非门)。再找到scope(示波器)。(4)连线。然后修改A,B,C的周期,可设为2:4:8。6解:基本思路:对该题进行分析,在Simulink工具箱中找到相应能够实现其逻辑功能的模块并修改模块参数,在连线并设置仿真参数。2.1用Simulink工具箱建模。通过分析该题,共需要逻辑运算模块、脉冲源、示波器三种模块。在该表达式中共需要七个“或门”、五个“与门”、四个“非门”。均可用逻辑运算模块来实现。整个模块如图7、图8所示,具体参数设置如图9、图10、图11所示。整个模块如图7、8所示。图7问题2中1Z的基于MATLAB搭建的基本数字逻辑电路模型图8问题2中2Z的基于MATLAB搭建的基本数字逻辑电路模型7问题2中输入信号A的参数设置如图9所示图9问题2中输入信号A的参数设置问题2中输入信号B的参数设置如图10所示。图10问题2中输入信号B的参数设置8问题2中输入信号C的参数设置如图11所示。图11问题2中输入信号C的参数设置2.2仿真结果如图12、图13所示。图12问题2输出信号1Z的输出波形9图13问题2输出信号2Z的输出波形故该问题得证。3、考虑下面的逻辑关系式:Z=YXYYXX(1)用Simulink中提供的逻辑运算符来搭建一个数字逻辑电路,根据输入信号X和Y确定输出Z。分析:(1)打开MATLAB进入Simulink新建一个model。(2)在Simulink→sources找plusegenerator。在两路给定的输入信号中,X信号直接采用脉冲信号(PulseGenerator),Y信号亦采用脉冲模块,但将其延迟时间设置为0.5。(3)在Simulink→LogicalOperator中,找and(与门),可双击修改属性为nand(与非门)或nor(或非门)。再找到scope(示波器)。(4)连线。(5)在仿真中选择定步长算法,并设步长为0.01,观察并分析X、Y、Z信号波形。解:基本思路:对该题进行分析,在Simulink工具箱中找到相应能够实现其逻辑功能的模块并修改模块参数,在连线并设置仿真参数。3.1用Simulink工具箱建模。通过分析该题,共需要逻辑运算模块、脉冲源、示波器三种模块。在该表达式中共需要两个“与非门”、两个“与门”、一个“或非门”。均可用逻辑运算模块来实现。整个模块如图14所示,具体参数设置如图15、图16、图17所示。10问题3基于MATLAB搭建的基本数字逻辑电路模型如如图14所示图14问题3基于MATLAB搭建的基本数字逻辑电路模型问题3中输入信号X与y的参数设置如图15、16所示图15问题3中输入信号X的参数设置图16问题3中输入信号Y的参数设置问题3中固定步长仿真算法如图17所示图17问题3中固定步长仿真算法113.2仿真结果如图18所示。图18问题3输出信号Z的输出波形3题公式(1)根据数学知识得,Z=YXYYXX=)()(YXYYXX=)()(YXYYXX=)()()()(YYXYYXXX=)()(XYYX=XYYYXXYX=YXYX故仿真结果如图18所示。四、结论通过以上利用MATLAB语言对基本的数字逻辑电路进行建模和仿真,并对仿真结果进行分析和验证,我们不难得出以下结论:利用MATLAB的Simulink工具箱可以迅速地对数字逻辑电路进行建模与仿真,并且通过Scope模块可以非常直观的观察到输入和输出间的关系,进而分析得出数字逻辑器件的逻辑功能。可见,对于验证一个数字电路的正确性和有效性,仿真是一种既不需要设备,又行之有效的方法的方法。该方法不仅可以简化数字逻辑电路的计算,而且可以节约计算时间、方便地调试电路参数。结果表明,MATLAB提供了强大而简易的仿真功能以及很强的扩充性,能充分满足数字逻辑电路的需要,从而可以大大的提高计算精度和工作效率,在数字逻辑电路等科学研究与工程实践领域中具有很广泛的实际应用价值。五、课程体会12经过一学期紧张而有序的课程学习,在忙碌之余也得到了颇多的收获。我深深体会到MATLAB语言相对于同类程序语言更方便、更简洁易懂。通过学习,我深入理解了实际问题与模型、模型与软件算法、算法与仿真的内在联系,使我对在计算机软件辅助下解决实际问题的处理过程,有了较为深刻的理解。它不仅提高了我的发现问题、分析问题、进而解决问题能力,而且也加强了我的软件应用能力,此外,还培养了严谨、规范、理论联系实际的科学态度,为今后处理问题,从事科研活动、继续深造以及社会实践打下了扎实的基础。通过此次作业,使我更加认识到MATLAB软件的强大功能,让我学会了应该怎样将一门所学的新的语言运用到自己所学的其他课程中,并且在完成作业中通过对MATLAB所涉及领域的一些了解,让我深深感受到MATLAB在我们生活中的应用范围之广,相信MATLAB语言将会成为我们以后学习生活中不可缺少的得力助手。也感谢老师的细心教导,传授我们这么一个有用强大的软件。[参考文献][1]刘卫国.MATLAB程序设计与应用(第二版)[M].北京:高等教育出版社,2006.[2]康光华.电子技术基础数字部分(第五版)[M].北京:高等教育出版社,2007.[3]王宏.MATLAB6.5及其在信号处理中的应用[M].北京:清华大学出版社,2005.[4]张志涌.掌握和精通MATLAB[M].北京:北京航空航天大学出版社,1997.