陳 杰, 尚 麗,2
(1. 蘇州市職業大學 電子信息工程學院, 江蘇 蘇州 215104;2. 中國科學技術大學 信息科學技術學院, 安徽 合肥 230026)
基于Matlab/GUI的盲信號分離仿真平臺的設計與實現
陳 杰1, 尚 麗1,2
(1. 蘇州市職業大學 電子信息工程學院, 江蘇 蘇州 215104;2. 中國科學技術大學 信息科學技術學院, 安徽 合肥 230026)
利用Matlab軟件及其友好的GUI界面,設計和實現了基于ICA的盲信號分離的仿真平臺。該平臺包含聲音和圖像信號的讀入和數據預處理、典型ICA優化算法的選擇、盲信號分離評價函數的選擇、混合信號以及分離信號圖形等,為研究者提供了簡便、快捷的盲信號分離的手段,以獲得更直觀的信號分離結果。
盲信號分離; 獨立分量分析(ICA)算法; 混合信號; 獨立源信號; Matlab; GUI; 仿真平臺
盲信號分離(blind signal separation, BSS)是根據觀測到的混合數據確定一個變換,從而有效地恢復出獨立的原始信號或者信源的一種技術[1-3]。BSS起源于著名的“雞尾酒會問題”,其核心問題是分離(或解混合)矩陣的學習算法,屬于無監督學習。BSS的基本思想是抽取統計獨立的特征作為輸入的表示,而同時又不丟失信息[4-5]。所謂盲信號的“盲”有兩重含義:一是源信號不能被觀測,二是源信號如何被混合是未知的。當信號傳輸的先驗知識無法事先獲得時,BSS技術即成為一種很自然的選擇,因而也成為信號處理及相關研究領域的熱點問題。
目前,BSS技術已在陳列信號處理、多用戶通信、語音信號處理、圖像信號處理、生物醫學工程等領域被廣泛應用[6-10]。在BSS求解過程中,常假定源信號是相互統計獨立的,因此分離或恢復出來的信號盡可能地也是相互獨立的,而獨立分量分析(independent component analysis, ICA)就是近年來解決BSS問題的典型方法[11-12]。從不同的出發點研究可以得到不同的ICA算法,典型的ICA算法根據度量信號非高斯性(即獨立性)的準則選取概括為三類[13]:基于峭度(kurtosis)的ICA算法、基于負嫡及近似負嫡的ICA算法、基于互信息的ICA算法。其優化算法主要有快速不動點(fast ICA)算法和信息最大化(infomax)算法。在這些算法的基礎上,許多改進的ICA算法也相繼被提出并得到廣泛的應用[14]。
但是,不管哪一種ICA算法,其數學理論分析和推導過程都是比較復雜的,要求研究者必須具有扎實的專業知識,這就使得ICA算法在其他相關專業領域的推廣和應用受到了一定的限制。為了普及ICA算法,本文利用Matlab軟件及其GUI界面的優勢,設計和實現了一個BSS仿真平臺,該平臺包含聲音和圖像信號的讀入和數據預處理、典型ICA優化算法的選擇、BSS評價函數的選擇、混合信號以及分離信號圖形等,為研究者提供更簡便、更快捷的盲信號分離的手段,獲得更直觀的信號分離結果,以推進BSS技術在信號處理專業的研究發展和應用。
2.1 盲信號混合
BSS問題可以用以下混合方程描述[2-3]:
X(t)=AS(t)

2.2 數據預處理
觀測數據一般都具有相關性,為了簡化后續獨立分量的提取過程,一般對觀測信號都要進行去均值(中心化)和白化處理。具有零均值的隨機向量Z(t)如滿足E{ZZT}為一單位陣,則稱這個向量是白化的,白化的本質是去相關[1-3]。對于零均值的源信號S(t),有E{SiSj}-E{Si}E{Sj}=0,i≠j,且協方差矩陣是單位陣Cov(S)=I,因此,源信號是白色的。對觀測信號X(t),尋找一個變換,使得X(t)投影到新的子空間后變成白化向量,即:
(1)
其中W0為白化矩陣,Z(t)為白化后的數據矩陣。
利用PCA方法,通過計算樣本向量得到一個變換:
其中Λ和U分別代表協方差矩陣Cx的特征向量矩陣和特征值矩陣,Wu滿足白化變換的要求。通過正交變換,可以保證UUT=UTU=I。
將X(t)=AS(t)代入(1)式,則得到
2.3ICA算法
2.3.1 目標函數
ICA的基本目的就是確定線性變換矩陣(即分離矩陣)W,使得變換后的輸出分量盡可能地獨立。ICA算法通常包括目標函數和優化方法兩部分。目標函數的選擇主要用來度量信號的獨立性,即度量信號的非高斯性,其選取準則一般基于高階統計量、信息論及參數估計理論,用以決定信號的一致性、漸進性和魯棒性等統計性能[10-14]。
基于高階統計量的目標函數常選擇為高階統計峭度(kurtosis)值,對于源信號的各個分量Si(t),其歸一化峭度定義為:

