王汀洲,朱夢堯,吳修坤
(上海大學(xué) 通信與信息工程學(xué)院,上海 200444)
麥克風(fēng)陣列由一定數(shù)目的麥克風(fēng)組成,可以很好地對空間信息進(jìn)行捕獲.針對不同的實(shí)際問題,麥克風(fēng)陣列比單個(gè)麥克風(fēng)可以更為靈活地進(jìn)行處理.麥克風(fēng)陣列可有效進(jìn)行噪聲抑制、去混響、回聲抑制等,在視頻會(huì)議、語音識別以及可視/車載電話等領(lǐng)域得到了廣泛的應(yīng)用和研究[1].
麥克風(fēng)陣列信號處理的一個(gè)主要功能是估計(jì)信號源的位置.目前,基于麥克風(fēng)陣列的聲源定位方法大致可分為3類: 1) 基于子空間的定位技術(shù)[2];2) 基于可控波束形成的定位技術(shù)[2];3) 基于到達(dá)時(shí)延差(Time Differences Of Arrival, TDOA)的定位技術(shù)[2].
但在具體實(shí)踐中,這些方法的性能都會(huì)有所下降,其原因是因?yàn)榧僭O(shè)的陣列模型過于簡單化、理想化,使得實(shí)際的麥克風(fēng)陣列與假設(shè)的陣列模型之間存在誤差[3].這誤差由多種原因造成,比如房間混響的影響、多徑效應(yīng)的影響、麥克風(fēng)之間的差異、放大電路增益的不一致、麥克風(fēng)陣列加工精度低等.為了提高陣列性能,一般從兩個(gè)方面入手: 一種是從定位算法本身入手;一種是對麥克風(fēng)陣列進(jìn)行校正,使其更接近理想值.本文采用第二種方法,對麥克風(fēng)陣列進(jìn)行校正.
目前,麥克風(fēng)陣列校正方法主要分為自校正方法和有源校正方法[4].自校正方法主要在沒有或者很少有信號源的先驗(yàn)條件的情況下進(jìn)行校正,該方法無需設(shè)置校正源或者很少設(shè)置校正源,這是其優(yōu)點(diǎn),但是因?yàn)樾枰獙﹃嚵姓`差與波達(dá)方向聯(lián)合迭代,涉及到多變量循環(huán)求最優(yōu)解,這導(dǎo)致計(jì)算量大,且若初始值選擇不當(dāng),也許會(huì)導(dǎo)致最終收斂到局部最優(yōu)點(diǎn)而不是全局最優(yōu)點(diǎn),或者結(jié)果不收斂,這在實(shí)際應(yīng)用中有較大限制.有源校正方法是在很多先驗(yàn)條件都知曉的情況下進(jìn)行校正,如信號源個(gè)數(shù)、方向、信號參數(shù)等,該方法雖然有設(shè)置校正源的操作負(fù)擔(dān),但也因有額外的校正源,大大簡化計(jì)算過程,同時(shí)有較高的誤差估計(jì)精度[5].
結(jié)合不同的定位方法和校正方法,又有對應(yīng)不同的校正方式: 在基于子空間的定位技術(shù)中使用自校正方法[5-8],使用有源校正方法[4,9-11];在基于可控波束形成的定位技術(shù)中使用自校正方法[12],使用有源校正方法[10-11,13].而在基于到達(dá)時(shí)延差的定位技術(shù)中,更多的是對時(shí)延估計(jì)算法本身的改進(jìn),如廣義互相關(guān)(Generalized Cross-Correlation, GCC)方法[14-15]、自適應(yīng)最小均方方法[16]、基于空間的特征值分解方法[17]等.這些方法皆需集成在某一類定位算法中,形成特定的校正方法.
本文針對這種情況提出一種新的校正方法,該方法屬于有源校正,具有簡化計(jì)算過程的優(yōu)點(diǎn),且不局限于某一定位算法,可以作為一種前置模塊用于不同定位算法,且不會(huì)影響其他算法.該方法將麥克風(fēng)不一致性造成的時(shí)延誤差看作定值,并為了保證誤差計(jì)算精確,引入分?jǐn)?shù)時(shí)延算法與拉格朗日內(nèi)插算法設(shè)計(jì)的分?jǐn)?shù)級別的有限長單位沖激響應(yīng)(Finite Impulse Response, FIR)濾波器[18],通過引入估計(jì)的麥克風(fēng)不一致性造成的固定時(shí)延,對麥克風(fēng)陣列進(jìn)行校正.該校正方法效果比上述方式略有不足,但簡單有效.在本文中,使用基于到達(dá)時(shí)延差的方法來驗(yàn)證該方法的有效性,本文的方法對改善定位效果具有一定的作用,且計(jì)算量小.
假設(shè)兩麥克風(fēng)Mic1,Mic2接收到的信號x1(t)和x2(t)表示如下:
x1(t)=s(t-τ1)+h1(t)*s(t),
(1)
x2(t)=s(t-τ2)+h2(t)*s(t),
(2)
式中:s(t)為聲源信號;h1(t)和h2(t)是房間混響的沖擊響應(yīng);“*”表示信號卷積,h1(t)*s(t)和h2(t)*s(t)為混響噪聲;τ1和τ2是兩麥克風(fēng)收到信號的不同時(shí)延.
通過廣義互相關(guān)時(shí)延估計(jì)算法(GCC)計(jì)算時(shí)延τ12:
τ12=arg maxR12(n),
(3)
這里我們采用GCC-PHAT算法[19],GCC-PHAT加權(quán)函數(shù)對混響噪聲有較好的魯棒性,其φ(f)如下所示:
(4)
(5)
通過該方法我們可以得到兩信號的時(shí)延值,但是得到的時(shí)延精度可能會(huì)小于一個(gè)采樣單元,在假設(shè)整數(shù)采樣時(shí)延單元估計(jì)準(zhǔn)確的情況下,可以利用分?jǐn)?shù)時(shí)延算法估計(jì)小于一個(gè)采樣單元的部分.目前最常用的分?jǐn)?shù)時(shí)延算法有信號內(nèi)插法、線性內(nèi)插法、Sinc內(nèi)插法等,但這些方法估計(jì)精度受限于內(nèi)插倍數(shù),復(fù)雜度較高.這里采用二次拋物線插值方法[20]對相關(guān)函數(shù)的極值位置進(jìn)行擬合,該方法基于相關(guān)峰前后兩點(diǎn)的信息進(jìn)行拋物線插值,提高了分?jǐn)?shù)時(shí)延精度,同時(shí)不增加計(jì)算量.
假設(shè)我們的互相關(guān)譜的極值為R(0),則取R(0)前后各兩點(diǎn)為R(-2),R(-1),R(1),R(2),其滿足單調(diào)性R(-2) (6) 將5點(diǎn)代入式(6),則可以分別求出二次拋物線系數(shù)a,b和c,可知二次拋物線最大值對應(yīng)的位置為: (7) (8) (9) 將式(8),(9)代入式(7),可得 (10) 該方法不止可以用五點(diǎn)插值,三點(diǎn)、七點(diǎn)甚至九點(diǎn)插值法皆可用來計(jì)算分?jǐn)?shù)時(shí)延,但是綜合考慮,三點(diǎn)插值利用的點(diǎn)數(shù)過少,導(dǎo)致誤差增大,影響分?jǐn)?shù)時(shí)延精度,而七點(diǎn)插值和九點(diǎn)插值因插值點(diǎn)數(shù)過多,也許相關(guān)峰前后會(huì)不滿足之前所述的單調(diào)性,這樣就會(huì)限制該方法的使用范圍,因此使用五點(diǎn)插值是比較合理的. 由文獻(xiàn)[21]知,麥克風(fēng)陣列的性能在90°時(shí)受到的影響最小,越偏離90°越有可能受到房間混響、多徑效應(yīng)等多種因素影響.因麥克風(fēng)陣列越偏離90°受到的影響越多,僅針對麥克風(fēng)不一致性的修正,在將麥克風(fēng)不一致性造成的時(shí)延誤差看為定值的前提下,可將90°計(jì)算的時(shí)延誤差看作麥克風(fēng)陣列不一致性造成的時(shí)延誤差,則麥克風(fēng)造成的時(shí)延誤差為: τmic=Δτ=τideal-τmea. (11) 則由麥克風(fēng)不一致性造成的時(shí)延誤差τmic_delay為: (12) 式中:N為聲源在90°時(shí)測量的次數(shù).通過這種方法可以確定麥克風(fēng)不一致性造成的時(shí)延誤差. 由上述方法我們可以比較精確地得到分?jǐn)?shù)級別的時(shí)延,為了準(zhǔn)確補(bǔ)償分?jǐn)?shù)級別的時(shí)延,利用拉格朗日內(nèi)插法[18]設(shè)計(jì)的分?jǐn)?shù)級別的FIR濾波器,該方法簡單有效,可很好地設(shè)置指定的時(shí)延值.對于給定的分?jǐn)?shù)時(shí)延D,有濾波器的系數(shù)如下所示: (13) 式中:N為濾波器階數(shù);n為濾波器系數(shù).通過式(13)可得該FIR濾波器的系數(shù),如表1所示. 表1 N=1,2,3時(shí)拉格朗日分?jǐn)?shù)時(shí)延濾波器系數(shù) 為了驗(yàn)證該方法在實(shí)際環(huán)境中的效果,在一個(gè)大小為8m×7m×5m的會(huì)議室進(jìn)行實(shí)驗(yàn),A組麥克風(fēng)陣列采用4個(gè)A單元作陣元,B組麥克風(fēng)陣列采用2個(gè)B單元作陣元.A組陣元間隔為6cm,其型號為XMOS?Xcore-200,B組陣元間隔為10cm,其型號為AIHUA AWA14604,所使用的聲卡為Roland UA-1010,將麥克風(fēng)陣元擺成線性陣列,其實(shí)物圖如圖1所示. 圖1 兩類麥克風(fēng)陣列實(shí)物圖Fig.1 The picture of two sets of microphone arrays 將麥克風(fēng)陣列陣元所在直線和房間邊保持平行,考慮到線性陣列的對稱性,只在麥克風(fēng)陣列的右半部分?jǐn)[放聲源,在30°~90°間,以10°為間隔共7個(gè)位置分別擺放聲源,每個(gè)角度的聲源記錄10次. 在本實(shí)驗(yàn)中,為了盡可能考慮人耳對聲音的感知頻率,采用20Hz~20kHz的掃頻信號,通過處理分析可得到房間沖擊響應(yīng),為了盡可能地消除房間混響對麥克風(fēng)陣列性能的影響,將房間沖擊響應(yīng)的反射和混響部分加窗取零,通過這種方式來盡可能消除房間混響對麥克風(fēng)陣列性能的影響.麥克風(fēng)陣列以44.1kHz的采樣率去采樣聲源.通過以上方式可得到麥克風(fēng)陣列兩兩陣元之間的時(shí)延差,然后將處理過的兩個(gè)房間沖擊響應(yīng)分別經(jīng)過同一階數(shù),不同時(shí)延的FIR濾波器,該時(shí)延由式(12)得出的麥克風(fēng)陣列不一致性造成的時(shí)延誤差τmic_delay確定,可以達(dá)到補(bǔ)償麥克風(fēng)陣列不一致性的時(shí)延. 將90°測得的信號再經(jīng)過處理后的不同的房間沖擊響應(yīng)通過相位變換的廣義互相關(guān)算法,在一致性較好的麥克風(fēng)陣列可得整數(shù)時(shí)延差為0,再經(jīng)過分?jǐn)?shù)級別的時(shí)延估計(jì)算法,可以得到τmea,τmea為測量得到的分?jǐn)?shù)時(shí)延,在90°測10次,分別經(jīng)過式(12)處理,并取平均,可得由麥克風(fēng)不一致性造成的時(shí)延值.將此時(shí)延值分別在不同角度對信號進(jìn)行校正,將經(jīng)過校正后的信號時(shí)延差與未校正的信號時(shí)延差進(jìn)行對比,其結(jié)果如圖2所示. 從圖2可以看出,麥克風(fēng)陣列經(jīng)過校正后時(shí)延誤差與未經(jīng)過校正的時(shí)延誤差相比顯著縮小,說明該方法有效.同時(shí)可以發(fā)現(xiàn)從30°到90°,隨著聲源角度越來越偏離麥克風(fēng)陣列的中軸線,其時(shí)延誤差大體上呈減少趨勢,這符合客觀規(guī)律,因聲源在麥克風(fēng)陣列中軸線處,麥克風(fēng)陣列陣元間的時(shí)延最小,而互相關(guān)算法算出的時(shí)延也較小,相對應(yīng)時(shí)延誤差也越小;而當(dāng)聲源偏離中軸線后,麥克風(fēng)陣列采集的信號會(huì)受到多種因素影響,如多徑效應(yīng)等,同時(shí)互相關(guān)算法的估計(jì)時(shí)延值也會(huì)出現(xiàn)較大偏差,相對應(yīng)的時(shí)延誤差也會(huì)較大. 而圖3所示的B組麥克風(fēng)陣列的結(jié)果也可以說明上述分析是正確的,表明該方法有效. 在每個(gè)角度上對每組麥克風(fēng)陣列上相鄰麥克風(fēng)求出的時(shí)延值求出相應(yīng)的角度,并對每組信號進(jìn)行校正,將校正后的角度平均,與未校正的角度進(jìn)行對比,其結(jié)果如表2所示. 圖2 A組麥克風(fēng)陣列在各個(gè)角度校正與未校正的時(shí)延誤差Fig.2 A group microphone array estimate the error of the delay at each angle 圖3 B組麥克風(fēng)陣列在各個(gè)角度校正與未校正的時(shí)延誤差Fig.3 B group microphone array estimate the error of the delay at each angle 表2 A組麥克風(fēng)陣列未校正估計(jì)的角度與校正后估計(jì)的角度 由表2可以看出,麥克風(fēng)陣列經(jīng)過校正后估計(jì)角度與未經(jīng)過校正的估計(jì)角度相比明顯更接近于真實(shí)值.并且通過對實(shí)驗(yàn)結(jié)果分析可以發(fā)現(xiàn),聲源越靠近麥克風(fēng)陣列中軸線,其校正效果越好,聲源越偏離麥克風(fēng)陣列中軸線,校正效果較差,這與上述分析的理論結(jié)果相同,因?yàn)樵娇拷休S線,信號所受到的外界干擾因素越少,校正效果越好,甚至在90°完全不需要校正. 同時(shí)通過該表可以計(jì)算修正后的角度誤差的平均值大約在1.3742°左右. 文獻(xiàn)[6]中的兩種方法如圖4所示. 圖4 文獻(xiàn)[6]中兩種方法中在不同迭代次數(shù)的角度誤差Fig.4 DOA estimation errors versus iteration number for Method 1 and 2 by Ref.[6] 通過比較發(fā)現(xiàn),本文的方法在實(shí)際環(huán)境中的實(shí)驗(yàn)效果大致與文獻(xiàn)中的第二類方法在仿真實(shí)驗(yàn)中迭代4~6次的效果相當(dāng).相較于文獻(xiàn)[6],本文算法從方位估計(jì)算法的優(yōu)化角度出發(fā),具有很好的可拓展性,且在具有一定的校正效果的同時(shí),計(jì)算量小. 本文提出了一種針對麥克風(fēng)陣列不一致性造成分?jǐn)?shù)時(shí)延的校正方法,進(jìn)行了兩類麥克風(fēng)陣列的實(shí)際測量并驗(yàn)證數(shù)據(jù).實(shí)驗(yàn)結(jié)果表明: 該方法計(jì)算量小,實(shí)驗(yàn)有效,可以作為不同定位方法的前置模塊,使實(shí)驗(yàn)結(jié)果更接近理想值,起到了校正麥克風(fēng)陣列的作用,因此,該方法的提出為麥克風(fēng)陣列的校正提供了一種新的參考方法.1.3 確定麥克風(fēng)不一致性造成的時(shí)延
1.4 分?jǐn)?shù)時(shí)延濾波器設(shè)計(jì)
3 實(shí)驗(yàn)驗(yàn)證
3.1 實(shí)驗(yàn)內(nèi)容
3.2 實(shí)驗(yàn)結(jié)果分析
4 結(jié) 語