馮祎 白文樂
摘? 要:聲音定位技術(shù)是一種新型技術(shù),在各種領(lǐng)域都有涉及,如工業(yè)制造、射擊訓(xùn)練、國防軍事等。本文設(shè)計了一種基于到達(dá)時間差的聲源定位系統(tǒng),系統(tǒng)控制器選用STC15F2K60S2,硬件電路主要由音頻發(fā)射模塊、音頻接收模塊、數(shù)據(jù)處理模塊三部分組成,軟件部分主要使用Chan算法進(jìn)行數(shù)據(jù)計算。設(shè)計的系統(tǒng)能夠在接收到聲源信號之后,對聲源信號進(jìn)行預(yù)處理,然后再對數(shù)據(jù)進(jìn)行分析,最終顯示測量結(jié)果。
關(guān)鍵詞:到達(dá)時間差;聲源定位;STC15F2K60S2;Chan算法
中圖分類號:TN912.3? ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)22-0041-03
Abstract:Sound localization technology is a new type of technology that is involved in various fields,such as industrial manufacturing,shooting training,and defense military. A sound source localization system with time difference is designed in this paper. The system controller selects STC15F2K60S2. The hardware circuit is mainly composed of audio transmission module,audio receiving module and data processing module. The software part mainly uses Chan algorithm for data calculation. The designed system is capable of pre-processing the sound source signal after receiving the sound source signal,and then analyzing the data,and finally displaying the measurement result.
Keywords:arrival time difference;sound source localization;STC15F2K60S2;Chan algorithm
0? 引? 言
聲音定位技術(shù)最早被應(yīng)用在聲吶系統(tǒng)中,后來逐漸地應(yīng)用到探測水下目標(biāo)的領(lǐng)域,因為電磁波在海水中會有較為明顯的信號衰減,所以電磁波的傳輸距離就會受到較大的限制,而聲音定位技術(shù)因為其自身特點,剛好彌補(bǔ)了電磁波的不足[1]。
最近幾年,聲源定位系統(tǒng)開始與數(shù)字信號處理(DSP技術(shù))、自順應(yīng)信號解決技術(shù)等各種技術(shù)進(jìn)行結(jié)合,聲音定位系統(tǒng)也因此得到了進(jìn)一步的發(fā)展和完善,并且更加廣泛地應(yīng)用于軍用和民用的領(lǐng)域[2]。
當(dāng)今世界上在測距部分一般使用AOA(Angle of Arrival,
到達(dá)角度丈量)、RSSI(Received Signal Strength Indication,接收的信號強(qiáng)度指示)、TOA(Time of Arrival,抵達(dá)時間丈量)、TDOA(Time Difference of Arrival,抵達(dá)時間差丈量)等計算門徑。AOA需要添加額外的設(shè)備,而且對計算量要求較大;RSSI容易受到環(huán)境中的障礙物影響,故而容易發(fā)生較為明顯的誤差;TOA要求各個接收裝置開始接納信號的工夫完全同步,難度相對較大;TDOA算法與其他算法相比,其原理較為簡單,對硬件設(shè)施要求較低,是一種比較實用簡單的方法。
本文的目標(biāo)是基于TDOA的聲音定位裝置的設(shè)計與實現(xiàn),在聲音接收裝置接收到聲音之后,經(jīng)過一系列聲音信號處理,再通過使用單片機(jī)利用TDOA算法對處理后的聲音信號進(jìn)行計算,將計算結(jié)果發(fā)送至顯示設(shè)備,顯示出聲源的位置。
1? 系統(tǒng)的整體規(guī)劃與設(shè)計方案
1.1? 系統(tǒng)的整體設(shè)計
系統(tǒng)整體設(shè)計框圖如圖1所示。
系統(tǒng)使用音頻發(fā)射模塊發(fā)射特定頻率的聲音信號,然后使用音頻接收模塊進(jìn)行對聲音信號的接收與處理[3]。聲音信號首先經(jīng)過濾波放大,達(dá)到選頻、去除噪聲信號以及對所需聲音信號進(jìn)行放大的目的。經(jīng)過濾波放大的聲音信號再通過整形模塊,將模擬聲音信號轉(zhuǎn)變?yōu)橥l率的數(shù)字聲音信號。處理后的聲音信號再傳輸至數(shù)據(jù)處理模塊進(jìn)行處理。數(shù)據(jù)處理模塊將接收到的各個聲音信號進(jìn)行比較,計算出聲音信號從音頻發(fā)射模塊傳輸?shù)礁鱾€音頻接收模塊所用時間的差值,再根據(jù)聲音的傳輸速度計算出音頻發(fā)射模塊的位置,最后將結(jié)果發(fā)送至顯示模塊進(jìn)行顯示。
1.2? 信號發(fā)射電路
信號發(fā)射采用蜂鳴器發(fā)出聲音。用蜂鳴器作為音頻發(fā)射裝置時,驅(qū)動電路簡單易行,僅需要一片LM386即可實現(xiàn)。信號源的波形由STC單片產(chǎn)生,采用軟件控制GPIO發(fā)出的波形,可以非常方便地控制波形的頻率和占空比。人耳可聽到的聲音頻率范圍在20Hz~20kHz之間,單片機(jī)也完全有能力產(chǎn)生此范圍內(nèi)的波形。初始頻率設(shè)定為1kHz,音頻發(fā)射模塊的電路圖如圖2所示。
此音頻發(fā)射模塊的原理是輸入方波信號,經(jīng)滑動變阻器控制輸入信號的幅度,然后通過電容過濾多余噪音信號,再經(jīng)放大器將輸入信號放大,輸出信號通過濾波器去除噪音后輸入到揚(yáng)聲器,這樣便發(fā)出了與輸入信號同頻率的聲音信號。
1.3? 聲源信號接收模塊
聲源信號接收模塊起到的作用是將收到聲音信號轉(zhuǎn)換為電信號,然后對電信號做進(jìn)一步的調(diào)理,經(jīng)過調(diào)理后的波形還要進(jìn)行進(jìn)一步的放大處理才可以輸入至下一級電路。對波形的濾波及放大電路選用LM324運(yùn)算放大器和LM311比較器電路組成,故我們可以使用此整形模塊對聲音信號進(jìn)行整形。
為了能夠通過聲音信號測量聲源的位置,需要使用合適的拾音設(shè)備接收聲音信號。目前市面上咪頭是最常見的拾音模塊,咪頭又叫作麥克風(fēng)、話筒、傳聲器、咪膽等。拾音處理電路如圖3所示。
由于環(huán)境中經(jīng)常會出現(xiàn)其他不需要接收的噪音信號,以及電路中經(jīng)常出現(xiàn)干擾信號,故需要使用濾波模塊將接收到的聲音信號進(jìn)行過濾,保留需要測量的聲音信號,過濾掉不需要的多余干擾信號。
1.4? 數(shù)據(jù)處理部分
數(shù)據(jù)處理部分可選用單片機(jī)作為控制及數(shù)據(jù)計算,測量結(jié)果通過顯示模塊進(jìn)行顯示。單片機(jī)軟件編程的靈活度高,可經(jīng)由編程實現(xiàn)不同用途的算術(shù)算法以及邏輯管制。并且體積小,硬件實現(xiàn)簡略、使用便利。單片機(jī)選用STC15F2K60S2,該系列單片機(jī)更適合作為系統(tǒng)的主控以及數(shù)據(jù)處理系統(tǒng)。顯示模塊選用LCD液晶顯示屏,在智能管制系統(tǒng)中愈來愈多地運(yùn)用了液晶顯示屏LCD,LCD是一種介于液體以及固體之間的熱力學(xué)的中心穩(wěn)固相,它自身不會發(fā)光,是使用外部光的反射原理進(jìn)行表現(xiàn)。
1.5? 聲音定位算法分析
現(xiàn)有的主流定位算法有AOA(到達(dá)角度測量)、TOA(到達(dá)時間測量)、RSSI(接收信號強(qiáng)度測量)、TDOA(到達(dá)時間差測量)[4,5]。考慮到本系統(tǒng)的使用環(huán)境及單片機(jī)的計算性能,為保證系統(tǒng)可以正常、及時地進(jìn)行測量,這里選擇TDOA作為最適合的算法方案。TDOA算法原理簡單,且對STC單片機(jī)硬件要求低,可以在容忍的時間內(nèi)計算出結(jié)果,是相對簡便、實用的方法。
目前基于TDOA的定位算法多種多樣,例如Chan算法、Taylor級數(shù)展開算法、SX(球面相交)算法、Friedlander算法等。其中SX算法與Friedlander算法都因為自身算法的局限性導(dǎo)致計算結(jié)果并不是最優(yōu)解,導(dǎo)致在現(xiàn)實環(huán)境中的計算結(jié)果不夠精確;Taylor算法是一種迭代的思想,相比于其他算法,其準(zhǔn)確性更高,但是對于初始值的要求非常高,如果初始值的精確度較高,其結(jié)果也會非常準(zhǔn)確,但如果初始值不夠準(zhǔn)確,其結(jié)果也會出現(xiàn)較大的誤差。Chan算法的計算量相比于上述算法較小,且在噪聲符合高斯分布的時候準(zhǔn)確性非常高,故本設(shè)計選用Chan算法作為系統(tǒng)算法。
2? 系統(tǒng)軟件部分
2.1? 主程序設(shè)計
軟件主程序流程圖如圖4所示。
系統(tǒng)軟件方面的主體思路如下:當(dāng)系統(tǒng)主程序開始運(yùn)行后,單片機(jī)首先會對各類的硬件進(jìn)行初始化和檢查,之后單片機(jī)會保持接收經(jīng)過處理后的聲音信號,當(dāng)單片機(jī)接收到第一個音頻接收模塊傳輸過來的信號時,單片機(jī)開始計時,當(dāng)單片機(jī)接收到后續(xù)其他音頻接收模塊傳輸?shù)男盘枙r記錄時間,此時得到的時間即為后續(xù)其他音頻接收模塊與第一個傳輸聲音信號的音頻接收模塊接收聲音的時間差,通過各音頻接收模塊與第一個音頻接收模塊的相對位置、到達(dá)時間差以及聲音的傳輸速度可以計算出聲音發(fā)射裝置的具體位置,然后將經(jīng)過計算后的數(shù)據(jù)結(jié)果傳輸至液晶顯示模塊進(jìn)行顯示結(jié)果。
2.2? 算法介紹
根據(jù)系統(tǒng)設(shè)計需求聲源作為設(shè)為(x,y),為第i個聲音的接收模塊坐標(biāo)為(xi,yi)。因此發(fā)射聲音與拾音器之間滿足式(1)。
然后可知Riy代表發(fā)射聲音電路的第i個接收模塊的距離差,則雙曲線定位中發(fā)射聲音(x,y)和拾音器(xi,yi)滿足式(2)。
根據(jù)式(1)(2)可知,如想求出方程式的解,應(yīng)用Chan算法即可。使用Chan算法求解可以盡量減小CPU的計算負(fù)擔(dān)且不用為計算初始化常量,非常適合解這種具有解析表達(dá)式的雙曲線方程組??紤]到系統(tǒng)選用的STC單片機(jī)計算能力有限,可認(rèn)為Chan算法是適合基于STC單片機(jī)的計算方法,可取得較為理想的測量效果。
3? 結(jié)? 論
本文以一個基于TDOA的聲音定位系統(tǒng)為研究目標(biāo),實現(xiàn)了音頻發(fā)射與接收模塊的設(shè)計,音頻接收模塊可根據(jù)接收聲音信號的幅度與頻率正常輸出數(shù)字信號。數(shù)據(jù)處理模塊能夠根據(jù)各音頻接收模塊發(fā)送處理后的聲音信號的時間差計算音頻發(fā)射模塊與各音頻接收模塊的距離差,同時可正常顯示數(shù)據(jù)處理結(jié)果。雖然本文的系統(tǒng)實驗結(jié)果存在一定的誤差率,影響實驗結(jié)果的條件較多,例如環(huán)境噪音、算法優(yōu)化等,但在目標(biāo)定位方面具有一定的應(yīng)用前景。
參考文獻(xiàn):
[1] 馮振宇,王洪源.基于概率計算的聲源定位技術(shù)研究 [J].數(shù)字技術(shù)與應(yīng)用,2012(7):63.
[2] 陸灝銘,陳瑋,劉壽寶.基于麥克風(fēng)陣列的聲源定位系統(tǒng)設(shè)計 [J].傳感器與微系統(tǒng),2012,31(4):79-81+85.
[3] 韓文革,蘇淑靖,薛彥杰.基于麥克風(fēng)陣列的聲源被動定位系統(tǒng)設(shè)計 [J].電子技術(shù)應(yīng)用,2017,43(12):61-64.
[4] 文小軍,吉建華,鐘林波,等.基于時延估計的聲源定位算法實驗研究 [J].計算機(jī)工程與應(yīng)用,2014,50(23):212-214+233.
[5] 何賽娟,陳華偉,尹明婕,等.基于差分麥克風(fēng)陣列和語音稀疏性的多源方位估計方法 [J].數(shù)據(jù)采集與處理,2015,30(2):372-381.
作者簡介:馮祎(1983-),男,漢族,北京人,實驗師,碩士,研究方向:紅外圖像的數(shù)據(jù)采集、傳輸及數(shù)據(jù)處理技術(shù)。