基于信息理論準則的目標函數通常選擇信息最大化(informationmaximization,Infomax)算法。利用信息最大化原理進行盲信號分離就是使輸出熵達到最大化,即是使輸出向量u(t)=g(y(t))=g(Wx(t))的熵H(u)最大化,則準則函數定義fME(·)為[10]:
其中[g(y)]i=gi(yi)為非線性函數,H(u)為微分熵。設隨機變量v的概率密度為pv(·),其H(v)定義為
熵和微分熵都可以用來測量變量的隨機性。由于概率密度pv(·)可以大于1,因此微分熵可以取負值。實際使用時,采用負熵作為ICA的目標函數,其定義如下:
式中vgauss是一個高斯隨機矢量,和v具有相同的均值和協方差矩陣Cov(v)。考慮峭度概念,計算負熵常采用下面的近似式:
上式中,隨機變量v的均值應為0,方差為1。
另外,在采用峭度準則度量源信號的獨立性時,需要預先知道信號的峭度符號,該準則不能同時分離具有正峭度和負峭度的源信號,而且源信號中至多只能有一個高斯信號。采用基于Infomax準則函數度量源信號的獨立性時,這種方法只能分離出正峭度的源信號。
2.3.2 優化算法


(2)
上式中xj為觀測信號矩陣X(t)中的第j行;q為均值為0、方差為1的高斯變量。G(·)是任意的非二次函數,常采用以下幾種形式:
(3)
其中,1≤a1≤1,a2≈1是常數。把式(3)代入式(2),則對應的固定點算法為:
其中g(·)是非二次函數G(·)的導數。算法最后給出的向量Wi(t)等于正交混合矩陣A的一列,在信號分離中意味著Wi(t)分離了其中的一個非高斯信號,即得到一個源信號。FastICA模型與普通的ICA算法相比,收斂速度非常迅速;對比基于梯度的算法,FastICA算法沒有步長常數的選取。該算法具有神經算法的大多數優點,它是并行的、分布式的,不但計算量小,而且要求的內存空間較少。
3.1 界面主要控件
用戶界面控制(user interface control, Uicontrol)在Matlab中又稱Matlab控制框,與窗口管理器所用的函數很相似,是圖形對象,可以放置在Matlab的圖形窗中的任何位置,并且能用鼠標激活。Matlab的Uicontrol包括靜態文本框、列表框、按鈕、滑標、彈出式選單等,使用時由uicontrol函數生成,其函數格式為
Hf=uicontrol (Hf_fig, ′PropertyName′ ,PropertyValue,...)
其中Hf是由函數uicontrol生成的Matlab控制框對象的句柄;Hf_fig是父對象的句柄,它必須是圖形;PropertyName和PropertyValue定義了uicontrol的屬性。
文中用到的控件對象通用的屬性主要有:
(1) BakcgroundColor(背景顏色),該屬性聲明了用來填充uicontrol對象的背景顏色;
(2) Position(位置),指明圖形的左、底、寬、高信息,格式為相對于圖形窗口左下角的標準直角坐標格式;
(3) Callback(回調函數),該屬性聲明了當用戶觸發uicontrol對象時所執行的字符串;
(4) string(字符串)該屬性聲明了顯示在按鈕、撥動按鈕、靜態文本、彈出選單上的uicontrol標簽字符串;
(5) style (類型),該屬性聲明了要生成的uicontrol對象類型,如按鈕(pushbutton)、檢查框(chechbox)、編輯(edit)、文本(text)、滑標(slider)、框架(frame)、列表框(listbox)、彈出式選單(popupmenu)等。
一般情況下,如果沒有指定控件的屬性值,則Matlab自動使用缺省屬性值。uicontrol默認的Style屬性值為按鈕pushbutton,parent屬性為當前圖形窗口(figure)。
該仿真平臺主要以聲音信號和自然圖像作為輸入數據,主界面主要由測試數據讀入、混合信號預處理、ICA優化算法選擇、圖像數據處理等4個框架區域構成,另外設置了幫助、操作說明等輔助性按鍵操作。該仿真平臺可以顯示仿真測試所用的原始聲音信號波形和自然圖像、預處理后的聲音信號波形、混合聲音信號波形和混合圖像、分離后的獨立聲音信號波形和圖像、混合信號維數、混合信號降維后的維數、分離信號的個數、所選擇的ICA優化算法、信號獨立性評價函數等。在此仿真平臺上,只要輸入觀測信號或者混合圖像,執行數據預處理、ICA分析后,就可以得到分離后的源信號或者圖像,研究人員不需要深入了解ICA理論,只需要根據分離結果進行討論分析和應用即可,為研究BSS問題的人員提供了一個簡便、可視化的操作手段。
3.2 輸入數據模塊設計
在BSS問題分析中,真實的觀測信號是由哪些獨立的源信號混合而成的及其混合方式都是未知的。因此,測試中所采用的混合信號(即輸入數據)是預先通過模擬混合方式獲得的。首先假設有n個聲音源信號和n幅自然圖像,它們均被一個大小為m×n(通常m≤n)的隨機矩陣混合。混合信號是否已調用,通過uicontrol命令設置的靜態文本框的內容來進行標記:如果沒有調用輸入數據,該文本框顯示“未調用信號”;反之,顯示“調用信號”。混合信號的維數以及每一維向量的數據點數均可以讀入設定的文本框進行直觀地顯示。另外,采用uicontrol命令設置了原始信號和混合信號波形顯示的句柄,利用callback調用相應的程序(事件)進行波形畫圖,所設計的文本框和按鈕分布位置在圖1的左上部框架區域中。
3.3 數據預處理模塊設計
對輸入數據進行預處理時,主要有中心化和白化處理兩個過程。中心化即是數據的去均值處理,白化過程采用PCA算法實現。為了直觀看出是否采用了降維處理,文中采用uicontrol命令設置了3個靜態文本框進行標記,內容分別為維數控制、降維后的維數和輸入矩陣的維數。對應后2個靜態文本框,設置了2個空文本框,對降維后的維數和輸入矩陣的維數分別進行顯示,并采用uicontrol命令設置了畫信號白化波形和PCA降維處理2個按鈕,它們在主界面中的框架位于圖1左側中部。點擊這兩個按鈕,可以直觀地看到白化后的信號波形和PCA降維處理后的特征分布柱狀圖。

