張煥強,黃時春,蔣偉康
(上海交通大學 振動、沖擊、噪聲研究所 機械系統與振動國家重點實驗室,上海 200240)
近年來,隨著中國經濟的快速發展,汽車逐漸成為人們生活與工作中不可或缺的重要組成部分,各大城市的機動車數量逐年增加。汽車保有量的增多也帶來了日益嚴重的交通噪聲污染問題,尤其是汽車鳴笛聲對市民的日常生活影響較大。公安部門頒布了相應的法規來限制或禁止某些路段的汽車鳴笛聲,交警部門常采取巡邏糾違等方式對汽車鳴笛聲加以監管,但人工執法的方式存在執法效率低,可靠性不高的缺點。而基于傳聲器陣列的聲源定位技術可以幫助交通執法部門快速準確地鎖定違章鳴笛車輛的方位。
基于傳聲器陣列的聲源定位技術可分為3類[1]:基于最大輸出功率的可控波束形成法、高分辨率譜估計法和基于到達時間差(TDOA)的聲源定位法。基于最大輸出功率的可控波束形成方法是對傳聲器接收到的信號進行加權求和,直接控制傳聲器指向具有最大輸出功率的方向,該方法可以用于多聲源的定位,但是存在對初值敏感以及需要背景噪聲等先驗知識的問題;基于高分辨率譜估計的方法利用傳聲器信號之間的相關矩陣來確定方向角,可以對聲源方向進行有效的估計,但計算量比較大;基于到達時間差的聲源定位方法先求出聲信號在不同傳聲器的時間差,將時間差轉化為聲程差后用幾何法或搜索法確定聲源位置。該方法原理簡單,計算量小,易于保證聲源定位的實時性,故本文研究基于到達時間差的聲源定位方法對汽車鳴笛聲進行定位。
基于到達時間差的聲源定位算法主要由兩部分組成。第一部分是時間延遲估計(TDE),確定傳聲器陣列中不同的傳聲器對同源聲信號的到達時間差(TDOA);第二部分是根據第一步估計出的時間延遲,轉化為對應的聲程差,結合傳聲器陣列中的傳聲器位置,通過特定的聲源定位算法計算得到聲源的位置。時延估計技術又有很多方法,包括廣義互相關(GCC)方法[2],自適應最小均方(LMS)方法[3–4],基于空間的特征值分解(EVD)方法[5]以及基于傳遞函數比(ATF-s ratio)的方法[6]等。其中,廣義互相關方法原理簡單,具有一定的抗噪聲及混響性能,能夠保證估計的實時性,本文中采用此方法進行時延估計。
本文研究的聲源目標為汽車鳴笛聲,汽車鳴笛喇叭主要分為電喇叭及氣喇叭兩類,城市道路上大多數車輛安裝的喇叭為電喇叭。電喇叭又分為單音喇叭、雙音喇叭、三音喇叭等幾類,汽車喇叭發出的鳴笛聲是基頻范圍在240 Hz~650 Hz的短時且指向性不明確的平穩信號[7]。
鳴笛聲的檢測與識別模塊可以由信號濾波、分幀加窗、端點檢測以及鳴笛聲識別等四部分組成[8],本文僅研究已有信號的鳴笛聲檢測及定位問題。對于一段含有鳴笛聲聲的信號,要對其進行定位,首先要確定喇叭信號的位置,即端點檢測。目前有很多成熟準確的端點檢測算法,如雙門限法、短時能量法、短時過零率法以及自相關法等方法。本文研究的定位算法中,端點檢測部分采用的是短時能量法,見式(1)。

式中:x(m)為傳聲器測量信號,w(n-m)為所加的窗函數,En為第n幀的短時能量。根據測量信號中噪聲信號與鳴笛聲信號能量的不同,設定一定的門限,即可獲得鳴笛聲的開始及結束端點,而環境噪聲的能量則需要根據路段的不同進行實驗獲得。
傳聲器陣列中任意兩個傳聲器i和j接收到的信號可用以下模型來表示

式(2)中:s(n)為傳聲器i處接收到的聲源信號ni(n)與nj(n)分別為傳聲器i和j接收到的噪聲信號,τij為傳聲器i和j之間的時間延遲,α為兩個傳聲器檢測聲信號的幅值比。設xi(n)和xj(n)的傅里葉變換分別為Xi(ω)和Xj(ω),兩傳聲器接受信號的廣義互相關函數Rij(τ)可表示為

式(4)中:φij(ω)為廣義互相關加權函數,用廣義互相關方法進行時延估計的框圖如圖1所示。

圖1 廣義互相關時延估計框圖
針對不同的噪聲和反射情況,可選擇不同的加權函數φij(ω) 。當廣義互相關的加權函數φij(ω) =1 |Gij(ω) |時 ,此時為互功率譜相位(CSP)時延估計方法。其中互功率譜密度函數為信號互相關函數的傅里葉變換

