陳壽齊,周偉科,焦長君,何慶國
(中國人民解放軍73911 部隊,南京 210002)
盲源分離(BSS)是1 種用于數(shù)據(jù)分析的信號處理方法,他是在系統(tǒng)輸入源信號未知(或部分未知)、系統(tǒng)傳輸特性也未知的條件下,利用一些預知特性,如源信號間相互獨立、源信號間的相關系數(shù)為零、某1 路源信號在特定的時延具有很強的自相關性等先驗特性,從接受到的混合信號分離出所想要得到的各個源輸入信號[1]。眾多研究表明,盲源分離在語音信號處理、圖像信號處理、生物醫(yī)學信號、無線通信系統(tǒng)等[2]許多領域得到了廣泛的應用。
獨立成分分析(ICA)是基于輸入源信號間具有相互獨立性的1 種分析方法。然而,在許多實際應用中,混合的往往不是相互獨立的隨機變量,而是時間信號或者時間序列。標準的ICA 忽視了信號的時序結構,僅用信號的非高斯性即相互獨立性作為分離信號的判據(jù),這就使得該方法的使用具有一定的局限性,特別是在某些條件下,假如輸入源信號具有時序特性,也可使用這些信號的時序特性估計源信號成分。
1 個由Hyv?rinen 提出的、有理論基礎的,利用信號的非高斯性和時間相關性這2 個特性的信號分析方法就是復雜度尋蹤[3]。復雜度尋蹤是投影尋蹤向時間序列數(shù)據(jù)即具有時序結構信號的擴展,目的是發(fā)現(xiàn)具有感興趣結構的時間序列的投影。對于復雜度尋蹤,Hyv?rinen 采用梯度下降的優(yōu)化算法,來從時間序列中分離感興趣的成分。但由于梯度下降算法具有一定缺點,如收斂速度慢、需要對不同的問題選擇合適的學習步長,使得算法的應用受到了一定的限制。
針對上述算法的不足,Shi 等[4]提出了復雜度尋蹤的不動點算法,該算法計算簡單,不需要用戶選擇學習步長,并且算法有快速穩(wěn)定收斂的性質。
上述2 種復雜度尋蹤算法是在不考慮噪聲,或者噪聲影響可忽略的情況下推導的。但是,在實際應用中,噪聲的影響是不可避免的。因此,在設計算法時候,必須要考慮到噪聲的影響。
近年來,許多學者對有噪情況下的盲源分離算法進行了研究。Hyv?rinen 等[5]提出了基于高斯矩的有噪獨立成分分析的不動點算法,該算法考慮了當源信號相互統(tǒng)計獨立時,噪聲對算法性能的影響,相比于FastICA 算法[6],該算法具有更好的信號分離性能。Shi 等[7]提出了基于高斯矩的有噪的復雜度尋蹤算法,該算法考慮了源信號具有時序結構特性時,噪聲對算法性能的影響,相對于不考慮噪聲影響的復雜度尋蹤算法,該算法具有更好的信號分離性能,但是該算法采用了梯度下降算法的優(yōu)化方法,存在收斂速度慢,需要選擇學習步長等問題,使得該算法的實際應用受到一定的限制。
綜合上述幾種算法的優(yōu)缺點,針對有噪背景下,具有時序結構特性信號的盲分離,本文提出了有噪復雜度尋蹤的不動點算法。
假設觀測信號x(t)= [x1(t),…,xm(t)]T用矩陣方程描述為
其中:A 是 m × m 維 的 未 知 混 合 矩 陣;s (t) =s1(t),…,sm([t])T是未知的具有時序結構特性的源信號矢量,假設該信號具有零均值和單位方差;n (t)=n1(t),…,nm([t])T是加性高斯白噪聲。高斯噪聲n(t)和源信號s(t)相互統(tǒng)計獨立。高斯白噪聲n(t)的協(xié)方差矩陣定義為
在噪聲存在的情況下,對觀測信號x(t)的白化預處理就必須要考慮到噪聲的影響,如果噪聲的方差已知或者可以估計,這樣的方法是簡單的。觀測信號x(t)的協(xié)方差矩陣為:正常的無噪聲存在情況下的白化方法就要變成為下面的準白化,也就是準白化的數(shù)據(jù)~x(t)滿足有噪的獨立成分分析的模型
對于無噪聲情況下的數(shù)據(jù)模型:y(t)=Bs(t),考慮信號z(t)=wTy(t)的預測編碼,w 表示1 個使得z(t)=wTy(t)的非高斯性極大化的方向,z(t)的值是由前面的值通過某些函數(shù)來預測的
其中:T 為信號的樣點數(shù);δz 定義為具有冗余邊際分布的隨機變量,假設信號是平穩(wěn)的。為了在實際中使用式(5)的逼近,需要固定預測函數(shù)f 的結構并且找到δz 熵的逼近。使用計算簡單的線性自回歸模型作為預測結構
假設知道冗余概率密度對數(shù)的1 個很好的逼近,記為G(·) ,可以獲得如下的1 個逼近
為了發(fā)現(xiàn)最感興趣的方向w,利用z(t)=wTy(t)并結合如上所述的復雜性逼近。可以用1 個僅帶w 的目標函數(shù)來表示復雜性逼近
上述的目標函數(shù)即式(8)沒有考慮噪聲的影響,如果可以從有噪的觀測信號中估計出上述的無噪的數(shù)據(jù)那么上述的目標函數(shù)即式(8)就可以用到有噪的復雜度尋蹤中去,關鍵是如何選擇合適的函數(shù)G(·) ,使得可從有噪的觀測數(shù)據(jù)中估計出
定義協(xié)方差為c2的高斯密度函數(shù)
那么有下面的定理[5,8]。
定理1 對于任意的非高斯隨機變量v,n 表示方差為σ2的高斯噪聲變量,定義高斯函數(shù)φ 如式(9),那么對于任意的c >σ2有下面的表達式成立
此定理說明可通過最小化目標函數(shù)即式(8)來從有噪的觀測數(shù)據(jù)中估計出獨立成分。這里通過選取G(u) =使得可估計出無噪的數(shù)據(jù)這個期望形式的表達式叫做高斯矩,那么由式(8)和式(10)就能通過最小化公式(11)估計出有噪的ICA 模型。
在推導學習算法之前,定義如下的表達式:
利用文獻[8]中的引理
這意味著式(15)可表示為如下形式
有噪的復雜度尋蹤的不動點算法為
結合式(19)和式(20),得到有噪復雜度尋蹤的不動點算法如下
其中的g(·) 是函數(shù)G(·)的一階導函數(shù),可選擇為g(u)=tan h(u),g'(·) 是函數(shù)g(·) 的一階導函數(shù)。
算法的簡單特例是自回歸模型為一階的情況
延遲不需要為1,但這是個標準的例子。算法中的參數(shù)α1可用最小二乘法來估計
綜上所述,可以獲得有噪復雜度尋蹤的不動點算法如下:
1)中心化觀測信號x(t),使得其均值為零;
3)隨機選擇單位范數(shù)向量w 作為迭代的初始點;
4)估計自回歸系數(shù)ατ,對于一階自回歸模型,作=
5)作不動點迭代:
其中的g(·)函數(shù)選擇為g(u)=tanh(u);
6)如果不滿足終止條件,返回步驟4。
算法終止條件為:迭代前的w 和迭代后的w 同指1 個方向,也就是其內積等于或接近于1??墒褂檬湛s策略或對稱正交化的過程來估計分離矩陣
假設信號沒有時間結構,這就意味著信息過程等于信號本身,這樣有噪復雜度尋蹤的不動點算法就可簡化為:
這個算法就是在實際應用中所廣泛采用的文獻[5]中算法。
如果沒有背景噪聲的影響,這樣有噪復雜度尋蹤的不動點算法可以簡化為:
這個算法就是文獻[4]中的算法。
在沒有背景噪聲和假設信號沒有時間結構特性的情況下,有噪復雜度尋蹤的不動點算法還可以進一步簡化為:
這個算法就是在實際應用中所廣泛采用的FastICA 算法[6]。
為驗證本文提出算法的有效性和具有較好的信號分離性能,采用人工信號和自然圖像對本文提出算法進行分離仿真。采用PI 性能指數(shù)來評價算法的分離性能,具體的定義如下
其中:pij是m×m 維全局矩陣P =WVA 的第i 行和第j 列的元素。PI 值越小,算法的分離性能越好。
生成6 路AR(1)模型信號來用于仿真。信號1,2,3 和4是由超高斯更新生成的,信號5 和6 是由高斯更新生成的;所有的信號都具有單位方差。信號1,3 和5 具有相同的自回歸系數(shù)(0.25),因此有相同的自協(xié)方差;信號2,4 和6 具有相同的自回歸系數(shù)(0.5),信號的樣點數(shù)為5 000,生成的6 路人工信號如圖1 所示。
圖1 源信號
這6 路信號用Matlab 隨機產(chǎn)生的6 ×6 維矩陣進行混和,加性高斯白噪聲的方差為0.01I。采用文獻[4]算法(記為FPCP 算法)、文獻[5]算法(記為FastNoisyICA 算法)、文獻[7]算法(記為NoisyCP 算法)和本文提出的算法對這6 路信號進行分離。相應的仿真參數(shù)設置為:FPCP 算法、Noisy-CP 算法和本文提出的算法都采用一階自回歸模型;4 種算法中的(g)· 函數(shù)都選擇為非線性函數(shù)g(u)= tan h(u);NoisyCP 算法采用了梯度下降的優(yōu)化方法,學習步長選擇為1,其他3 種算法都是不動點算法,不需要選擇學習步長;4 種算法的分離矩陣都采用對稱正交化的方法進行處理。
為了評價上述4 種算法分離信號的性能,采用式(27)的性能指數(shù)定義。4 種算法迭代到固定迭代次數(shù)N 時停止,迭代次數(shù)N 由0 變化到200。對于每1 個固定的迭代次數(shù)N,算法獨立運算200 次,每次信號都用隨機生成的矩陣來混合,并計算每次的性能指數(shù),最后的性能指數(shù)是這200 次的平均性能指數(shù),結果如圖2 所示。
圖2 性能指數(shù)曲線
FastNoisyICA 算法迭代收斂后的平均性能指數(shù)為0.167 8,F(xiàn)PCP 算法的平均性能指數(shù)為0.116 5,NoisyCP 算法的平均性能指數(shù)為0.090 1 和本文提出的算法的平均性能指數(shù)為0.085 6。由上述的PI 性能指數(shù)的定義可知,PI 值越小,分離效果越好。也就是說,4 種算法中,本文提出的算法和NoisyCP 算法對6 路混合信號的分離效果最好,F(xiàn)PCP 算法的分離效果次之,F(xiàn)astNoisyICA 算法的分離效果最差。
圖3給出了4 種算法在穩(wěn)定狀態(tài)下的平均性能指數(shù)曲線.4 種算法仿真的信噪比范圍為-20 ~40dB,算法最大迭代次數(shù)為200 次,每種算法獨立運行200 次,每次信號都用隨機生成的矩陣來混合,并計算每1次的性能指數(shù),最后的性能指數(shù)是這200 次的平均性能指數(shù)??梢钥闯?這4 種算法中,F(xiàn)astNoisyICA 算法的分離效果最差,F(xiàn)PCP 算法的分離效果次之,NoisyCP 算法和本文提出的算法的性能相當;對于FPCP 算法、NoisyCP 算法和本文提出的算法在信噪比大于30 dB 時的性能指數(shù)趨于一致,也就是,在高信噪比條件下,噪聲對算法的影響比較小。
圖3 穩(wěn)定狀態(tài)下的性能指數(shù)曲線
表1 給出了在4 種算法獨立仿真500 次,最大迭代次數(shù)為200 次時,每種算法達到收斂時平均消耗的CPU 時間(主頻為2.4GHz Core(TM)2 Duo 處理器的PC 機)。
表1 4 種算法消耗的CPU 時間 s
由表1 可以看出,4 種算法消耗的時間由少到多依次為:FPCP 算法、本文提出的算法、FastNoisyICA 算法和NoisyCP算法。這是因為:FastNoisyICA 算法、FPCP 算法和本文提出的算法都為不動點算法,收斂速度相對快于采用梯度算法的NoisyCP 算法。NoisyCP 算法和本文提出的算法,在對信號的分離性能方面效果一致,但是本文提出的算法消耗的時間要明顯少于NoisyCP 算法。
通過以上對人工信號的仿真可以看出,本文提出的算法相比其他3 種算法,在信號的分離性能和收斂速度這2 個方面都具有很大的優(yōu)勢。
用圖4 第1 行所示的4 幅自然圖像(128 ×128)來進行仿真試驗,相應的歸一化峭度值從左到右依次為:-0.611 5、-0.432 5、1.760 0 和23.931 4。
計算這4 幅自然圖像的協(xié)方差矩陣得
由上述協(xié)方差矩陣知這4 幅自然圖像不是相互統(tǒng)計獨立的,他們之間具有一定的相關性。用Matlab 隨機產(chǎn)生的4×4 維的矩陣對這4 幅圖像進行混合,加性高斯白噪聲的方差為0.01I,得到4 幅混合后的圖像。對混合后的圖像分別采用FPCP 算法、FastNoisyICA 算法、NoisyCP 算法和本文提出的算法進行分離試驗。相應的仿真參數(shù)設置為:FPCP 算法、NoisyCP 算法和本文提出的算法都采用一階自回歸模型;FPCP 算法、FastNoisyICA 算法、NoisyCP 算法和本文提出的算法中的非線性函數(shù)g(u)都選擇為g(u)=tan h(u);NoisyCP算法的學習步長選擇為1,其他3 種算法都是不動點算法,不需要選擇學習步長;4 種算法都采用對稱正交化的方法來處理分離矩陣。
4 種算法的分離結果如圖4 所示,可以看出,F(xiàn)PCP 算法分離出來的第4 幅圖像中明顯的含有其他干擾圖像,F(xiàn)ast-NoisyICA 算法分離出來的第4 幅圖像中明顯含有其他干擾圖像,只有NoisyCP 算法和本文提出的算法成功實現(xiàn)了對4幅圖像的分離。
為了驗證這4 種算法分離圖像的效果,采用式(24)定義的性能指數(shù),算法迭代到固定迭代次數(shù)N 時停止,迭代次數(shù)N 由1 變化到200。對于每個固定的迭代次數(shù)N,算法獨立運算200 次,每次圖像都用隨機生成的矩陣來混合,并計算每次的性能指數(shù),最后的性能指數(shù)是這200 次的平均性能指數(shù),結果如圖5 所示。
圖4 自然圖像的盲分離
圖5 性能指數(shù)曲線
4 種算法收斂后的平均性能指數(shù)為:FPCP 算法為0.212 4、FastNoisyICA 算法為0.218 7、NoisyCP 算法為0.146 9 和本文提出的算法為0.140 9。因為性能指數(shù)越小,信號的分離效果越好。在信號的分離效果方面:NoisyCP 算法和本文提出的算法的分離效果要好于FPCP 算法和FastNoisyICA算法。
圖6給出了4 種算法在穩(wěn)定狀態(tài)下的平均性能指數(shù)曲線,4 種算法仿真的信噪比范圍為-20 ~40 dB,算法的最大迭代次數(shù)為200 次,每種算法獨立運行200 次,每次信號都用隨機生成的矩陣來混合,并計算每次的性能指數(shù),最后的性能指數(shù)是這200 次的平均性能指數(shù)。可以看出:這4 種算法中,在信噪比大于20 dB 時,F(xiàn)astNoisyICA 算法的分離效果最差,F(xiàn)PCP 算法的分離效果次之,NoisyCP 算法和本文提出的算法的性能相當,對于FPCP 算法、NoisyCP 算法和本文提出的算法在信噪比大于36 dB 時的性能指數(shù)趨于一致,也就是說,在高信噪比條件下,噪聲的影響可以忽略不計。
圖6 穩(wěn)定狀態(tài)下的性能指數(shù)曲線
表2 給出了在2 種算法獨立仿真500 次,最大迭代次數(shù)為200 次時,每種算法達到收斂時平均消耗的CPU 時間(主頻為2.4GHz Core(TM)2 Duo 處理器的PC 機)。
表2 4 種算法消耗的CPU 時間 s
由表2 可以看出,4 種算法消耗的時間由少到多依次為:FastNoisyICA 算法、FPCP 算法、本文提出的算法和NoisyCP算法。這是因為,F(xiàn)astNoisyICA 算法、FPCP 算法和本文提出的算法都為不動點算法,收斂速度相對要快于采用梯度算法的NoisyCP 算法。NoisyCP 算法和本文提出的算法,在對信號的分離性能方面效果一致,但是本文提出的算法消耗的時間要明顯少于NoisyCP 算法。
通過對人工信號和自然圖像的分離試驗表明了本文提出算法的有效性,且提出算法在信號的分離性能方面要好于不考慮噪聲影響的FPCP 算法和考慮噪聲影響的FastNoisyICA 算法。對于與取得同樣信號分離效果的NoisyCP 算法相比,本文提出的算法的用時明顯要少,而且,本文算法為不動點算法,具有收斂速度快,計算簡單,不需要選擇學習步長等優(yōu)點,因此更具有實際應用意義。
本文給出了當源信號具有時序結構特性時的有噪復雜度尋蹤的不動點算法。計算機仿真表明了提出算法的有效性和好的信號分離性能。有趣的是,本文提出的算法還和現(xiàn)有算法具有一定的關系:當源信號具有時序結構特性且沒有高斯噪聲影響時,該算法就退化為FPCP 算法;當源信號沒有時序結構特性,且有高斯白噪聲影響時,該算法就退化為FastNoisyICA 算法;當源信號沒有時序結構特性且沒有高斯白噪聲影響時,該算法就退化為FastICA 算法。
[1]Cichocki A,Amari S.Adaptive Blind Signal and Image Processing[M].England:John Wiley & Sons Ltd,2002.
[2]Barros A K,Cichocki A.Extraction of specific signals with temporal structure[J].Neural Comput,2001,13 (9): 1995-2003.
[3]Hyv?rinen A. Complexity pursuit: separating interesting components from time-series [J]. Neural Computation,2001,13(4):883-898.
[4]Shi Z,Tang H,Tang Y. A fast fixed-point algorithm for complexity pursuit[J]. Neurocomputing,2005( 64): 529-536.
[5]Hyv?rinen A.Gaussian moments for noisy independent component analysis [J]. IEEE Signal Process Lett,1999,10(3):626-634.
[6]Hyv?rinen A. Fast and robust fixed-pointed algorithms for independent component analysis[J]. IEEE Trans. Neural Networks,1999,6(6):145-147.
[7]Shi Z,Zhang C.Gaussian moments for noisy complexity pursuit[J].Neurocomput,2006(69):917-921.
[8]Hyv?rinen A. FastICA for noisy data using Gaussian moments[C]//Proceeding of the International Symposium on Circuits and Systems,1999:57-61.
[9]張西寧,廖與禾,溫廣瑞.一種新的盲聲源分離方法及應用[J].四川兵工學報,2010(1):136-139.