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技術,實現了儀器的共享,充分利用了資源,并提高了數據處理的靈活性。