楊 鵬,邢鈺姣,孫 昊,祖麗楠
(1.河北工業(yè)大學控制科學與工程學院,天津 300130;2.河北省控制工程技術研究中心,天津 300130)
近年來,運用麥克風陣列進行聲源定位研究已經成為信號處理領域的一個研究熱點。一組麥克風按照一定的幾何結構擺放組成麥克風陣列[1],拾取來自各個方向的聲音信號,并進行空時處理,從而精確定位目標聲源。該技術可在雷達、軍事偵察與跟蹤、機器人聽覺定位、電視會議等領域廣泛應用。
在工程應用中,根據麥克風陣列模型和聲音球面?zhèn)鞑ツP蜆嫿ǖ穆曉炊ㄎ幌到y(tǒng)為一組復雜的非線性方程,難以用數值計算方法準確建模。在這種情況下,可以應用神經網絡表達這種非線性系統(tǒng)。神經網絡可以按照指定的精度逼近各種復雜的非線性系統(tǒng),解決非線性系統(tǒng)的建模問題;對于信息采用分布式存儲和處理方式,具有高運算效率和很強的容錯性、魯棒性[2,3]。
本文研究了可應用在多種場合的聲源定向系統(tǒng),采用BP神經網絡對定向系統(tǒng)進行研究,并通過Matlab仿真證明了在正四面體的麥克風陣列模型下可以實現(xiàn)遠場和近場的目標聲源定向。
聲源定向系統(tǒng)的結構如圖1所示,由4個全向麥克風M1,M2,M3和M4組成一個正四面體陣列,對目標聲源進行定向。若聲源位于空間P點,該定向模型可通過已建立的神經網絡得出其方位角α和俯仰角β,以實現(xiàn)對目標聲源的跟蹤。
圖1 麥克風陣列結構模型Fig 1 Structure model of microphone array
BP神經網絡是一種前饋神經網絡,可根據系統(tǒng)輸入輸出數據的特點來確定BP神經網絡的結構,輸入數據為3個時延值,即聲音信號到達陣列中不同位置的麥克風的時間差。把聲源到麥克風M4的時間作為基準,到麥克風M1,M2,M3的時間與基準的差記作3個時延值,構成一組3個參數的輸入數據。輸出數據為目標聲源的位置,本文的聲源定位是為了實現(xiàn)移動機器人對目標聲源的跟蹤,所以,輸出數據采用球坐標形式較為方便。該網絡的輸出也是有3個參數,方位角、俯仰角和距離。
理論上已經證明,在不限制隱含層節(jié)點數的情況下,只有一個隱含層的BP網絡可以實現(xiàn)任意非線性映射[4]。如果節(jié)點數過多,不但網絡學習時間增加,而且可能出現(xiàn)“過擬合”現(xiàn)象[5]。當樣本數較多時,增加一個隱含層,可以適度減小網絡規(guī)模[6,7]。本文選用有2個隱含層的BP網絡,網絡結構為3—30—30—3,即輸入層和輸出層有3個節(jié)點,2個隱含層分別有30個節(jié)點。
假設4個麥克風之間的距離均為1 m,目標聲源范圍為一個半徑為1~50 m的球體內的點(認為聲源不會在麥克風陣列內或離陣列很近),聲速為340 m/s,根據聲源定位模型的幾何關系隨機取數得到系統(tǒng)2000組的輸入輸出數據。從中隨機選取1900組數據作為網絡訓練數據,100組數據作為網絡測試數據。
數據歸一化是運用神經網絡預測前對數據常做的一種處理方法。數據歸一化處理把所有數據都轉化為[0,1]或者[-1,1]之間的數,可以取消各維數據間數量級的差別,避免因為輸入輸出數據數量級差別較大而造成神經網絡預測誤差較大[8]。數據歸一化方法主要有兩種:最大最小法,平方數方差法[9]。本論文采用第一種方法對輸入輸出數據進行歸一化,并對網絡預測輸出進行反歸一化,通過Matlab自帶函數mapminmax來實現(xiàn)。
Matlab 軟件中包含Matlab神經網絡工具箱,可以直接調用來構建各種類型的神經網絡。本論文的BP神經網絡主要用newff,train和sim3個神經網絡工具箱自帶函數來實現(xiàn)網絡的構建,訓練和仿真預測。2個隱含層的節(jié)點傳遞函數分別為tansig和logsig。
在預測的100組輸出數據中,舍去了預測距離的數據。這個聲源定向系統(tǒng)以實現(xiàn)對目標聲源的跟蹤為目的,預測出方位角和俯仰角,就可以得出目標聲源的空間方向,實現(xiàn)跟蹤;再者由于BP神經網絡的擬合能力有限,并不能對距離做出較為準確的預測,故舍去了這組數據。圖2為100組預測數據的方位角預測誤差,誤差范圍為±5°。圖3為100組預測數據的俯仰角預測誤差,誤差范圍為±4°。
圖2 方位角預測誤差Fig 2 Azimuth angle forecasting error
圖3 俯仰角預測誤差Fig 3 Pitch angle forecasting error
傳統(tǒng)的聲源定位方法是利用幾何關系建立一組時延和聲源坐標的方程組,通過解方程組來得到時延和聲源坐標的數值關系。但是在解方程組的過程中,為了簡化運算,大都假設聲源位于遠場且聲音信號以平面波傳播,以此來約減得到近似結果。但當聲源位于近場時,即當麥克風之間的距離相對于聲源到麥克風的距離較大時,這種假設就不能成立了。如果仍然用近似的結果進行計算,那么得到的數據與真實數據相比就不是誤差較大了,而是錯誤的。
用于BP神經網絡預測的100組輸入輸出數據,是在2000組樣本數據中隨機選擇的,遠場和近場的聲源位置都有,從Matlab仿真得到的圖形來看,誤差分布較均勻,說明并沒有因為是近場聲源神經網絡就出現(xiàn)大的預測誤差,表明該神經網絡無論是近場還是遠場都可以預測目標聲源的方位角和俯仰角。
為了進一步驗證網絡在近場對聲源的定向情況,選取目標聲源范圍為1~5 m的空心球體內的點,取測試樣本100個,用已訓練好的BP網絡再次進行預測。預測的方位角誤差和俯仰角誤差分別如圖4、圖5所示。近場方位角預測誤差大部分在±5°以內,有個別樣本點的誤差較大甚至預測錯誤,這是由于選取的樣本點離坐標原點太近造成的,不影響實際應用。近場俯仰角預測誤差結果和上次預測結果很相似,誤差范圍仍然是±4°。
圖4 近場方位角預測誤差Fig 4 Azimuth angle forecasting error in close field
圖5 近場俯仰角預測誤差Fig 5 Pitch angle forecasting error in close field
本文應用BP神經網絡進行聲源定向研究,設計了一種適用于正四面體麥克風陣列的神經網絡。經Matlab實驗證明:輸入相應的時延數據,無論目標聲源是處于遠場還是近場,都可以預測其方向角和俯仰角,進而對聲源進行跟蹤。但是由于網絡擬合能力有限,并不能很好地預測聲源的空間距離,因此,如何實現(xiàn)對空間距離的準確預測,是下一步的重點研究任務。
[1] 陸曉燕.基于麥克風陣列實現(xiàn)聲源定位[D].大連:大連理工大學,2003.
[2] 韓立群.人工神經網絡理論、設計及應用[M].北京:化學工業(yè)出版社,2002.
[3] 周開利,康耀紅.神經網絡模型及其Matlab仿真程序設計[M].北京:清華大學出版社,2005.
[4] 閆 石,何 軻,趙延安.一種基于四元立體陣的聲定向方法[J].電聲基礎,2007,31(7):16 -19.
[5] 林 盾,陳 俐.BP神經網絡在模擬非線性系統(tǒng)輸出中的應用[J].武漢理工大學學報,2003,27(5):731 -734.
[6] 林 琳.基于BP神經網絡的網格性能預測[D].長春:吉林大學,2004.
[7] 鄧 偉.BP神經網絡構建與優(yōu)化的研究及其在醫(yī)學統(tǒng)計中的應用[D].上海:復旦大學,2002.
[8] 孫書學,顧曉輝,孫曉霞.用正四棱錐形陣對聲目標定位研究[J].應用聲學,2006,25(2):102 -107.
[9] 劉小剛.基于四元十字陣的聲被動定位研究[D].南京:南京理工大學,2005.