俎云霄 曾昶畅
【摘要】“信号与系统”是电子信息类专业的重要专业基础课,概念多,理论性强,比较抽象。为便于学生理解和掌握,设计了基于LabVIEW的信号与系统仿真实验系统。详细介绍了系统构架、设计方法及主要知识点的演示示例。
【关键词】LabVIEW;信号与系统;仿真;实验
【中图分类号】G420 【文献标识码】B 【论文编号】1009—8097(2009)11—0141—04
一 引言
“信号与系统”是高等院校电子信息类专业的一门非常重要的基础课,但由于概念多、推导多、理论抽象,所以学生学习起来普遍感到不能很好地理解和掌握其基本理论与分析方法。如何让学生深刻理解课程中的基本概念、基本原理,牢固掌握基本分析方法以及学会灵活运用这一理论工具,是值得研究和探讨的一个问题。
在课堂教学中适时引入仿真实验,可以帮助学生很好地理解理论理念,建构知识,提高教学质量。本研究以LabVIEW作为仿真软件构建了“信号与系统”仿真实验系统,该系统界面友好、功能齐全,紧密结合“信号与系统”课程[1,2],主要面向讲授和学习“信号与系统”课程的教师和同学,不仅便于教师在课堂上进行教学演示,而且还便于学生在课后进行自学或复习。
二 系统构架及设计
1 系统构架
仿真实验系统与“信号与系统”课程内容基本对应,共分为四大模块,分别是“连续时间信号分析”、“傅里叶级数和傅里叶变换”、“调制,滤波器,离散时间信号分析”和“声音信号及其波形”。四个模块在内容上依次递进,如图1所示。
模块1是基础,主要介绍基本信号及其时域性质;模块2是对基本信号的频域性质分析;模块3主要是信号与系统的基本知识在通信中的应用;模块4是关于声音的采集、播放及其波形,是扩展部分。每个模块中又根据实验内容分为几个子程序。
各模块中的实验内容如表1所示。
整个系统采用模块化的设计思路,每个程序均由如下几个模块构成:(1)信号产生模块(2)信号处理模块(3)结果显示模块。信号产生模块负责产生若干个特定信号,该信号经过信号处理模块进行处理,例如卷积、滤波、FFT等,最后经过结果显示模块显示信号波形,或使喇叭发音。
2 主界面设计
作为系统的主界面,不仅要美观,更要简捷明了。进入主界面首先显示四个模块的内容,并具有“点击模块按钮就能弹出子界面窗口的功能”。设计步骤如下:添加背景图片添加按钮实现弹出功能。最后完成的主界面如图2所示。
3 程序设计
如前所述,各程序的设计采用模块化方法,设计前首先要确定需要显示的信号波形,然后根据分析、计算需求选用函数,最后进行所需参数调整的标识设计。LabVIEW提供了大量函数[3-6],且这些函数可以被层次化无限调用。编程过程就像是在绘制流程图,首先在前面板上把按钮、x-y图等控件布局整齐,然后在程序框图上创建需要的函数,最后再正确地将其连接起来即可。
本系统中,信号产生模块用到的函数主要有: 和 求值,微、积分,正弦信号,高斯白噪声,均匀白噪声,脉冲序列和基本函数发生器等。信号处理模块用到的函数主要有:加、减、乘、除,数据类型转换,数模转换,卷积,数组函数相加,FFT,复数的坐标转换,取负数,信号合并,Butterworth滤波器,数字FIR和IIR滤波器及频率响应函数等。结果显示模块主要使用x-y图,个别使用数值显示控件和写入声音输出。除此之外,为了程序显示直观、使用便捷,还用到while循环和条件结构。
LabVIEW是一种简单易学的编程工具,选用函数是编程的关键。关于函数的功能、使用方法和范例均可以通过LabVIEW提供的详细帮助信息得到[3-6]。
由于篇幅所限,下面仅以最为复杂的“FIR滤波器”为例说明程序的编写方法。
(1) FIR滤波器
首先明确本程序要演示有限冲击响应(FIR)滤波器的频率特性,需要产生原始信号、滤波后的信号、滤波器的幅频响应和相频响应的波形,其中原始信号和滤波后信号的波形放在同一个图形框中。本程序涉及的参数较多,有:拓扑结构,滤波器类型,通带增益,阻带增益,标尺,窗,最低通带,最高通带,最低阻带和最高阻带,而且这些参数在程序运行过程中可以随时改变。设计完成后的前面板如图3所示。
设计步骤如下:
信号发生:在程序框图上创建“基本函数发生器”,“原信号参数”经过“按名称解除捆绑”后,分解为“信号类型”、“信号频率”2个实数数据,再输出到“基本函数发生器”的“信号类型”、“频率”端口,“采样信息”输出到“采样信息”端,则“基本函数发生器”即产生符合参数规定的波形数组。
信号处理:创建“数字FIR滤波器”,将“滤波器参数”输出到“FIR滤波器规范”端,“附加参数”与“可选FIR滤波器规范”输入端相连。把“基本函数发生器”产生的信号送到“信号输入”端,经过“数字FIR滤波器”的处理,将得到“滤波后的信号”波形数组、“幅频响应函数”簇数据和“相频响应函数”簇数据。
结果显示:将“基本函数发生器”和“数字FIR滤波器”的“信号输出”经过“创建数组”输出到“原信号和滤波后的信号”,“数字FIR滤波器”的“滤波器信息”经过“按名称解除捆绑”后,变为magnitude H(w),phase H(w)两个簇数据,再将两者分别输入“幅频响应函数曲线”和“相频响应函数曲线”。
最后将所有函数都放在“while循环”中,完成设计。流程图如图4所示。
下面再对几个典型程序的设计方法进行简单介绍并给出其前面板形式。
(2) 矩形调幅信号的傅里叶变换(频移特性)
用一个 模块产生矩形脉冲,将该矩形脉冲信号和一个余弦信号相乘得到矩形调幅信号,然后用两个 模块生成两对X、Y数组,再用一个“合并信号”模块分别把两个X数组变为一个X数组,用一个“乘法”模块把两个Y数组变为一个Y数组,最后把新的X、Y数组送至“示波器”模块即可得到矩形调幅信号的频谱。程序将显示余弦信号、矩形脉冲、矩形调幅信号及其频谱的波形,如图5所示。拉动蓝色滑条可以改变矩形脉冲的高度、宽度和余弦信号的频率。
(3) 周期矩形脉冲抽样后的傅里叶变换
本程序将显示四个波形,如图6所示,分别是周期矩形脉冲及其傅里叶变换和采样后的周期矩形脉冲及其傅里叶变换。周期矩形脉冲用“脉冲序列”模块实现,将代表此周期矩形脉冲的数组送入“示波器”模块,然后修改“示波器”模块的属性(在“直方图”选项栏中选中相应的项),即可得到采样后的周期矩形脉冲。得到频谱的方法与(3)相同。拉动滑条,改变周期矩形脉冲的高度、宽度、周期和采样周期,可以看到不同采样频率的信号频谱。
(4) 脉冲编码调制(PCM)
本程序要演示由模拟到数字再到编码的过程,显示原始模拟信号、采样后的信号、量化后的信号和编码后的数字信号,如图7所示。显示时,前三种信号均来自同一数组,将此数组送入三个“示波器”模块,分别调节各个示波器的属性,即可产生采样和量化的效果。运用一个“DWDT模数转换”模块将模拟信号转换为数字信号。
PCM涉及的参数较多,有分辨率、数据格式、满刻度范围(峰-峰)、采样率、采样数等,在相应框中改变这些参数,可以看到不同情形下的信号波形。
(5)声音采集(波形声音,PCM格式)
本程序用来从话筒采集声音并显示其波形。由如下模块实现:文件对话框,写入并打开声音文件,配置声音输入,读取声音输入,写入声音文件,关闭声音文件和声音输入清零。图8即为录制的一段声音信号,其中红色波形为左声道,白色波形为右声道。
4 执行文件的生成
为了便于系统的使用,将所有程序和图片文件放在一个文件夹中,新建一个项目,生成一个可执行文件。方法为:在“项目浏览器”对话框中选择“我的电脑添加文件夹”,将该文件夹添加进去;在项目中依次选择:程序生成规范、新建、应用程序(exe),将会弹出一个“我的应用程序属性”设置框,设置为exe执行文件即可。生成后的exe程序被保存到先前设定的文件夹中,当计算机安装了相应版本的LabVIEW开发平台,或相应版本的LabVIEW Runtime Engine后,双击图标即可运行程序。
三 系统使用说明
点击系统图标,首先出现如图1所示的主界面,用户根据需要点击相应的模块标识,即进入对应的模块,然后再点击模块中的程序名称即可运行相应的程序。整个系统都有很好的文字及符号标识,根据提示可以方便地改变参数。既可以在程序运行过程中直接在前面板上输入数据进行参数修改,如图3、7、8等所示,也可以通过拉动前面板上的滑条改变参数,如图5、6所示,从而能够动态地看到不同参数情况下的图形变化。除此之外,使用图形界面上的“游标”,可以看到游标所在点处的X值和Y值,使用“图形工具板”,可以观察波形图的细节,如图9所示。
四 结束语
本文介绍了利用LabVIEW仿真软件构建“信号与系统”仿真实验系统的框架和设计方法,并针对“信号与系统”课程中最重要和最难理解的知识点设计了相应的演示程序,整个系统界面友好,使用方便,程序中涉及的相关参数可以根据需求灵活改变,从而演示多种不同场景。希望通过使用该系统能帮助学生更好地理解“信号与系统”的基本概念和理论,使教师更方便教学,从而提高教学质量。
参考文献
[1] 郑君里,应启衍,杨为理.信号与系统(上册)[M].第二版.北京:高等教育出版社,2005:1-320.
[2] 郑君里,应启衍,杨为理.信号与系统(下册)[M].第二版.北京:高等教育出版社,2005:1-279.
[3] 王磊,陶梅.精通LabVIEW 8.0[M].北京:电子工业出版社,2008:45-255.
[4] 杨乐平,李海涛.北京LabVIEW高级程序设计[M].北京:清华大学出版社,2003:1-350.
[5] 龙华伟,顾永刚.LabVIEW 8.2.1与DAQ数据采集[M].北京:清华大学出版社,2008:200-343.
[6] 王海宝,吴光杰.LabIEW虚拟仪器程序设计与应用[M].成都:西南交大出版社,2005:34-98.