虚拟典型仪器的设计与实现

时间:2022-08-21 11:01:54

虚拟典型仪器的设计与实现

摘要:信号处理领域中实验测试常因电子测试仪器不足而带来了教学和工程中的很大不便。该文所设计的虚拟典型仪器,实现了存储示波器、频谱分析仪及波形发生器的基本功能,可为实验测试提供一种高效的解决方案。该仪器软件部分采用VC++开发,硬件部分为计算机声卡连通现实世界之间的电压转换模块。

关键词:虚拟仪器;VC++;存储示波器;频谱分析仪;波形发生器

中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)26-1834-03

Design and Implementation of Virtual Typical Instrument

LU Ying1, XU Quan-yuan1, LV Hao2

(1.Department of Computer and Informatin Science, SouthWest Forestry College, Kunming 650024, China; 2.Yunnan Province software center,Kunming 650051, China)

Abstract: Testing on the signal processing field is very inconvenient in teaching and engineering area just because of the lack of the electronic test equipments. Design and implementation of virtual typical instrument which may supply an efficient solution is discussed in this paper. It implements the functions of Virtual Storage Oscilloscope、Spectrum Analyzer、Wave Generator. The software part uses VC++ development. The hardware part uses voltage converter module which can connect computer sound card and the real world.

Key words: virtual equipment; VC++; virtual storage oscilloscope; spectrum analyzer; wave generator

1 引言

传统电子测试仪器是电子行业的基础,但由于功能固定,研制生产周期长等缺点,越来越不能满足信息时代的要求。这就给一种新型的测量仪器――虚拟仪器提供了极大的发展空间。虚拟仪器主要利用PC技术,只是添加A/D及D/A变换等少许硬件和以软件为主的仪器,它通过应用程序将通用计算机与功能化硬件结合起来,用户可通过友好的图形界面来操作计算机,就像在操作自己定义、自己设计的一台仪器一样,从而完成对被测试量的采集、分析、判断、显示、数据储存等。它是在PC技术的基础上发展起来的,能在数据导入磁盘的同时,实时地进行复杂的分析。具有高效的性能、强大的扩展功能、节约开发时间,以及完美的集成性能等技术优势。“软件就是仪器”开辟了“虚拟仪器技术”的全新电子测试概念,成为现代测试技术的发展方向。和传统仪器相比,虚拟仪器不仅开发与维护费用低,而且系统性能升级方便,运用灵活。

在信号处理中经常遇到信号频谱、相位谱、信噪比等的研究与测量,采用传统仪器进行研究学习有很大的局限性,所频繁使用的传统电子测试仪器诸如示波器、频谱分析仪和波形发生器等由于价格昂贵,搬移困难以及其它诸多原因,使得信号处理的理论学习和实验严重脱节。为从一定程度上缓和这种现象,可借助现在最为流行的计算机技术来进行虚拟仪器的开发与研究。

此外, 随着计算机多媒体的发展,可视化编程已成为当今程序设计的主流,其中Visual C++更是可视化编程语言中的佼佼者。采用VC++6.0开发主要基于下面三点原因考虑:1)VC++的核心―MFC类库已是事实上的业界标准;2)VC++与Visual Studio中的其它可视化开发工具紧密集成,可用于开发非常专业的Windows应用程序;3)VC++具有强大的底层操作如端口操作,便于实现对硬件的操作。

2 虚拟仪器的功能及界面说明

采用VC++开发了功能强大的集示波器,频谱分析仪与波形发生器功能为一体的虚拟典型仪器。仪器整体功能如图1所示,从计算机声卡接收任意音频信号的软件界面如图2,图3所示。

以下是仪器界面及功能的详细介绍。

1)仪器界面:仪器左右两个窗口分别为时域视图和频域视图。所有功能可通过菜单栏、工具栏和快捷键实现。任务栏可实时获得信号数据值(时域视图:显示时间和幅度值;频域窗口:显示频率、幅度值)。

2)波形显示具有波形存储;幅度\时域扩展;实时获取数据;添加网格坐标,动/静态分析波形的功能。

3)波形发生可产生11种参数可调的基本波形:正弦波、方波、三角波、噪声、调幅(AM)、调频(FM)、调相(PM)、双边带(DSB)、幅移键控(ASK)、频移键控(FSK)以及相移键控(PSK)。可在通过示波功能观察产生的各种信号时域波形的同时,通过频谱分析功能观察其相应的频谱。如图5至图7所示。

4)频谱分析显示具有频域波形存储;幅度\频域扩展;实时获取数据;添加网格坐标,动/静态分析波形,多种视图分析(四种基本视图:连续视图,离散视图,分贝视图,相位视图及视图叠加)的功能。

5)电压转换模块:计出虚拟仪器的硬件模块完成现实世界中的0~5V转换成音频接口可接受的电压10mV~100mV,从而使设计的虚拟仪器的信号源不受计算机音频接口电压限制。

