陳秀敏 李珊君* 董興建
1(四川大學電氣信息學院 四川 成都 610065)
2(國網(wǎng)徐州供電公司 江蘇 徐州 221000)
盲源分離[1](Blind Source Separation,BSS),或稱為盲信號分離的具體過程如下:在信號的數(shù)學模型和源信號的具體信息未知時,從得到的已知混合信號求得各路源信號的過程。盲源分離的理想結(jié)果是找到最接近源信號的估計值。目前,解決盲分離最受歡迎的方法是獨立分量分析(Independent Component Analysis,ICA)[2-4],該方法在語音識別、圖像處理和信號分析等方面都得到了普遍的應用。
1991年,文獻[5-7]對于盲源分離問題,提出了ICA最原始的概念,至此,盲源分離得到了重大突破。在此期間,Tong等[8]也分析了盲源分離的兩大屬性:可分離性和不確定性。1994年,Comon[2]系統(tǒng)地分析了盲源分離中關于瞬時混合信號的問題,這一分析精確地解釋了獨立分量分析理論的形成。Hyv?rinen等研究了源信號的非高斯性,提出了一種新的算法:固定點訓練算法(fixed-point),并在1997年第一次提出了一種基于峭度的Fast-ICA算法[9]。不久,他又分析了另一種基于負熵的Fast-ICA算法[10]。
本文分析了基于負熵最大時,采用三種最典型、最常用的非線性函數(shù)構(gòu)造目標函數(shù)時,相應Fast-ICA算法的性能比較,并分析總結(jié)了這三種非線性函數(shù)的圖像對比和相似之處。通過仿真實驗進行結(jié)果分析和誤差對比得出結(jié)論:當使用非線性函數(shù)y3時,算法的分離性能很好,分離精度較高,且它的平均迭代次數(shù)最少,收斂速度最快,被證明是最優(yōu)的函數(shù)形式。
Fast-ICA問題的數(shù)學模型描述如下:X=AS+n。其中,X=[x1,x2,…,xm]T是觀測信號,維度為m,A為將源信號進行混疊的混合矩陣且未知,S為源信號,n=[n1,n2,…,nm]T為噪聲。Fast-ICA的目的是在源信號S和混合矩陣A都未知的情況下,僅有觀察數(shù)據(jù)X,通過對X處理得到Z,然后,找到一個分離矩陣W實現(xiàn)從Z中分離出源信號S,表達式為Y=WZ。其中,Y為S的估計值。
在進行獨立信號提取前,必須先找到一種判別準則來衡量分離信號的非高斯性,即獨立性。本文判別信號非高斯性的依據(jù)是負熵,同時采用非高斯性最大化的估計方法。
微分熵的定義式為:
(1)
式中:f(y)為y的概率密度函數(shù)。負熵定義為:
J(y)=H(ygauss)-H(y)
(2)
式中:ygauss與y是兩個隨機高斯變量,有著相同的方差。根據(jù)信息論理論,如果存在相同方差的兩個隨機變量,具有高斯分布的那個隨機變量有著最大的微分熵。當y是高斯分布時,在實際情況中J(y)=0;y的非高斯性越強,則J(y)越大,因此J(y)可以作為衡量隨機變量y非高斯性的一個有力的測度。為了簡化負熵的表達,在隨機變量y的概率密度函數(shù)f(y)未知的一般情況下,Hyv?rinen給出了如下近似定義方法[12]:
J(y)∝{E{G(y)}-E{G(ygauss)}}2
(3)
F(W)=E{Zg(WTZ)}-αW=0
(4)
式中:g(·)為G(·)的導函數(shù),非線性函數(shù)g(·)的選擇直接影響著算法的性能和效率,是本文討論的重點。α為常數(shù)值,W0為W的最優(yōu)值時,α可以近似表示為F(W)的雅可比矩陣J(F(W))。
(5)
牛頓迭代公式為:
(6)
F(W)的雅可比矩陣J(F(W))為:
J(F(W))=E{ZZTg′(WTZ)}-αI
(7)
式中:g′(·)為g(·)的導函數(shù);I為單位矩陣。
由于矩陣Z是白化處理后的結(jié)果,故式(7)可簡化為:
J(F(W))=E{g′(WTZ)}I-αI
(8)
將α≈E{WTZg(WTZ)}代入公式計算,最終得到Fast-ICA的相似牛頓迭代算法公式為:
(9)
(10)
基于負熵的Fast-ICA算法的過程如下:
(1) 對觀測信號X進行均值為0的處理,即中心化處理。
(2) 對步驟(1)中心化的信號進行白化處理得到Z。
(3) 選擇估計的分量個數(shù)n,設置迭代次數(shù)i。
(4) 選擇一個具有單位范數(shù)的初始化向量Wi(可以隨機選取)。
(6) 標準化處理Wi。
(7) 判斷Wi是否收斂,如果是,則繼續(xù)算法運行;否則返回步驟(5)。
(8) 令i=i+1,如果i≤n,返回步驟(4);否則,算法結(jié)束運行。
Fast-ICA算法中非線性函數(shù)的選取,對于算法的性能和效率以及精度有著較大的影響,當選用不合適的函數(shù)代入算法中時,算法不能成功地對信號進行分離,或者得到的分離結(jié)果與工程要求的精度相差甚遠。式(9)中g(·)函數(shù)我們通常選用無記憶非線性函數(shù),工程中常用最經(jīng)典的三個非線性函數(shù)如下:
g1(y)=tanh(ay)
(11)
(12)
g3(y)=y3
(13)
式中:常數(shù)a的取值范圍一般為[1,2],通常取a=1。
從函數(shù)形式上來看,這三個函數(shù)存在著共同特性:都是奇函數(shù),關于原點對稱;在臨近零點范圍內(nèi)的取值變化平穩(wěn),接近于0。式(11)、式(12)和式(13)的3種非線性函數(shù)形成的波形圖如圖1所示。
圖1 3種非線性函數(shù)的波形比較
從三種函數(shù)的波形圖上,無法直觀地看出不同函數(shù)對算法的影響比重,接下來通過仿真的方法,對這三種函數(shù)算法進行對比和分析,得到直觀確切的結(jié)論。
在Fast-ICA算法中,評價算法分離性能的主要指標通常有相關系數(shù)、串音誤差(Cross-talk Error)、源信號與分離信號的組合散點圖等,本文采用相關系數(shù)指標。同時,在得到相同精度的分離結(jié)果的情況下,比較其迭代次數(shù),多方面地衡量三種函數(shù)算法的性能。
(14)
式中:cov(·)表示方差。
兩個信號的相關系數(shù)的絕對值越接近于1,則認為信號越接近,算法的分離效果越好。
(2) 迭代次數(shù)。指為了逼近想要得到的目標或結(jié)果,算法中的公式重復計算的次數(shù)。在能夠得到理想結(jié)果的情況下,算法的迭代次數(shù)越少,則運行時間相對越短,收斂速度越快。
對這三種經(jīng)典非線性函數(shù)的算法性能進行仿真分析。分別將這三種非線性函數(shù)代入迭代公式中,組成三個不同的迭代公式算法,并構(gòu)造出兩組不同類型源信號進行實驗。
3.2.1仿真實驗一
實驗中,首先構(gòu)造源信號:正弦信號s1=2sin(0.02πt),方波信號s2=2square(100t,50),鋸齒信號a=linspace(1,-1,25),s3=2[a,a,a,a,a,a,a,a]。為了更加準確地對分離效果進行對比分析,加入一個幅值大于0小于1的隨機噪聲,作為干擾信號,其中采樣頻率fs=200 Hz,圖2為源信號的波形圖。利用一個隨機矩陣將各路信號進行混合,得到混合信號即為觀測信號,如圖3所示。
圖2 正弦信號、方波信號、鋸齒信號、噪聲信號組成的源信號波形圖
圖3 觀察信號波形圖
表1 三種非線性函數(shù)算法的分離效果
結(jié)果越接近于1,表明算法分離后得到的信號和源信號相似度越高,由表1可以看出,采用g1(y)和g3(y)函數(shù)具有相近的分離結(jié)果,且它們的分離結(jié)果比采用g2(y)函數(shù)時要更好一些。因此,非線性函數(shù)g1(y)和g3(y)的算法的分離性能更佳。
為了更清晰地展示不同非線性函數(shù)算法的性能比較,表2給出實驗1 000次時不同非線性函數(shù)算法的平均迭代次數(shù)、最大迭代次數(shù)、最小迭代次數(shù)。當進行1 000次實驗時,得到的圖形結(jié)果由于密度過高影響視覺效果。為了能夠得到更加清晰的圖示,進行100次分離實驗,圖4是進行100次分離實驗所得到的迭代次數(shù)的分布結(jié)果圖。
表2 三種非線性函數(shù)算法的迭代次數(shù)比較
圖4 三種非線性函數(shù)分別進行100次盲源分離
由表2和圖4可以看出,三種非線性函數(shù)算法的平均迭代次數(shù)有較為明顯的區(qū)別。其中非線性函數(shù)g1(y)的算法的迭代次數(shù)最大,且比其他兩個非線性函數(shù)的迭代次數(shù)要大很多,而采用非線性g3(y)時,算法的迭代次數(shù)最少,平均只有85.6,比g1(y)函數(shù)少了十幾倍,說明采用非線性函數(shù)g3(y)=y3時算法收斂速度最快。
綜合表1、表2和圖4的結(jié)果,函數(shù)g1(y)和g3(y)算法的分離性能更佳,而函數(shù)g3(y)的算法收斂速度更快,最終得出采用g3(y)=y3函數(shù)的算法各項指標都比較良好,不僅有相對更高的算法精度,而且算法收斂速度更快。
圖5為三種函數(shù)分別進行盲源分離時的一個分離結(jié)果,各路信號的順序、幅度和相位發(fā)生了變化。這是因為除了已知各源信號相互獨立外,缺乏其他先驗信息,所以分離出的信號才會有不同程度的位移等變化,但這并不影響結(jié)果。同時,實驗也驗證了當給源信號設置不同的幅值時,結(jié)論依然成立。
圖5 三種非線性函數(shù)算法的分離結(jié)果
3.2.2仿真實驗二
考慮到實驗的完備性,為了能夠在不同類型的源信號條件下對這三種非線性函數(shù)進行分析比較,構(gòu)造較為復雜的諧波信號作為源信號來進行仿真實驗。實驗中,構(gòu)造頻率為50 Hz的基波信號以及其3次諧波信號、5次諧波信號,它們的幅值為1,并考慮一個隨機噪聲,幅值為1,如圖6所示。再利用一個隨機矩陣將各路信號混合,得到如圖7所示的混合信號,即觀測信號。
圖6 基波信號、3次諧波信號、5次諧波信號、噪聲信號組成的源信號波形圖
圖7 觀察信號波形圖
表3 三種非線性函數(shù)算法的分離效果
可以看出,選用諧波作為源信號時,算法的分離性能沒有實驗一穩(wěn)定,諧波有一定的干擾功能,但不影響觀察分離結(jié)果。相較于g2(y)函數(shù)的算法,g1(y)和g3(y)函數(shù)的算法分離效果明顯更好,因此,g1(y)和g3(y)函數(shù)算法的分離性能更佳。
為了更清晰地展示不同非線性函數(shù)下算法的性能比較,表4給出實驗1 000次時不同非線性函數(shù)下算法的平均迭代次數(shù)、最大迭代次數(shù)和最小迭代次數(shù),圖8顯示了利用三種非線性函數(shù)分別進行100次分離實驗所得到的迭代次數(shù)的分布結(jié)果圖。
表4 三種非線性函數(shù)算法的迭代次數(shù)比較
圖8 三種非線性函數(shù)分別進行1 000次盲源分離
由表4和圖8可以看出,三種非線性函數(shù)下算法的迭代次數(shù)有明顯差別,g1(y)函數(shù)的迭代次數(shù)最多,g2(y)函數(shù)次之,g3(y)函數(shù)最少,平均迭代次數(shù)只有152.6,且g1(y)和g2(y)函數(shù)的迭代次數(shù)是g3(y)函數(shù)迭代次數(shù)的倍數(shù)關系,形成非常鮮明的對比。
綜合表3、表4和圖8的結(jié)果,采用非線性函數(shù)g1(y)和g3(y)時算法的分離性能更佳,而采用非線性函數(shù)g3(y)時算法收斂速度更快,最終得出非線性函數(shù)g3(y)=y3的算法的各項指標都比較良好,不僅有相對更高的算法精度,而且算法收斂速度更快。該結(jié)論與實驗一相似。
圖9為三種函數(shù)分別進行盲源分離時的一個分離結(jié)果,可以看出,當給源信號設置不同的幅值時,結(jié)論依然成立。
圖9 三種非線性函數(shù)算法的分離結(jié)果