虞海強
(西華大學 電氣信息學院,四川 成都 610039)
在多輸入多輸出系統中盲信號分離方法是當前國際研究的熱點和難點,盲信號處理技術原則上不利用任何數據訓練,也沒有關于卷積、濾波、混合系統參數的先驗知識要求,已在聲納、圖像、語音、通信、雷達、振動和生物醫學等領域具有廣泛的應用前景。而LabVIEW和MATLAB是當今最優秀的軟件,若把LabVIEW軟件設計平臺和MATLAB結合使用,充分利用LabVIEW圖形化設計語言的優點和MATLAB強大的數據處理能力,可直觀、方便地進行分析、計算及設計工作,從而大大提高工作效率。
盲信號處理的主要任務是對未知系統。在其輸入信號完全未知或只有很少先知的情況下,僅根據傳感器的輸出信號,運用某些算法來重構輸入信號或進行系統辨識[1]。盲信號分離理論模型如圖1所示。
假設有 n個振源 s1,s2,…,sn,m個傳感器 x1,x2,…,xm,采樣數為K,則經混合后觀測信號矢量與源信號矢量S(t)之間滿足下面關系式:

圖1 盲信號分離理論模型

式中A為 m×n的隨機混合矩陣;N(t)為 m×K是隨機噪聲矢量;S(t)為 n×K源信號矢量,且 S(t)=[s1(t),s2(t),…,sn(t)]T。若忽略噪聲影響或噪聲在分離前已被降低到可接受范圍內時,則(1)式可寫成:

于是信號分離問題就轉化成在混合矩陣A和源信號矢量S(t)均未知的情況下,求一個n×m的分離矩陣矩陣B,使得B對混合信號矢量的線性變換:

是對源信號 S(t)的一個可靠估計。其中 Y(t)是 m×K的分離信號矢量,且 Y(t)=[y1(t),y2(t),…,yn(t)]T。
在實際中,由于誤差和干擾的存在,不可能實現振動信號源的完全恢復,只能是源信號的估計,而且分離結果存在不確定性:分離后信號矢量的排序與初始相角的不定性。
在實際中,由于缺乏混合矩陣的結構信息,因此必須要有關于源信號的一些附加假設[2]:①m×n混合矩陣A為滿秩矩陣,并且n≤m;②S(t)中的各信號 si分量為零均值的平穩過程;③在每個時刻t,信號向量S(t)的各分量相互獨立統計;④S(t)的各分量都具有單位方差。
編程語言MATLAB具有強大的計算、仿真、繪圖等功能,它還提供了豐富的工具箱,涉及數值分析、信號處理、圖像處理、仿真等各個領域,但是它在界面開發、儀器連接控制和網絡通行等方面遠不如LabVIEW。因此將兩者結合起來編程,可以充分利用兩種語言的優勢,方便地解決各個領域的儀器連接和數學分析等問題。
LabVIEW可以通過MathScript在LabVIEW中編寫并執行MATLAB中的.m文件。MathScript包含了600多個數學分析與信號處理函數,采用矩陣和數組作為基本數據類型,其語法與MATLAB所使用的腳本完全兼容,而且用戶可以自定義自己的函數來擴展MathScript的功能。通過MathScript節點可以簡單地與圖形化編程實現無縫結合[3]。
使用MathScript有兩種方法:
(1)使用LabVIEW中的MathScript窗口。在LabVIEW的工具菜單中單擊MathScrip窗口選項,就可以打開LabVIEW MathScript窗口,如圖2所示。利用MathScript窗口可以像使用MATLAB一樣執行命令、編譯和運行腳本文件、查看運行結果等。在圖2的LabVIEW Math-Script窗口的命令中,逐條輸入MATLAB腳本.m文件或在右側腳本選項卡中輸入MATLAB腳本文件,單擊運行,就可以運行該腳本。

(2)在圖形程序框圖中使用MathScript節點。在程序框圖中有兩種打開MathScript節點的方式:①在程序框圖中單擊鼠標右鍵選擇 “函數選板”→“數學”→“腳本公式”→“MathScript節點”。②在程序框圖中單擊鼠標右鍵選擇“函數選板”→“結構”→“MathScript節點”。
LabVIEW還可以在程序框圖中通過MATLAB腳本節點調用MATLAB程序[4]。在程序框圖中單擊鼠標右鍵選擇“數學”→“腳本與公式”→“腳本節點”→“MATLAB腳本節點”。在MATLAB腳本節點中右擊,選擇“導入”選項,可直接調用所需的MATLAB程序。
通過LabVIEW中的MATLAB腳本節點調用MATLAB的.m文件時,必須保證LabVIEW和MATLAB腳本節點之間傳輸數據類型的一致性。改變MATLAB腳本節點的輸入輸出端的數據類型可以通過右擊輸入或輸出端,從 “數據類型”選項中選擇所需要的數據類型。MATLAB腳本節點的數據類型有[5]Real、Complex、1-D Array of Real、1-D Array of Complex、2-D Array of Real、2-D Array of Complex、String和 Path 8種。
在本系統中,利用了聯合近似對角化算法(JADE),通過LabVIEW和MATLAB混合編程技術,在混合參數未知的情況下,僅根據觀測信號以及源信號統計獨立的假設對源信號進行分離。系統的仿真輸入信號為70 Hz的角波、60 Hz的方波和50 Hz的正弦波。混合編程的程序框圖如圖3所示。

通過前面板觀測到線性混合數組A和分離矩陣B分別為:

對輸入信號進行100個點的采樣,其最終分離的效果圖4如所示。

由圖4可以看出,由于源信號幾乎不相關,方差歸一化接近單位矩陣,分離所得到的結果和源信號相比十分接近,盡管分離后的信號在幅值與排序方面和源信號相比有差異,但這是由盲分離的不確定性所引起的。特征信息不僅僅包含于信號的幅值和排序中,在某些情況下,更多地包含于波形中。如果再配合某些先驗知識,就可以根據分離信號的波形來判斷其是否存在故障。
實驗結果表明,基于LabVIEW和MATLAB混合編程的盲信號分離系統的設計,充分利用了兩者的優點,既有很好的人機界面,又有很強的數據處理能力,提高了編程的效率。通過前面板可以觀察盲信號分離的每一步的數據變化,混編技術可以將不同信號源進行可靠分離,而且還驗證了盲信號分離的兩個不確定性:幅度和順序的不確定性。同時實驗結果也驗證了該系統的有效性和可靠性。
[1]張啟發.盲信號處理及應用[M].西安:西安電子科技大學出版社,2006.
[2]史習智.盲信號處理[M].上海:上海交通大學出版社,2008.
[3]曲麗蓉,胡榮,范壽康.LabVIEW、MATLAB及其混合編程技術[M].北京:機械工業出版社,2011.
[4]袁培鐸.基于LabVIEW與MATLAB混合編程的應用研究[J].機械制造與自動化,2007(6):129-131.
[5](美)BISHOP R H著.LabVIEW 7.0實用教程[M].喬瑞萍,等譯.北京:電子工業出版社,2005.