陳 杰, 尚 麗,2
(1. 蘇州市職業(yè)大學(xué) 電子信息工程學(xué)院, 江蘇 蘇州 215104;2. 中國科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院, 安徽 合肥 230026)
基于Matlab/GUI的盲信號分離仿真平臺的設(shè)計與實現(xiàn)
陳 杰1, 尚 麗1,2
(1. 蘇州市職業(yè)大學(xué) 電子信息工程學(xué)院, 江蘇 蘇州 215104;2. 中國科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院, 安徽 合肥 230026)
利用Matlab軟件及其友好的GUI界面,設(shè)計和實現(xiàn)了基于ICA的盲信號分離的仿真平臺。該平臺包含聲音和圖像信號的讀入和數(shù)據(jù)預(yù)處理、典型ICA優(yōu)化算法的選擇、盲信號分離評價函數(shù)的選擇、混合信號以及分離信號圖形等,為研究者提供了簡便、快捷的盲信號分離的手段,以獲得更直觀的信號分離結(jié)果。
盲信號分離; 獨立分量分析(ICA)算法; 混合信號; 獨立源信號; Matlab; GUI; 仿真平臺
盲信號分離(blind signal separation, BSS)是根據(jù)觀測到的混合數(shù)據(jù)確定一個變換,從而有效地恢復(fù)出獨立的原始信號或者信源的一種技術(shù)[1-3]。BSS起源于著名的“雞尾酒會問題”,其核心問題是分離(或解混合)矩陣的學(xué)習(xí)算法,屬于無監(jiān)督學(xué)習(xí)。BSS的基本思想是抽取統(tǒng)計獨立的特征作為輸入的表示,而同時又不丟失信息[4-5]。所謂盲信號的“盲”有兩重含義:一是源信號不能被觀測,二是源信號如何被混合是未知的。當(dāng)信號傳輸?shù)南闰炛R無法事先獲得時,BSS技術(shù)即成為一種很自然的選擇,因而也成為信號處理及相關(guān)研究領(lǐng)域的熱點問題。
目前,BSS技術(shù)已在陳列信號處理、多用戶通信、語音信號處理、圖像信號處理、生物醫(yī)學(xué)工程等領(lǐng)域被廣泛應(yīng)用[6-10]。在BSS求解過程中,常假定源信號是相互統(tǒng)計獨立的,因此分離或恢復(fù)出來的信號盡可能地也是相互獨立的,而獨立分量分析(independent component analysis, ICA)就是近年來解決BSS問題的典型方法[11-12]。從不同的出發(fā)點研究可以得到不同的ICA算法,典型的ICA算法根據(jù)度量信號非高斯性(即獨立性)的準(zhǔn)則選取概括為三類[13]:基于峭度(kurtosis)的ICA算法、基于負(fù)嫡及近似負(fù)嫡的ICA算法、基于互信息的ICA算法。其優(yōu)化算法主要有快速不動點(fast ICA)算法和信息最大化(infomax)算法。在這些算法的基礎(chǔ)上,許多改進(jìn)的ICA算法也相繼被提出并得到廣泛的應(yīng)用[14]。
但是,不管哪一種ICA算法,其數(shù)學(xué)理論分析和推導(dǎo)過程都是比較復(fù)雜的,要求研究者必須具有扎實的專業(yè)知識,這就使得ICA算法在其他相關(guān)專業(yè)領(lǐng)域的推廣和應(yīng)用受到了一定的限制。為了普及ICA算法,本文利用Matlab軟件及其GUI界面的優(yōu)勢,設(shè)計和實現(xiàn)了一個BSS仿真平臺,該平臺包含聲音和圖像信號的讀入和數(shù)據(jù)預(yù)處理、典型ICA優(yōu)化算法的選擇、BSS評價函數(shù)的選擇、混合信號以及分離信號圖形等,為研究者提供更簡便、更快捷的盲信號分離的手段,獲得更直觀的信號分離結(jié)果,以推進(jìn)BSS技術(shù)在信號處理專業(yè)的研究發(fā)展和應(yīng)用。
2.1 盲信號混合
BSS問題可以用以下混合方程描述[2-3]:
X(t)=AS(t)
2.2 數(shù)據(jù)預(yù)處理
觀測數(shù)據(jù)一般都具有相關(guān)性,為了簡化后續(xù)獨立分量的提取過程,一般對觀測信號都要進(jìn)行去均值(中心化)和白化處理。具有零均值的隨機向量Z(t)如滿足E{ZZT}為一單位陣,則稱這個向量是白化的,白化的本質(zhì)是去相關(guān)[1-3]。對于零均值的源信號S(t),有E{SiSj}-E{Si}E{Sj}=0,i≠j,且協(xié)方差矩陣是單位陣Cov(S)=I,因此,源信號是白色的。對觀測信號X(t),尋找一個變換,使得X(t)投影到新的子空間后變成白化向量,即:
(1)
其中W0為白化矩陣,Z(t)為白化后的數(shù)據(jù)矩陣。
利用PCA方法,通過計算樣本向量得到一個變換:
其中Λ和U分別代表協(xié)方差矩陣Cx的特征向量矩陣和特征值矩陣,Wu滿足白化變換的要求。通過正交變換,可以保證UUT=UTU=I。
將X(t)=AS(t)代入(1)式,則得到
2.3ICA算法
2.3.1 目標(biāo)函數(shù)
ICA的基本目的就是確定線性變換矩陣(即分離矩陣)W,使得變換后的輸出分量盡可能地獨立。ICA算法通常包括目標(biāo)函數(shù)和優(yōu)化方法兩部分。目標(biāo)函數(shù)的選擇主要用來度量信號的獨立性,即度量信號的非高斯性,其選取準(zhǔn)則一般基于高階統(tǒng)計量、信息論及參數(shù)估計理論,用以決定信號的一致性、漸進(jìn)性和魯棒性等統(tǒng)計性能[10-14]。
基于高階統(tǒng)計量的目標(biāo)函數(shù)常選擇為高階統(tǒng)計峭度(kurtosis)值,對于源信號的各個分量Si(t),其歸一化峭度定義為:
基于信息理論準(zhǔn)則的目標(biāo)函數(shù)通常選擇信息最大化(informationmaximization,Infomax)算法。利用信息最大化原理進(jìn)行盲信號分離就是使輸出熵達(dá)到最大化,即是使輸出向量u(t)=g(y(t))=g(Wx(t))的熵H(u)最大化,則準(zhǔn)則函數(shù)定義fME(·)為[10]:
其中[g(y)]i=gi(yi)為非線性函數(shù),H(u)為微分熵。設(shè)隨機變量v的概率密度為pv(·),其H(v)定義為
熵和微分熵都可以用來測量變量的隨機性。由于概率密度pv(·)可以大于1,因此微分熵可以取負(fù)值。實際使用時,采用負(fù)熵作為ICA的目標(biāo)函數(shù),其定義如下:
式中vgauss是一個高斯隨機矢量,和v具有相同的均值和協(xié)方差矩陣Cov(v)??紤]峭度概念,計算負(fù)熵常采用下面的近似式:
上式中,隨機變量v的均值應(yīng)為0,方差為1。
另外,在采用峭度準(zhǔn)則度量源信號的獨立性時,需要預(yù)先知道信號的峭度符號,該準(zhǔn)則不能同時分離具有正峭度和負(fù)峭度的源信號,而且源信號中至多只能有一個高斯信號。采用基于Infomax準(zhǔn)則函數(shù)度量源信號的獨立性時,這種方法只能分離出正峭度的源信號。
2.3.2 優(yōu)化算法
(2)
上式中xj為觀測信號矩陣X(t)中的第j行;q為均值為0、方差為1的高斯變量。G(·)是任意的非二次函數(shù),常采用以下幾種形式:
(3)
其中,1≤a1≤1,a2≈1是常數(shù)。把式(3)代入式(2),則對應(yīng)的固定點算法為:
其中g(shù)(·)是非二次函數(shù)G(·)的導(dǎo)數(shù)。算法最后給出的向量Wi(t)等于正交混合矩陣A的一列,在信號分離中意味著Wi(t)分離了其中的一個非高斯信號,即得到一個源信號。FastICA模型與普通的ICA算法相比,收斂速度非常迅速;對比基于梯度的算法,F(xiàn)astICA算法沒有步長常數(shù)的選取。該算法具有神經(jīng)算法的大多數(shù)優(yōu)點,它是并行的、分布式的,不但計算量小,而且要求的內(nèi)存空間較少。
3.1 界面主要控件
用戶界面控制(user interface control, Uicontrol)在Matlab中又稱Matlab控制框,與窗口管理器所用的函數(shù)很相似,是圖形對象,可以放置在Matlab的圖形窗中的任何位置,并且能用鼠標(biāo)激活。Matlab的Uicontrol包括靜態(tài)文本框、列表框、按鈕、滑標(biāo)、彈出式選單等,使用時由uicontrol函數(shù)生成,其函數(shù)格式為
Hf=uicontrol (Hf_fig, ′PropertyName′ ,PropertyValue,...)
其中Hf是由函數(shù)uicontrol生成的Matlab控制框?qū)ο蟮木浔?;Hf_fig是父對象的句柄,它必須是圖形;PropertyName和PropertyValue定義了uicontrol的屬性。
文中用到的控件對象通用的屬性主要有:
(1) BakcgroundColor(背景顏色),該屬性聲明了用來填充uicontrol對象的背景顏色;
(2) Position(位置),指明圖形的左、底、寬、高信息,格式為相對于圖形窗口左下角的標(biāo)準(zhǔn)直角坐標(biāo)格式;
(3) Callback(回調(diào)函數(shù)),該屬性聲明了當(dāng)用戶觸發(fā)uicontrol對象時所執(zhí)行的字符串;
(4) string(字符串)該屬性聲明了顯示在按鈕、撥動按鈕、靜態(tài)文本、彈出選單上的uicontrol標(biāo)簽字符串;
(5) style (類型),該屬性聲明了要生成的uicontrol對象類型,如按鈕(pushbutton)、檢查框(chechbox)、編輯(edit)、文本(text)、滑標(biāo)(slider)、框架(frame)、列表框(listbox)、彈出式選單(popupmenu)等。
一般情況下,如果沒有指定控件的屬性值,則Matlab自動使用缺省屬性值。uicontrol默認(rèn)的Style屬性值為按鈕pushbutton,parent屬性為當(dāng)前圖形窗口(figure)。
該仿真平臺主要以聲音信號和自然圖像作為輸入數(shù)據(jù),主界面主要由測試數(shù)據(jù)讀入、混合信號預(yù)處理、ICA優(yōu)化算法選擇、圖像數(shù)據(jù)處理等4個框架區(qū)域構(gòu)成,另外設(shè)置了幫助、操作說明等輔助性按鍵操作。該仿真平臺可以顯示仿真測試所用的原始聲音信號波形和自然圖像、預(yù)處理后的聲音信號波形、混合聲音信號波形和混合圖像、分離后的獨立聲音信號波形和圖像、混合信號維數(shù)、混合信號降維后的維數(shù)、分離信號的個數(shù)、所選擇的ICA優(yōu)化算法、信號獨立性評價函數(shù)等。在此仿真平臺上,只要輸入觀測信號或者混合圖像,執(zhí)行數(shù)據(jù)預(yù)處理、ICA分析后,就可以得到分離后的源信號或者圖像,研究人員不需要深入了解ICA理論,只需要根據(jù)分離結(jié)果進(jìn)行討論分析和應(yīng)用即可,為研究BSS問題的人員提供了一個簡便、可視化的操作手段。
3.2 輸入數(shù)據(jù)模塊設(shè)計
在BSS問題分析中,真實的觀測信號是由哪些獨立的源信號混合而成的及其混合方式都是未知的。因此,測試中所采用的混合信號(即輸入數(shù)據(jù))是預(yù)先通過模擬混合方式獲得的。首先假設(shè)有n個聲音源信號和n幅自然圖像,它們均被一個大小為m×n(通常m≤n)的隨機矩陣混合。混合信號是否已調(diào)用,通過uicontrol命令設(shè)置的靜態(tài)文本框的內(nèi)容來進(jìn)行標(biāo)記:如果沒有調(diào)用輸入數(shù)據(jù),該文本框顯示“未調(diào)用信號”;反之,顯示“調(diào)用信號”?;旌闲盘柕木S數(shù)以及每一維向量的數(shù)據(jù)點數(shù)均可以讀入設(shè)定的文本框進(jìn)行直觀地顯示。另外,采用uicontrol命令設(shè)置了原始信號和混合信號波形顯示的句柄,利用callback調(diào)用相應(yīng)的程序(事件)進(jìn)行波形畫圖,所設(shè)計的文本框和按鈕分布位置在圖1的左上部框架區(qū)域中。
3.3 數(shù)據(jù)預(yù)處理模塊設(shè)計
對輸入數(shù)據(jù)進(jìn)行預(yù)處理時,主要有中心化和白化處理兩個過程。中心化即是數(shù)據(jù)的去均值處理,白化過程采用PCA算法實現(xiàn)。為了直觀看出是否采用了降維處理,文中采用uicontrol命令設(shè)置了3個靜態(tài)文本框進(jìn)行標(biāo)記,內(nèi)容分別為維數(shù)控制、降維后的維數(shù)和輸入矩陣的維數(shù)。對應(yīng)后2個靜態(tài)文本框,設(shè)置了2個空文本框,對降維后的維數(shù)和輸入矩陣的維數(shù)分別進(jìn)行顯示,并采用uicontrol命令設(shè)置了畫信號白化波形和PCA降維處理2個按鈕,它們在主界面中的框架位于圖1左側(cè)中部。點擊這兩個按鈕,可以直觀地看到白化后的信號波形和PCA降維處理后的特征分布柱狀圖。
圖1 仿真平臺主界面
3.4 ICA模塊設(shè)計
測試中主要選擇FastICA算法實現(xiàn)獨立分量提取。采用uicontrol命令設(shè)置2個文本框,其中一個用來顯示FastICA算法被執(zhí)行的情況,如果調(diào)用了FastICA算法則文本框顯示“計算中…”,計算完成后會顯示“完成ICA算法”;另一個文本框用來顯示提取的獨立分量的個數(shù)。采用uicontrol命令設(shè)置3個下拉選單:第一個用來實現(xiàn)FastICA算法中的非線性方法選擇,有deflation(逐次提取分量)和symmetric兩種選擇情況;第二個用來實現(xiàn)FastICA的非線性函數(shù)選擇,分為4種選擇情況:pow3函數(shù),tanh函數(shù)、gauss函數(shù)和Skew 函數(shù);第三個對算法穩(wěn)定性進(jìn)行微調(diào),選擇有on和off兩種情況。
3.5 圖像處理模塊設(shè)計
在主界面第四個框架區(qū)域中通過uicontrol命令設(shè)置按鈕“圖像數(shù)據(jù)操作”,彈出如圖2所示的子選單。在此子選單上設(shè)置了4個靜態(tài)文本框和3個空白文本框句柄(用來顯示對應(yīng)的維數(shù))以及7個按鈕(見圖2)。單擊“裝載”按鈕,輸入想要觀察的“workspace”空間變量,即可看到相應(yīng)變量的數(shù)值。
圖2 圖像操作的子選單
4.1 聲音信號的ICA測試結(jié)果
測試信號選用了4個獨立的源聲音信號,由于聲音信號的數(shù)據(jù)點數(shù)較多時波形很密,在視覺上很難看清波形的形狀,因此在每個信號選取前1 500點進(jìn)行顯示,則畫出的原始測試信號如圖3(a)所示,混合信號波形如圖3(b)所示。測試中考慮觀測信號的維數(shù)和分離信號維數(shù)相等的情況(即m=n,PCA白化時不降維),對混合聲音信號進(jìn)行預(yù)處理得到的白化信號波形如圖3(c)所示;然后采用FastICA算法,非線性方法選擇為deflation,信號獨立性評價函數(shù)選擇為tanh時,得到的分離信號如圖3(d)所示。必須注意到ICA算法分離信號時的一個缺陷,即ICA算法得到的分離信號的順序是不確定的(同時幅值大小會有所不同),所以圖3(a)中原始測試信號順序和圖3(d)中分離信號的順序是不一致的。但在本文中,為了確定分離后獨立信號對應(yīng)測試信號的順序,采用了信號相關(guān)性評價函數(shù),即把原始測試信號的序號和ICA分離后得到的獨立信號的序號一一對應(yīng)起來,如圖4所示,如果把此方法用在“雞尾酒會”問題中,可以方便地識別出說話人。
圖3 原始測試聲音信號及其混合信號波形
圖4 分離信號的順序號對應(yīng)的原始測試聲音信號
4.2 圖像的ICA測試結(jié)果
測試圖像選用了4幅大小相同的自然圖像,這些圖像可以方便地從網(wǎng)上公用的圖像庫中下載得到。原始圖像、混合圖像和白化圖像的維數(shù)可以直觀地看出來。點擊“畫原始圖像”、“畫混合圖像”、“畫分離圖像”等按鈕,即可彈出相應(yīng)的圖像。對圖像數(shù)據(jù)進(jìn)行處理時,首先把每一幅圖像轉(zhuǎn)換為一個行向量,這樣就把二維圖像信號變?yōu)橐痪S信號,然后對圖像信號進(jìn)行混合、預(yù)處理和分離,所采用的方法是和處理聲音源信號是一致的。測試中所用的原始圖像如圖5(a)所示;混合后的圖像如圖5(b)所示;不經(jīng)過白化處理的分離圖像如圖5(c)所示;經(jīng)過白化處理的分離圖像如圖5(d)所示,注意分離后的圖像順序和原始測試圖像的順序不同。觀察混合圖像和分離圖像,很明顯,采用FastICA得到的分離圖像的細(xì)節(jié)比較清晰,從視覺效果上看和原始圖像幾乎很難區(qū)分,具有較好的圖像分離效果。
圖5 原始測試圖像及其混合圖像
基于Matlab的盲信號分離的仿真平臺功能設(shè)計簡潔方便、易于擴展,采用FastICA算法實現(xiàn)混合信號或者混合圖像的獨立分離,具有計算簡單、收斂速度快的優(yōu)點,在實際工程中已被廣泛應(yīng)用。該仿真平臺為對BSS問題感興趣的研究人員提供一個直觀、簡便信號分析平臺,有助于利用BSS技術(shù)推進(jìn)信號處理專業(yè)的研究進(jìn)展和應(yīng)用。該研究成果可以進(jìn)一步被引入到語音信號處理和數(shù)字圖像處理的教學(xué)實踐中,為學(xué)生提供一個綜合性、創(chuàng)新性的實訓(xùn)平臺,具有一定的實用性和研究意義。
References)
[1] 張賢達(dá),保錚.盲信號分離[J].電子學(xué)報,2001,29(增刊1):1766-1771.
[2] 張發(fā)啟.盲信號處理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006.
[3] 孫守宇.盲信號處理基礎(chǔ)及其應(yīng)用[M].北京:國防工業(yè)出版社,2010.
[4] 張登科.基于ICA的盲信號分離正定性檢驗方法[J].電子學(xué)報,2012,40(11):2303-2308.
[5] 李舜酩.振動信號的盲源分離技術(shù)及應(yīng)用[M].北京:航空工業(yè)出版社,2011.
[6] 許宏吉,劉據(jù),徐淑正,等.基于獨立分量分析的多天線空時盲接收方案[J].通信學(xué)報,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] 楊俊美,余華,韋崗,等.獨立分量分析及其在信號處理中的應(yīng)用[J].華南理工大學(xué)學(xué)報:自然科學(xué)版,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] 吳亮,陳宗海.基于獨立分量分析的運動目標(biāo)檢測[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2010,40(8):848-854.
[12] 劉曉志,馮大偉,楊英華,等.基于核獨立分量分析的盲多用戶檢測算法[J].東北大學(xué)學(xué)報:自然科學(xué)版,2012,33(6):778-781.
[13] 龔丹丹,劉國慶.基于極大似然Parzen窗的獨立成分分析[J].計算機工程,2010,36(18):279-284.
[14] 黃振川,楊小牛,張旭東,等.基于獨立分量分析的通信偵查復(fù)信號盲分離[J].清華大學(xué)學(xué)報:自然科學(xué)版,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
國家自然科學(xué)基金資助項目(61373098);蘇州市職業(yè)大學(xué)教改項目(SZDJG-13017)
陳杰(1980—),男,浙江紹興,工學(xué)碩士,講師,研究方向為傳感器檢測和數(shù)字信號處理.
E-mail:cj@jssvc.edu.cn
TP391
A
1002-4956(2015)5- 0132- 06