由式(4)可知,互功率譜相位法對功率譜函數進行了白化處理,僅保留信號的相位信息,使得廣義互相關函數的峰值更加尖銳,具有抑制噪聲和混響的能力,因此本算法中采用互功率譜相位(CSP)時延估計算法。
自由場中單極子聲源的傳播方式為球面波

式(6)中:p(r,θ,φ;t)為在球坐標系位于(r,θ,φ) 點t時刻的聲壓。考慮在三維空間中布置傳聲器陣列定位汽車喇叭的鳴笛聲,則聲源與傳聲器陣列的不同傳聲器之間存在聲程差,即聲信號到達各傳聲器存在時間差。對汽車喇叭做點聲源假設,設其笛卡爾坐標為(x,y,z),則理論上至少需要3個聲程差才能求得空間中聲源的位置。取傳聲器陣列的1號傳聲器為參考點,其余傳聲器與1號傳聲器之間存在如下幾何關系

式(7)中:(xi,yi,zi)(i=1,2,3,4)代表第i個傳聲器的三維笛卡爾坐標,Δt1i代表第i個傳聲器與1號傳聲器之間的時間差。將上式的3個方程求平方并消去相同項可得

式(8)中:

重新整理式(8)可得[9]

式(9)中:

R為實際聲源到1號傳聲器之間的距離,ai、bi、ci(i=1,2,3)為已知量,時延估計完成后,ei也為已知量。對于任意給定的R值,均可得出一組對應的假設聲源坐標(x,y,z),結合傳聲器與假設聲源坐標的位置關系可以得到麥克風陣列的任意2個傳聲器之間的時延計算結果,則構造目標函數:

式(10)中:Δt*ij為假定聲源坐標與1號傳聲器距離為R時的時延計算結果,Δtij為通過時延估計算法得到的實際時延估計結果,N為陣列的傳聲器個數,當假定聲源位置與1號傳聲器的距離與實際聲源位置與1號傳聲器的距離最接近時,J取最小值,由此條件確定的R值,代入式(9)即可求得實際聲源坐標(x,y,z)。給定不同的R值進行搜索屬于一維搜索問題,實際在取值是可先給定較大的搜索間隔,得到聲源的粗略估計結果,初步縮小搜索區域,再減小搜索間隔進行精細搜索,以減小搜索的計算量。
上述基于空間搜索的聲源定位方法需要的傳聲器個數至少為4個,如果增加傳聲器的個數,則定位精度會有一定的提高,但考慮到實際鳴笛聲定位系統的實際應用及實時性要求,不能無限制地增加傳聲器個數,因此需要在保證定位精度的同時使用較少傳聲器。

圖2 傳聲器陣列布置圖
下面以正4面體陣列為基本原型陣列,分別在該原型陣列上添加1至2個傳聲器,通過MATLAB分別仿真4傳聲器、5傳聲器和6傳聲器陣列的定位效果。仿真所用信號為基頻為510 Hz的正弦倍頻信號,采樣頻率102.4 kHz,同時加入30 dB的白噪聲干擾。聲源位置為隨機產生的100個點,距離坐標原點距離范圍5 m~20 m,每隔0.15 m產生一個聲源距離值,仰角和方位角均為-60°~60°之間隨機產生。傳聲器的布置如圖2所示,6個傳聲器的坐標(單位:m)設置分別為S1(0.866,0,0)、S2(0,0.5,0)、S3(0,-0.5,0)、S4(0.2887,0,0.8165)、S5(0.2887,0,0)、S6(0.2887,0,0.4082)。其中1-4號為邊長為1 m的正4面體的4個頂點,5號與6號傳聲器均布置在正4面體空間內。
圖3、圖4、圖5分別表示當傳聲器個數分別為4、5、6個時的仿真誤差結果圖。圖中各項誤差指標的定義如下:
方位角估計誤差為

仰角估計誤差為

距離相對誤差為

式(11)、式(12)、式(13)中的φ0、θ0及R0分別為已知聲源理論位置時計算出的方位角、仰角及距離原點的距離。
由圖3、圖4及圖5的仿真結果分析可得,4傳感器陣列的方位角估計誤差在1.5°之內,除個別點外,仰角誤差均在2°之內,然而距離相對誤差很大;5傳感器陣列不論是從方位角、仰角還是相對距離方面均較4傳感器陣列有較大提高;然而在5傳感器基礎上再增加一個傳感器進行分析,各角度及相對距離沒有較為明顯的提升。在實際汽車鳴笛聲定位系統的設計中,定位的主要目的是通過定位返回的結果控制安裝在監控路段的攝像頭,使其能夠對準違章車輛。因此,我們更加關注方位角及仰角的估計精度,所以本算法中陣列采用在正4面體傳聲器陣列的基礎上改進獲得的5傳聲器陣列。
為驗證上述算法對汽車鳴笛聲源定位的有效性,構建一個以正四面體陣列為原型,另添加一個傳聲器的5傳聲器陣列三維聲源定位系統,選擇一段馬路上進行實車鳴笛聲定位驗證,實驗中采用的車輛為五菱宏光S,旁邊平行放置一輛五菱榮光車作為干擾,驗證定位算法能否定位準確。實驗現場如圖6所示。

