摘 要:提出一種采用粒子群優(yōu)化算法進(jìn)行盲信號分離的新方法,為盲信號分離領(lǐng)域提供一種新的研究思路與方法。該方法采用峰度作為適應(yīng)度函數(shù),利用粒子群算法對由多個源信號混合而成的信號進(jìn)行盲信號分離。與自然梯度法盲信號分離相比,粒子群算法精度更高,收斂速度更快,實例仿真成功地對兩個圖像混合信號進(jìn)行了盲分離,表明了算法的有效性和優(yōu)越性。
關(guān)鍵詞:粒子群算法; 盲源分離; 峰度; 自然梯度算法
中圖分類號:TN911-34文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2010)17-0094-03
Application of Particle Swarm Algorithm in Blind Source Separation
LIU Hui, LI Bai
(College of Physics and Information, Hunan Normal University, Changsha 410081,China)
Abstract: A new method of using particle swarm optimization(PSO) algorithm for blind source separation is introduced, which provides a new research idea and method for blind source separation field. The method uses peak as fitness function, and adopts the PSO algorithm to separate blind signals from several source signals. Compared to the natural grad algorithm, the PSO algorithm is better in accuracy and convergence speed, and has more validity.
Keywords: particle swarm algorithm; blind signal separation; peak; natural grad algorithm
0 引 言
盲信號分離(BSS)是20世紀(jì)末發(fā)展起來的新研究領(lǐng)域,它指在對源信號、傳輸通道都未知的情況下,僅從若干個觀測到的混合信號中恢復(fù)出源始信號[1]。目前,對BSS問題存在多種算法。隨機(jī)梯度、自然梯度等梯度算法是一種較常見的算法,然而該方法的關(guān)鍵是需要計算非線性激活函數(shù),使算法的復(fù)雜度增加,同時算法需要計算矩陣的產(chǎn)逆,計算量大,而且魯棒性較差,收斂性有待改進(jìn)[2]。文獻(xiàn)[3-4]提出基于神經(jīng)網(wǎng)絡(luò)的盲分離算法,該方法收斂速度較慢,且容易陷入局部極值。本文將粒子群算法引入BSS中,為BSS領(lǐng)域提供一種新的方法,該方法簡單高效,與傳統(tǒng)方法復(fù)雜、收斂慢的特點相比,有較大的優(yōu)勢。
1 盲分離問題描述
設(shè)有n個混合信號X(t)是n個未知的相互統(tǒng)計獨立的源信號S(t)的線性組合,即:
X(t)=HS(t)
(1)
式中:X(t)=[x1(t),x2(t),…,xn(t)]T;S(t)=[s1(t),s2(t),…,sn(t)]T;H為n×n階混合未知矩陣,H=[H1,H2,…,Hn],其中Hi=[hi1,hi2,…,hin],i=1,2,…,n。盲分離就是要在H和S未知的情況下,使用一定的算法,對觀測到的X(t)進(jìn)行處理,得到一個n×n階分離矩陣ω,使得到的輸出信號:
Y=ωX(t)
(2)
是源信號X(t)的最好估計。
2 基于粒子群算法的盲分離
2.1 粒子群算法
粒子群算法(PSO)是一種智能優(yōu)化算法[5-6]。在PSO中,有N個微粒和一個適應(yīng)度函數(shù),每個微粒在D維搜索空間中以一定的速度飛行。該飛行速度由個體的飛行經(jīng)驗動態(tài)調(diào)整。各微粒根據(jù)自己的當(dāng)前位置和速度不斷更新自己的位置。微粒i的位置和飛行速度分別表示為[Xi1, Xi2,…XiD]和[Vi1, Vi2,…,ViD]。每個微粒存在一個由它的位置決定的與適應(yīng)度函數(shù)相對應(yīng)的值,根據(jù)微粒的適應(yīng)度值判斷粒子的優(yōu)劣,取最優(yōu)粒子的位置作為最優(yōu)解。粒子的飛行速度和位置調(diào)整的方程如下:
Vij(t+1)=wVij(t)+c1(t)[pij(t)-xij(t)]+
c2r2(t)[pgj(t)-Xij(t)]
Xij(t+1)=Xij(t)+Vij(t+1)
(3)
式中:t為當(dāng)前迭代次數(shù);i表示第i個微粒;j表示第j維;c1,c2為區(qū)間[0,2]的常數(shù),其中c1為調(diào)節(jié)微粒飛向自身最好位置(pi)方向的步長,為認(rèn)知系數(shù);c2為調(diào)節(jié)微粒飛向全局最好位置(pg)方向的步長,為社會學(xué)習(xí)系數(shù);r1~U(0,1),r2~U(0,1)為兩個獨立分布的隨機(jī)數(shù);w為慣性權(quán)重,讓w隨著迭代次數(shù)增加而減少,可使PSO算法在初期有較強的全局收斂能力,而晚期有較強的局部收斂能力[7-8]。
2.2 分離原理
為了對混合信號X(t)進(jìn)行盲分離,本文提出使用PSO算法求解式(2)中的分離矩陣ω。根據(jù)中心極限定理可知,由多個獨立隨機(jī)變量之和的分布比其中任一變量更接近高斯分布,因此可將信號的非高斯性作為信號獨立性的度量[9-10]。式(2)的目標(biāo)就是要找出分離矩陣ω,使輸出信號Y=ωX(t)的非高斯性最強,這時便由混合信號分離出了源信號。這時有ω=H-1,于是有:
Y=ωX(t)=H-1HS(t)=S(t)
從而實現(xiàn)混合信號的盲分離。
峰度是隨機(jī)信號非高斯性的一種判據(jù)。隨機(jī)信號y的峰度定義為:
kurt(y)=E{y4}-3E{y2}2
(4)
當(dāng)kurt(y)=0時,y為高斯信號;|kurt(y)|越大,y的非高斯性越強。因此,本文使用PSO算法,采用峰度的絕對值如式(5)作為適應(yīng)度函數(shù)進(jìn)行尋優(yōu):
F(ω)=kurt(Y)=∑ni=1kurt(Yi)=∑ni=1kurt(ωiX)
=|∑ni=1E((ωiX)4)-3[E((ωiX)2)2|
(5)
2.3 算法步驟
采用PSO算法對混合信號X(t)進(jìn)行盲分離的具體步驟如下:
(1) 確定算法的各個參數(shù)值:c1,c2,vmax,MaxDT并初始化各微粒。
(2) 根據(jù)式(5)計算各微粒的適應(yīng)度值。
(3) 對每個微粒,判斷是否更新粒子的局部極值和全局極值。
(4) 按進(jìn)化方程式(3)進(jìn)化各微粒。
(5) 判斷是否滿足終止條件,否就轉(zhuǎn)步驟(3),是就轉(zhuǎn)步驟(6)。
(6) 由pg得到分離矩陣ω,從而得到分離信號Y。
3 仿真分析
用Matlab對本算法進(jìn)行實例仿真分析。選取2個圖像作為源信號,如圖1所示,以線性方式混合,混合矩陣H=0.304 60.543 30.613 80.294 7,混合圖像如圖2所示。算法參數(shù)設(shè)置為:群體大小N=30,參數(shù)維數(shù)dim=4, 慣性權(quán)重w由1.2線性變到0.9,粒子群中所有粒子位置的取值范圍都限制在[-1,+1],最大速度Vmax=1,最大迭代次數(shù) MaxDT=100。仿真得到分離出來的兩個圖像如圖3所示,可以看到分離圖像與源圖像非常接近,只是順序不一樣,這是由盲分離問題的不確定性引起的,不影響結(jié)果的正確性。因此本算法成功地分離出了兩個圖像。
圖1 源圖像
圖2 混合圖像
圖3 分離圖像
為了評價本算法的優(yōu)劣,將混合圖像用自然梯度算法進(jìn)行盲分離,將兩種算法進(jìn)行對比。表1是兩種算法進(jìn)行盲分離的收斂情況表。可以看到,收斂的時候,PSO算法所用的迭代次數(shù)要少于自然梯度算法,因此PSO算法的收斂速度快于自然梯度法的收斂速度。比較兩種算法的抽取精度,可以用信噪比來表示。將分離信號與源信號之差看作是噪聲,分離出的第i個信號的信噪比(單位:dB)可以表示為:
SNRi=10log210{∑Nk=1s2i(t)/∑Nk=1[yi(t)-si(t)]2}
(6)
式中:N為信號的取樣點數(shù)。
表2是兩種算法的信噪比比較表,可以看到PSO算法比自然梯度算法分離的圖像有較高的信噪比,因此本算法有較高的準(zhǔn)確度。
表1 收斂情況表
抽取信號迭代次數(shù)運行時間 /s
PSO算法446
自然梯度算法518
表2 性能對照表
算法y1,y2的信噪比 /dB
PSO算法28.45,30.01
自然梯度算法26.78,26.52
4 結(jié) 語
將粒子群算法引入盲信號分離中,并通過仿真實例成功分離出源信號,與自然梯度盲分離算法對比,粒子群盲分離算法在分離精度和收斂速度上有一定的優(yōu)越性,精度更高,收斂速度更快,為盲信號分離領(lǐng)域提供了一種新的研究思路與方法。
參考文獻(xiàn)
[1]張賢達(dá),保錚.盲信號分離[J].電子學(xué)報,2001,29(12A):1766-1771.
[2]CICHOCKI A, AMARI S, CAO J. Neural network models for blind separation of time delayed and convolved signals[J]. Japanese IEICE Trans.on Fundamentals, 1997, E-82-A(9):1595-1600.
[3]COMON P, JUTTEN C, HERANLT J, Blind separation of sources:problem statement[J]. Signal Processing, 1991,24(1): 11-20.
[4]HERAULT J, Jutten C. Blind separation of sources: an adaptive algorithm based on neurominetic[J]. Signal Processing, 1991, 24(1): 1-10.
[5]謝曉峰,張文俊,楊之廉.微粒群算法綜述[J].控制與決策,2003,18(2):129-134.
[6]KENNEDY J, EBERHART R C. Particle swarm optimization[C]//IEEE International Conference on Neural Networks.Perth,Australia: IEEE 1995:1942-1948.
[7]SHI Yu-hui, EBERHART R C.Empirical study of particle swarm optimization[C]//Proceeding of the IEEE Congress on evolutionary Computation. Piscataway, NJ: IEEE Press, 1998: 69-73.
[8]曾建潮,介婧,崔志華.微粒群算法[M].北京:科學(xué)出版社,2004.
[9]張賢達(dá),牛奕龍,陳海洋.盲信號處理[M].北京:國防工業(yè)出版社,2006.
[10]CARDOSO J F, LAHEL B H. Equivariant adaptive source separation[J]. IEEE Trans. Signal Processing, 1996, 44(12): 3017-3030.