1、河北工业大学 摘 要虚拟仪器技术的提出和发展标志着二十一世纪自动测试与电子测量仪器领域技术发展的一个重要方向。该技术是在通用的计算机平台上定义和设计仪器的测试功能,使用者在操作这台计算机时就像在使用一台自己设计的专用的传统电子仪器。操作人员可通过友好的图形化用户界面和图形化编程语言来控制仪器的启动、运行和结束,完成对被测信号的数据采集、信号分析、谱图显示、波形图显示、故障诊断、数据存储以及控制输出等功能。在虚拟仪器系统中,硬件解决信号的输入和输出,软件可以方便地修改、改变仪器系统的功能,以适应不同使用者的需要。其中信号的输入部分一般使用数据采集卡实现。商用的数据采集卡具有较大的通用性,但其价格
2、昂贵,在具体的应用场合,有些功能可能并不实用。普通声卡,具有16位量化精度,数据采集频率为44 kHz,完全可以满足特定应用范围内数据采集的需要,个别性能指标还优于商用数据采集卡,而价格却为商用数据采集卡的十几分之一甚至几十分之一。论文利用普通声卡做采集卡,利用美国NI公司的虚拟仪器软件LabVIEW做开发平台,设计实现了一个虚拟示波器。该系统能够正确采集声卡设计频率范围内的信号,实现了基本示波器的测量功能和频谱分析功能,可以用来测量音频范围的信号。关键词:虚拟仪器;声卡;labVIEW;虚拟示波器AbstractThe proposal and development of virtual
3、instrument technology marks the direction of the automatic test and electronic measurement at 21st century. This technology defines in general computer platforms and designs the test function of instrument, when users operating the computer like using a traditional electronic instrument. Operators c
4、an control to start, operate and end it through graphical user interface and graphical programming language, and then accomplish data acquisition, signal analysis and spectrum chart shows, waveform figure shows, faults diagnosis, data storage and output control, and other functions of the measured s
5、ignal. In virtual instrument system, hardware solve the problem of input signal and output signal, the software can be easily modifiing, changing the function of instrument system, in order to adapt to the needs of different users. Part of the input signal is generally realizing by the data acquisit
6、ion card. Commercial data acquisition card is more general, more expensive but some functions may be unpractical. Ordinary soundcard, with 16 quantitative precision, 44 kHz data acquisition frequency, can meet the need of data collection in specific application range, and the individual performance
7、index is also better than commercial data acquisition card, but the prices of commercial data acquisition card is more expensive. This paper designes and realizes a virtual oscillograph with common audio card and LabVIEW virtual instrument software. The system can correctly acquisite the singal and
8、realize the functions of measurement and spectrum analysis as basic oscilloscope.Key Words:Virtual instrument; Sound card; LabVIEW; Virtual oscilloscope河北工业大学目 录第1章 绪论11.1 虚拟仪器概述11.2 虚拟示波器研究的背景和意义21.3论文主要工作3第2章 系统的信号采集42.1 声卡的配置与连接42.2 声卡信号采集方法62.2.1 声卡信号采集流程72.2.2 声卡信号采集的实现8第3章 系统功能设计及实现93.1软件开发工具L
9、abVIEW介绍93.2 虚拟示波器总体设计123.2.1 虚拟示波器的工作原理123.2.3 虚拟示波器的工作流程123.3 虚拟示波器软件模块设计143.3.1 数据采集模块143.3.2 测量模块18第4章 系统的调试和程序显示214.1 虚拟示波器的性能214.1.1 虚拟示波器的操作界面214.1.2 虚拟示波器总程序框图224.2 虚拟示波器波形显示24第5章 总结与展望26参考文献27致谢28第1章 绪论1.1 虚拟仪器概述所谓的虚拟仪器,就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助用户创建完全自定义的用户界面,模块化的硬
10、件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。虚拟仪器的“虚拟”二字主要包含以下两个方面的含义:第一, 虚拟仪器的面板是虚拟的。虚拟仪器面板上的各种“控件”与传统仪器面板上的各种“器件”所完成的功能是相同的。如由各种开关、按键、显示器等实现仪器电源的:“通”、“断”;被测信号的“输入通道”、“放大倍数”等参数的设置;测量结果的“数值显示”、“波形显示”等。传统仪器面板上的器件都是“实物”,而且是由“手动”、“触摸”、来进行操作的,而虚拟仪器面板控件是外形与实物相象的“图标”,每个图标的“通”、“断”、“放大”等,对应着相应的软件程序。这些软件已经设计好,我们只需
11、选用代表该种软件程序的图形“控件”即可。因此,设计虚拟仪器前面板,就是在前面板设计窗口中摆放所需的图标,然后对图标的属性进行设置。第二,虚拟仪器测量功能是通过对图形化软件流程图的编程来实现的。以PC计算机为核心组成的硬件平台支持下,通过软件编程来实现仪器的功能的。因为可以通过不同测试功能软件模块的组合来实现多种测试功能,所以,在硬件平台确定后,就有“软件就是仪器”的说法1。与传统仪器相比,虚拟仪器具有高效、易用、功能强大、性价比高、可操作性好等优点,具体表现为:(1) 智能化程度高,处理能力强。虚拟仪器的处理能力和智能化程度主要取决于仪器的软件水平。用户完全可以根据实际应用需求,将先进的信号处
12、理算法、人工智能技术和专家系统应用于仪器设计与集成,从而将智能仪器水平提高到一个新的层次。(2) 复用性强,系统费用低。采用虚拟仪器技术,可以用相同的基本硬件构建多种不同功能的测量系统。这样形成的测量系统更灵活、更高效、更开放、更便宜。(3) 可操作性强,灵活易用。虚拟仪器面板可由用户定义,针对不同的应用可以设计不同的操作界面。计算机强大的多媒体处理能力使仪器操作变得更加直观、简便、易于理解。此外,测量完成后可以显示和打印所需的报表(或曲线),可以把测量数据存入数据库系统或通过网络进行数据共享2。1.2 虚拟示波器研究的背景和意义传统台式示波器是由仪器厂家设计并定义好功能的一个封闭结构,它有特
13、定的输入/输出接口和仪器操作面板,具有波形显示、参数测量等功能。当要实现更多的测量功能时,就要配置更多的仪器,这给用户的使用带来诸多不便,并且传统示波器的测量精度比较低,无法满足高精度的测量要求。而且,传统示波器缺乏相应的计算机接口,配合数据采集及数据处理比较困难。此外,传统示波器体积相对庞大,制造成本比较高,这就增加了测量系统的开发成本。随着计算机技术和测量技术的发展,虚拟仪器技术得到飞快发展,虚拟示波器系统也就应运而生。虚拟示波器系统由用户定义仪器功能,桌面整洁,操作条理,不但使测量人员从繁复的仪器堆中解放出来,而且具有测量精度高、测量速度快、系统组建时间短、可扩展性强、技术更新快和仪器智
14、能化等优点。此外,虚拟示波器系统开发成本低,结合网络技术可以实现远程数据自动测量、自动记录、自动数据处理。示波器、信号发生器、频谱分析仪是科研机关、企业研发实验室、大专院所的必备测量设备,而虚拟示波器系统集成了示波器、信号发生器和频谱分析模块,具有很大的应用价值,主要有:(1) 可以加强实验室技术基础建设。虚拟示波器系统是计算机技术和测量技术的完美结合,不仅提高实验仪器的技术含量,还符合实验室仪器仪表现代化的教学要求。(2) 缩短测量系统的开发时间。虚拟示波器系统提供良好的性能扩展能力,用户可以通过自定义模块快速开发出一整套测量系统,提高系统的开发效率。(3) 远程数据测量。有的测量环境十分恶
15、劣,用传统仪器测量数据可能会使测量人员的人身安全受到威胁,用虚拟示波器系统可以进行远程数据测量,使测量人员远离危险环境。(4) 仪器智能化。虚拟示波器系统是计算机技术与测量技术的完美结合,利用它可以实现24小时无人值守的参数测量、数据分析、数据存盘等功能,为数据的实时测量提供保障3。1.3 论文主要工作论文的目的是利用LabVIEW软件设计一虚拟示波器,通过声卡作为音频信号的采集硬件,利用虚拟示波器显示采集波形并完成波形分析等功能。具体设计要求如下:(1) 具有声卡采集参数设定功能;具有录音和重放功能;可以实现声音数据的采集;能够完成功率谱信号的显示;(2) 声音采集数据能够储存并根据需要调用
16、;(3) 具有声音信号滤波及处理功能;(4) 基于LABVIEW的声卡虚拟示波器应具有美观实用的用户界面。第2章 系统的信号采集2.1 声卡的配置与连接计算机的声卡作为数据采集卡,其A/D转换功能已经成熟,而且计算机无需添加额外配件便能完成所有音频信号的采集功能,具有价格低廉、采样精度高,与LabVIEW结合编程简单等优点,因此,利用声卡可以构成一个较高采样精度、中等采样频率、灵活性好的信号采集系统。声卡主要技术指标有采样位数、采样频率、频率范围和频率响应、基准电压等。(1) 采样位数。采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。如今市面上所有
17、的主流产品都是16位的声卡,而一般的数据采集卡大多也才有12位,因此,声卡相较于常用的数据采集卡毫不逊色4。(2) 采样频率。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。在当今的主流民用声卡上,采样频率一般共分为8 KHz 、11.025KHz、22.05KHz和44.1KHz四个等级,少数可以达到48 KHz 。对于20Hz20KHz范围内的音频信号,如果采用48 KHz采样频率,虽然理论上是可行的,但是效果已经不是最好。因而使用声卡的局限性就是不允许用户在最高采样率下随意设定采样频率。对于高于48KHz的采样频率人耳已无法辨别出来了,因此没有实
18、用价值。(3) 频率范围和频率响应。前者是指音响系统能够回放的最低有效回放频率与最高有效回放频率之间的范围;后者是指将一个以恒电压输出的音频信号与系统相连接时,音箱产生的声压随频率的变化而发生增大或衰减、相位随频率而发生变化的现象。以声卡作为虚拟测试仪器的硬件设备必须对其频率特性有所了解。本系统所用计算机主板集成声卡是Reaktek的ALC880 Codec,根据其性能指标,设置采样率为44.1KHz,采样位数为双通道,采样比特数为16位,以保证采样时的干扰较小、波形稳定。(4) 基准电压。声卡没有基准电压,因此无论是A/D还是D/A转换器,都需要用户参照基准电压进行标定5。声卡一般有Line
19、 In和Mic In两个信号输入插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。若由Mic In输入,由于有前置放大器,容易引入噪声且会导致信号过负荷,故推荐使用Line In,其噪声干扰小且动态特性良好。声卡测量信号的引入应采用音频电缆或屏蔽电缆以降低噪声干扰。若输入信号电平高于声卡所规定的最大输入电平,则应在声卡输入插孔和被测信号之间配置一个衰减器,将被测信号衰减至不大于声卡最大允许输入电平。此外,将声卡的Line Out端口接到耳机上还可以实时的监听声音信号。LabVIEW对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,对于高级的声卡采集信号时,
20、要注意关闭如混响之类的一些特效,避免影响测量结果的真实性。1. 声卡的配置一般声卡主要用于输出声音,输入部分可能没有处于正常的工作状态。建议说先使用耳机和MIC(麦克风)检查声卡的功能,特别是输入功能(录音功能)是否正常。如果不正常,需要检查声卡的设置。下面介绍对Line In和 Mic In 的检查和设置。打开音量控制对话框,如图2.1所示,在“选项”菜单下选“属性”,得到如图2.2所示的对话框,在此对话框上选择“录音”并配置列表中的选项即可。注意2.1图中的相关功能不在静音状态。图2.1 音量控制窗口图2.2 声卡的配置2. 硬件的连接硬件连接采用两种方法:(1) 一条一端是3.5mm插孔
21、,另外一端是鳄鱼夹的连接线;(2) 另一条是一条双端均为3.5mm插孔的音频连接线。为了测试声卡的频响特性,可以使用测试线将声卡的输入与输出端连接起来,形成一个闭合的环路。连接时要注意区分Mic In口与SPK Out口,不要把它们当作Line In与Line Out接入。如果测试输入信号,则使用测试线把信号源连接到声卡输入端Line In口;如果测试输入信号,就把该测试线连接到声卡输出端Line Out口。可以使用坏的立体声耳机做一个双通道的输入线,剪去耳机,保留线和插头即可。2.2 声卡信号采集方法声卡采集系统原理框图如下图2.3所示。它主要由声源、信号调理模块、计算机声卡以及安装于计算机
22、机上的LabVIEW软件等几部分组成。信号处理声音播放Mic inLine inLine out Lab 计VIEW 算 机图2.3 声卡采集系统原理框图工作过程为:输入时,测试信号首先经过信号调理电路,利用PC机声卡的麦克风输入(mic in)或线路输入(line in)作为信号的输入端口,将获取到的模拟音频信号经过左右两个通道和A/D转换后送入计算机,通过LabVIEW编写的采集程序进行各种处理和保存;输出时,经过采集系统处理的数据通过总线将数字化的信号以PCM方式送到D/A转换器,编程模拟的音频信号由线路输出(line out)端口通过耳机或音响转换为音波播放出来。在信号进入声卡之前必须
23、经过信号调理,主要包括信号的放大、滤波、隔离和线性化处理,以使其能够被声卡正确的识别。声卡的麦克风(mic in)输入端具有高增益放大器,会使得信号产生较大失真,所以选择线路(line in)输入信号时,其输入电压应为-1+1V6。2.2.1 声卡信号采集流程模拟信号经同轴电缆进入采集卡的输入通道,经过前置滤波电路、衰减电路、可变增益的放大电路,将信号处理成A/D转换器可以处理的标准电平,经过A/D采样量化转化成计算机可以处理的数字信号并缓存到卡上的存储器。其支持软件通过PC机的PCI总线接口控制模拟通道的阻抗匹配、放大器的增益选择、启动A/D转换及转换结束的识别,并将采集数据以DMA的方式传
24、输到计算机内存,同时对数据信号进行分析处理、显示、存储及打印传输等。声卡数据采集流程如图2.4所示。SI ConfigSI Startl数据处理SI ReadSI ClearlSI Stop图2.4 声卡数据采集流程图2.2.2 声卡信号采集的实现LabVIEW软件是一种基于图形语言编程的可视化软件开发平台,与VC,VB等其他可视化编程语言相比,其函数库丰富、编程简单直观、调试方便,而且界面开发简单,界面风格与传统仪器相似。LabVIEW是一个外观和操作能模仿实际的仪器的程序开发环境,类似于C、BASIC等编程语言。但LabVIEW的特点在于,它使用图形化编程语言G在流程图中创建源程序,而非使
25、用基于文本的语言来产生源程序代码。LabVIEW还整合了诸如满足GPIB、VXI、USB、RS-232和RS-485以及数据采集卡等硬件通讯的全部功能。内置了便于TCP/IP、Active X等软件标准的库函数。虽然LabVIEW是一个通用编程系统,但是它也包含了数据采集和仪器控制等特别设计的函数库和开发工具。由于LabVIEW所使用的术语、图标和概念都是技术人员、科学家、工程师所熟悉的,故而即使用户没有多少编程经验,同样也能利用LabVIEW来开发自己的应用程序7。以LabVIEW为基础的本声卡信号采集系统主要完成了信号采集、存储、回放和频域分析等功能。本设计对于信号采集如此多的功能采用了分
26、模块显示设置,这样使得主程序前面板简单明了,且功能齐全,方便了用户的操作。第3章 系统功能设计及实现3.1 软件开发工具LabVIEW介绍LabVIEW是一种基于G语言(Graphical programming language)的可视化(图形化)优秀开发平台,主要用于数据的采集、分析、处理和表达,总线接口、VXI仪器以及GPIB与串口仪器的驱动程序编制和驱动虚拟仪器。它与C、Pascal等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。与传统编程语言最大的区别是LabVIEW使用图形语言(即各种图标、图形符号、连线等),以框图的形式编写程序。络评估作为网络优
27、化的第一步,工作范围包括通过对原有网络进行数据采集、现场检查,并对网络组网合理性、业务发展需求进行掌握和分析,同时和客户保持双向沟通,良性互动,提出适合客户网络发展的优化建议。一个LabVIEW程序包括三个主要部分:前面板、框图程序、图标/接线端口。前面板是交互式图形化用户界面,用于设置输入数值和观察输出量。框图程序是利用图形语言对前面板的控制量和指示量进行控制。图标/接线端口用于把LabVIEW程序定义成一个子程序,以便在其它程序中加以调用7。对虚拟示波器的设计和实现是建立在labVIEW和声卡采集系统之上的。LabVIEW中有关声卡的函数主要包括声音输入函数、声音输出函数、分析函数和文件函
28、数。1. 声音输入函数(1) SI Config该函数的主要功能是设置声卡中与数据采集有关的一些硬件参数,如采样率,数据格式,缓冲区长度等。声卡的采样率由内部时钟控制,只有34种固定频率可选,一般将采样率设置为44100Hz 数据格式设置为16位字长。缓冲区长度可取默认值。为声音输入功能设置一个声音驱动。当设置好了后,你可以使用SI Start VI 和 SI Read VI从设备中获取声音。(2) SI Start该函数用于通知声卡开始采集外部数据。采集到的数据会被暂存在缓冲区中,这一过程无需程序干预,由声卡硬件使用DMA直接完成,保证了采集过程的连续性。命令声音驱动开始堆积采集进来的数据。
29、如果驱动已经运行了,命令这个VI不要起作用。(3) SI Read该函数用于等待采样数据缓冲区满的消息。当产生这一消息时,它将数据缓冲区的内容读取到用户程序的数组中,产生一个采样数据集和。若计算机速度不够快,使得缓冲区的内容被覆盖,则会产生一个错误信息。这时应调节缓冲区的大小,在采样时间与数据读取之间找到一个理想的平衡点。从声音输入驱动中读取数据。当数据到达驱动的缓冲区时,数据缓冲后将获得数据,否则等待数据的到来,假如因为一些原因,未缓冲的数据被写入,将没有数据获得,替代,一个溢出的错误被报告。(4) SI Stop该函数用于通知声卡停止采集外部数据。已采集而未被读出的数据就会留在缓冲区中,可
30、以使用SI Read 函数一次读完。命令声音输入驱动停止堆积采集进来的数据。采集到的数据存储在系统的缓冲器中,并且数据能用SI Read VI收集到。如果驱动不再运行,命令这个VI不要作用。(5) SI Clear该函数用于完成最终的清理工作,例如关闭声卡采样通道,释放请求的一系列系统资源(包括DMA 缓冲区内存 声卡等)。关闭声音输入驱动联合task ID in和释放驱动使用的计算机系统得所有资源。2. 声音输出函数(1) SO Config该函数用于设置一个声音输出设备,并且开创一个声音ID输出任务。利用这个VI来配置这个声音设备后,这个设备就将存在于暂停模式中,且可以利用SO Write
31、 (声音输出写入)和SO Start (声音输出开始)VI虚拟模块来完成这个数据的应用程序。(2) SO Write该函数需要联合task ID in向声音输出设备写入数据。如果这个设备已经开始运行,则数据会立刻转移到缓冲器中。如果设备正处于暂停状态,则数据不会开始转移直到SO Start声音输出开始键开始运行为止。(3) SO Pause要暂停一个声音输出设备需要联合task ID in端子的设置。如果这个设备正处于暂停模式中,我们则叫这个VI不工作。当你用这个VI时,将没有数据丢失,并且这个正确的位置将会被保存。这时我们要用SO Start VI(输出声音开始模块)来再次启动输出。Mac
32、OS这个VI则可能不可以立刻停止声音的录入。(4) SO Clear关闭输出声音设备与task ID in端子相关联,并且任何设备运用的资源要释放都必须送到计算机系统中去。3. 分析函数(1) Butterworth Filter通过利用Butterworth Coefficients VI来生成数字滤波功能。(2) Scaled Time Domain Window将时域信号应用于选择的窗口:选择0、Uniformu不变窗;1、Hanning汉宁窗;2、Hamming海明窗;3、Blackman-Harris布莱克曼哈里斯窗;4、Exact Blackman准确的布莱克曼窗;5、Blackm
33、an布莱克曼窗;6、Flat Top 水平顶窗;7、Four Term Blackman-Harris四组布莱克曼哈里斯窗;8、Seven Term Blackman-Harris七组布莱克曼哈里斯窗;9、Low Sidelobe低斜窗。(3) Auto Power Spectrum计算单极性,多极性时域信号的功率谱分析。(4) Power & Frequency 计算一个时域信号频谱中估计的频率峰值。4. 文件函数Simple Error Handler:它主要是指示是否有错误发生。如果一个错误发生,这个VI将会获得这个错误的一个描述,并且会随意地显示一个对话框。这个VI叫做通用错误处理器,
34、并且它包括作为通用错误处理器的相同的基础功能除了少许选项8。3.2 虚拟示波器总体设计3.2.1 虚拟示波器的工作原理模拟信号经同轴电缆进入采集卡的输入通道,经过前置滤波电路、衰减电路、可变增益的放大电路,将信号处理成A/D转换器可以处理的标准电平,经过A/D采样量化转化成计算机可以处理的数字信号并缓存到卡上的存储器。其支持软件通过PC机的PCI总线接口控制模拟通道的阻抗匹配、放大器的增益选择、启动A/D转换及转换结束的识别,并将采集数据以DMA的方式传输到计算机内存,同时对数据信号进行分析处理、显示、存储及打印传输等9。使用LABVIEW构建基于声卡的虚拟示波器的思路是很清晰的。实际的数据采
35、集流程是:(1) 初始化。对声卡中与数据采集相关的一些硬件参数进行设置;(2) 声卡开始采集数据,并将采集到的数据暂存在先进先出的缓冲区中;(3) 当缓冲区存满数据后,一方面将数据读取到用户程序的数组中,产生一个采集数据集合,并在程序中对数据进行各种处理;(4) 另一方面,得到缓冲区满的消息后,通知声卡暂时停止采集外部数据,并进一步清空缓存里的内容。虚拟示波器是采用基于计算机的虚拟技术,用以模拟通用示波器的面板操作和处理功能,也就是使用个人计算机及接口电路来采集现场或实验室信号,并通过图形用户界面(GUI)来模仿示波器的操作面板,完成信号采集、调理、分析处理和显示输出等功能。虚拟示波器,是在数
36、据采集硬件的支持下,配备一定功能的软件,完成波形的存储、分析、显示等功能。一般测试仪器由信号采集、信号处理和结果显示三大部分组成,这三大部分均由硬件构成。虚拟示波器也是由这三大部分组成,但是除了信号采集部分是由硬件实现之外,其它两部分都是由软件实现。3.2.3 虚拟示波器的工作流程虚拟示波器的程序流程框图如图3.1所示。声卡LABVIEW模块初始化信号采集波形显示参数显示图3.1虚拟示波器程序流程图首先对设计中运用到的模块进行初始化,然后通过声卡对数据进行采集,把采集到的信号送入LABVIEW模块中,通过LABVIEW模块的程序运行下,把采集到的信号通过图形的形式,把波形显示出来。通过波形的显
37、示,最后把波形的其他参数以数字的形式都显示出来。该试验设计的虚拟示波器中,信号的传送,处理,显示是相当清晰的,先是信号发生器产生声卡所能识别的信号(信号的幅值不能超过1.5V,超过1.5V的信号应该先经过前置放大器进行幅值变化)10。虚拟示波器的程序结构图见图3.2所示。声卡参数设置数据采集频谱分析参数显示波形显示函数信号发生器图3.2 程序的结构图3.3 虚拟示波器软件模块设计3.3.1 数据采集模块数据采集模块是虚拟示波器软件的硬件驱动部分,在这里主要是利用LABVIEW里面的声卡函数完成声卡的硬件参数设置、启动声卡采集数据、等待采样数据缓冲区满的消息、通知声卡停止采集等任务。在该实验设计
38、中,数据采集是利用声卡进行数据采集并进行A/D转换,LabVIEW中,有针对声卡数据采集的函数,如 “Sound Input Configure .VI”、“Sound Input Read .VI”、“ Sound Input Clear .VI”、“Sound Input star .VI”、“Sound Input stop.VI”等。“Sound Input Configure.VI”: 图标如3.3所示。 图3.3 Sound Input Configure.VI该函数的主要功能是设置声卡中与数据采集有关的一些硬件参数,如采样率,数据格式,缓冲区长度等。声卡的采样率由内部时钟控制,一
39、般将采样频率设置为44100HZ,数据格式设置为16bit11。缓冲区长度可选默认值。主要操作说明:在block diagram:Functions Graphics & Sound Sound Input Configure 选择configure函数。“Sound Input Configure.VI”前版面如图3.4所示。图3.4 Sound Input Configure.VI前版面“Sound Input Configure.VI”后版面如图3.5所示。图3.5 Sound Input Configure.VI后面板“Sound Input Read .VI”:如图3.6所示。图3.
40、6 Sound Input Read .VI该函数用于等待采样数据缓冲区满的消息。当产生这一消息时,它将数据缓冲区的内容读取到用户程序的数组中,产生一个数据采样集合。若计算机的速度不够快,使得缓冲区内容被覆盖,则会产生一个错误信息。这时应调节缓冲区的大小,在采样时间和数据读取之间找到一个理想的平衡点。主要操作说明:在block diagram: Functions Graphics & Sound Sound Input Read 选择read函数“Sound Input read .VI”前版面如图3.7所示。图3.7 Sound Input read .VI前版面“Sound Input
41、read .VI”后版面如图3.8所示。图3.8 Sound Input read .VI后版面“Sound Input clear .VI”:如图3.9所示。图3.9 Sound Input clear .VI该函数用于完成最终的清理工作。例如关闭声卡采样通道,释放请求的一系列系统资源(包括MDA,缓冲区内存,声卡端口等)。主要操作说明:在block diagram:Functions Graphics & Sound Sound Input Clear选择clear函数。“Sound Input clear .VI”前版面如图3.10所示。图3.10 Sound Input clear .
42、VI前版面“Sound Input clear .VI”后版面如图3.11所示。 图3.11 Sound Input clear .VI后版面3.3.2 测量模块采样点数测量模块如图3.12所示。图3.12 采样点数测量模块程序说明:采样点数测量模块主要用于获得波形的采样点数,其中采用的Statistics函数,它是用来确定波形运行时的采样点数,取决于输入的程序中设定的值。主要操作说明:在block diagram: Functions Mathematics Prob & Stat Statistics 选择Statistics函数。频率测量模块前面板如图3.13 所示。图3.13 频率测量
43、模块前面板频率测量模块的后面板如图3.14所示。图3.14 频率测量模块的后面板程序说明:频率测试模块,主要用于测量信号波形的频率。其中采用的函数为Extract Single Tone Information 函数。它是用来获取一个信号的,求出音频信号的最高幅度或者一个指定的频率范围,并返回一个单一的频率、幅度、相位值。主要操作说明:在block diagram:Functions Signal Processing Wfm Measure Extract Single Tone Information 选择Extract Single Tone Information 函数12。第4章 系
44、统的调试和程序显示4.1 虚拟示波器的性能(1) 采样频率系统能测试到的最高频率与电路所选器件的性能有关,本论文选用声卡的最高采样频率为44.1KHz,根据采样定理,所能测试模拟信号的最高频率为22KHz。考虑到声卡本身采集质量问题,实际测试的模拟信号的最高频率为2.5KHz 13。(2) 采样精度系统采样精度与电路所选器件的位数有关,设计中选用16位采样的声卡,采样精度为 ,分辨率约为0.0015%,实时带宽:2KHz14。4.1.1 虚拟示波器的操作界面虚拟示波器前面板如图4.1所示,前版面说明:在该虚拟示波器前版面中,运用3个波形显示vi来分别显示输入信号的波形,相位,幅度,用数字控件来
45、设置对声音格式,采样数和设备ID分别进行设置,用数字显示vi来对具体测量出来的数据进行显示,开关控制程序的进行。图4.1 虚拟示波器前面板4.1.2 虚拟示波器总程序框图虚拟示波器的前面板是应该根据实际中的仪器面板以及该仪器所要实现的各种功能进行设计的程序交互式图形化用户界面。根据计算机声卡的实际特性,将声卡设置为双通道、44.1kHz采样频率、16位采样比特数、连续采样等,如图4.2所示。本设计根据实际显示需要,设计的显示前面板如图4.3所示,该虚拟示波器界面实时显示了所采集歌声的实时信号。同时,实时显示界面的示波器属性设置为X、Y轴均设置为“自动调整标尺”,从而保证无论信号幅值如何改变,总
46、可以在纵坐标上是清晰显示,这样不仅方便用户操作,而且观察方便15。图4.2 声卡参数设置图4.3 实际采集音频信号实时显示图4.4 虚拟示波器后面板程序图后版面程序框图中,选择LabVIEW中自带的“Sound Input Configure.VI”和“Sound Input Read .VI”来对声卡信号进行采集,通过“Sound Input Configure.VI”的接线端,连接数字控件,对声卡采集进行控制。声卡的采集应该是连续的,所以,程序中运用while循环,使程序能连续读出声卡信号,并且能够连续的进行数据测量和波形显示。并且运用节点开关和逻辑vi和“Unbundle By Name
47、.VI”来对程序的进程进行控制,既能自注的对程序进行关闭,也能在程序运行有错误时,程序自动关闭并提示错误。虚拟示波器后面板程序框图如图4.4所示。4.2 虚拟示波器波形显示声音信号的显示如图4.5所示。图4.5 一般声音信号的显示为了清楚的显示虚拟示波器的特性,采用函数发生器产生单位信号、正弦信号、三角波信号和方波信号。正弦波如图4.6所示。图4.6 正弦波信号方波信号显示如图4.7所示。图4.7 方波信号三角波信号显示如图4.8所示。图4.8 三角波信号第5章 总结与展望至此,对基于LABVIEW声卡虚拟示波器的设计与研究已完成,实现了具有声卡采集参数设定功能、录音和重放功能也实现了声音数据的采集、完成功率谱信号的显示。声音采集数据能够