褚鼎立,陳 紅,宣章健
(國防科技大學(xué)電子對抗學(xué)院, 安徽 合肥 230037)
盲源分離(Blind Signal Separation,BSS)是20世紀出現(xiàn)的新研究領(lǐng)域,在對源信號和傳輸通道幾乎沒有可利用信息的情況下,僅從觀測到的混合信號中提取或恢復(fù)源信號各分量的一種信號處理方法[1]。盲信號分離,本質(zhì)上就是一種信號處理方式,適用于各個信息領(lǐng)域,其中包括無線通信、圖像處理、語音識別等。當(dāng)前,盲信號分離受到各國學(xué)者的關(guān)注和討論,已經(jīng)成為研究的熱點與重點,尤其在信號處理、人工神經(jīng)網(wǎng)絡(luò)等方面[2],具有極為重要的研究價值。
盲處理的方法是依據(jù)一定的獨立性準則構(gòu)造目標函數(shù)的無監(jiān)督學(xué)習(xí)方法。針對目標函數(shù)的計算法方法,文獻[3]提出了隨機梯度法,由于算法需要對矩陣求逆,計算量大,當(dāng)矩陣奇異時,計算不穩(wěn)定;文獻[4]提出了自然梯度法,相較于隨機梯度法更穩(wěn)定,但計算量仍很大,收斂性有待改進[5];文獻[6]提出了FastICA方法,計算量更少,但存在對初始值敏感的問題,導(dǎo)致算法不穩(wěn)定。文獻[7]提出基于粒子群算法的盲分離方法,該方法不易陷入局部極值,但參數(shù)設(shè)置較多、收斂速度較慢,針對粒子群算法存在的問題,本文對鯨魚優(yōu)化算法[8]進行改進,并應(yīng)用于盲源分離。
假設(shè):x(t)是n個未知的相互統(tǒng)計獨立的源信號s(t)的線性組合,即:
x(t)=As(t)
(1)
式(1)中,x(t)=[x1(t),x2(t),…,xm(t)]T,s(t)=[s1(t),s2(t),…,sn(t)]T,A為m×n階未知混合矩陣。由于A和s未知,盲分離要通過特定算法來實現(xiàn)x(t)的處理,從而獲得n×m階的分離矩陣,用W表示,使得輸出信號:
y(t)=Wx(t)=WAs(t)
(2)
就是s(t)的估計值。
由于s(t)和A未知,盲源分離依據(jù)條件和要求,將s(t)從觀測信號x(t)中將源信號分離出來,使得最終分離出的信號無限逼近于源信號s(t),即通過分離矩陣W來實現(xiàn)盲源分離。一些混合信號中含有噪聲成分,在處理這類信號的過程中,可以將混合信號和噪聲區(qū)別開來,分別看作是不同路信號。
為了保證盲源分離的可能性,需要一些假設(shè)條件,通常為[9]:
1) 滿秩混合矩陣A,源信號數(shù)不得超過觀測信號數(shù)(即n≤m)。
2)基于統(tǒng)計要求,各源信號相互統(tǒng)計獨立。在實際應(yīng)用中,這個假設(shè)也是合理的。
3)至多有一個信號是高斯分布。
在缺乏源信號和信息通道的情況下,經(jīng)過盲分離的信號并不能確定幅值和排列順序,這一特征稱為模糊性。模糊性雖然存在,但是卻并不會影響最終結(jié)果[10]。
根據(jù)大數(shù)定理,多個相互獨立的隨機變量之和趨向于高斯分布。因此,如果觀測信號是源信號的線性組合,那么源信號的非高斯性比觀測信號的非高斯性更強。根據(jù)這個原理,可以通過對分離信號的非高斯性判斷來確定其相互獨立性[11]。分離信號非高斯性越大,其分離效果越好。
由于粒子群算法存在參數(shù)復(fù)雜、收斂速度慢等問題,本文提出利用改進的鯨魚優(yōu)化算法對目標函數(shù)進行優(yōu)化的算法,旨在進一步提升對線性瞬時混疊信號的分離性能和收斂速度。
鯨是世界上最大的哺乳動物,它的大腦構(gòu)造同人腦相似,都具有梭形細胞,該細胞具有情感表達、行為判斷等功能,使得鯨魚與其他生物不同。座頭鯨捕食時會群聚在一起,吐出一串串泡泡,形成一張泡泡網(wǎng),合作捕食。2016年,Mirjalili S等學(xué)者[8]從座頭鯨捕食行為中獲得靈感,設(shè)計出一種新型算法,即鯨魚優(yōu)化算法(Whale Optimization Algorithm, WOA),該算法具備一定的自然靈感。具體來說,上述算法對座頭鯨的捕食行為進行模仿,采取“螺旋氣泡網(wǎng)”策略,即逐步縮小捕食范圍、更新捕食位置,具備結(jié)構(gòu)簡便、調(diào)節(jié)參數(shù)減少等優(yōu)勢。算法數(shù)學(xué)模型有三種:一是包圍獵物,二是發(fā)泡網(wǎng)攻擊,三是搜索捕食。每次位置更新時,每個個體按照一定的準則選擇其中一種更新方式。下面是三種更新方式的介紹。
2.1.1包圍獵物
座頭鯨能夠識別獵物的位置并包圍他們。由于最優(yōu)位置的搜索空間不是預(yù)先知道的,WOA算法假設(shè)當(dāng)前最佳的候選解是目標獵物位置或最接近目標獵物的位置,在定義最佳代理之后,其他搜索代理將向最佳代理靠近,其位置更新的數(shù)學(xué)表達式為
X(j+1)=X(j)-A·D
(3)
D=|C·X*(j)-X(j)|
(4)
式(3)、式(4)中,A和C為系數(shù)變量;X*(j)為當(dāng)前最佳鯨魚位置;X(j)表示當(dāng)前鯨魚位置;j表示迭代次數(shù)。
計算系數(shù)變量A和C:
A=2a×r-a
(5)
C=2r
(6)
2.1.2發(fā)泡網(wǎng)攻擊
為了模擬座頭鯨吐氣泡捕食行為,數(shù)學(xué)模型為:
1)收縮包圍:即減少式(5)中的a值。在這個過程中,A的取值范圍是[-a,a],一旦這個范圍發(fā)生變動,a也會相應(yīng)的改變,若A在[-1,1]范圍內(nèi),鯨魚的目標位置將確定在當(dāng)前位置和獵物位置之間,這表現(xiàn)出座頭鯨的局部搜索能力。
2)螺旋式位置更新:通過計算得鯨群個體和獵物的準確具體,并將螺旋式數(shù)學(xué)模型引入:
X(j+1)=D′eblcos(2πl(wèi))+X*(j)
(7)
(8)
式(7)、式(8)中,D′為表示的是第i頭鯨當(dāng)前最佳位置和獵物之間的距離,b為對數(shù)螺旋形狀常數(shù);l是[-1,1]上的隨機數(shù)。
座頭鯨在捕殺獵物時不僅以螺旋形狀游向獵物,還要收縮包圍圈,以50%的概率作為閾值來更新鯨魚位置。公式為:
(9)
式(9)中,p為[0,1]上的隨機數(shù)。
2.1.3搜索捕食
座頭鯨除了選擇氣泡網(wǎng)法搜索策略之外,隨機搜索捕食也是一種重要手段。實際上,鯨群個體可以在彼此的距離范圍內(nèi),隨機捕食獵物。所以,若果A超出[-1,1]范圍,距離數(shù)據(jù)D隨機更新,鯨為了找尋獵物,就會偏離原本的目標獵物,使得捕食能力提高,使得WOA有一定的全局搜索性能。公式為:
D=|C·Xrand-X(j)|
(10)
X(j+1)=Xrand-A·D
(11)
式(10)、式(11)中,Xrand為當(dāng)前鯨群中隨機個體的位置。
慣性權(quán)重在粒子群算法中有重要作用,權(quán)重較大時,算法可以搜索較大的區(qū)域,收斂速度會加快;權(quán)重較小時,搜索更加精細,不易錯過最優(yōu)解。
受文獻[12]的啟發(fā),對鯨魚優(yōu)化算法引入自適應(yīng)權(quán)重,權(quán)值計算公式如下:
(12)
式(12)中,j為當(dāng)前迭代次數(shù),M為最大迭代次數(shù)。文獻[12]將權(quán)重引入到式(3),如下所示:
X(j+1)=ω·X(j)-A·D
(13)
筆者認為此法欠妥,若將權(quán)重因子引入到鯨魚的當(dāng)前位置上,不符合智能優(yōu)化的初衷,故將其與距離數(shù)據(jù)D結(jié)合,可以通過迭代的次數(shù)來調(diào)整收斂的速度,改進公式如下
X(j+1)=X(j)-ω·A·D
(14)
由于自適應(yīng)權(quán)重對局部搜索作用明顯,而式(3)和式(7)都是用于進行局部搜索的,所以將權(quán)重也同時引入到式(7)中,如下所示
X(j+1)=ω·D′eblcos(2πl(wèi))+X*(j)
(15)
為分離混合信號x(t),本文選擇通過引入自適應(yīng)權(quán)重的WOA算法,來計算式(2)中的W。根據(jù)隨機變量間的獨立性準則,確定盲源分離方法,求得分離矩陣W,常用的有最小互信息準則、信息最大化準則、非高斯最大化準則等。在此,以文獻[13]給出的四階累積量(峰度)準則來建立目標函數(shù),采用分離信號峰度作為信號分離的度量。
隨機變量yi的峰度可表示為
(16)
如果K(yi)>0,信號yi(t)滿足超高斯分布的條件;如果K(yi)=0,信號yi(t)滿足高斯分布的條件;如果K(yi)<0,信號yi(t)滿足亞高斯分布的條件。綜合來說,非高斯性和峰度的絕對值之間成正比。所以,峰度最大,也就意味著超高斯信號的存在,足以說明信號分離效果理想;峰值最小,也就意味著亞高斯信號的存在,信號具有分離的可能性。
對n=2的二維混合模型進行分析和說明,可以通過峰度信息來判定分離信號的有效性。假設(shè)源信號為方差等于1的非高斯信號,用s=[s1,s2]表示,s1,s2為隨機變量,設(shè)其峰度為K(s1)>0,K(s2)>0;對x進行中心化、白化處理;基于此,以分離信號y=Wx為方差有限信號為假設(shè)前提,不妨設(shè)E(yyT)=I;則分離信號的第i個分量為
yi=Wix=WiAs=us=ui1s1+ui2s2
(17)
式(17)中,Wi為分離矩陣W的第i行。根據(jù)峰度的性質(zhì),可知
(18)
為了實現(xiàn)超高斯和亞高斯信號的分離,選擇分離信號峰度的絕對值作為分離的度量:
(19)
定義目標函數(shù)為
(20)
在E(yyT)=I的條件下,
(21)
前文的假設(shè)“分離信號y=Wx為方差有限信號”是有必要的,在模糊性的影響下,盲源分離并不能獲得準確的信號幅度,分離矩陣W中的全部元素同時擴大k數(shù),分離信號y也得到相同倍數(shù)的擴大,但盲源分離信號依然準確,此時的K(y)擴大倍數(shù)卻是k4倍。由此說明,若是沒有上述假設(shè)的限制,式(19)沒有最大值。假設(shè)E(yyT)=I,在均值、白化的處理之下,可知E(xxT)=I,使得
E(yyT)=E(WxxTWT)=E(WWT)=I
(22)
定義了代價函數(shù)式(20)之后,為了求得J(W)的極小值,采用改進的鯨魚優(yōu)化算法來對代價函數(shù)式(20)進行優(yōu)化。
分離矩陣W為一正交陣,對于一個正交陣,可表示成一系列旋轉(zhuǎn)矩陣的乘積,以n=3為例,W可表示為:
(23)
式(23)中,θ1,θ2,θ3∈[0,2π)它們分別代表3個不同的旋轉(zhuǎn)矩陣的旋轉(zhuǎn)角度。
以信號峰度為目標函數(shù),基于改進鯨魚優(yōu)化算法的盲源分離方法步驟如下(以n=3為例):
1)收集并采樣觀測信號,對其進行中心化、預(yù)白化處理。
2)WOA算法參數(shù)初始化。將旋轉(zhuǎn)矩陣的旋轉(zhuǎn)角度θ=[θ1,θ2,θ3]作為鯨魚個體的位置信息X=[X1,X2,X3],在求解空間[0,2π)內(nèi),隨機確定鯨魚位置并初始化WOA參數(shù),包括種群數(shù)目N、最大迭代次數(shù)M、對數(shù)螺旋形狀常數(shù)b、隨機數(shù)l、當(dāng)前迭代次數(shù)j及算法終止條件。
3)通過式(20),計算適應(yīng)度Fit(W)=J(W),找到并保存群體中最佳鯨魚個體位置X*。
4)若j≤M,更新a、A、C、l和p。
5)當(dāng)p<0.5時,若A<1,通過式(14),重新確定鯨魚位置;如果A≥1,需要在當(dāng)前群體范圍內(nèi)隨機確定鯨魚個體位置Xrand,通過式(11),更新當(dāng)前鯨魚位置。
6)如果p≥0.5,通過式(15)重新確定鯨魚個體位置。
7)通過式(20),計算出個體適應(yīng)度Fit(W),確定群體中最佳鯨魚個體X*。如果算法滿足終止條件,就到步驟8);反之,令j=j+1,重復(fù)步驟4)~7),直到滿足條件為止。
8)輸出最優(yōu)個體位置X*并通過式(23)計算分離矩陣W。
9)利用得到的分離矩陣W通過式(2)估計出源信號。
本節(jié)基于Matlab2014a平臺仿真驗證并分析基于改進鯨魚優(yōu)化算法的盲信號分離性能。仿真實驗如下。
實驗一:無噪情況下,采用三路仿真信號作為源信號,采樣頻率為3 000 Hz,共使用500個采樣點。三路仿真信號分別為符號函數(shù)、幅度調(diào)制信號、正弦信號,當(dāng)t從1遍歷到500時,生成信號如下:
它們的峰度分別為-2.000 0,-0.050 3,-0.375 0,三路信號瞬時混合,混疊矩陣取為:
在分離混合信號時,選擇鯨魚優(yōu)化算法,鯨魚的種群數(shù)目取30,迭代次數(shù)取50,鯨魚位置信息區(qū)間為[0,2π),為了證明鯨魚算法的效果,與基于粒子群算法的盲源分離做了對比實驗,為了方便比較,粒子數(shù)取為30,迭代次數(shù)也為50,兩個學(xué)習(xí)因子都設(shè)為0.8,仿真結(jié)果如圖1—圖5所示。
圖1 源信號Fig.1 Source signals
圖2 混合信號Fig.2 Mixed signals
圖3 分離信號(改進鯨魚算法)Fig.3 Separated signals(WOA)
圖4 分離信號(粒子群算法)Fig.4 Separated signals(PSO)
圖5 算法收斂曲線Fig.5 Algorithm convergence curve
由圖1、圖3、圖4可見,分離信號存在幅度和排列順序的不確定性,但這不影響分離效果。從圖5的收斂曲線對比圖中可以看出,經(jīng)過18步迭代,鯨魚算法的適應(yīng)度已經(jīng)收斂,而且從收斂曲線上看出收斂速度非??欤欢W尤核惴ㄔ?5步左右才收斂,收斂速度相對鯨魚算法,相對較慢。
選擇相似系數(shù)ζij作為指標,判斷分離效果:
(24)
實驗二:加噪情況下,為了驗證不同信噪比對提出算法分離性能的影響,設(shè)置蒙特卡洛實驗,實驗信號同實驗一,對混合信號作加噪處理,信噪比線性變化范圍從-10 dB以步長5到40 dB,每個信噪比下進行100次實驗,以串音誤差(PI)作為觀測值,100次實驗取平均值作為當(dāng)前信噪比下的串音誤差,并與粒子群算法進行對比。
串音誤差PI定義如下:
(25)
式(25)中,gij是矩陣G第i行第j列的元素,G=WVA,V是混合信號的白化矩陣,PI值越接近0說明算法分離精度越高,實驗結(jié)果如圖6。
圖6 盲分離性能隨信噪比的變化情況Fig.6 Blind separation performance versus SNR
從圖6可見,隨著輸入信噪比的升高,本文算法與粒子群算法的計算誤差逐漸降低,在信噪比低于20 dB時變化尤為明顯,此時,本文算法的計算精度更高,分離效果更明顯;在信噪比高于20 dB后,兩種算法的計算精度趨于一致,都有很好的分離性能。
本文提出了基于改進鯨魚優(yōu)化算法的盲源分離方法。該方法利用獨立性準則,以混合信號的峰度作為目標函數(shù),用鯨魚優(yōu)化算法代替常規(guī)的粒子群算法,并引入自適應(yīng)權(quán)重,加快收斂速度,實現(xiàn)了對瞬時混疊信號的盲分離,有效地避免了粒子群算法參數(shù)復(fù)雜、收斂速度慢的問題。仿真對比結(jié)果表明,本文方法簡單高效,分離精度和收斂速度相較于粒子群算法有明顯優(yōu)勢,在更低信噪比下也有良好的分離效果,適用于盲信號分離,可為盲信號處理提供一種新的研究思路與方法。