为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

LabVIEW环境下基于声卡的虚拟示波器软件设计

2017-12-27 10页 doc 27KB 27阅读

用户头像

is_601191

暂无简介

举报
LabVIEW环境下基于声卡的虚拟示波器软件设计LabVIEW环境下基于声卡的虚拟示波器软件设计 LabVIEW环境下基于声卡的虚拟示波器软 件设计 第24卷第3期 2007年3月 计算机应用与软件 ComputerApplicationsandSoftware Vo1.24,No.3 Mar.2o07 LabVIEW环境下基于声卡的虚拟示波器软件设计 吕红英吴先球刘朝辉陈俊芳 (华南农业大学理学院广东广州510642) .(华南师范大学物理与电信工程学院广东广州510631) 摘要基于计算机声卡的虚拟仪器成本低,通用性强,在对采样频率要求不高的情况...
LabVIEW环境下基于声卡的虚拟示波器软件设计
LabVIEW环境下基于声卡的虚拟示波器软件 LabVIEW环境下基于声卡的虚拟示波器软 件设计 第24卷第3期 2007年3月 计算机应用与软件 ComputerApplicationsandSoftware Vo1.24,No.3 Mar.2o07 LabVIEW环境下基于声卡的虚拟示波器软件设计 吕红英吴先球刘朝辉陈俊芳 (华南农业大学理学院广东广州510642) .(华南师范大学物理与电信学院广东广州510631) 摘要基于计算机声卡的虚拟仪器成本低,通用性强,在对采样频率要求不高的情况下,可以用声卡取代数据采集卡进行采样 和输出.利用虚拟仪器开发工具软件LabVIEW及其数字声音节点,研制出基于声卡的虚拟双踪数字存储示波器,其功能和界 面都与真实示波器相同.重点阐述了数据采集,触发控制,显示控制几个主模块的设计方法. 关键词虚拟仪器声卡LabVIEW虚拟示波器 SoFTWAREDESIGNoFVIRTUALoSCILLoSCoPEBASED oNSoUNDCARDUNDERLabVIEW LnHongying.'WuXianqiuLiuZhaohuiChenJunfang (CollegeofSciences,SouthChinaAgriculturalUniversity,GuangzhouGuangdong510642. China) .(Schoo~ofPhysicsandTelecommunicationEngineering,SouthChinaNormalUniversity, GuangzhouGuangdong510631,China) AbstractThevitrualinstrumentbasedonPCsoundcardhasthevirtuesoflowcostandpowerfu lgenerality, andthesoundcardcalltake theplaceoftheplug?indata—acquisitionboardonlow?frequencycondition.Inthisarticle,thevirtualdouble—tracedstorageoscilloscopebased onsoundcard,whosefunctionandinterfaceweredesignedaccordingtotheactualoscilloscop e,wasdevelopedusingvirtualinstrumentsoftware LabVIEWanditsdigitalsoundrecordnodes.Thedesignsforseveralmainmodulessuchasdat aacquisition,triggeringcontrolanddisplaycon— trolwerechieflyexpounded. KeywordsVirtualinstrumentSoundcardLabVIEWVirtualoscilloscope 1引言 随着计算机技术和虚拟仪器技术的发展,虚拟仪器逐渐成 为现代仪器的发展方向,其中大部分虚拟仪器都是基于各种数 据采集卡,如NI公司的Lab-PC-1200数据采集卡…,研华公司 的PCL.1800型数据采集卡,ISA型数据采集卡AC1820. 在对采样频率要求不高的情况下,可以利用计算机的声卡进行 数据的输人和输出J.声卡是一个非常优秀的音频信号采集 系统,其数字信号处理器包括模数变换器ADC(AnalogueDigital Converter)和数模变换器DAC(DigitalAnalogueConverter),ADC 用于采集音频信号,DAC则用于重现这些数字声音.声卡已成 为多媒体计算机的一个标准配置,因此基于声卡的虚拟仪器具 有成本低,兼容性好,通用性和灵活性强的优点,可以不受硬件 限制,安装在多台计算机上.本文利用LabVIEW6.1中的数字 声音记录节点,编程实现了基于声卡的虚拟双踪数字存储示波 器,采样速率为44,1KHz,线路输人端口最高电压限制为1V,对 高于1V的信号可衰减后输入,能适合很多场合的需要. 2LabVIEW中的声音记录节点 LabVIEW(LaboratoryVirtualInstrumentEngineeringWork— bench)是美国国家仪器公司的基于图形化编程G语言的开发 环境,具有各种各样,功能强大的库,包括数值采集,串口控 制,数据分析,数据显示及数据存储等.采用旋钮,开关,波形图 等构造用户界面,人机交互界面友好. LabVIEW函数库中SoundInput子模板(FunctionsPalette— Graphics&Sound-+Sound--~SoundInput)提供了数字声音记录的 节点,可以通过声卡采集外部模拟信号.包括以下节点: SIConfig节点用于设置声卡的参数和数字声音格式,如 缓存区大小,采样速率,采样通道数(单通道或双通道),样本位 数(8bits或16bits).本文虚拟示波器用双通道采集数据,缓存 区大小为32768bytes,样本位数为16bits. SIStart节点驱动声卡开始采集数据. SIRead节点从缓存区读取数据.根据不同的数字声音 格式,读取相应数据格式的数组. SIStop节点停止采集数据. SIClear节点释放声卡占用的计算机资源. 利用这些数字声音记录节点,在LabVIEW6.1环境中编程, 设计了具有仿真面板的虚拟双踪数字存储示波器,通过声卡采 集外部数据,并用软件实现了触发控制,波形显示,波形调节,数 据存储等功能. 收稿日期:2004—10—25.全国教育科学十五规划项目 (ECB030477).吕红英,助教,主研领域:虚拟仪器技术,远程实验技术. 62计算机应用与软件2007血 3虚拟示波器用户界面和使用设置 图1虚拟不波器用户界面 虚拟示波器面板的设计参考了真实的示波器SS2020,用户 界面与真实示波器的操作面板相似,如图1所示,其中显示的波 形为虚拟示波器用于RLC串联电路特性实验时,电路频率为 2000Hz时的波形.虚拟示波器面板上各个旋钮,开关的功能与 真实示波器相同,包括"TIME/DIV"时间/分度选择旋钮,"x— Y"水平一垂直按钮,"X—POS"水平位置调节旋钮,"VAR"扫描 速度微调旋钮,"SOURCE"触发选择开关,"SLOPE"触发极性选 择开关,"VOLT/DIV"电压/分度衰减器,"Y—POS"位置调节旋 钮,"VAR"幅度微调旋钮,直流一接地一交流开关.不同于真 实示波器的部分有: 1)显示屏用于显示声卡采集的信号波形.水平方向和 垂直方向各有10个格,每个格又分5个小格.用户可以通过单 击鼠标右键,选择"VisibleItems"选项,显示"PlotLegend"和 "GraphPalette",实现传统示波器无法实现的操作,如查看显示 屏上未显示的部分,进行波形的多倍放大,以完成特定的测量. 2)"LEVEL"触发电平调节旋钮触发电平默认值为"0". 当用户设置的触发电平大小超出触发电压信号的范围时,不再 进行触发.若进行设置后需调节回零值,可在旋钮上单击鼠标 右键,选择"ReinitializetoDefaultValue"即可. 3)"PAUSE"暂停按钮按下此按钮,可暂停信号采集,方 便用户仔细观察显示屏上的波形. 4)"SAVE"存盘按钮和存盘路径设置文本框用户可在文 本框中指定保存文件的位置,点击"SAVE"按钮,以文本文件的 格式存储数据.文本文件可导入EXCEL,MATLAB等软件进行 处理.用户亦可用"PrintScreen"键直接剪取波形图. 5)"VERTMODE"显示模式选择开关只观测A或B通 道信号时,选择器置于"A"或"B".设计程序时,线路输入插孔 左声道采集的信号送入A通道,右声道采集的信号送入B通 道."A&B"用于同时显示两通道信号."A+B"和"A—B"用 于显示两通道信号相加和相减后的波形. 6)电压显示虚拟示波器附加了电压表的功能,显示屏下 两个文本框分别用于显示A,B通道的电压幅值. 使用前,需要制作一根测试电缆用于输入信号.方法是用 一 个立体声插头,接一段1,2m长的双芯屏蔽线,分别对应立 体声插头的地线,左声道,右声道,构成测试电缆,电缆的另一端 接上三个鳄鱼夹.为确保虚拟仪器正常工作,要正确设置声卡: 送入虚拟示波器的信号若为线路输入信号,通过LINEIN插孔 输入,在音量控制面板的录音属性中选择"线路输入"一项;若 为麦克风信号,通过MIC插孔输入,在录音属性中选择"麦克 风"一项.输入电压不能超过声卡的承受范围,以免损坏声卡, 对于线路输入插孔,一般为一1V,1V.若测量的信号超过此范 围,需先将信号衰减. 虚拟示波器程序安装在不同计算机上时,对于信号频率的 测量没有影响,由波形计算出的信号频率与真实值一致;对于信 号幅度的测量,由于线路输入音量大小的不同,在使用前需要定 标,以后的测量中,不必再调节线路输入音量大小. 4虚拟示波器软件设计 4.1总体结构 虚拟示波器程序采用While循环结构,示波器的电源开关 状态作为循环的控制条件,包含数据采集,电压显示,触发控制, 垂直方向波形调节,水平方向波形调节,显示模式选择,波形显 示和波形存储8个模块,各模块之间的关系如图2所示.框图 程序见图3. 图2虚拟示波器总体结构 图3虚拟示波器框图程序 4.2数据采集 SIConfig节点和SIStart节点放在循环的外部,设置声卡参 数和数字声音格式,并驱动声卡开始采集数据.SIClear节点也 放在循环外部,并由数据流程控制,在程序停止时释放声卡占用 的资源. "PAUSE"按钮按下时,用SIStop节点停止数据采集,进入 While循环,直到弹起"PAUSE"按钮,循环中止,用SIStart节点 重新驱动声卡采集数据.SIRead节点读取包含16bits立体声 数据的数组,由IndexArray函数分别提取左声道和右声道数 据,作为示波器CHA与CHB的输入信号.需要注意的是:在 各个声道声卡每次读取的数据点数为8192,即SIRead节点读 取的数组维数为8192行x2列,提取左,右声道数据时,要按列 进行,…0'列对应左声道数据,…1'列对应右声道数据. 样本位数为16bits的数据其范围为一32768,32767,为便 于虚拟示波器电压读数与信号真实参数相同,将声卡采集的数 据除以某个数值.根据声卡线路输入插孔的输入电压范围,设 定虚拟示波器可测到的最高电压为1V,可将此除数设为32767, 当输入的信号高于1V时,示波器的波形失真. 4.3触发控制 触发控制子程序实现选择触发源,根据触发电平的大小和 触发极性进行触发.其原 理如图4所示,首先判断用… 户设置的触发电平大小是 否在波峰和波谷范围内,在 此范围内则进行触发.对 输入电压信号的第i点和第图4软件触发原理图 计算机应用与软件2007丘 参考文献 :l郑利锋,杨小雪,张汉全,"基于LabVIEW的虚拟频谱分析仪设 计",《自动化与仪器仪表》,2002(5):4—7. :2张锐,陈励军,"一种基于虚拟示波器技术的数据采集系统",《计 算机测量与控制》,2003(2):l22一l24. 3j肖字峰,"一款虚拟示波器的设计",《器件与仪表》,2002(5):58, 60. 4]J.Saliga,L.Michaeli,SoftwareformetrologicalcharacterizationofPC soundcams,ComputerStandards&Interfaces,2003(25):45,55. 5]M.H.Levin,Useofasoundcardinteachingaudiofrequencyandaria— logmodemcommunications,ACMSIGCSEBulletin,l999(3):79 , 83. :6]LabVIE~UserManual,NationalInstrumentsCorporation,2001,l1. (上接第7页) 3)实现耦合(RC) 定义4RC=IRSI RS={XIX?CS八Realization(X,t)} Rs是系统中类t所实现的所有接口的集合. 观点: 一 个类型实现的接口过多,表明该类型被赋予的过多, 需要考虑对其拆分. 4)泛化/继承耦合(GC) 定义5GC=IGSI cs是系统中类型(类/接口)t所泛化(继承)的所有类型 (类/接口)的集合. GS=XlX?TS八Generalization(X,t)} 其中,Ts是系统中定义的所有类型(类/接口)的集合. 观点: (1)当某个类型同时泛化(继承)多个类型时,由父类型继 承而来的属性和操作相互影响的可能性也越大.通常多重泛化 (继承)是应当避免的.事实上,一些面向对象语言,如Java,根 本不支持多重泛化(继承). 4数据分析 Eclipse对度量信息的获取提供了很好的支持.它支持将 Java文件建模成抽象语法分析树(AST),并提供了丰富的接口 方便地遍历AST. 在FrankSauer开发的Eclipse度量计算插件的基础上,我们 实现了OCMOOD的自动计算. JUnit是由KentBeck和ErichGamma合作开发的一个开源 小工具KentBeck和ErickGamma都是公认的面向对象领域 的专家.JUnit3.8.1在3.7的基础上进行了多次重构.功能和 软件质量都有了提高.JUnit3.7和Junit3.8.1的OCMOOD计算 结果见表1和表2. 表1 JUniO.7ACDCGCRC 最大值5711 最小值0000 平均值0.3l41.0200.2350.255 标准差0.874I.4750.4240.436 表2 JUnit3.8.1ACDCGCRC 最大值56ll 最小值0000 平均值0.3091.0l80.2l80,255 标准差0,8501.42l0.4l30,436 从度量结果看,JUnit3,8.1AC,DC,GC,RC的均值都比 JUnit3.7低,这也说明JUnit3.8.1较3,7有更好的质量.图1 和图2分别是这两个指标计算值拟合后对比图. 从图1可以看出,两个版本的AC度量值均小于5,并且在 [0,2.5]区间上,JUnit3.8.1的度量曲线位于3.7度量曲线的上 方,(2,5,5]区间上位于3.7度量曲线下方,这说明JUnit3,8,1 的关联耦合度较3.7要小. 显 {] .. L——1—f—r—1—T—r—]———1—,—一 图1图2 从DC度量结果上,可以看出,两条DC度量曲线在度量值 为2处有一个交点,在[0,2]区间上,JUnit3.8.1的曲线位于 JUnit3.7的上方,这说明JUnit3.8.1DC耦合度低于2的类比 JUnit3.7要多,可见,JUnit3.7的依赖耦合度比JUnit3.8.1要高. 由于Java中不允许多继承,所以GC度量值始终为1,又因 为所选JUnit样本的特殊性,所有的RC度量值也为1.所以在 此不对这两个度量的拟合曲线进行讨论. 通过上述讨论,我们得到在软件规模大致相近的情况下,质 量好的软件的OCMOOD度量值比质量差的要低,反之亦然.从 而对OCMOOD的有效性进行了验证. 5总结和将来的工作 本文分析了CBO的不足,提出了一组新的面向对象耦合度 量OCMOOD,并验证了它的有效性. 由于面向对象编程中继承,多态等技术的应用,只依靠软件 的静态特征已经很难准确度量软件的实际质量.通过捕获软件 的运行期特征来实现软件的动态耦合度量,是我们将来的工作 目标. 参考文献 [1]Chidamber,S.R.,andKemerer,C.F..Ametricssuiteforobjectoften— teddesign,CISRWorkingPaperNo.249,MITSloanSchoolofManage— ment,Cambridge.MA.1993. [2]HuangHeyuan,ZhangShensheng,CaoJian,DuanYonghong,APracti— calPatternRecovery, ApproachBasedonBothStructuralandBehavior— alAnalysis.JournalofSystemsandSoftware,2004.Accepted. [3]Hitz.MandMontazeri,B.,MeasureCouplingandCohesioninObject— OrientedSystems.ProceedingsofInternationalSymposiumonApplied CorporateComputing(ISAAC95),October1995. 4]黄鹤远,"基于设计模式的面向对象系统再工程",[博士学位论 文],上海交通大学,2004.
/
本文档为【LabVIEW环境下基于声卡的虚拟示波器软件设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索