圖3 4傳聲器陣列仿真誤差圖

圖4 5傳聲器陣列仿真誤差圖

圖5 6傳聲器陣列仿真誤差圖

圖6 汽車鳴笛聲源定位實驗設置圖
圖6 中規定坐標系的X軸與汽車縱向軸線平行,且與汽車寬度方向中心線重合。Z軸豎直向上,Y軸則根據右手定則確定,圖6中1-5標號為采用的5個傳聲器的布置位置,各傳聲器的三維坐標(單位:m)分別為 :S1(0 ,0,1.750) 、S2(0.341,0,1.335) 、S3(- 0.170,-0.295,1.312)、S4(- 0.170,-0.295,1.312)、S5(0.050,0.020,1.505)。鳴笛聲信號經BBM數據采集儀進行記錄,采樣頻率102.4 kHz,圖7為鳴笛聲實測信號。
在馬路上標記6個測點,相對于規定原點的方向(仰角和方位角)如表1所示,即實際聲源的方向范圍。因為汽車上有兩個喇叭,兩個喇叭關于X軸對稱,表1中顯示的為兩個喇叭相對于規定原點的方位角范圍。而表1中仰角范圍為地面和汽車最高點相對于規定原點的仰角值。其中汽車的高度為1.7 m。實際驗證時,只要算法估計出的方向在給出的范圍內即可認為聲源準確定位到汽車上。

圖7 實測鳴笛聲信號

表1 5傳聲器陣列定位實驗結果
在汽車鳴笛聲定位算法的研究中,我們更加關注方位角及仰角的估計精度,而對距離的精度要求較低。分析比較表1展示的定位計算結果可知,基于空間搜索法的5傳聲器陣列三維聲源定位算法在實驗時能夠將聲源位置準確地定位在汽車上,能夠有效的定位汽車鳴笛聲。
本文針對汽車鳴笛聲的聲源定位問題,提出了一種基于空間搜索法的五傳聲器陣列三維空間聲源定位算法。采用短時能量法檢測確定信號中的鳴笛聲的端點位置,通過互功率譜相位時延估計算法估計任意傳聲器之間的時間延遲,運用空間搜索法來確定聲源位置,實際定位的計算量不大且能夠滿足定位的實時性要求,能夠快速且準確地鎖定鳴笛車輛。
[1]BRANDSTEIN M S,SILVERMAN H F.A practical methodology for speech source localization with microphone arrays[J].Comput.Speech Lang,1997,11(2):91-126.
[2]KNAPP C,CARTER G.The generalized correlation method for estimation of time delay[J].IEEE Trans.Acoust.Speech Signal Process,2003,24(4):320-327.
[3]REED F A,FEINTUCH P L,BERSHAD N J.Time delay estimation using the LMS adaptive filter-Static behavior[J].IEEE Trans.Acoust.Speech Signal Process,1981,29(3):561-571.
[4]YOUN D,AHMED N,CARTER G.On using the LMS algorithm for time delay estimation[J].IEEE Trans.Acoust.Speech Signal Process,1982,30(5):798-801.
[5]BENESTY J.Adaptive eigenvalue decomposition algorithm for passive acoustic source localization[J].J.Acoust.Soc.Am,2000,107(107):384-391.
[6]GREENFIELD S,Clift M.Speaker localization in a reverberant environment[C].In Electrical and Electronics Engineers in Israel,2002.the Convention.2003:7-9.
[7]張志飛,袁瓊,徐中明,等.汽車喇叭聲特性試驗分析[J]. 汽車工程學報,2013(6):400-404.
[8]孫懋珩,俞瑩婷.汽車鳴笛聲定位系統仿真[J].聲學技術,2009(5):640-644.
[9]WU S F,ZHU N.Locating arbitrarily time-dependent sound sources in three dimensional space in real time[J].J.Acoust.Soc.Am.,2010,128(2):728.
[10]ABEL J,SMITH J.The spherical interpolation method for closed-form passive source localization using range difference measurements[C].In Acoustics,Speech,and Signal Processing,IEEE International Conference on ICASSP.1987:471-474.