郭松林,徐海鵬
(黑龍江科技大學(xué) 電氣與控制工程學(xué)院, 哈爾濱 150022)
現(xiàn)有的信號(hào)分析方法有很多,常用的小波分析法和傅里葉分析法?;诟道锶~變換的信號(hào)處理方法由于非周期采樣產(chǎn)生泄露誤差,使測(cè)得的幅值、頻率和相角偏離實(shí)際值,特別相位測(cè)量誤差更大。相對(duì)于傅里葉變換分析,小波分析具有較大優(yōu)勢(shì),因?yàn)樾〔ê瘮?shù)在時(shí)域和頻域內(nèi)具有局部分析和多分辨率分析的優(yōu)勢(shì)。但由于采樣點(diǎn)序列以及所選用的濾波器長(zhǎng)度有限,因此,在計(jì)算邊緣點(diǎn)時(shí)會(huì)遇到邊界問(wèn)題,隨著分解不斷進(jìn)行,重構(gòu)誤差會(huì)不斷增大。此外,小波分析的運(yùn)算較復(fù)雜,且小波基函數(shù)也不易選擇,這也是小波分析方法自身的缺點(diǎn)。
獨(dú)立分量分析方法(ICA),是近年發(fā)展起來(lái)的一種有效的盲信號(hào)分離方法。該算法可以?xún)H僅根據(jù)輸入信號(hào)的一些基本統(tǒng)計(jì)特征,在瞬時(shí)混疊參數(shù)不清楚的情況下,由觀測(cè)信號(hào)恢復(fù)出源信號(hào)的過(guò)程。通過(guò)不斷發(fā)展和完善的算法理論,使其在語(yǔ)音信號(hào)處理、圖像處理、無(wú)線通信技術(shù)、生物醫(yī)學(xué)工程和電氣領(lǐng)域等應(yīng)用十分廣泛[1]。而基于牛頓二階收斂的快速獨(dú)立分量分析(Fast-ICA)算法,相比于ICA算法收斂速度雖然更快,但依然存在收斂精度和分離性能不高的問(wèn)題。
筆者為了進(jìn)一步提高算法的收斂速度和分離性能,減小算法的誤差,在原Fast-ICA算法的基礎(chǔ)上改進(jìn)算法,使改進(jìn)后的算法滿(mǎn)足四階牛頓收斂特性,提升改進(jìn)后算法的收斂精度與分離性能。
典型的盲源分離(BSS)原理[2]如圖1所示。
圖1 盲源分離原理Fig. 1 Schematic of BSS
n個(gè)相互獨(dú)立的源信號(hào)S(t)=[s1(t),s2(t),…,sn(t)]在經(jīng)過(guò)一個(gè)未知的混合系統(tǒng)后,得到觀測(cè)信號(hào)X(t)=[x1(t),x2(t),…,xm(t)],可以近似的表示為
X(t)=A·S(t),
式中:A——m×n維滿(mǎn)秩可逆混合矩陣;
X(t)——觀測(cè)信號(hào);
S(t)——源信號(hào)。
當(dāng)僅知道觀測(cè)信號(hào)X(t)時(shí),可以通過(guò)盲源分離優(yōu)化算法得到分離矩陣,從而得到分離信號(hào)為
Y(t)=w·X(t),
式中:w——m×n維滿(mǎn)秩可逆混合矩陣;
Y(t)——分離信號(hào)。
Y(t)=[y1(t),y2(t),…,yn(t)],盲源分離算法就是根據(jù)y(t)之間的統(tǒng)計(jì)獨(dú)立性,確定分離矩陣w的過(guò)程。為了使盲源分離可以有效地分離,往往需要一些條件來(lái)約束,盲源分離最基本的是假設(shè)源信號(hào)彼此之間是統(tǒng)計(jì)獨(dú)立的,混合矩陣是可逆的,在源信號(hào)中高斯信號(hào)至多有一個(gè)[3]。
分離矩陣w是盲源分離以信號(hào)的某種獨(dú)立性為依據(jù)確定的。度量信號(hào)統(tǒng)計(jì)獨(dú)立性的兩個(gè)常用指標(biāo)是峭度和負(fù)熵,但峭度容易受到野值的影響,但熵在信息論中是一個(gè)較為穩(wěn)健的判據(jù)。隨機(jī)信號(hào)的負(fù)熵[4]可以表示為
J(y)=[E{G(y)}-E{G(yg)}]2,
式中:J(y)——負(fù)熵;
E{G(y)}——G(y)的數(shù)學(xué)期望;
y——變量Y的分量;
yg——具有與y同樣方差的高斯變量。
如果要分量y的數(shù)學(xué)期望E{G(yg)}越小,就需要其非高斯性越強(qiáng),負(fù)熵J(y)越大。依據(jù)負(fù)熵判據(jù)尋找矩陣w,使負(fù)熵J(y)最大。即對(duì)E{G(y)}=E{G(wTx)} 求極值,使最大。因此,導(dǎo)數(shù)應(yīng)為
wT——分離矩陣w的轉(zhuǎn)置矩陣。
g為G的導(dǎo)數(shù),設(shè):xt為t時(shí)刻的輸入變量X的分量,t+1時(shí)刻的輸入變量X的分量由牛頓迭代定理可表示為
t時(shí)刻的算法的輸入變量分離矩陣為
式中,wt——t時(shí)刻的分離矩陣。
因此,分離矩陣為
不難證明當(dāng)在原有 Fast-ICA 算法中牛頓迭代算法式是二階收斂的。由于牛頓算法收斂階數(shù)越高,算法的收斂速度越快,修正原式,使之滿(mǎn)足四階收斂,減小改進(jìn)后算法的誤差并提高收斂速度[5]。其修正形式為
由修正后的牛頓迭代公式,可推得改進(jìn) Fast-ICA 算法公式為
改進(jìn)Fast-ICA算法分由預(yù)處理(中心化處理和白化處理)與基于負(fù)熵的盲分離算法兩部分組成,流程如圖2所示。
圖2 改進(jìn)算法流程Fig. 2 Improved algorithm flow
設(shè)f(x)為實(shí)數(shù)域內(nèi)四階可導(dǎo)函數(shù),如果a是f(x)的單根,且x0充分靠近a,則可以根據(jù)修正后的牛頓迭代公式定義改進(jìn)后牛頓迭代誤差方程為
證明:設(shè)
en=xn-a,
式中:f(a)=0,f′(a)≠0,y(a)=a,
計(jì)算得
則,迭代公式可以表示為
因此,改進(jìn)后的Fast-ICA算法是四階收斂的。
誤差方程為
通過(guò)以下方法來(lái)確定改進(jìn)后的誤差,設(shè)
函數(shù)表達(dá)式為
四階Fast-ICA算法的最小逼近誤差為
假設(shè)四階Fast-ICA誤差為10-6>ε>10-7,構(gòu)建Lyapunov函數(shù)為
V(x)=εe-(x-a),
當(dāng)誤差為10-6>ε>10-7時(shí),算法是一定收斂的。對(duì)比原算法10-5>ε1>10-6有明顯減小[7]。
利用Matlab實(shí)現(xiàn)Fast-ICA算法對(duì)混合信號(hào)的分離,為了驗(yàn)證改進(jìn)算法的有效性,對(duì)比分析改進(jìn)后算法與原算法的仿真結(jié)果。
源信號(hào)為三路不同的語(yǔ)音信號(hào),利用Matlab將源信號(hào)通過(guò)隨機(jī)混合矩陣混合,得到混合信號(hào)。三路原始語(yǔ)音信號(hào)如圖3所示,混合后語(yǔ)音信號(hào)如圖4所示。
圖3 源信號(hào)Fig. 3 Source signal
圖4 混合信號(hào)Fig. 4 Mixed signal
由圖4可見(jiàn),得到混合信號(hào)后,分別利用傳統(tǒng)的Fast-ICA算法和改進(jìn)后的Fast-ICA算法分離混合信號(hào)。從圖5、6可以看出,改進(jìn)后的算法使語(yǔ)音信號(hào)成功分離。
圖5 Fast-ICA分離信號(hào)Fig. 5 Fast-ICA separation signal
圖6 改進(jìn)的Fast-ICA分離信號(hào)Fig. 6 Improved Fast-ICA separation signal
為了比較兩種算法實(shí)時(shí)性,分別對(duì)兩種算法進(jìn)行了10次信號(hào)分離實(shí)驗(yàn),記錄了每次實(shí)驗(yàn)兩種算法迭代時(shí)間,結(jié)果如圖7所示。原算法和改進(jìn)后的算法的平均迭代時(shí)間分別為0.033 6和0.025 6 s,由圖7可以看出,改進(jìn)后算法的分離時(shí)間要比原算法短,即前者提高了收斂效率[8]。
圖7 兩種算法迭代時(shí)間Fig. 7 Iteration time of two algorithms
圖8a、b分別是改進(jìn)后算法的誤差圖和原算法的誤差圖。由圖8可以看出,改進(jìn)后的Fast-ICA算法比原來(lái)的Fast-ICA在檢測(cè)精度上有了顯著的提高。綜上所述,改進(jìn)后的Fast-ICA算法不僅可以將各個(gè)信號(hào)有效的分離,而且在實(shí)時(shí)性和準(zhǔn)確性上都要優(yōu)于原有的Fast-ICA算法[9]。
盲源分離算法的分離性能可以通過(guò)算法PI值來(lái)衡量[10],其計(jì)算公式為
式中:ePI——算法的PI值;
cij——混合矩陣與分離矩陣的乘積;
m——變量的個(gè)數(shù)。
如果PI值越小,則說(shuō)明算法的分離的性能越好,當(dāng)為零時(shí),證明信號(hào)已經(jīng)完全分離,通過(guò)計(jì)算,得到改進(jìn)后算法的PI值為0.52,原算法的PI值為0.66。改進(jìn)后的算法的值要明顯的小于原算法值,由此說(shuō)明改進(jìn)后的算法的分離性能要更好。
圖8 改進(jìn)算法與原算法的誤差對(duì)比Fig. 8 Comparing error between improved algorithm and original algorithm
針對(duì)原算法收斂速度較慢,收斂精度不高的問(wèn)題,改進(jìn)原有算法,使其滿(mǎn)足四階牛頓收斂,證明了其收斂性,確定了改進(jìn)后算法的誤差范圍。采用PI值來(lái)說(shuō)明算法的分離性能,最終通過(guò)仿真實(shí)驗(yàn)證明了文中提出的改進(jìn)的Fast-ICA算法的代次數(shù)和迭代時(shí)間均小于原算法,分離信號(hào)更接近源信號(hào),分離性能更好。