1、MATLAB 通信仿真在通信原理课程教学中的应用摘要本文介绍了 MATLAB 软件中通信工具箱的两种仿真方法,并重点阐述了在 MATLABSIMULINK 环境下对通信系统进行可视化动态仿真的一般步骤和实现方法。最后通过教学范例和实验结果说明,MATLAB 通信系统仿真模型能够反映通信系统的动态工作情况,具有较强的演示性、可视性和实用性,是通信原理课程教学中强有力的辅助工具。关键词MATLAB SIMULINK 仿真 通信系统一、引言通信原理是通信及相关专业的专业基础课,是许多后续专业课程的基础。其中很多基本概念、重要原理将贯穿整个通信专业的各门课程之中。然而,对于刚刚接触通信专业的学生来说,
2、类似于调制、解调、抽样、量化、复用等概念及原理往往过于抽象,传统的教学方法很难高效的使学生从根本上理解这些概念、原理及过程。将 MATLAB 通信系统的计算机仿真演示应用到通信原理的教学中,能够较好的解决这个问题。采用 MATLAB 对基本原理和方法进行计算机仿真演示,能够使复杂的计算简单化,抽象的理论具体化、直观化,从而提高学习效率,增强学习兴趣,在一定程度还上培养学生进行通信系统工程设计的能力。MATLAB 最初是 Mathworks 公司推出的一种数学应用软件,经过多年的发展,开发了包括通信系统在内的多个工具箱,从而成为目前科学研究和工程应用最流行的软件包之一。MATLAB 的动态仿真软
3、件 SIMLINK 提供了可视化的系统仿真环境和多个模型库,在模型库中提供了丰富的功能模块,采用模块化设计,可以方便、灵活地建立通用性较强的通信仿真模型。MATLAB 通信工具箱是一套用于通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包,主要由两部分组成:通信系统功能函数库和 SIMULINK 通信系统仿真模型库。下面分别从两个方面介绍MATLAB 通信系统仿真方法。二、使用通信系统函数库实现通信系统仿真MATLAB 通信系统功能函数库1由 70 多个函数组成,每个函数又有多种选择参数,函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码解码函数、调制解
4、调函数、滤波器函数、TDMA、FDMA、CDMA 函数等。现举例说明使用 MATLAB 函数库实现仿真。例 1、计算平均信息量2(1)分析:消息 x 中所包含的信息量 I 是消息发生的概率 P(x)的函数,即:(1)信息量 I 的单位与对数的底数有关:a=2 单位为比特(bit,简写为 b)a=e 单位为奈特(nat,简写为 n)a=10 单位为笛特(Det)由 n 个符号组成的信息源的平均信息量 H(x)为:(2)公式(1) 、 (2)本身较简单,学生要记忆也不困难,但是由于牵涉到对数运算,而且对数的底数是可以变化的,因此增加了计算的难度。在此我们可以建立一个 MATLAB 的 M 文件,把
5、复杂的计算过程交给计算机来完成。(2)参考代码:建立一个 M 文件保存为 message.mfunction r=message(x,n)r=0;for i=1:nr=r-x(i)*log(x(i)/log(2);enddisp(此离散信源的平均信息量为);(3)运行 MATLAB 的 M 文件求解平均信息量当需要求解一组符号的平均信息量时,只需要在 MATLAB 的命令窗口输入该组符号出现的概率和符号个数就可方便快速的得出平均信息量。例如,由 4 个符号组成的信息源,相应的概率为 ,求平均信息量,只需要在 MATLAB 的命令窗口输入:message( ,4)然后敲回车即可在窗口中显示出计算
6、结果:“此离散信源的平均信息量为 1.75”在需要的地方灵活使用该 M 文件可以求出不同信号源的平均信息量,当需要求解的符号数特别多、数字比较复杂时更能体现其优越性。三、基于 MATLAB/SIMULINK 的可视化动态仿真SIMULINK 是 MATLAB 提供的图形界面仿真工具,由一系列模型库组成,包括 Sources(信源模块)、Sinks(显示模块)、Linear(线性环节)、Connections(连接)、BlocksetsToolboxes(其他环节)等。在这里,整个通信系统的流程被慨括为:信号的产生与输出、编码与解码、调制与解调 多址接入方式、滤波器以及传输介质的模型。在每个设计
7、模块中还包含有大量的子模块,它们基本上覆盖了目前通信系统中所应用到的各种模块型。根据所要仿真的通信系统的数学模型(或数学表达式),用户只要从上述各个模型库中找出所需的模块,用鼠标器拖到模型窗口中组合在一起,并设定好各个模块参数,就可方便地进行动态仿真。从输出模块可实时看到仿真结果,如时域波形图、频谱图等。每次仿真结束后还可以更改各参数,以便观察仿真结果的变化情况。另外,对 SIMULINK 中没有的模块,可根据自己掌握的技术生成所需的子模块,并且可以封装和自定义模块库,以便随时调用。1、可视化动态仿真的步骤31)建立数学模型:根据通信系统的基本原理,将整个系统简化,确定总的系统功能,并将各部分
8、功能模块化,找出各部分之间的关系,画出系统流程框图模型。2)仿真系统:根据建立的模型,从 SIMULINK 通信模型库中,将所需要的单元功能模块拷贝到 Untitled 窗口,按系统流程框图模型连接,组建要仿真的通信系统模型。3)设置、调整参数:参数设置包括运行系统参数设置(如系统运行时间、采样速率等)和功能模块运行参数设置(正弦信号的频率、幅度、初相;低通滤波器的截至频率、通带增益、阻带衰减等)。4)设置观察窗口,分析仿真数据和波形:在系统模型的关键点处设置观测输出模块,用于观测仿真系统的运行情况,以便及时调整参数,分析结果。5)生成新的模块:对于 Communication Toolbox
9、 中没有的功能模块,可以根据已掌握的技术生成所需新的子模块,例如由 C 或 Fortran 编写MEX 文件,编译成 DLL 后利用 SIMULINK 提供的封装(Masking)功能封装或自定义模块库,以便随时调用。2、可视化动态仿真实现范例例 2、抽样定理的仿真实现抽样定理的数学模型如图 1 所示,可建立相应 SIMULINK 仿真模型如图 2 所示,在设定的参数下对正弦信号仿真结果如图 3 所示。号源参数设置:Sine wave 参数设置Pulse Generator 参数设置:改变信号源的参数设置可以得到锯齿波的抽样波形如图 4。通过图 3 和图 4 的观察,我们可以很方便的看到抽样前后的波形变化,同时可以通过参数的设置看到失真的抽样波形,使同学们对于抽样定理的内容和适用条件有了更为直观的认识。四、总结将 MATLABSIMULINK 可视化动态仿真应用到通信原理课程的教学中,使一些抽象的概念和原理可视化,有助于同学们理解和接受,既提高了教学质量和效率,又可为学生提供良好的通信系统开发、设计、模拟、调试和分析平台,锻炼其分析和解决问题的能力。参考文献1孙屹.MATLAB 通信仿真开发手册M.国防工业出版社,2004,1341372杜思深.现代通信原理M.清华大学出版社,2004,10113张志涌.掌握和精通 MATLABM.北京航空航天大学出版社,1997,228251