基于DataSocket技术的小波消噪仪的网络化
扫描二维码
随时随地手机看文章
1 引言
随着通信技术的发展,网络的普及,虚拟仪器技术的出现和发展,使得仪器的远程访问和共享成为可能。硬件平台可通过计算机与网络相连,通过对虚拟仪器软件编程实现仪器的的远程控制、数据的实时采集与网络传输。
在此背景下,本文设计了基于Datasoket技术的虚拟小波消噪仪,实现了小波消噪仪的共享。
2 DataSocket技术
DataSocket是NI公司提供的一项网络测控系统开发技术,它基于Microsoft的COM和ActiveX技术,源于TCP/IP协议并对其进行了高度封装,面向测量和自动化应用,用于共享和发布实时数据,是一种易用的高性能数据交换编程接口。它能有效地支持本地计算机上不同应用程序对特定数据的同时应用。网络上不同的计算机的多个应用程序之间的数据交互,实现跨机器、跨语言、跨进程的实时数据共享。用户只需知道数据源和数据宿及需要交换的数据就可以直接进行高层应用程序的开发,实现高速数据传输,而不必关心底层的实现细节,从而简化了通信程序的编写过程,提高了编程效率。[1]
DataSocket包括了DS Server Manager、DS Server和DS函数库等工具,以及数据传输协议DSTP(DataSocket Transfer Protocol)、统一资源定位符URL(Uniform Resource Locator)和文件格式等技术规范。利用这些工具,可大大简化网络中计算机之间数据交换的编程工作。
DataSocket Server Manager是一个独立运行的程序,它的主要功能是设置DS Server可连接的客户程序的数目和可创建的数据项(Data Item)的数目,设置用户和用户组,以及设置用户访问和管理数据项的权限。DS Server能为用户解决大部分网络通信方面的问题,负责和用户程序之间的数据交换,不需要用户编写有关网络通信的底层程序。[2]
3 小波变换理论
小波分析方法是一种窗口大小固定但其形状可改变,时间窗和频率窗都可改变的时频局部化分析方法。即在低频部分具有较高的频率分辨率和较低的时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,这正符合低频信号变化缓慢而高频信号变化迅速的特点。这一特性,便是它优于传统的傅里叶变换与短时傅里叶变换的地方。[3]
利用MATLAB小波分析工具对信号进行消噪处理的方法主要有以下三种:
(1)一维信号的小波分解。选择一个小波并确定一个小波分解的层次N,然后对信号进行N层小波分解;
(2)小波分解高频系数的阈值量化。从小波消噪处理的方法上来说,阈值处理有三种方法:
a.强制消噪处理,该方法把小波分解结构中的高频系数全部变为0,即把高频部分全部滤掉,然后对信号进行重构处理。这种方法比较简单,重构后的消噪信号也比较平滑,但容易丢失信号的有用成分。
b.默认阈值消噪处理。该方法利用MATLAB工具箱中的ddencmp函数产生信号的默认阈值,然后利用MATLAB工具箱中的wdencmp函数进行消噪处理。
c.给定软(或硬)阈值消噪处理。在实际的消噪处理过程中,阈值往往可以通过经验公式获得,而且这种阈值比默认阈值更具有可信度。
(3)一维小波的重构。根据小波分解的第N层的低频系数和经过量化处理后的第1层到第N层的高频系数,进行一维信号的小波重构。
4 网络化虚拟小波消噪仪的设计
4.1小波消噪仪的功能
小波消噪仪具有学习小波函数消噪特征和对实测试数据进行消噪处理的功能。
在小波消噪仪的客户端面板上有“原始信号输入”、“保存小波处理后数据”、“小波参数设置”、“原始信号波形”和“小波处理后波形”控件。“小波参数设置”中有“小波类型”、“分解层次”及“小波阶数”选项。“小波类型”有“sym”、“haar”、“db”、“dmey”和“coif”小波;“sym”小波阶数从2~5可选,“db”小波阶数从1~10可选,“coif”小波阶数从1~5可选,“haar”和“dmey”小波不用选择阶数;“分解层次”对各个小波都默认在1~20之间可选。“原始信号输入”控件导入和客户端DLL程序打包一起的样本文件或者实测需消噪的数据文件(该数据文件格式为以回车键隔开的文本文件),在“小波参数”设置中选择不同的小波及分解层次,待消噪数据和小波参数通过DataSocket协议传送到服务器端消噪程序进行处理、同时把处理后数据传送到客户端,通过客户端“保存小波处理后数据”控件把处理后数据保存到客户端电脑上。“原始信号波形”和“小波处理后波形”控件分别显示消噪前后的信号波形。
用户通过网络下载并运行客户端的DLL程序之后,导入样本文件,分别选用不同的小波函数、阶数及分解层次,对比消噪后图形,学习体会不同的小波函数对不同信号的消噪效果。这样,在进行实测数据处理的时候可有针对性地选择小波函数。
4.2 服务器端虚拟仪器设计
LabVIEW为控制面板中的每一个控件设置了DataSocket连接对话框,通过统一资源定位器URL,确定数据源和控件的连接方式,进行发布和读取数据。如果在虚拟仪器的服务器端DataSocket Connection对话框中指定URL,并选择发布的连接方式,虚拟仪器的客户端DataSocket Connection对话框中指定相同的URL,选择读取的连接方式,DataSocket的传输协议的网址依照格式:dstp://servername/data。其中,servername是服务器端计算机的网址; data是DataSocket连接的名称标识,用于区别不同的DataSocket连接。
Labview函数面板提供了“MATLAB Script”节点实现和MATLAB软件的接口。在本设计中采用默认阈值消噪方法,利用MATLAB自带小波函数实现消噪算法。
服务器端的流程图设计如图1所示。
图1 服务器端流程图
4.3 客户端虚拟仪器设计
图2 客户端流程图
在客户端面板工具栏中选择“Tools-Build Application or Shared Library(DLL)建立客户端DLL运行程序。
把服务器端和客户端DLL程序都放在同一台服务器上,在服务器端DS Manager中添加创建的数据项,设置可访问的用户数及权限。
5 示例
待消噪的信号为含有白噪声的正弦波。
在客户端机器上下载打包的DLL程序和样本文件,在运行客户端DLL程序之前,先要确定服务器上的DS Server已经开启、服务器程序已运行,然后导入待消噪信号,选择不同的小波参数,观察消噪前后图形,对比最佳消噪效果。
对比发现对于含白噪声的正弦波信号,选择“dmey”小波、分解层次为2时的消噪效果最好,选择“haar”小波是消噪效果很差。图3、图4分别为这两个函数消噪前后波形图。
图3 “haar”小波消噪前后效果图
图4 “dmey”小波消噪前后效果图
6 结论
利用Labview和DataSocket技术,实现了仪器的共享,充分利用了资源,并提高了数据处理的灵活性。