基于声卡的虚拟示波器设计
2022-02-20赵业佳文晓刚应宇佳李燕玲葛西洋
赵业佳,文晓刚,应宇佳,李燕玲,葛西洋
(嘉兴南湖学院,浙江嘉兴,314001)
0 引言
示波器在教育教学、科研军事、电子设备生产等电子电工领域是最基础,最不可或缺的测量仪器。传统的数字模拟示波器失真比较大,且采样率种类有限,对复杂信号的处理能力较差,在使用过程中容易出现测量误差[1,2],因此出现了虚拟示波器。虚拟示波器主要是利用现有的标准硬件,并且与高效、通用的软件相结合,从而进行各种各样的测试、测量和自动化应用,进而实现对数据的采集,并对采集到的数据进行一系列的分析和处理。与此同时,如果将计算机软件、标准化的I/O硬件以及用于集成的计算机软件和硬件平台这三个部分有效结合,那么虚拟仪器技术就能将高性能、可拓展性、低开发期限以及出色的集成等优点发挥的淋漓尽致[3]。
1 虚拟仪器及LabVIEW软件简介
1.1 虚拟仪器概述
虚拟仪器技术指的是利用先进的模块化软硬件,并结合高效灵活的应用软件来实现各种测试、测量和自动化的应用。通过软件可以实现相关界面的建立,利用硬件能够完成系统的集成,标准的软硬件平台能满足不同的需求[4]。
相较于传统仪器,虚拟仪器具有较大的优势。
表1 虚拟仪器与传统仪器区别
对硬件需求较高 软件为核心开发维护费用高周期长 开发维护便利系统封闭,可扩展性差 多种多样的模块构成仪器,多元化
1.2 LabVIEW概述及编程环境
LabVIEW是由NI公司自主开发的一个程序开发软件,与C和BASIC开发环境相似。但LabVIEW和不同的计算机语言之间的区别是,不同的计算机语言使用基于文本的语言来获得代码,而LabVIEW则是利用G语言进行编写,最终产生的程序是以图形的方式呈现[5,6]。
LabVIEW 程序也称之为 VI(Virtual Instrument,即虚拟仪器),它可以根据开发者的需要进行界面设计,最终得到和传统实际仪器功能类似的产品。一般来说,VI由两部分组成:前面板和程序图[7]。前面板,即一个具象化的界面,用来设置输入量和观察输出量,模拟真正的仪表面板[8]。前面板主要包括各种手动输入控制控件,如旋钮、按钮、数值和显示控制。程序框图用G语言进行编写,这相当于传统程序中的源代码文本文件,每一个前面板都与程序图相匹配[9]。
2 虚拟示波器
2.1 虚拟示波器构成
本文设计的虚拟示波器主要是由硬件和软件两部分组成[10]。其中硬件是以计算机中的声卡为基础,软件是由LabVIEW来实现设计。本文设计的虚拟示波器的程序结构示意图如图1所示。
图1 程序结构示意图
首先利用声卡进行信号采集,然后通过软件进行滤波操作,接下来可以对滤波后的信号进行频谱分析、波形显示、信号测量、数据保存以及界面打印等。
2.2 前面板设计
程序的前面板包括参数设置、信号测量、数据保存三部分区域。参数设置主要包括声音采集参数设置、滤波参数设置以及控制按钮的设置。声音采集参数包括采样率、通道数、每通道采样数等设置;滤波参数主要设置滤波方式以及滤波截止频率;控制按钮包括暂停按钮以及停止按钮。暂停按钮,用于暂停波形显示。但此时数据仍在正常采集,再次点击该按钮即可恢复实时显示。停止按钮,用于终止整个程序。信号测量分为坐标轴调节、测量方式选择、游标、倍率调节、以及结果显示。坐标轴调节包括X、Y轴上下限三个旋钮,用于设置波形图的坐标轴范围;测量方式有手动测量和自动测量两种;游标调节包括游标选择以及位置调整,主要是用于手动测量模式中调整游标的位置,同时可以观察当前游标的位置,从而实现信号周期、频率、幅值等参数的测量;倍率调节主要是用于调整游标的移动范围,从而实现粗调和微调不同模式的切换;结果显示包括数值以及波形两种显示方式。其中波形显示分为原始波形图以及滤波后波形图,波形图的横坐标代表时间,纵坐标代表幅值。数值显示主要包括游标的位置以及信号周期、频率和幅值。数据保存用于设置保存的文件名和打印界面。具体框图如图2所示。
图2 前面板
2.3 基本功能实现
2.3.1 声音采集
LabVIEW软件提供了一系列有关声音采样的函数,因此在声音采集过程中,直接通过配置相应的函数进行声音采集[11]。首先配置声音输入,然后读取声音,读取结束之后进行声音清零。具体程序设计如图3所示。
图3 声音采集模块
2.3.2 信号滤波
计算机采集到的信号包括三大类:目标信号、无用信号以及噪音。因此若想要得到目标信号,首先需要进行滤波处理。通过使用LabVIEW中自带的滤波器模块,可以将信号按用户需求进行滤波。滤波方式包括低通滤波、高通滤波、带通滤波以及带阻滤波四种,同时也可以选择不进行滤波。需要注意的是,在参数设置过程中低截止频率必须要小于高截止频率[12]。滤波后的波形通过“自功率谱”VI[13]可以显示出信号频谱,只需要输入指定的时域信号和时域信号的采样周期,便能返回单边功率谱和功率谱的频率间隔。具体模块设计如图4所示。
图4 滤波及频谱显示模块
2.3.3 信号测量
信号测量分为自动测量和手动测量两种模式。自动测量最主要是通过系统自主分析,找到当前显示波形的最大值及最小值并实现信号测量及标定。手动测量主要是通过手动调节旋钮来控制游标的移动,从而实现信号测量及标定。
传统示波器会有一个旋钮来专门控制旋钮灵敏度,而本设计的虚拟示波器也是设置了一个旋钮来对应传统示波器的功能。“调整倍率”旋钮只有五个档,即1至5档,对应着0.005、0.002、0.001、0.0005、0.0001五个旋钮精度。判断“调节倍率”旋钮的值,将对应的数值输入给旋钮“Pos.X”和“Pos.Y”的属性中的增量参数。
对于自动测量只需利用前面板X轴和Y轴上下限设置调整波形图表的显示范围,然后选择自动测量即可实现。对于手动测量则需要选择手动测量模式,通过倍率调整旋钮设置游标的移动间隔,然后选择需要调整的游标并利用对应的调整旋钮进行调整,从而实现信号幅值以及频率等参数的测量。具体程序框图如图5和图6所示。
图5 自动测量程序框图
图6 手动测量程序框图
2.3.4 数据保存及界面打印
虚拟示波器作为以计算机为平台的虚拟仪器,也同样具备数据保存和界面打印的功能[14]。用户只需在开始程序前在前面板中输入想要保存的文件名称,就能自动保存在当前VI的文件目录下,程序如图8。而在前面板上按下“保存图像”按钮,便能在当前VI的文件目录下找到当前波形的PNG格式的图片。
图7 测量结果前面板
图8 数据保存程序框图
3 功能测试与验证
3.1 滤波验证
本设计的虚拟示波器滤波模块包括低通滤波、高通滤波、带通滤波以及带阻滤波四种。通过叠加不同频率的信号和噪声,来验证滤波是否成功,频率如表2所示。
表2 不同频率的信号和噪声(单位:Hz)
使用MATLAB软件编写程序,使声卡播放叠加特定频率的信号和噪音后,启动虚拟示波器VI进行测试。程序代码如图9,图左为输出信号频率4000Hz和噪声频率2000Hz的混合信号,图右输出信号频率2000Hz和噪声频率4000Hz的混合信号。
图9 MATLAB代码
低通滤波,低截止频率为3000Hz,结果如图10所示。
图10 低通滤波后信号频谱
高通滤波,高截止频率为3000Hz,结果如图11所示。
图11 高通滤波后信号频谱
带通滤波,低截止频率为3000Hz,高截止频率为5000Hz,结果如图12所示。
图12 带通滤波后信号频谱
带阻滤波,低截止频率为1000Hz,高截止频率为3000Hz,结果如图13所示。
图13 带阻滤波后信号频谱
最后不滤波情况如图14所示。
图14 不滤波后信号频谱
3.2 信号验证
由于环境中存在不同频率的噪声信号,因此在信号验证过程中利用MATLAB软件生成具有高斯白噪声的信号,信号频率依旧设为4000Hz。采用带通滤波的方式对采集到的信号进行处理,其中低截止频率设置为3500Hz,高截止频率设置为4500Hz。测量滤波之后的信号频率及幅度。MATLAB程序如图15所示。
图15 加入高斯白噪声的代码
虚拟示波器采集到的原始信号如图16所示。
图16 具有高斯白噪声的原始信号
带通滤波后信号如图17所示。
图17 滤波后信号
信号参数测量结果如图19所示。
图18 信号测量过程
图19 测量结果
信号频率理论值为4000Hz,测得值为4000Hz,表明该示波器能够实现信号参数的测量。
4 结语
本文完成了基于声卡的虚拟示波器设计,该示波器具有信号采集、数据滤波、频谱分析、波形显示、信号测量、数据保存以及界面打印等多种功能。该虚拟示波器面板清晰,易于上手,实用性强,且通过实验验证得出系统功能齐全,数据采集正常,测量准确,在实验中可以替代传统示波器。此外,该系统的数据采集部分也可以通过数据采集卡完成,这样可以使虚拟示波器的应用更加广泛。