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