申晨宇,劉增力
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)
盲源分離是20世紀(jì)末發(fā)展起來的一個(gè)新興領(lǐng)域,是人工神經(jīng)網(wǎng)絡(luò)、統(tǒng)計(jì)信號處理以及信息理論相結(jié)合的產(chǎn)物,在很多領(lǐng)域已經(jīng)得到了廣泛應(yīng)用。盲源分離是在不知道源信號的組成成分以及傳輸通道或只知道其少量先驗(yàn)知識(如非高斯性、統(tǒng)計(jì)獨(dú)立性等)的情況下,僅從觀測信號中恢復(fù)或分離感興趣的源信號,即需要找到一個(gè)分離矩陣,從觀測信號中提取出各個(gè)源信號。一個(gè)典型的例子就是“雞尾酒會”問題[1],即在一個(gè)房間里聽到的是混合在一起的嘈雜的聲音,應(yīng)如何把混合在一起的聲音分離開的問題。當(dāng)前,國內(nèi)外研究者提出了各種各樣的分離算法,且各有利弊。例如,基于獨(dú)立分量分析的盲源分離算法[2-4],是盲源分離算法中非常經(jīng)典有效的方法。它需要假設(shè)前提條件,即源信號滿足非高斯分布且相互統(tǒng)計(jì)獨(dú)立。這些算法存在一些弊端,一是無法讓分離后的信號與混合前的信號一一對應(yīng),二是無法恢復(fù)混合前信號的真實(shí)幅度[5],但這些缺點(diǎn)對于最終分離的目的來說在可接受范圍內(nèi)。還有一些近年來新興的算法,如稀疏成分分析[6]。它可以在獨(dú)立分量分析方法失效的情況下,對觀測信號進(jìn)行分離。此外,還有非負(fù)矩陣分解[7-8]算法。它同樣沒有信源相互獨(dú)立且符合非高斯分布的限制,只是增加了分解矩陣中元素非負(fù)的約束。上述這些方法大都以某種準(zhǔn)則建立代價(jià)函數(shù),然后對其進(jìn)行迭代優(yōu)化而得到分離矩陣。Stone J V提出了基于時(shí)域預(yù)測的盲源分離算法[9],用兩個(gè)誤差的比值構(gòu)建目標(biāo)函數(shù),即信號的長預(yù)測分量作分子,信號的短預(yù)測分量作分母,然后對目標(biāo)函數(shù)進(jìn)行優(yōu)化,即廣義特征值求解[10]。這類算法具有較低的復(fù)雜度,于是之后Cheung Y M等人在此基礎(chǔ)上又提出了全局最優(yōu)化盲源分離算法。在此基礎(chǔ)上,張小兵等人又提出了基于最大信噪比的盲源分離算法[11],但算法存在一定的缺陷:一是信噪比越大,分離效果越好,在較低信噪比下,分離效果變差甚至失效;二是對源信號的估計(jì)問題,即用估計(jì)信號的滑動平均來代替源信號,一定程度上會導(dǎo)致誤差或算法在某種條件下失效。針對這些不足,后面的研究者提出了改進(jìn)的最大信噪比的盲源分離算法,對源信號的估計(jì)采用干擾重構(gòu)算法[12]。還有直接采用估計(jì)信號,并對信號的參數(shù)用最小均方誤差進(jìn)行估計(jì)[13]。本文提出用小波包濾波后的觀測信號代替估計(jì)信號的滑動平均,然后再代入信噪比函數(shù)進(jìn)行計(jì)算、特征值分解等,得到需要的分離矩陣。與觀測信號相乘得到分離信號后,再經(jīng)過平滑濾波得到降噪后的源信號。本算法相比于原算法,不僅提高了分離效果,而且對源信號進(jìn)行了降噪。
假設(shè)有N個(gè)統(tǒng)計(jì)獨(dú)立的源信號經(jīng)過線性瞬時(shí)混合后被M個(gè)傳感器接受,則每個(gè)觀測信號是這N個(gè)信號的一個(gè)線性組合[14],即:
式 中,aji是 混 合 參 數(shù)(i∈ {1,2,…,N},j∈ {1,2,…,N});si(t)是源信號(i∈ {1,2,…,N);xj(t)是觀測信號(j∈{1,2,…,N})。式(1)也可用矢量形式表示為:
式中,A∈Rm×n為混合矩陣;S(t)∈Rn屬為信源向量,它的元素對應(yīng)于變換矩陣的基礎(chǔ)系數(shù)。
上述情況只是假設(shè)的理想情況,實(shí)際應(yīng)用中,周圍環(huán)境以及傳感器本身都會產(chǎn)生噪聲附著到信號上,因而需要考慮噪聲。此時(shí),式(2)中的混合系統(tǒng)變?yōu)椋?/p>
式中,n(t)=[n1(t),n2(t),…,nM(t)]T是噪聲向量。
假設(shè)觀測信號為:
源信號為:
混合矩陣為A,即混合模型為:
目標(biāo)是找到一個(gè)分離矩陣W,使得X與W的乘積Y無限接近于S,即:
可知,Q必須要盡量接近單位矩陣,也就是說W為H的逆矩陣,即:
盲源分離算法一般都是基于某種準(zhǔn)則(如最大非高斯性、非線性相關(guān)性等)建立目標(biāo)函數(shù)[15],然后對其進(jìn)行優(yōu)化得到需要的結(jié)果。該算法是基于最大信噪比準(zhǔn)則建立目標(biāo)函數(shù),是把源信號s和估計(jì)信號y的誤差作為噪聲信號(e=s-y),然后建立目標(biāo)函數(shù),即:
實(shí)際生活中,源信號一般是帶噪聲的,所以必須考慮噪聲。這里用的是估計(jì)信號的滑動平均來代替源信號,于是式(9)變?yōu)椋?/p>
其中:
由于噪聲的特性未知,所以p可隨之選?。╬可為小于100的整數(shù))。由于實(shí)測信號都是帶噪聲的,所以為了方便,用小波去噪后的信號Y代替估計(jì)信號的滑動平均,于是有:
為了得到Y(jié),需要對源信號s進(jìn)行降噪處理。直接對源信號進(jìn)行降噪處理是為了提高信噪比,從而提高算法的分離效果。小波消噪的出發(fā)點(diǎn)是小波系數(shù)具有以下兩個(gè)特征:一是對空間分布不均勻的函數(shù),只有少數(shù)點(diǎn)上的小波系數(shù)較大,而大部分點(diǎn)上的小波系數(shù)都很小;二是白噪聲對所有點(diǎn)上的小波系數(shù)的影響是一樣的。利用小波包對信號消噪的關(guān)鍵是如何選取閾值和閾值量化問題。
對觀測信號進(jìn)行小波消噪可分為三步。
步驟1:對觀測信號進(jìn)行小波包[16]分解。
選擇一個(gè)正交小波進(jìn)行分解并確定分解的層數(shù)。算法中采用dB3小波進(jìn)行3層分解。在高頻段,小波的頻率分辨率較差;在低頻段,小波的時(shí)間分辨率較差。為了克服這一缺點(diǎn),這里采用小波包分解,提高了信號的時(shí)頻分辨率,是一種更加精細(xì)的信號分析方法。算法由{dlj+1,n}求{dlj,2n}和{dlj,2n+1},即:
步驟2:小波包分解系數(shù)的閾值選取[17]。
具體地,即選擇一個(gè)恰當(dāng)?shù)拈撝祦韺γ恳粋€(gè)小波包系數(shù)進(jìn)行量化處理。它的原理就是抑制小波變換細(xì)節(jié)分量中較小的系數(shù),并置為0。本算法采用自適應(yīng)閾值,即:
或:
式中,σn為噪聲標(biāo)準(zhǔn)方差,N為信號的長度。
步驟3:對觀測信號進(jìn)行小波包重構(gòu)[18]
以最底層的小波包分解系數(shù)和經(jīng)過處理的系數(shù)為準(zhǔn)進(jìn)行小波包重構(gòu),即由{}和{求{}:
式中,h表示分析濾波器,與尺度函數(shù)有關(guān),g表示重構(gòu)濾波器;表示信號的模糊分量;表示信號的細(xì)節(jié)分量。
經(jīng)過小波包的分解與重構(gòu)得到估計(jì)信號Y后,以信噪比最大化準(zhǔn)則建立目標(biāo)函數(shù):
其中:C=X·XT,=(X-x)·(X-x)T為相關(guān)矩陣;V=w·C·wT;U=w··wT。
(1)為了評價(jià)本改進(jìn)算法的分離效果,用源信號與分離信號的相關(guān)系數(shù)作為評價(jià)指標(biāo)[19],即:
式中yi=ksi,k為常數(shù)時(shí),ζij=1,表明第i個(gè)分離輸出信號和第j個(gè)源信號完全相同,分離后的信號和源信號只是在幅度上不一致,但是分離完成后的ζij的值只能接近于1,因此在實(shí)際生活中存在不可避免的噪聲。若yi和si相互統(tǒng)計(jì)獨(dú)立,則ζij等于0,說明分離并未完成,即存在一個(gè)相似矩陣,它的每行和每列有且僅有一個(gè)元素是接近于1,其余的元素都無限接近0。若是這個(gè)矩陣符合這個(gè)條件,則認(rèn)為分離效果比較理想。
(2)另一個(gè)評價(jià)標(biāo)準(zhǔn)是性能指數(shù)[20]:
式中,gij為全局矩陣G的元素;maxj|gij|表示G的第i行元素的絕對值中的最大值;maxj|gji|表示第i列元素絕對值中的最大值。當(dāng)信號精確分離時(shí),即分離出的估計(jì)信號有y(t)與源信號是s(t)波形完全相同時(shí),PI=0。實(shí)際中,精確分離不可能做到,所以認(rèn)為當(dāng)PI接近10-2時(shí),說明該算法分離性能已經(jīng)相當(dāng)好。
仿真實(shí)驗(yàn)中,混合前選取的信號源為兩路頻率為22 050 Hz、時(shí)長1.3 s的音頻信號,每路源信號的采樣點(diǎn)有28 655個(gè),第一路音頻信號是動物的叫聲,第二路音頻信號是人的一段語音,然后進(jìn)行混合得到實(shí)驗(yàn)分析所需要的觀測信號。隨機(jī)產(chǎn)生三個(gè)混合矩陣分別為對源信號進(jìn)行混合,然后驗(yàn)證兩種算法。經(jīng)過計(jì)算機(jī)仿真分別得到原算法和本文改進(jìn)的算法的三組仿真實(shí)驗(yàn)結(jié)果,如圖1~圖7所示。其中,圖1為源信號,圖2、圖3為第一組實(shí)驗(yàn)分離結(jié)果,圖4、圖5為第二組實(shí)驗(yàn)分離結(jié)果,圖6、圖7為第三組實(shí)驗(yàn)分離結(jié)果。
圖1 源信號
圖2 原算法分離結(jié)果(第一組)
圖3 本文改進(jìn)算法分離結(jié)果(第一組)
圖4 原算法分離結(jié)果(第二組)
圖5 本文改進(jìn)算法分離結(jié)果(第二組)
圖6 原算法分離結(jié)果(第三組)
圖7 本文改進(jìn)算法分離結(jié)果(第三組)
表1中,SNR?表示原算法分離結(jié)果與源信號的相關(guān)系數(shù),PSNR?表示改進(jìn)算法分離結(jié)果與源信號的相關(guān)系數(shù)。數(shù)據(jù)對比可以看出,改進(jìn)后的算法要好于原來的算法,驗(yàn)證了改進(jìn)算法的正確性。需要說明的是,雖然改進(jìn)算法較原來的算法性能提升不大,但是上述數(shù)據(jù)均是在無噪聲情況下獲得的源信號與分離信號的相關(guān)系數(shù)。
表1 相關(guān)系數(shù)對比表格
在實(shí)際生活中,噪聲不可避免。所以,可以在相同噪聲條件下驗(yàn)證兩種算法的分離效果。為了方便,采用上述實(shí)驗(yàn)的源信號,并隨機(jī)產(chǎn)生一組混合矩陣進(jìn)行混合,然后給混合信號加上噪聲進(jìn)行仿真實(shí)驗(yàn),信噪比25 dB,實(shí)驗(yàn)結(jié)果如圖8~圖10所示。
圖8 加噪混合信號
圖9 原算法分離結(jié)果
圖10 本文改進(jìn)算法分離結(jié)果
因?yàn)橄嚓P(guān)系數(shù)是研究變量之間線性相關(guān)程度的量,所以加噪聲后對于兩種算法的評價(jià),僅憑相關(guān)系數(shù)已經(jīng)不能說明算法分離性能的好壞。為了評價(jià)原算法與改進(jìn)算法在相同噪聲條件下的性能,用均方差來表示分離結(jié)果與各個(gè)源信號之間的偏離程度,即均方差值越小,表示分離信號與源信號的偏離程度越??;反之,表示分離信號與源信號的偏離程度越大。
表2中σ表示均方差值,s1和s2表示實(shí)驗(yàn)中所用的兩個(gè)源信號,ys1與ys2是分離信號。σSNR表示原來的算法分離結(jié)果與源信號的均方差值,σPSNR表示本文改進(jìn)的算法分離結(jié)果與源信號的均方差值。由數(shù)據(jù)對比可以發(fā)現(xiàn),改進(jìn)后的算法在同樣的噪聲環(huán)境中,分離信號與各個(gè)源信號的均方差值要小于原算法的均方差值,說明改進(jìn)算法仿真的分離信號與源信號更加接近,即改進(jìn)算法的分離效果要好于原有的算法。
表2 均方差值對比
4 結(jié) 語對含噪觀測信號分離的不徹底在于噪聲的干擾,會導(dǎo)致信號分離效果變差。所以,本文直接用小波去噪后的信號代替原算法估計(jì)信號的滑動平均。仿真結(jié)果證明,改進(jìn)算法具有有效性和正確性,
相對原有算法提高了分離效果。雖然本文對原有算法進(jìn)行了改進(jìn),但是還有一些不足需要改進(jìn),如分離過程中源信號的個(gè)數(shù)發(fā)生變化時(shí)該如何應(yīng)對,分離后怎么恢復(fù)源信號的真實(shí)幅度,以及如何把分離的信號和各個(gè)源信號一一對應(yīng)等,這些將是下一步的研究方向。