摘要:为了在对采样频率要求不高的情况下进行信号的生成和剖析,选用声卡替代价格贵重的数据收集卡进行采样和输出,运用虚拟仪器开发软件LabVIEW,别离规划和完结了依据声卡的虚拟信号发生器和虚拟示波器。信号发生器能够发生方波、三角波等常用波形和自定义波形,示波器具有波形显现、图画暂停和截取以及频谱剖析功用,所规划的虚拟仪器具有友爱的人机界面,只需两台核算机即可进行完好的自测验。
在电子与通讯职业以及实验测验中,信号发生器和示波器是运用最广泛的电子丈量仪器。传统仪器的技能和功用都现已比较老练,但存在体积较大、不易带着、功用固定、而且价格贵重等缺点。虚拟仪器是核算机技能与仪器技能深层次结合发生的产品,代表了当时测验仪器的开展方向之一。虚拟仪器体系的必备组件包含功用强壮的编程东西、灵敏易用的数据收集硬件及个人电脑。在实践丈量中,需依据需求挑选相应的数据收集卡,但这些卡的价格均比较贵重,而相同具有A/D功用的声卡是一个十分优异的音频信号收集体系,具有16位量化精度,数据收集频率可到达44.1 kHz且已成为大多数核算机的规范装备,当所研讨信号的频率规模在音频规模内(20 Hz~20 kHz)时,运用声卡进行数据收集就是一个更好的挑选。
文中依据虚拟仪器的规划概念,运用便利廉价的核算机声卡别离规划和完结了虚拟信号发生器和虚拟示波器,特别合适于实验室环境下低频信号的发生与剖析。本文运用声卡进行A/D、D/A转化以及信号的收集和播映,运用LabVIEW软件规划了虚拟仪器的前面板并完结相关信号的运算、剖析和处理。所规划的虚拟信号发生器和示波器具有传统仪器的功用,比较于传统仪器,具有本钱低价、运用便利、扩展性强等长处。
1 虚拟仪器技能和声卡作业原理
1. 1 虚拟仪器的特色
虚拟仪器首要是由美国国家仪器公司于20世纪80年代中期提出来的,完结“软件即仪器”的概念。跟着核算机技能和大规模集成电路的飞速开展,虚拟仪器技能也得到了很大的开展。虚拟仪器的实质是将传统仪器硬件和核算机软件技能结合起来,以完结并扩展仪器的功用。核算机软件是虚拟仪器的中心,硬件仅仅为了处理信号的输入输出,虚拟仪器集成了仪器的一切收集、操控、数据剖析、成果输出和用户界面等功用,使传统仪器的部分硬件乃至整个仪器都被核算机软件替代。
虚拟仪器完结了仪器的智能化、模块化和多样化,体现出多功用、低本钱等操作长处。与传统仪器比较,虚拟仪器具有更广的运用领域,因而它成为仪器职业开展的一个重要方向,并遭到许多国家仪器职业的注重。
虚拟仪器开发渠道现在首要有两类:一类是依据传统言语的Turbo C,Microsoft公司的Visual Basic与Visual C++等,这类言语需求开发人员有较多的编程经历和较强的调试才能;另一类是专业图形化编程软件,如HP公司的VEE,NI公司的LabVIEW和LabWindows/CVI等。
1. 2 LabVIEW开发渠道
LabVIEW是一个很好的图形化开发环境,专为数据收集和仪器操控而规划,它将信号收集、丈量剖析和数据显现功用会集在同一个开放式的开发环境中。LabVIEW具有丰厚的库函数供用户调用,图形化的编程言语简略直观、开发速度快,在编写程序的一同能够主动生成图形化用户界面,可充分运用核算机强壮的核算和显现功用,被广泛运用与主动操控和测验领域中。
1. 3 声卡作业原理
声响的实质是一种波,表现为振幅、频率和相位等物理量的接连改变。声卡是核算机进行声响处理的适配器,它有3个根本功用:一是音乐组成发音功用;二是混音器(Mixer)功用和数字信号处理(DSP)功用;三是模仿声响信号的输入和输出功用。声卡是一个十分优异的音频信号收集体系,其数字信号处理包含模数变换器ADC(Analogue Digital Converter)和数模变换器DAC(Digital Analogue Converter),ADC用于收集音频信号,DAC则用于重现这些数字声响。
声卡的技能目标包含采样频率、采样位数(量化精度)、声道数、复音数量、信噪比(SNR)和总谐波失真(THD)等,其间采样频率、采样位数是首要目标。现在的声卡一般选用PCI接口,具有16位采样精度,支撑双通道,最高采样频率达44.1kHz。
声卡已成为多媒体核算机的一个规范装备,因而依据声卡的虚拟仪器具有本钱低,兼容性好,通用性和灵敏性强的长处,驱动程序晋级便利,能够不受硬件约束,安装在多台核算机上,具有很好的可行性。
2 虚拟信号发生器规划
文中在LabVIEW开发渠道下规划并完结了双通道虚拟信号发生器,规划中首要运用了LabVIEW供给的声卡驱动函数,所规划的双通道虚拟信号发生器能够发生常用的根本波形,而且完结了频率显现,频率调理,幅值调理,直流偏置调理和频率扫描等功用。整个程序结构规划选用在LabVIEW状况机的基础上引进事情结构的办法,提高了程序的运转功率。
2.1 LabVIEW中有关声卡信号输出的首要函数
在虚拟信号发生器的规划中,用到了LabVIEW软件“声响输出”模块部分的函数,如图1所示。下面临规划过程中用到的首要函数及其功用作简略介绍:
1)“装备声响输出”函数。该函数的作用是装备一个生成数据的声响输出设备,初始化声卡的装备,包含采样频率,采样形式,声卡参数等。
2)“设置声响输出音量”函数。该函数用来设置声响输出设备的播映音量。
3)“写入声响输出”函数。该函数将准备好的数据写入声卡驱动程序进行播映输出。
4)“声响输出清零”函数。该函数使设备中止播映音频,清空缓存,将使命回来至默许的未装备的状况,并清空与使命相关的资源,将使命变为无效。
2.2 虚拟信号发生器的前面板规划
前面板为用户供给了友爱的操作界面,本文依据传统仪器的操作面板和本仪器所能完结的功用规划了虚拟信号发生器的前面板,如图2所示。前面板首要由四个部分组成,包含波形显现部分、公共参数设置部分、CH1通道和CH2通道设置部分。波形显现部分用于显现两个通道的输出波形,公共参数设置部分用于设置声卡的采样率、通道数、采样位数、缓冲区巨细和音量,CH1和CH2通道进行设置每个通道生成的波形参数,包含波形类型、频率、偏移量、起伏、方波占空比、噪声等,并能够运用公式输出自定义波形。
2.3 虚拟信号发生器的程序框图规划
程序框图是图形化的源代码,前面板中的每个控件在程序框图中都有相应的接线端与之对应,经过数据连线和不同的程序结构即可操控整个程序的流程和数据传递。虚拟信号发生器的程序框图首要包含3个模块:声卡装备模块、波形设置模块和波形输出模块,如图3所示。
声卡装备模块首要设置“装备声响输出”函数,本规划将声卡设置为接连采样,每通道缓冲数和声响格局都能够在前面板进行设置。然后将采样信息传输到“波形设置模块”,挑选所要发生波形的类型。
波形设置模块运用条件结构挑选不同类型的波形,能够别离挑选正弦波、方波、锯齿波、三角波、高斯白噪声、叠加正弦波以及自定义波形。该模块还能够设置相应的波形参数,包含频率、起伏、偏移量和方波占空比。
数据输出模块调用“写入声响输出”函数,经过声响输出设备输出声响信号。最后由“声响输出清零”清空缓冲区,结束使命。
3 虚拟示波器规划
本文运用LabVIEW中的数字声响记载节点,规划并完结了依据声卡的虚拟双踪数字存储示波器,采样频率为44.1 kHz,线路输入端口最高电压约束为1 V,对高于1 V的信号选用份额运算扩大电路衰减后输入,能合适许多场合的需求。
规划的虚拟示波器的技能目标如下:
1)输入频率规模:10~20 000 Hz;
2)通道数:2;
3)采样频率:44.1 kHz;
4)ADC分辨率:16位。
虚拟示波器的两个重要目标别离是分辨力(指能区分一个物体不同部分的才能)和精度。其间分辨力包含水平分辨力和笔直分辨力,精度也包含水平缓笔直两种精度。虚拟示波器的水平分辨力是由时钟信号采样点的时间距离决议的。采样频率越高,水平分辨力就越高。虚拟示波器的笔直分辨力是由模数转化器的位数决议的,n位的转化器有2-n的分辨力。因为所选用的声卡是16位的,其在笔直方向上能够分辨出65536个数据点,分辨力为1/65536。虚拟示波器的笔直精度受模数转化器精度的约束,一般要比分辨力低。
3.1 LabVIEW中有关声卡信号收集的首要函数
在LabVIEW的函数选板下有“声响”选项,在该选项下,LabVIEW供给了一系列运用Windows底层函数编写的与声卡有关的函数,这些函数首要分为两大模块:声响输入和声响输出。在虚拟示波器程序规划中首要用到的是“声响输入”模块,如图4所示。
1)“装备声响输入”函数。该函数的作用是装备声响输入设备,收集数据,并把数据存放到缓冲区,后边运用“读取声响输入”VI将数据从缓冲区读入。
2)“读取声响输入”函数。该函数的作用是将数据从缓冲区读入。在运用该VI之前,有必要运用“装备声响输入”VI来装备设备。
3)“声响输入清零”函数。一般声响输出设备不行同享,若在某个程序运转之前,设备现已被其他程序占用,则此运用程序不能再运用该设备,所以,在程序中一旦对声卡运用结束,应该当即开释。该函数的首要作用是使设备中止声响数据收集,清空缓存,从使命回来至默许的未装备的状况,并清空与使命相关的资源,使命变为无效。
3.2 虚拟示波器的前面板规划
前面板用来供给用户与虚拟示波器的接口,经过一个友爱的图形界面,模仿传统仪器操作,完结对虚拟示波器的操控,而且显现数据处理成果。
本文规划的虚拟示波器的前面板如图5所示,依照功用来分,显现屏能够别离显现原信号波形图和信号的频谱图,波形图开关、频谱图开关能够暂停画面便于保存截图,保存图画按钮能够将截图保存为bmp图画,通道挑选部分能够挑选单通道或是双通道一同显现,触发部分能够调控信号的触发源、触发极性以及触发电位,标定比率便于标定电压,采样数用于确认采样精度,定位部分能够别离调理显现精度、起伏和偏移,信息按钮能够显现相关制造信息。
3.3 虚拟示波器的程序框图规划
3.3.1 总体规划
虚拟示波器的程序框图首要包含数据收集模块,波形显现模块,频谱剖析模块,XY轴设置模块,触发设置模块,图画暂停与截图模块和信息显现模块7大部分,如图6所示。下面结合虚拟示波器的相关功用模块来别离介绍对应的程序框图。
3.3.2 数据收集模块
数据收集模块运用声卡数据收集函数完结声卡收集时一些必要参数的设置,如声卡采样形式、采样数、设备ID等,并将声卡收集到的信号(已由模仿信号转化为数字信号)传送给波形显现模块。其作业流程如下:
1)运用装备声响输入函数确认声卡的参数和数字声响格局,如缓冲区巨细、采样速率、采样形式(固定点数采样或接连采样)、采样通道数、样本位数(16 bit或8 bit),本规划的虚拟示波器选用双通道接连采样,采样频率为44100,样本位数为16,每通道采样数能够在前面板上设置。
2)运用读取声响输入函数从缓冲区中读取采样数据,从收集到的波形数组中挑选一个波形送到波形显现模块,运用while循环使采样接连进行。
3)运用声响输入清零函数中止数据收集,清空缓存,从使命回来至默许的未装备的状况,并清空与使命相关的资源,使使命变为无效。
3.3.3 波形显现和频谱剖析模块
信号从数据收集模块输出后乘以标定比率,然后分红两路,一路直接进入波形图控件在前面板显现信号的时域波形,另一路进行FFT剖析后再输入波形图控件在前面板显现信号的频谱图。
3.3.4 XY轴设置模块
波形显现模块担任显现波形,而且能够经过旋钮来操控X轴和Y轴量程和偏移,一同依据通道的挑选(通道A或许通道B)显现相应的波形。
X轴操控是时间轴调理。“X轴精度”调理每刻度显现的时间长度。在该控件中设置6个档位,档位越小显现的越精确。“X轴精度”中0.5ms/div档表明时间轴是从0~0.003 s,增量为0.5 ms,开端时间为0。因为屏幕巨细约束,还需求“X轴偏移”来调理屏幕标尺来显现其他部分的波形,在该控件中设置了14个档位,档位每添加一位屏幕显现向右移动一格。
Y轴操控是起伏调理。“Volts/Div”调理每刻度显现的电压值,在该控件中设置5个档位,档位越高每格显现的电压越大精确度越低。“Y轴偏移”操控信号在Y轴方向上下移动,该控件与信号相加能够使信号全体向上或许向下移动。设标定比率为N,则Y轴偏移的规模为-N~+N。
3.3.5 触发操控模块
示波器的触发功用能够安稳重复的波形,捕获单次波形,这对清楚地检定信号至关重要。虚拟示波器触发操控模块经过子VI来完结,如图7所示。的输入端有波形数据输入(通道A、通道B)、触发极性(Slope)输入(上升沿、下降沿)、触发电平(Ievel)输入、触发源(Source)输入(内触发、外触发)。
程序运转后,首要判别用户触发源的挑选,当触发源挑选“外触发”时,直接将输出的波形数据输出;当触发源挑选“内触发”时,履行边缘子VI。
边缘子VI由一个波形数组索引完结,该子程序完结挑选触发源、依据触发电平的巨细和触发极性进行触发的功用。其原理如图8所示,首要判别用户设置的触发电平巨细是否在波峰和波谷规模内,在此规模内则进行触发。对输入电压信号的第i点和i+1点的值进行比较,正极性触发时,若第i点的值等于或小于触发电平,一同第i+1点的值大于触发电平,则第i点为触发点,将此值送入触发子VI数组子集函数的“ind ex”端口,每次收集数据后,都从触发点开端提取子数组,送入前面板,完结波形的同步显现。负极性触发时与之相反。
3.3.6 图画暂停与截图模块
图画暂停模块经过条件结构来挑选相应的程序,当时面板的开关拨到“作业”时,履行“真”条件分支,前面板正常显现波形,当开关拨到“暂停”,履行“假”条件分支,数据不再输入给波形图控件,前面板显现的波形停止。
截图保存模块经过波形图的特点节点Get Image来完结,能够将当时显现的波形截图并保存为bmp格局图片。需求截图时先用暂停功用将波形停止,再保存截图。
4 定论
文中依据声卡和LabVIEW图形化编程软件开发了虚拟信号发生器和虚拟示波器,特别合适于实验室环境下低频信号的发生与剖析。所规划的虚拟信号发生器和示波器具有传统仪器的功用,比较于传统仪器,具有本钱低价、灵敏性好、扩展性强等长处。但在实践运用中,它也存在一些缺点,例如声卡对输入信号的电压要求不能超过1 V,即有起伏约束;依据奈奎斯特采样定理,当采样频率为44 kHz时,理论上能丈量的信号最高频率为22 kHz,但实践上所能精确丈量的信号频率达不到该理论值,即频率约束。后续作业中需求规划外围的扩大和衰减电路以增大可测信号的动态规模,并对仪器的功用进行完善。