嚴(yán)發(fā)鑫,徐 巖,湯旻安
(蘭州交通大學(xué)電子與信息工程學(xué)院,甘肅蘭州 730070)
語音分析所用的信號(hào)通常是在實(shí)際場(chǎng)合下采集到的,是多個(gè)未知源信號(hào)組成的傳感器信號(hào),這給語音信號(hào)的分析帶來極大的不便。盲源分離是在語音源信號(hào)和混合方式缺乏先驗(yàn)知識(shí)的情況下,僅通過傳感器接收的信號(hào)提取語音源信號(hào)。盲源分離給語音分析帶來方便。非平穩(wěn)混合下的盲源分離是一種特殊情形,例如,多個(gè)語音源不斷移動(dòng)的場(chǎng)合下,傳感器接收到的信號(hào)是時(shí)變的,可視為將語音源信號(hào)通過非平穩(wěn)系統(tǒng)混合得到。需根據(jù)系統(tǒng)擾動(dòng)采用在線盲源分離算法實(shí)時(shí)調(diào)節(jié)學(xué)習(xí)速率,動(dòng)態(tài)更新分離矩陣。通常采用的在線算法為自適應(yīng)盲源分離算法。
目前,對(duì)于非平穩(wěn)混合系統(tǒng)下的盲源分離研究,陳海平[1]等人提出了在線FastICA算法,通過將傳感器信號(hào)分成短時(shí)段,在每段內(nèi)使用傳統(tǒng)的FastICA批處算法,在線實(shí)時(shí)跟蹤非平穩(wěn)的混合系統(tǒng)。季策[2]等人提出了一種約束算法,該算法利用混合系統(tǒng)的變動(dòng)對(duì)目標(biāo)函數(shù)進(jìn)行約束,并對(duì)約束因子和學(xué)習(xí)速率自適應(yīng)調(diào)整。張?zhí)祢U[3]等人提出了一種首先實(shí)時(shí)估計(jì)混合矩陣得到性能指數(shù),再基于性能指數(shù)對(duì)學(xué)習(xí)速率和動(dòng)量因子動(dòng)態(tài)更新的方法。陳海平的方法能有效跟蹤非平穩(wěn)環(huán)境,但由于使用了批處理算法,算法的計(jì)算量大,短時(shí)段的劃分容易產(chǎn)生誤差。季策和張?zhí)祢U的算法收斂速度快,穩(wěn)態(tài)誤差小,但對(duì)算法的等變性考慮不足,算法較復(fù)雜??傊?,目前采用自適應(yīng)盲源分離算法并對(duì)其優(yōu)化可以較好地實(shí)現(xiàn)非平穩(wěn)混合系統(tǒng)下的分離,但算法本質(zhì)上對(duì)系統(tǒng)擾動(dòng)考慮不足[2],故非平穩(wěn)混合下的盲源分離仍需進(jìn)一步研究。
非平穩(wěn)混合下的自適應(yīng)盲源分離算法需考慮等變性問題,等變性是指盲源分離的性能與混合矩陣無關(guān),即混合矩陣變化時(shí)對(duì)分離性能不產(chǎn)生影響,能有效保證算法的魯棒性。但一般的自適應(yīng)盲源分離算法與混合矩陣有關(guān),不能保證等變性,特別是采用預(yù)處理的算法[4]。本文首先提出無預(yù)處理的自適應(yīng)盲源分離算法,再基于PID控制原理實(shí)時(shí)依據(jù)非平穩(wěn)混合擾動(dòng)動(dòng)態(tài)調(diào)整學(xué)習(xí)速率,提高收斂速度,減小分離誤差,最后進(jìn)行仿真驗(yàn)證和性能分析。
一般正定、線性瞬時(shí)混合盲源分離問題按如下方式描述[5]。傳感器信號(hào) x(t)=[x1(t),x2(t),…,xn(t)]T是由源信號(hào) s(t)=[s1(t),s2(t),…,sm(t)]T混合得到,m、n分別是源信號(hào)的數(shù)目、混合信號(hào)的數(shù)目,正定即m=n,線性瞬時(shí)混合的傳感器信號(hào)記為
式中,A為滿秩的混合矩陣。源信號(hào)的估計(jì)信號(hào)y(t)=[y1(t),y2(t),…,ym(t)]T,通過求解估計(jì)信號(hào)可得到分離出的源信號(hào)。
式中,W為滿秩的總分離矩陣;G為全局矩陣。
假設(shè)源信號(hào)和估計(jì)信號(hào)都具有單位方差和零均值,并且源信號(hào)統(tǒng)計(jì)獨(dú)立。由于盲源分離不能保證估計(jì)信號(hào)的幅度為源信號(hào)的實(shí)際幅度,且分離結(jié)束后估計(jì)信號(hào)的各個(gè)分量必須相互獨(dú)立[5],將分離結(jié)束后估計(jì)信號(hào)的自相關(guān)矩陣一般化為[6]
式中,W為總分離矩陣;I為單位矩陣;Rx為傳感器信號(hào)的自相關(guān)矩陣;U為正交分離矩陣;V為白化矩陣;Rz為傳感器信號(hào)白化后的自相關(guān)矩陣,Rz=I。采用的目標(biāo)函數(shù)記為[6]
分離矩陣的迭代更新式記為[6]
式中,k指代第k步迭代,根據(jù)式(4)分離結(jié)束后Ry=I,代入式(8),得 W(k+1)=W(k),因此最終式(8)是收斂的;μ(k)為第k步的學(xué)習(xí)速率;Ry(k)為第k步迭代時(shí)估計(jì)信號(hào)的自相關(guān)矩陣,Rx(k)為第k步迭代時(shí)傳感器信號(hào)的自相關(guān)矩陣,為便于在迭代過程中計(jì)算Rx(k),用式(9)迭代過程的時(shí)間平均近似估計(jì)[7]。
為提高分離過程的穩(wěn)定性,確保迭代快速收斂,用式(10)對(duì)矩陣W×Rx×WT標(biāo)準(zhǔn)化。
這種無預(yù)處理的自適應(yīng)盲源分離算法可以實(shí)現(xiàn)預(yù)處理的兩個(gè)目標(biāo):
①根據(jù)式(4),傳感器信號(hào)的二階相關(guān)被去除,傳感器信號(hào)各個(gè)分量相互正交;
②根據(jù)式(4),總分離矩陣簡化為正交分離矩陣,從而算法復(fù)雜度降低。
為驗(yàn)證算法具有等變性,將式(8)的左右兩端都右乘混合矩陣A,根據(jù)式(1)可以得到
再根據(jù)式(3)可以得到
式中,k指代第k步迭代。G(k+1)的更新與混合矩陣A、總分離矩陣W以及傳感器信號(hào)的自相關(guān)矩陣Rx無關(guān),與源信號(hào)的自相關(guān)矩陣Rs有關(guān),證明了算法具有等變性。
PID控制即比例、積分、微分控制,它因調(diào)節(jié)簡單、應(yīng)用方便、魯棒性較好,廣泛應(yīng)用于工業(yè)控制,常見的被控量有溫度、液位、壓力等。PID控制的特點(diǎn)是能應(yīng)用于系統(tǒng)存在變動(dòng)、精確數(shù)學(xué)模型不能建立的場(chǎng)合[8]。依據(jù)式(8),基于常規(guī)PID控制模型,建立一種以矩陣W×Rx×WT元素平方的最大值作為實(shí)際輸出,以單位矩陣I中元素最大值1作為期望輸出,便于計(jì)算機(jī)處理的,依據(jù)系統(tǒng)變動(dòng)實(shí)時(shí)調(diào)整學(xué)習(xí)速率的數(shù)字增量式PID控制模型??刂颇P腿鐖D1所示。
圖1 PID控制模型
圖1 比例運(yùn)算為Kp[e(k)-e(k-1)],積分運(yùn)算為Kie(k),微分運(yùn)算為Kd[e(k)-2e(k-1)+e(k-2)],Kp,Ki,Kd分別對(duì)應(yīng)比例系數(shù)、積分系數(shù)、微分系數(shù)。則學(xué)習(xí)速率的變化量Δμ(k)記為[8]
調(diào)節(jié)學(xué)習(xí)速率部分對(duì)應(yīng)常規(guī)PID控制模型的執(zhí)行機(jī)構(gòu),增量式PID控制計(jì)算過程不涉及累加運(yùn)算,計(jì)算復(fù)雜度小,計(jì)算機(jī)容易處理,調(diào)節(jié)后的學(xué)習(xí)速率記為[8]
自適應(yīng)盲源分離部分對(duì)應(yīng)常規(guī)PID控制模型的被控對(duì)象。根據(jù)調(diào)節(jié)后的學(xué)習(xí)速率,自適應(yīng)盲源分離算法迭代更新分離矩陣,進(jìn)而得到系統(tǒng)的輸出值。采用此種PID控制模型可以實(shí)時(shí)跟蹤系統(tǒng)變動(dòng),減小不穩(wěn)定因素對(duì)自適應(yīng)盲源分離的影響,加快分離的收斂速度,減小分離的穩(wěn)態(tài)誤差,提高非平穩(wěn)混合系統(tǒng)自適應(yīng)盲源分離算法的魯棒性。
①初始化學(xué)習(xí)速率μ、總的分離矩陣W、自相關(guān)矩陣Rx和混合矩陣A;
② 用式(10)對(duì)矩陣W×Rx×WT標(biāo)準(zhǔn)化;
③用式(8)迭代更新分離矩陣;
④ 用式(9)估計(jì)Rx;
⑤用式(13)計(jì)算學(xué)習(xí)速率的變化量,然后用式(14)計(jì)算調(diào)節(jié)后的學(xué)習(xí)速率;
⑥判斷是否收斂,若是進(jìn)行步驟⑦,否則回到步驟②;
⑦繪制分離前和分離后的源信號(hào)波形、系統(tǒng)的響應(yīng)曲線和性能曲線。
由于建立的PID控制系統(tǒng)的傳遞函數(shù)得不到精確數(shù)學(xué)模型,故利用經(jīng)驗(yàn)法整定PID參數(shù)。經(jīng)驗(yàn)法PID參數(shù)整定原則遵循先“比例”,后“積分”,再“微分”的次序[9],整定指標(biāo)為整定后的參數(shù)能使所提出的自適應(yīng)盲源分離算法的分離性能指數(shù)PI與零值距離最小,仿真中分別多次改變比例系數(shù)、積分系數(shù)、微分系數(shù),分別比較歷次穩(wěn)態(tài)時(shí)的PI仿真值,取最小值時(shí)的比例系數(shù)、積分系數(shù)、微分系數(shù)。依據(jù)PID參數(shù)整定原則和整定指標(biāo)選擇最優(yōu)解作為PID參數(shù)整定的結(jié)果。分離性能指數(shù)PI定義為[5]
式中,gij為全局矩陣G中的元素陣G的第i行元素絕對(duì)值中全局矩陣G的第j列元素絕對(duì)值中的最大值。PI值越接近零,分離效果越好。
仿真PC機(jī)采用的基本硬件參數(shù)為Intel Core i5-3210M,主頻2.50 GHz,內(nèi)存4 GB。仿真軟件為MATLAB R2015b。選取標(biāo)準(zhǔn)語音庫中的兩路語音源信號(hào)s1(t)和s2(t),分別為firegold.wav和risesun.wav,采樣率8 kHz,采樣點(diǎn)數(shù)28000個(gè),長度3.5 s。仿真中用變化的混合矩陣與源信號(hào)混合成變化的兩路傳感器信號(hào)x1(t)和x2(t)。混合矩陣變化分為緩變和突變兩種情況。μ(0)的取值過小會(huì)因前期PI的波動(dòng)大使分離誤差大,且算法收斂速度慢,過大時(shí)系統(tǒng)響應(yīng)曲線波動(dòng)大,實(shí)際中應(yīng)依據(jù)系統(tǒng)響應(yīng)曲線和性能指數(shù)曲線選定μ(0)的值。W(0)的取值是為了保證迭代收斂后的分離矩陣滿足正交性,宜取單位矩陣乘以一個(gè)系數(shù),該系數(shù)僅影響算法的收斂速度,實(shí)際中應(yīng)依據(jù)算法的仿真時(shí)間選定W(0)的值。R(0)的取值不影響仿真結(jié)果,可以任意選定。A(0)的取值選擇在[0,1]上均勻分布的隨機(jī)值進(jìn)行隨機(jī)混合。在本仿真中綜合選擇適中的值 μ(0)=0.5,W(0)=I×0.5,R(0)=I,A(0)=rand(size(s,1))。
3.1.1 混合矩陣緩變情形下算法仿真
混合矩陣緩變定義為[10]
式中,α為遺忘因子;β為控制學(xué)習(xí)速率。選取經(jīng)驗(yàn)值α =0.9,β =0.01。
混合矩陣緩變情形下,PID參數(shù)整定結(jié)果如圖2所示,PID參數(shù)整定后的語音分離結(jié)果如圖3所示。
從圖2可以看出,比例系數(shù)整定為Kp=0.02,積分系數(shù)整定為Ki=0.0000099,微分系數(shù)整定為Kd=0.0049。整定后的系統(tǒng)響應(yīng)速度快,超調(diào)量小,穩(wěn)態(tài)誤差小。從整定后的性能指數(shù)曲線看前期有小范圍波動(dòng),這是由于前期PID控制實(shí)時(shí)跟蹤系統(tǒng)緩變,不斷調(diào)節(jié)學(xué)習(xí)速率所致。在500 ms后,PID控制系統(tǒng)進(jìn)入穩(wěn)態(tài),同時(shí)分離趨于收斂,分離的穩(wěn)態(tài)誤差較小。
圖2 混合矩陣緩變情形下PID參數(shù)整定圖
圖3 混合矩陣緩變情形下語音分離結(jié)果圖
從圖3可以看出,仿真的語音分離信號(hào)和語音源信號(hào)接近一致,不僅驗(yàn)證了PID參數(shù)整定合理,還驗(yàn)證了提出的算法適用于混合矩陣緩變情形下的語音分離。
3.1.2 混合矩陣突變情形下算法仿真
混合矩陣突變定義為[11]
混合矩陣突變情形下,PID參數(shù)整定結(jié)果如圖4所示,PID參數(shù)整定后的語音分離結(jié)果如圖5所示。
圖4 混合矩陣突變情形下PID參數(shù)整定圖
圖5 混合矩陣突變情形下語音分離結(jié)果圖
從圖4可以看出,混合矩陣突變情形下,比例系數(shù)整定為Kp=0.019,積分系數(shù)整定為Ki=0.000005,微分系數(shù)整定為Kd=0.0003。整定后的系統(tǒng)響應(yīng)速度快,超調(diào)量小,穩(wěn)態(tài)誤差小。從整定后的性能指數(shù)曲線看在 625 ms、1250 ms、2500 ms都出現(xiàn)突變,而前期由于PID控制不斷調(diào)節(jié)學(xué)習(xí)速率,系統(tǒng)快速進(jìn)入穩(wěn)態(tài),在625 ms后分離趨于收斂,分離的穩(wěn)態(tài)誤差小。
圖5的分離結(jié)果驗(yàn)證了混合矩陣突變情形下PID參數(shù)整定合理,算法適用于混合矩陣突變情形下的語音分離。
本節(jié)分別在混合矩陣突變和緩變兩種情形下合理整定PID參數(shù),并驗(yàn)證了本文算法在這兩種情形下,整體的分離性能好,收斂速度快,穩(wěn)態(tài)誤差小,受系統(tǒng)擾動(dòng)的影響小。下面將進(jìn)一步分析本文算法的性能。
在混合矩陣緩變和混合矩陣突變情形下,分別仿真經(jīng)典的 Chambers的自適應(yīng)盲源分離算法[12]和Thomas的自適應(yīng)盲源分離算法[13],以及本文算法。對(duì)比分析算法的性能指數(shù)PI、時(shí)間復(fù)雜度。在兩種情形下依照Chambers和Thomas分別為算法仿真選取的初值。Chambers算法的參數(shù)選擇為μ(0)=10-4,修正因子ρ=10-8,非線性函數(shù)f=2tanh,其他參數(shù)與本文算法一致。Thomas算法的參數(shù)選擇為μ(0)=10-4,修正因子ρ=0.025,遺忘因子α=0.998,非線性函數(shù)f=2tanh,其他參數(shù)與本文算法一致,本文算法的參數(shù)與3.1節(jié)所述一致,仿真條件也與3.1節(jié)所述一致。三種算法在混合矩陣緩變情形下性能指數(shù)比較如圖6所示。
圖6 混合矩陣緩變情形下性能指數(shù)比較
從圖6可以看出,混合矩陣緩變情形下,本文算法的性能指數(shù)曲線波動(dòng)比Chambers算法和Thomas算法都小,本文算法能快速進(jìn)入穩(wěn)態(tài),穩(wěn)態(tài)誤差小??梢娀旌暇仃嚲徸兦樾蜗拢疚乃惴ㄐ阅苁墉h(huán)境變動(dòng)影響小,能解決提高收斂速度和減小穩(wěn)態(tài)誤差間的矛盾,算法具有等變性。
三種算法在混合矩陣突變情形下性能指數(shù)比較如圖7所示。
從圖7可以看出,混合矩陣突變情形下,本文算法的性能指數(shù)曲線波動(dòng)仍比Chambers算法和Thomas算法都小,本文算法收斂速度快,穩(wěn)態(tài)誤差小??梢娀旌暇仃囃蛔兦樾蜗?,本文算法性能受環(huán)境變動(dòng)影響小,能解決提高收斂速度和減小穩(wěn)態(tài)誤差間的矛盾,算法具有等變性。
圖7 混合矩陣突變情形下性能指數(shù)比較
為進(jìn)一步比較算法的復(fù)雜度,混合矩陣緩變和突變情形下算法各自的運(yùn)行時(shí)間如表1所示。仿真中算法的運(yùn)行時(shí)間以MATLAB的tic、toc函數(shù)為組合進(jìn)行計(jì)算,tic函數(shù)標(biāo)識(shí)程序開始,toc函數(shù)標(biāo)識(shí)程序結(jié)束。
表1 混合矩陣緩變和突變情形下算法運(yùn)行時(shí)間比較表單位:s
表1綜合反映了在混合矩陣突變和緩變兩種情形下,本文算法復(fù)雜度都比其他兩種經(jīng)典算法小。
本文提出了一種基于PID控制原理學(xué)習(xí)速率動(dòng)態(tài)更新的自適應(yīng)盲源分離算法,通過在混合矩陣緩變和突變兩種情形下,對(duì)PID參數(shù)整定,實(shí)現(xiàn)了對(duì)學(xué)習(xí)速率實(shí)時(shí)調(diào)整,算法不需要預(yù)處理,減小了復(fù)雜度,保證了等變性,整體性能受系統(tǒng)變動(dòng)的影響小,分離收斂速度快、穩(wěn)態(tài)誤差小。利用MATLAB軟件對(duì)算法仿真并分析,驗(yàn)證了算法的有效性和實(shí)用性。比較結(jié)果表明,本文算法在混合矩陣緩變和突變情形下,較經(jīng)典算法優(yōu)勢(shì)明顯,可應(yīng)用于非平穩(wěn)混合下對(duì)混合信號(hào)進(jìn)行實(shí)時(shí)跟蹤,從而分離出相互獨(dú)立的源信號(hào),以便對(duì)源信號(hào)進(jìn)行研究分析。但算法采用經(jīng)驗(yàn)法整定PID參數(shù),隨機(jī)性大,存在誤差,尋求更優(yōu)的、更適合于自適應(yīng)盲源分離算法的PID整定方法是日后研究的方向。