加急见刊

关于MATLAB通信仿真在《通信原理》课程教学中的应用

李玲  2011-11-11

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

通过图3和图4的观察,我们可以很方便的看到抽样前后的波形变化,同时可以通过参数的设置看到失真的抽样波形,使同学们对于抽样定理的内容和适用条件有了更为直观的认识。 四、总结 将MATLAB/SIMULINK可视化动态仿真应用到通信原理课程的教学中,使一些抽象的概念和原理可视化,有助于同学们理解和接受,既提高了教学质量和效率,又可为学生提供良好的通信系统开发、设计、模拟、调试和分析平台,锻炼其分析和解决问题的能力。 [

下载