关键词:LabVIEW;虚拟仪器;模拟调制
Yu,Bo Liu,Xiang-lou Han,Jian
Abstract:The design of analog modulation experiment instrument based on LabVIEW is introduced. Based on the design thought of module and layer, the instrument can simulate the waveform of amplitude modulation, frequency modulation and phase modulation. Its several parameters can be adjusted and it has four waveform display windows. Simulation results show that the characteristic of each analog modulation is obvious。
Key Words: LabVIEW; Virtual Instrument; analog modulation
1 引 言
虚拟仪器技术是测控技术和计算机技术相结合的产物,它由计算机、相应的硬件(如数据采集卡、输入/输出卡等)和相应的软件开发平台(如LabVIEW)构成。虚拟仪器的功能主要由软件实现,不仅能执行传统仪器的功能,还能执行传统仪器无法实现的许多功能。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench, 实验室虚拟仪器工程平台)是美国国家仪器公司开发的最具影响力的虚拟仪器开发平台之一,是一种基于图形编程(G语言)的开发环境。主要应用于仪器控制、数据采集、数据分析和数据显示等领域,利用它可以方便地建立自己的虚拟仪器。其图形化的界面,众多的函数库和高级的分析程序使得编程和使用过程都更加直观、简便。
本文介绍以LabVIEW为软件平台,基于层次化、模块化编程方法的模拟调制虚拟实验仪的设计。
2 模拟调制虚拟实验仪的设计
调制通常分为模拟调制和数字调制两大类。在模拟调制中,调制信号是模拟信号,主要可分为普通调幅(AM)、抑制载波的双边带调幅(DSB)、单边带调幅(SSB)、频率调制(FM)、相位调制(PM)等。LabVIEW程序由前面板程序和框图程序两部分组成。LabVIEW的前面板,就像是一台电子仪器的操作面板;而框图程序就是安装在仪器内部的功能电路。
2.1 前面板设计
本实验仪的前面板设计如图1所示。该设计充分发挥了LabVIEW的特长,把5种模拟调制方式集成到一个统一的交互操作界面中,构成了一台模拟调制的综合实验仪。前面板可分为两大部分,即显示部分和控制部分。显示部分放置了4个显示器,可实现调制信号和已调信号的波形及频谱的同时显示,从而给出了调制前后信号的时域波形和频谱结构的直观对比,这是一般普通电子仪器无法实现的。控制部分按功能分为类型选择、频率选择、显示控制、调制指数调整及停止按钮等。通过类型选择,不仅可实现5种调制方式的切换,还可从正弦、三角波、方波、锯齿波中选定调制信号波形。需要说明的是,在显示控制部分,为了观察方便、波形特征明显,用户可很容易地改变时域信号显示的周期数、频域显示范围等参数。另外,前面板采用边框修饰,按功能进行了分类指示,使得前面板美观大方、可操作性强。
图1 模拟调制实验仪前面板
2.2 程序框图设计
(1) 主程序设计
程序框图与前面板的联系是十分紧密的,前面板的控制、显示等部件分别作为控制模块和输出显示模块出现在程序框图中,这同样与真实仪器的面板与内部功能电路的关系是相类似的。为了使在实验仪在运行中可以动态地改变各参数而获得实时的结果,运行后程序处于不断循环之中,直至用户停止,即全部程序都处于一个While Loop(Function>>Structures>>While Loop)结构之中,程序总框图如图2所示。循环结构内部是case(Function>>Structures>>Case)结构,把Enum(对应于前面板Control>>Ring & Enum>>Enum所选择的控制量)按调制类型赋予AM、DSB、SSB、FM、PM等5个备选值,从而可选择其一进入不同的调制类型模块。
各种调制类型常常有一些相同的控制参数,比如5种调制类型中均有载波频率这一控制量,若在前面板设置5个控制量显然不便操作,也不够简洁。本设计采用了创建Local Variable(本地变量)的方法来解决这一问题。例如首先设定“载波频率(kHz)”数值控制模块,用其来控制AM调制的载波频率。当其它调制类型需要用相同控制量时,首先用鼠标右击该控制模块,选择Create>>Local Variable得到本地变量;然后再右键击此本地变量选择Change To Read,最后把此本地变量与需控制的端口相连接,实现了一个控制量同时控制两种调制类型的载波频率。按此方法类推,便可达到用一个控制量同时控制更多端口的目的。
图2 模拟调制实验仪程序框图
(2) 子程序设计
为了使主框图程序看起来更加清晰和整洁,对每种调制类型都编写了具有类似输入和输出端口的调制子程序。本虚拟仪器可实现5种模拟调制的仿真实验,从而需要5个对应的子程序模块,现以DSB调制为例对子程序的设计进行简要介绍。
图3 DSB子程序结构图
图3中载波信号是以Sine Waveform.Vi (Function模板-Signal Processing子模板)为核心模块,结合属性设置而产生。而调制信号则采用Basic Function Generator.vi(Function模板-Waveform Generator子模板)为核心模块产生,该模块可选择调制信号为正弦波(Sine Wave)、三角波(Triangle Wave)、方波(Square Wave)和锯齿波(Sawtooth Wave),这使得波形仿真结果更丰富。FFT变换模块是以Amplitude and Phase Spectrum.vi (Function模板- Signal Processing子模板)为核心模块产生。为更加方便地控制时域和频域显示,还分别设计了的显示控制模块,其目的是使波形显示更为清晰地反映该调制方式的波形特点。
DSB子程序(此处命名为DSB_sub_new.vi)设计完成后,对其进行子程序模块封装。封装过程是,首先在前面板放置需要对外连接的输入控制量或输出量;然后在其前面板右上角右击图标,选择Show Connector,并可再次右击连接器(Connector),选择Remove Terminal或Add Terminal对端口进行适当的删除或增加;最后用鼠标点击连接器上的某一端口,再点击前面板上相应的某一输入量或输出量,实现该量的端口连接,以此类推。实际上该过程就像把具有某一功能电路板的输入、输出线引出来。封装后的DSB子程序模块如图4所示。
图4 DSB子程序模块
2.3 仿真实例
实例1: DSB仿真波形如图5所示。参数设定为:调制类型选为DSB,调制信号为Sine Wave(正弦波);调制信号频率为1kHz,载波频率为40kHz;基带频谱范围为2kHz,显示调制信号周期个数为2,已调频谱细化倍数为4。
图5 DSB调制仿真实例图
实例2:FM仿真波形如图6所示。参数设定为:当调制类型选为FM,调制信号为Triangle Wave(三角波);调制信号频率为2kHz,载波频率为60kHz;基带频谱范围为20kHz,显示调制信号周期个数为1,已调频谱细化倍数为1。
图6 FM调制仿真实例图
3 结束语
LabVIEW作为一种G语言,广泛应用于仪器控制、数据处理等领域的虚拟仪器开发。虚拟仪器与传统仪器相比,充分利用了现代计算机技术强大的数据运算、调用和显示能力。利用虚拟仪器技术开发的模拟调制虚拟实验仪,发挥了虚拟仪器的优点,具有改变参数容易、可操作性强、仿真结果特征明显等特点。
参考文献:
[1] 周井玲, 吴国庆. 基于LabVIEW的振动采集系统开发[J]. 微计算机信息. 2004, 20(9):37-38.
[2] 韩郁, 蒋宇中, 晏裕春. 基于LabVIEW的DQPSK调制解调电路的虚拟实现[J]. 微计算机信息, 2005, 21(12): 43-45.
[3] 洪焕凤,林明星. 基于虚拟仪器的实验教学[J]. 实验室研究与探索, 2005, 24(12): 84-86.
[4] 雷振山. LabVIEW7 Express 实用技术教程[M]. 北京: 中国铁道出版社, 2004.
[5] LabVIEW使用指南[M]. 美国国家仪器有限公司.