基于Labview和声卡的虚拟示波器设计.docx
- 文档编号:6349874
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:24
- 大小:816.55KB
基于Labview和声卡的虚拟示波器设计.docx
《基于Labview和声卡的虚拟示波器设计.docx》由会员分享,可在线阅读,更多相关《基于Labview和声卡的虚拟示波器设计.docx(24页珍藏版)》请在冰豆网上搜索。
基于Labview和声卡的虚拟示波器设计
基于Labview和声卡的虚拟示波器设计
TheDesignofVirtualOscilloscopeBasedonLabviewandSoundCard
学生姓名
学号
专业班级
指导教师
年月
作者声明
本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
如本毕业设计(论文)引起的法律结果完全由本人承担。
毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。
特此声明。
作者专业:
作者学号:
作者签名:
__年__月__日
摘要
虚拟仪器技术的提出和发展标志着二十一世纪自动测试与电子测量仪器领域技术发展的一个重要方向。
该技术是在通用的计算机平台上定义和设计仪器的测试功能,使用者在操作这台计算机时就像在使用一台自己设计的专用的传统电子仪器。
操作人员可通过友好的图形化用户界面和图形化编程语言来控制仪器的启动、运行和结束,完成对被测信号的数据采集、信号分析、谱图显示、波形图显示、故障诊断、数据存储以及控制输出等功能。
在虚拟仪器系统中,硬件解决信号的输入和输出,软件可以方便地修改、改变仪器系统的功能,以适应不同使用者的需要。
其中信号的输入部分一般使用数据采集卡实现。
商用的数据采集卡具有较大的通用性,但其价格昂贵,在具体的应用场合,有些功能可能并不实用。
普通声卡,具有16位量化精度,数据采集频率为44kHz,完全可以满足特定应用范围内数据采集的需要,个别性能指标还优于商用数据采集卡,而价格却为商用数据采集卡的十几分之一甚至几十分之一。
论文利用普通声卡做采集卡,利用美国NI公司的虚拟仪器软件LabVIEW做开发平台,设计实现了一个虚拟示波器。
该系统能够正确采集声卡设计频率范围内的信号,实现了基本示波器的测量功能和频谱分析功能,可以用来测量音频范围的信号。
关键词:
虚拟仪器;声卡;labVIEW;虚拟示波器
Abstract
Theproposalanddevelopmentofvirtualinstrumenttechnologymarksthedirectionoftheautomatictestandelectronicmeasurementat21stcentury.Thistechnologydefinesingeneralcomputerplatformsanddesignsthetestfunctionofinstrument,whenusersoperatingthecomputerlikeusingatraditionalelectronicinstrument.Operatorscancontroltostart,operateandenditthroughgraphicaluserinterfaceandgraphicalprogramminglanguage,andthenaccomplishdataacquisition,signalanalysisandspectrumchartshows,waveformfigureshows,faultsdiagnosis,datastorageandoutputcontrol,andotherfunctionsofthemeasuredsignal.
Invirtualinstrumentsystem,hardwaresolvetheproblemofinputsignalandoutputsignal,thesoftwarecanbeeasilymodifiing,changingthefunctionofinstrumentsystem,inordertoadapttotheneedsofdifferentusers.Partoftheinputsignalisgenerallyrealizingbythedataacquisitioncard.Commercialdataacquisitioncardismoregeneral,moreexpensivebutsomefunctionsmaybeunpractical.Ordinarysoundcard,with16quantitativeprecision,44kHzdataacquisitionfrequency,canmeettheneedofdatacollectioninspecificapplicationrange,andtheindividualperformanceindexisalsobetterthancommercialdataacquisitioncard,butthepricesofcommercialdataacquisitioncardismoreexpensive.
ThispaperdesignesandrealizesavirtualoscillographwithcommonaudiocardandLabVIEWvirtualinstrumentsoftware.Thesystemcancorrectlyacquisitethesingalandrealizethefunctionsofmeasurementandspectrumanalysisasbasicoscilloscope.
KeyWords:
Virtualinstrument;Soundcard;LabVIEW;Virtualoscilloscope
第1章绪论
1.1虚拟仪器概述
所谓的虚拟仪器,就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。
灵活高效的软件能帮助用户创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。
虚拟仪器的“虚拟”二字主要包含以下两个方面的含义:
第一,虚拟仪器的面板是虚拟的。
虚拟仪器面板上的各种“控件”与传统仪器面板上的各种“器件”所完成的功能是相同的。
如由各种开关、按键、显示器等实现仪器电源的:
“通”、“断”;被测信号的“输入通道”、“放大倍数”等参数的设置;测量结果的“数值显示”、“波形显示”等。
传统仪器面板上的器件都是“实物”,而且是由“手动”、“触摸”、来进行操作的,而虚拟仪器面板控件是外形与实物相象的“图标”,每个图标的“通”、“断”、“放大”等,对应着相应的软件程序。
这些软件已经设计好,我们只需选用代表该种软件程序的图形“控件”即可。
因此,设计虚拟仪器前面板,就是在前面板设计窗口中摆放所需的图标,然后对图标的属性进行设置。
第二,虚拟仪器测量功能是通过对图形化软件流程图的编程来实现的。
以PC计算机为核心组成的硬件平台支持下,通过软件编程来实现仪器的功能的。
因为可以通过不同测试功能软件模块的组合来实现多种测试功能,所以,在硬件平台确定后,就有“软件就是仪器”的说法[1]。
与传统仪器相比,虚拟仪器具有高效、易用、功能强大、性价比高、可操作性好等优点,具体表现为:
(1)智能化程度高,处理能力强。
虚拟仪器的处理能力和智能化程度主要取决于仪器的软件水平。
用户完全可以根据实际应用需求,将先进的信号处理算法、人工智能技术和专家系统应用于仪器设计与集成,从而将智能仪器水平提高到一个新的层次。
(2)复用性强,系统费用低。
采用虚拟仪器技术,可以用相同的基本硬件构建多种不同功能的测量系统。
这样形成的测量系统更灵活、更高效、更开放、更便宜。
(3)可操作性强,灵活易用。
虚拟仪器面板可由用户定义,针对不同的应用可以设计不同的操作界面。
计算机强大的多媒体处理能力使仪器操作变得更加直观、简便、易于理解。
此外,测量完成后可以显示和打印所需的报表(或曲线),可以把测量数据存入数据库系统或通过网络进行数据共享[2]。
1.2虚拟示波器研究的背景和意义
传统台式示波器是由仪器厂家设计并定义好功能的一个封闭结构,它有特定的输入/输出接口和仪器操作面板,具有波形显示、参数测量等功能。
当要实现更多的测量功能时,就要配置更多的仪器,这给用户的使用带来诸多不便,并且传统示波器的测量精度比较低,无法满足高精度的测量要求。
而且,传统示波器缺乏相应的计算机接口,配合数据采集及数据处理比较困难。
此外,传统示波器体积相对庞大,制造成本比较高,这就增加了测量系统的开发成本。
随着计算机技术和测量技术的发展,虚拟仪器技术得到飞快发展,虚拟示波器系统也就应运而生。
虚拟示波器系统由用户定义仪器功能,桌面整洁,操作条理,不但使测量人员从繁复的仪器堆中解放出来,而且具有测量精度高、测量速度快、系统组建时间短、可扩展性强、技术更新快和仪器智能化等优点。
此外,虚拟示波器系统开发成本低,结合网络技术可以实现远程数据自动测量、自动记录、自动数据处理。
示波器、信号发生器、频谱分析仪是科研机关、企业研发实验室、大专院所的必备测量设备,而虚拟示波器系统集成了示波器、信号发生器和频谱分析模块,具有很大的应用价值,主要有:
(1)可以加强实验室技术基础建设。
虚拟示波器系统是计算机技术和测量技术的完美结合,不仅提高实验仪器的技术含量,还符合实验室仪器仪表现代化的教学要求。
(2)缩短测量系统的开发时间。
虚拟示波器系统提供良好的性能扩展能力,用户可以通过自定义模块快速开发出一整套测量系统,提高系统的开发效率。
(3)远程数据测量。
有的测量环境十分恶劣,用传统仪器测量数据可能会使测量人员的人身安全受到威胁,用虚拟示波器系统可以进行远程数据测量,使测量人员远离危险环境。
(4)仪器智能化。
虚拟示波器系统是计算机技术与测量技术的完美结合,利用它可以实现24小时无人值守的参数测量、数据分析、数据存盘等功能,为数据的实时测量提供保障[3]。
1.3论文主要工作
论文的目的是利用LabVIEW软件设计一虚拟示波器,通过声卡作为音频信号的采集硬件,利用虚拟示波器显示采集波形并完成波形分析等功能。
具体设计要求如下:
(1)具有声卡采集参数设定功能;具有录音和重放功能;可以实现声音数据的采集;能够完成功率谱信号的显示;
(2)声音采集数据能够储存并根据需要调用;
(3)具有声音信号滤波及处理功能;
(4)基于LABVIEW的声卡虚拟示波器应具有美观实用的用户界面。
第2章系统的信号采集
2.1声卡的配置与连接
计算机的声卡作为数据采集卡,其A/D转换功能已经成熟,而且计算机无需添加额外配件便能完成所有音频信号的采集功能,具有价格低廉、采样精度高,与LabVIEW结合编程简单等优点,因此,利用声卡可以构成一个较高采样精度、中等采样频率、灵活性好的信号采集系统。
声卡主要技术指标有采样位数、采样频率、频率范围和频率响应、基准电压等。
(1)采样位数。
采样位数可以理解为声卡处理声音的解析度。
这个数值越大,解析度就越高,录制和回放的声音就越真实。
如今市面上所有的主流产品都是16位的声卡,而一般的数据采集卡大多也才有12位,因此,声卡相较于常用的数据采集卡毫不逊色[4]。
(2)采样频率。
采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。
在当今的主流民用声卡上,采样频率一般共分为8KHz、11.025KHz、22.05KHz和44.1KHz四个等级,少数可以达到48KHz。
对于20Hz~20KHz范围内的音频信号,如果采用48KHz采样频率,虽然理论上是可行的,但是效果已经不是最好。
因而使用声卡的局限性就是不允许用户在最高采样率下随意设定采样频率。
对于高于48KHz的采样频率人耳已无法辨别出来了,因此没有实用价值。
(3)频率范围和频率响应。
前者是指音响系统能够回放的最低有效回放频率与最高有效回放频率之间的范围;后者是指将一个以恒电压输出的音频信号与系统相连接时,音箱产生的声压随频率的变化而发生增大或衰减、相位随频率而发生变化的现象。
以声卡作为虚拟测试仪器的硬件设备必须对其频率特性有所了解。
本系统所用计算机主板集成声卡是Reaktek的ALC880Codec,根据其性能指标,设置采样率为44.1KHz,采样位数为双通道,采样比特数为16位,以保证采样时的干扰较小、波形稳定。
(4)基准电压。
声卡没有基准电压,因此无论是A/D还是D/A转换器,都需要用户参照基准电压进行标定[5]。
声卡一般有LineIn和MicIn两个信号输入插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。
若由MicIn输入,由于有前置放大器,容易引入噪声且会导致信号过负荷,故推荐使用LineIn,其噪声干扰小且动态特性良好。
声卡测量信号的引入应采用音频电缆或屏蔽电缆以降低噪声干扰。
若输入信号电平高于声卡所规定的最大输入电平,则应在声卡输入插孔和被测信号之间配置一个衰减器,将被测信号衰减至不大于声卡最大允许输入电平。
此外,将声卡的LineOut端口接到耳机上还可以实时的监听声音信号。
LabVIEW对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,对于高级的声卡采集信号时,要注意关闭如混响之类的一些特效,避免影响测量结果的真实性。
1.声卡的配置
一般声卡主要用于输出声音,输入部分可能没有处于正常的工作状态。
建议说先使用耳机和MIC(麦克风)检查声卡的功能,特别是输入功能(录音功能)是否正常。
如果不正常,需要检查声卡的设置。
下面介绍对LineIn和MicIn的检查和设置。
打开音量控制对话框,如图2.1所示,在“选项”菜单下选“属性”,得到如图2.2所示的对话框,在此对话框上选择“录音”并配置列表中的选项即可。
注意2.1图中的相关功能不在静音状态。
图2.1音量控制窗口
图2.2声卡的配置
2.硬件的连接
硬件连接采用两种方法:
(1)一条一端是3.5mm插孔,另外一端是鳄鱼夹的连接线;
(2)另一条是一条双端均为3.5mm插孔的音频连接线。
为了测试声卡的频响特性,可以使用测试线将声卡的输入与输出端连接起来,形成一个闭合的环路。
连接时要注意区分MicIn口与SPKOut口,不要把它们当作LineIn与LineOut接入。
如果测试输入信号,则使用测试线把信号源连接到声卡输入端LineIn口;如果测试输入信号,就把该测试线连接到声卡输出端LineOut口。
可以使用坏的立体声耳机做一个双通道的输入线,剪去耳机,保留线和插头即可。
2.2声卡信号采集方法
声卡采集系统原理框图如下图2.3所示。
它主要由声源、信号调理模块、计算机声卡以及安装于计算机机上的LabVIEW软件等几部分组成。
图2.3声卡采集系统原理框图
工作过程为:
输入时,测试信号首先经过信号调理电路,利用PC机声卡的麦克风输入(micin)或线路输入(linein)作为信号的输入端口,将获取到的模拟音频信号经过左右两个通道和A/D转换后送入计算机,通过LabVIEW编写的采集程序进行各种处理和保存;输出时,经过采集系统处理的数据通过总线将数字化的信号以PCM方式送到D/A转换器,编程模拟的音频信号由线路输出(lineout)端口通过耳机或音响转换为音波播放出来。
在信号进入声卡之前必须经过信号调理,主要包括信号的放大、滤波、隔离和线性化处理,以使其能够被声卡正确的识别。
声卡的麦克风(micin)输入端具有高增益放大器,会使得信号产生较大失真,所以选择线路(linein)输入信号时,其输入电压应为-1~+1V[6]。
2.2.1声卡信号采集流程
模拟信号经同轴电缆进入采集卡的输入通道,经过前置滤波电路、衰减电路、可变增益的放大电路,将信号处理成A/D转换器可以处理的标准电平,经过A/D采样量化转化成计算机可以处理的数字信号并缓存到卡上的存储器。
其支持软件通过PC机的PCI总线接口控制模拟通道的阻抗匹配、放大器的增益选择、启动A/D转换及转换结束的识别,并将采集数据以DMA的方式传输到计算机内存,同时对数据信号进行分析处理、显示、存储及打印传输等。
声卡数据采集流程如图2.4所示。
图2.4声卡数据采集流程图
2.2.2声卡信号采集的实现
LabVIEW软件是一种基于图形语言编程的可视化软件开发平台,与VC,VB等其他可视化编程语言相比,其函数库丰富、编程简单直观、调试方便,而且界面开发简单,界面风格与传统仪器相似。
LabVIEW是一个外观和操作能模仿实际的仪器的程序开发环境,类似于C、BASIC等编程语言。
但LabVIEW的特点在于,它使用图形化编程语言G在流程图中创建源程序,而非使用基于文本的语言来产生源程序代码。
LabVIEW还整合了诸如满足GPIB、VXI、USB、RS-232和RS-485以及数据采集卡等硬件通讯的全部功能。
内置了便于TCP/IP、ActiveX等软件标准的库函数。
虽然LabVIEW是一个通用编程系统,但是它也包含了数据采集和仪器控制等特别设计的函数库和开发工具。
由于LabVIEW所使用的术语、图标和概念都是技术人员、科学家、工程师所熟悉的,故而即使用户没有多少编程经验,同样也能利用LabVIEW来开发自己的应用程序[7]。
以LabVIEW为基础的本声卡信号采集系统主要完成了信号采集、存储、回放和频域分析等功能。
本设计对于信号采集如此多的功能采用了分模块显示设置,这样使得主程序前面板简单明了,且功能齐全,方便了用户的操作。
第3章系统功能设计及实现
3.1软件开发工具LabVIEW介绍
LabVIEW是一种基于G语言(Graphicalprogramminglan—guage)的可视化(图形化)优秀开发平台,主要用于数据的采集、分析、处理和表达,总线接口、VXI仪器以及GPIB与串口仪器的驱动程序编制和驱动虚拟仪器。
它与C、Pascal等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。
与传统编程语言最大的区别是LabVIEW使用图形语言(即各种图标、图形符号、连线等),以框图的形式编写程序。
络评估作为网络优化的第一步,工作范围包括通过对原有网络进行数据采集、现场检查,并对网络组网合理性、业务发展需求进行掌握和分析,同时和客户保持双向沟通,良性互动,提出适合客户网络发展的优化建议。
一个LabVIEW程序包括三个主要部分:
前面板、框图程序、图标/接线端口。
前面板是交互式图形化用户界面,用于设置输入数值和观察输出量。
框图程序是利用图形语言对前面板的控制量和指示量进行控制。
图标/接线端口用于把LabVIEW程序定义成一个子程序,以便在其它程序中加以调用[7]。
对虚拟示波器的设计和实现是建立在labVIEW和声卡采集系统之上的。
LabVIEW中有关声卡的函数主要包括声音输入函数、声音输出函数、分析函数和文件函数。
1.声音输入函数
(1)SIConfig
该函数的主要功能是设置声卡中与数据采集有关的一些硬件参数,如采样率,数据格式,缓冲区长度等。
声卡的采样率由内部时钟控制,只有3~4种固定频率可选,一般将采样率设置为44100Hz数据格式设置为16位字长。
缓冲区长度可取默认值。
为声音输入功能设置一个声音驱动。
当设置好了后,你可以使用SIStartVI和SIReadVI从设备中获取声音。
(2)SIStart
该函数用于通知声卡开始采集外部数据。
采集到的数据会被暂存在缓冲区中,这一过程无需程序干预,由声卡硬件使用DMA直接完成,保证了采集过程的连续性。
命令声音驱动开始堆积采集进来的数据。
如果驱动已经运行了,命令这个VI不要起作用。
(3)SIRead
该函数用于等待采样数据缓冲区满的消息。
当产生这一消息时,它将数据缓冲区的内容读取到用户程序的数组中,产生一个采样数据集和。
若计算机速度不够快,使得缓冲区的内容被覆盖,则会产生一个错误信息。
这时应调节缓冲区的大小,在采样时间与数据读取之间找到一个理想的平衡点。
从声音输入驱动中读取数据。
当数据到达驱动的缓冲区时,数据缓冲后将获得数据,否则等待数据的到来,假如因为一些原因,未缓冲的数据被写入,将没有数据获得,替代,一个溢出的错误被报告。
(4)SIStop
该函数用于通知声卡停止采集外部数据。
已采集而未被读出的数据就会留在缓冲区中,可以使用SIRead函数一次读完。
命令声音输入驱动停止堆积采集进来的数据。
采集到的数据存储在系统的缓冲器中,并且数据能用SIReadVI收集到。
如果驱动不再运行,命令这个VI不要作用。
(5)SIClear
该函数用于完成最终的清理工作,例如关闭声卡采样通道,释放请求的一系列系统资源(包括DMA缓冲区内存声卡等)。
关闭声音输入驱动联合taskIDin和释放驱动使用的计算机系统得所有资源。
2.声音输出函数
(1)SOConfig
该函数用于设置一个声音输出设备,并且开创一个声音ID输出任务。
利用这个VI来配置这个声音设备后,这个设备就将存在于暂停模式中,且可以利用SOWrite(声音输出写入)和SOStart(声音输出开始)VI虚拟模块来完成这个数据的应用程序。
(2)SOWrite
该函数需要联合taskIDin向声音输出设备写入数据。
如果这个设备已经开始运行,则数据会立刻转移到缓冲器中。
如果设备正处于暂停状态,则数据不会开始转移直到SOStart声音输出开始键开始运行为止。
(3)SOPause
要暂停一个声音输出设备需要联合taskIDin端子的设置。
如果这个设备正处于暂停模式中,我们则叫这个VI不工作。
当你用这个VI时,将没有数据丢失,并且这个正确的位置将会被保存。
这时我们要用SOStartVI(输出声音开始模块)来再次启动输出。
MacOS这个VI则可能不可以立刻停止声音的录入。
(4)SOClear
关闭输出声音设备与taskIDin端子相关联,并且任何设备运用的资源要释放都必须送到计算机系统中去。
3.分析函数
(1)ButterworthFilter
通过利用ButterworthCoefficientsVI来生成数字滤波功能。
(2)ScaledTimeDomainWindow
将时域信号应用于选择的窗口:
选择0、Uniformu不变窗;1、Hanning汉宁窗;2、Hamming海明窗;3、Blackman-Harris布莱克曼哈里斯窗;4、ExactBlackman准确的布莱克曼窗;5、Blackman布莱克曼窗;6、FlatTop水平顶窗;7、FourTermBlackman-Harris四组布莱克曼哈里斯窗;8、SevenTermBlackman-Harris七组布莱克曼哈里斯窗;9、LowSidelobe低斜窗。
(3)AutoPowerSpectrum
计算单极性,多极性时域信号的功率谱分析。
(4)Power&Frequency
计算一个时域信号频谱中估计的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Labview 声卡 虚拟 示波器 设计