圖1 仿真平臺主界面
3.4 ICA模塊設計
測試中主要選擇FastICA算法實現獨立分量提取。采用uicontrol命令設置2個文本框,其中一個用來顯示FastICA算法被執行的情況,如果調用了FastICA算法則文本框顯示“計算中…”,計算完成后會顯示“完成ICA算法”;另一個文本框用來顯示提取的獨立分量的個數。采用uicontrol命令設置3個下拉選單:第一個用來實現FastICA算法中的非線性方法選擇,有deflation(逐次提取分量)和symmetric兩種選擇情況;第二個用來實現FastICA的非線性函數選擇,分為4種選擇情況:pow3函數,tanh函數、gauss函數和Skew 函數;第三個對算法穩定性進行微調,選擇有on和off兩種情況。
3.5 圖像處理模塊設計
在主界面第四個框架區域中通過uicontrol命令設置按鈕“圖像數據操作”,彈出如圖2所示的子選單。在此子選單上設置了4個靜態文本框和3個空白文本框句柄(用來顯示對應的維數)以及7個按鈕(見圖2)。單擊“裝載”按鈕,輸入想要觀察的“workspace”空間變量,即可看到相應變量的數值。

圖2 圖像操作的子選單
4.1 聲音信號的ICA測試結果
測試信號選用了4個獨立的源聲音信號,由于聲音信號的數據點數較多時波形很密,在視覺上很難看清波形的形狀,因此在每個信號選取前1 500點進行顯示,則畫出的原始測試信號如圖3(a)所示,混合信號波形如圖3(b)所示。測試中考慮觀測信號的維數和分離信號維數相等的情況(即m=n,PCA白化時不降維),對混合聲音信號進行預處理得到的白化信號波形如圖3(c)所示;然后采用FastICA算法,非線性方法選擇為deflation,信號獨立性評價函數選擇為tanh時,得到的分離信號如圖3(d)所示。必須注意到ICA算法分離信號時的一個缺陷,即ICA算法得到的分離信號的順序是不確定的(同時幅值大小會有所不同),所以圖3(a)中原始測試信號順序和圖3(d)中分離信號的順序是不一致的。但在本文中,為了確定分離后獨立信號對應測試信號的順序,采用了信號相關性評價函數,即把原始測試信號的序號和ICA分離后得到的獨立信號的序號一一對應起來,如圖4所示,如果把此方法用在“雞尾酒會”問題中,可以方便地識別出說話人。

圖3 原始測試聲音信號及其混合信號波形