3 软件实现

3.1 程序结构

程序由10个类构成:CAboutDlg, CMainFrm, CSndDoc, CSndApp, CSndView ,CFreView, CFft, CSoundIn,

CSplashWnd,CLyDlg。 其中CSndView是时域窗口视图类,CFreView是频域窗口视图类,CFft是FFT计算实现类,CSoundIn是音频输入输出实现类,CSplashWnd是起始屏实现类,CLyDlg是波形产生的实现类。

3.2 时域视图编程原理

在时域视图的编程采用了VC++的低层音频函数进行编程,在CSoundIn类实现。这是因为较高层音频服务函数来说,低层音频服务函数的功能更为强大,诸如对声音进行实时处理,对声音波形实时控制等等。

对波形设备而言,无论是播放还是录制波形,系统要处理的数据量都很大,为了少占用内存,低层音频服务以数据块为单位进行处理。它要求应用程序自己分配内存,并将内存块的地址、大小等信息告诉低层音频驱动程序,使其为录放音频操作做好准备。

音频播放时,应用程序将要播放的数据填充到这个内存块,然后通知驱动程序播放该块。驱动程序播放数据在后台进行,应用程序可以在前台继续做自己的工作。当一块音频播放完时,应用程序再向驱动程序提供新的数据,如此反复,直到音频数据播放完毕。音频录制的过程与播放类似,不同之处在于应用程序向驱动程序提供的内存块是供驱动程序录制音频数据的缓冲区,当驱动程序录制充满了给定的缓冲区后,会以某种方式通知应用程序做一定的处理,如将数据存盘等。

采用的基本低层音频函数有:WaveOut(In)Open;WaveOut(In)Close;WaveInStop;WaveOut(In);

PrepareHeader;WaveOut(In)UnPrepareHeader;WaveOut(In)Write;WaveInReset;WaveInAddBuffer;WaveOut(In)GetNumDevs;WaveOut(In)GetDeviceCaps。

3.3 频域视图编程原理[9]

在信号分析中,为了简化信号特征参数的提取,经常将信号从时域转换到频域上表示。采用FFT(快速付里叶变换)算法将在时域视图中显示的音频波形经过CFft类编程后转化为相应波形在频域上的幅度谱、相位谱,或功率谱,并实时地显示在频域视图中。对于一般输入的音频信号或噪声无法求出其付里叶变换,则可以按下面两种分析方法进行频谱分析。一种是通过加一窗函数或带通滤波截取一段有限的连续时间函数,从而随机信号可以转化为非周期信号进行频谱密度分析。另一种分析是将随机的功率型信号以功率谱进行分析。确定信号f(t)的自相关函数R(τ)与其功率谱密度Ps(w)之间有确定的付里叶变换关系,即

其中fT(t)?圳FT(w)。

而对功率型的平稳随机过程ξ(t),虽然每个过程中的信号ξT(t)也可由功率谱 Ps(W)表示。但每个过程功率谱 Ps(W)并不代表所有过程的功率谱pξ(w)。过程功率谱应看作是每个过程功率谱的统计平均,即随机过程功率谱可写成

从而ξ(t)的平均功率

即 pξ(w)?圳R(τ)。

从而对于功率型平稳随机过程的信号,如ASK、FSK、PSK等,可由自相关函数求出其功率谱。另外得出的功率谱频域图可转为分贝表示,以便于观察。

4 硬件实现

利用多媒体计算机的通用外设――声卡,作为波形采集和输出设备,配合连通现实世界的电压转换模块,以完成对计算机声卡外界现实世界中5伏以内信号的衰减或放大处理,以满足计算机声卡音频口输入输出电压指标,从而使本虚拟仪器的采集信号源可扩展到现实世界中更多的信号。该硬件模块主要包括对应于计算机音频输入口的信号增益衰减部分和对应于计算机音频输出口的信号增益放大部分,如图8所示。

5 结语

该虚拟典型仪器采用通用计算机的声卡进行采集,集存储示波器、频谱分析仪及波形发生器的功能于一体。由于采用类的概念,该仪器通用性强,移植性好,扩张性好,很容易增加和修改功能,且无需特殊硬件支持,成本低,十分便于推广,为信号处理领域中实验测试提供一种高效的解决方案。目前,该仪器已经在某高校教学和实验中得到使用和推广,深受学习者的青睐。

参考文献:

[1] 李博轩.Visual C++6.0多媒体开发指南[M].北京:清华大学出版社,2000:36-75.

[2] 丁玉美,高西全.数字信号处理[M].2版.西安:西安电子科技大学出版社,2001:97-103.

[3] 樊昌信,张甫翊,徐炳祥,等.通信原理[M].5版.北京:国防工业出版社,2001:63-187.

上一篇:浅谈提高搜索引擎效率和精度的关键技术 下一篇:JSP技术中数据库的应用