圖4 分離信號的順序號對應的原始測試聲音信號
4.2 圖像的ICA測試結果
測試圖像選用了4幅大小相同的自然圖像,這些圖像可以方便地從網上公用的圖像庫中下載得到。原始圖像、混合圖像和白化圖像的維數可以直觀地看出來。點擊“畫原始圖像”、“畫混合圖像”、“畫分離圖像”等按鈕,即可彈出相應的圖像。對圖像數據進行處理時,首先把每一幅圖像轉換為一個行向量,這樣就把二維圖像信號變為一維信號,然后對圖像信號進行混合、預處理和分離,所采用的方法是和處理聲音源信號是一致的。測試中所用的原始圖像如圖5(a)所示;混合后的圖像如圖5(b)所示;不經過白化處理的分離圖像如圖5(c)所示;經過白化處理的分離圖像如圖5(d)所示,注意分離后的圖像順序和原始測試圖像的順序不同。觀察混合圖像和分離圖像,很明顯,采用FastICA得到的分離圖像的細節比較清晰,從視覺效果上看和原始圖像幾乎很難區分,具有較好的圖像分離效果。

圖5 原始測試圖像及其混合圖像
基于Matlab的盲信號分離的仿真平臺功能設計簡潔方便、易于擴展,采用FastICA算法實現混合信號或者混合圖像的獨立分離,具有計算簡單、收斂速度快的優點,在實際工程中已被廣泛應用。該仿真平臺為對BSS問題感興趣的研究人員提供一個直觀、簡便信號分析平臺,有助于利用BSS技術推進信號處理專業的研究進展和應用。該研究成果可以進一步被引入到語音信號處理和數字圖像處理的教學實踐中,為學生提供一個綜合性、創新性的實訓平臺,具有一定的實用性和研究意義。
References)
[1] 張賢達,保錚.盲信號分離[J].電子學報,2001,29(增刊1):1766-1771.
[2] 張發啟.盲信號處理及應用[M].西安:西安電子科技大學出版社,2006.
[3] 孫守宇.盲信號處理基礎及其應用[M].北京:國防工業出版社,2010.
[4] 張登科.基于ICA的盲信號分離正定性檢驗方法[J].電子學報,2012,40(11):2303-2308.
[5] 李舜酩.振動信號的盲源分離技術及應用[M].北京:航空工業出版社,2011.
[6] 許宏吉,劉據,徐淑正,等.基于獨立分量分析的多天線空時盲接收方案[J].通信學報,2010,31(12):63-71.
[7] Ding Z, Nguyen T. Stationary points of a kurtosis maximization algorithm for blind signal separation and antenna beamforming[J].IEEE Transactions on Signal Processing,2000,48(6):1587-1596.
[8] 楊俊美,余華,韋崗,等.獨立分量分析及其在信號處理中的應用[J].華南理工大學學報:自然科學版,2012,40(11):1-12.
[9] Gai Kun, Shi Zhenwei, Zhang Changshui, et al.Blind separation of superimposed moving images using image statistics[J].IEEE Transaction on pattern analysis and Machine Intelligence,2012,34(1):19-32.
[10] Kwak K C, Pedrycz W. Face recognition using an enhanced independent component analysis approach[J].IEEE Transactions on Neural Networks,2007,18(2):530-541.
[11] 吳亮,陳宗海.基于獨立分量分析的運動目標檢測[J].中國科學技術大學學報,2010,40(8):848-854.
[12] 劉曉志,馮大偉,楊英華,等.基于核獨立分量分析的盲多用戶檢測算法[J].東北大學學報:自然科學版,2012,33(6):778-781.
[13] 龔丹丹,劉國慶.基于極大似然Parzen窗的獨立成分分析[J].計算機工程,2010,36(18):279-284.
[14] 黃振川,楊小牛,張旭東,等.基于獨立分量分析的通信偵查復信號盲分離[J].清華大學學報:自然科學版,2010,50(1):86-91.
Design and realization of simulation platform of blind signalseparation based on Matlab/GUI
Chen Jie1, Shang Li1,2
(1. School of Electronic Information Engineering, Suzhou Vocational University, Suzhou 215104, China;2. School of Information Science & Technology, University of Science and Technology of China, Hefei 230026, China)
By using Matlab software and its GUI interface, the simulation platform of BSS is designed and realized. This platform contains the input and preprocessing of the sound signal and the image signal, the selection of typical ICA(independent component analysis) optimized algorithms and that of BSS(blind signal separation) measurement function, figures of mixed and separated signals, and so on, which can provide a simpler and quicker method for researchers to obtain more intuitive signal separation results.
blind signal separation (BSS) ; independent component analysis (ICA) algorithm; mixed signal; independent source signal; Matlab; GUI; simulation platform
2014- 10- 28
國家自然科學基金資助項目(61373098);蘇州市職業大學教改項目(SZDJG-13017)
陳杰(1980—),男,浙江紹興,工學碩士,講師,研究方向為傳感器檢測和數字信號處理.
E-mail:cj@jssvc.edu.cn
TP391
A
1002-4956(2015)5- 0132- 06