楊 云,王君波,范中磊
(1.長安大學信息工程學院,陜西西安710064;2.歐比特控制工程股份有限公司,廣東珠海519080)
聲源定位技術(shù)快速發(fā)展,并被廣泛應用到民用軍工的各個領(lǐng)域。如移動機器人,通過聲源定位技術(shù)控制攝像頭,使其轉(zhuǎn)向感興趣的方向[1]。直升機和無人機等目標識別,聲源定位技術(shù)可有效彌補雷達探測的盲區(qū)[2]。聲源定位算法的研究可分為三類:基于時延估計的定位方法、基于波束形成的定位方法和基于高分辨率空間譜估計的定位方法[3]。其中基于時延估計的定位方法因其小運算量和低復雜度的優(yōu)點[4],被嵌入式系統(tǒng)廣泛采用。本文基于TI低功耗單片機MSP430F149,采用修正任意三角形時延估計聲源定位方法,設計并實現(xiàn)了一種有效近場可移動聲源定位系統(tǒng),在實驗室環(huán)境中對系統(tǒng)進行功能測試,結(jié)果表明了所設計系統(tǒng)和所采用定位算法的正確性。
系統(tǒng)主要由移動聲源,聲音接收處理,無線通訊和軟件處理四大部分組成。移動聲源模塊主要以MSP403F149控制的小車為載體,以一片CC1101無線模塊觸發(fā)聲音的開啟和終止,聲音產(chǎn)生由兩片NE555芯片自激振蕩驅(qū)動蜂鳴器,獨立產(chǎn)生周期性的可調(diào)頻率聲音信號。聲音接收處理模塊分為接收電路和處理電路,接收電路由4個麥克風拾音器組成陣列,接收聲音信號并進行放大濾波,再將信號送入MSP430F149單片機處理,處理算法采用基于到達時間差的修正任意三角形雙曲線定位法,基于MSP430的嵌入式C語言編程實現(xiàn),是否開始接收聲音信號由另一片無線模塊CC1101觸發(fā)。聲源與接收模塊之間采用無線通訊,采用一對CC1101無線模塊實現(xiàn)。軟件處理部分,對送入單片機的信號,計算其中3個麥克風接收聲音信號的時差,基于聲音信號到達不同位置拾音器的時間差,采用修正任意三角形時延估計TDOA的定位方法[4],分析得到移動聲源的位置,另一個拾音器修正定位誤差,選取最佳定位結(jié)果,并在LCD液晶屏顯示定位結(jié)果坐標值。移動聲源可按照隨機路徑移動,也可由聲音接收模塊經(jīng)無線發(fā)送數(shù)據(jù)和命令,控制移動聲源,移動聲源再做相應調(diào)整,沿設定路徑移動。系統(tǒng)總體設計框架如圖1所示。
圖1 系統(tǒng)總體框架
本設計采用美國德州儀器公司16位單片機MSP430F149,其內(nèi)核CPU運行正交RISC指令集,片內(nèi)16個寄存器,ROM和RAM統(tǒng)一編址,可產(chǎn)生ACLK、MCLK和SMCLK這3種不同的時鐘[5];有P1~P6共48個GPIO端口并可獨立編程,提供WATCHDOG、Timer_A和Timer_B這3個16位時鐘;有USART0與USART1兩個串行通信接口,在P6口提供8通道12位獨立快速模數(shù)轉(zhuǎn)換ADC模塊,采樣速度可到200kbps;中斷源較多,并可任意嵌套,中斷請求喚醒只需6us;FLASH存儲器多達60KB,擦寫次數(shù)可達10萬次;帶7個捕獲/比較寄存器。MSP430F149的工作電壓1.8V~3.6V,具有處理能力強、運行速度快、功耗低等優(yōu)點[6]。MSP430F149與TI其它MSP430系列微處理器一樣,對所有外圍模塊的控制,均通過特殊寄存器實現(xiàn),編寫程序較簡單,有專用的編程器,支持C語言和匯編,可用IAR的WORKBENCH IDE和CSPY直接在線編譯和調(diào)試程序,非常靈活[7]。
本設計硬件由三部分組成,一部分為測試用的移動聲源產(chǎn)生模塊,以車載MSP430F149為控制核心,兩片NE555芯片獨立產(chǎn)生可調(diào)頻率聲音,單片機僅控制聲音的開始和終止,從而降低硬件模塊的耦合度。車體移動可按隨機路徑移動,也可在CC1101數(shù)據(jù)控制下按照定位模塊設置預定路線移動。另一部分為定位模塊,以定位MSP430F149為控制核心,聲音采集由麥克風拾音器、前置放大和帶通濾波電路組成,開始和終止聲音采集由CC1101模塊數(shù)據(jù)處理后的結(jié)果控制,CC1101與MSP430F149通過SPI協(xié)議連接,定位運算基于聲音到達3個麥克風陣列的時差,并采用一個麥克風冗余修正計算誤差,結(jié)果顯示到12864LCD液晶屏。聲源產(chǎn)生和定位模塊之間采用無線通訊,采用一對CC1101實現(xiàn)無線信號的發(fā)送和接收。聲源產(chǎn)生的硬件設計原理如圖2所示。
聲音接收模塊的硬件設計原理如圖3所示。
圖2 聲源模塊
圖3 聲音接收模塊
本設計無線傳輸采用美國德州儀器公司的CC1101模塊實現(xiàn),CC1101是一種低成本的單片無線收發(fā)器,通信頻率低于1GHz,在CC1100的電路改版基礎上發(fā)展而來,主要面向工業(yè)科學和醫(yī)療 (ISM)和短距離設備 (SRD)的無線連接,頻段范圍為315/433/868/915MHz,編程容易,頻率變更簡便。CC1101芯片具有數(shù)據(jù)包處理,數(shù)據(jù)緩沖,突發(fā)數(shù)據(jù)傳輸,清晰信道評估連接質(zhì)量指示,電磁波激發(fā)和無線電喚醒 (WOR)等功能。CC1101的主要操作參數(shù)和64位傳輸/接收先進先出堆棧 (FIFO)可通過SPI接口控制,片內(nèi)集成頻率合成器,無需外部濾波器或RF轉(zhuǎn)換,僅需少量外部元件,可容易實現(xiàn)單片UHFRF收發(fā)器[8]。受發(fā)射功率和天線結(jié)構(gòu)約束,CC1101的有效傳輸距離在300~500m范圍內(nèi),對于本設計為有效距離。
CC1101通過4線的SPI接口實現(xiàn)與MCU的通訊,軟件采用C語言編程,MSP430F149與CC1101的硬件接口原理如圖4所示。
圖4 CC1101與MSP430F149連接原理
由于近場環(huán)境混響和噪聲干擾嚴重影響定位結(jié)果,目前定位技術(shù)中適用于近場聲源定位的主要有新提出的MUSIC和傳統(tǒng)的時延估計方法兩種,其中MUSIC定位算法復雜度較高,需要特殊DSP支持[9],且定位效果不佳,所以傳統(tǒng)的時延估計法還是目前近場聲源定位領(lǐng)域的研究重點[10]。時延估計法的原理是,根據(jù)音頻信號到達不同位置麥克風拾音器的時間差TDOA(time difference of arrival),計算出移動聲源相對于各個拾音器的位置,從而判斷出移動聲源所處的位置。在基于時延估計的定位算法中,主要有歸一化正方形算法,平面正方形算法,任意三角形算法和修正任意三角形算法。其中歸一化和正方形法,均需要4個拾音器按照正方形排列,取正方形中心為坐標原點,歸一化法取坐標軸分別平行正方形的兩條邊,平面正方形法取坐標軸重疊正方形的對角線,雖然算法簡單,但是拾音器的排列形式固定,所以不適合拾音器任意排列的場合。任意三角形法僅需3個拾音器,構(gòu)成一個平面三角形,選取任意一拾音器位置點作為坐標原點,定義水平方向為極坐標軸,借助三角形函數(shù)關(guān)系可以得到聲源的極坐標值。平面任意三角形定位算法又稱為基于時延估計的雙曲線定位法,其中TDOA雙曲線定位算法原理如圖5所示。
圖5 三陣列TDOA平面定位
三拾音器陣列TDOA定位方程如式 (1)~式 (4)所示
其中c為音頻信號在介質(zhì)中的傳播速度,可選取定值,Δt1為音頻信號到達拾音器1和拾音器2的時間差,Δt2為音頻信號到達拾音器1和拾音器3的時間差,R為聲源到拾音器1的直線距離,r1為聲源到拾音器2的直線距離,r2為聲源到拾音器3的直線距離,D1為拾音器1和拾音器3之間的直線距離,D2為拾音器1和拾音器3之間的直線距離,選取極坐標原點為拾音器1所在位置,極坐標參考線如圖5所示,解方程 (1)~方程 (4)可求得聲源位置坐標的極坐標值為 (R,b)。
修正任意三角形定位算法,是在任意三角形算法的基礎上,增加一個拾音器4,其中修正TDOA雙曲線定位算法原理如圖6所示。
可測得音頻信號到達拾音器1和拾音器4的時間差Δt3,在任意三角形定位算法中音頻信號在介質(zhì)中的傳播速度c為一定值,在修正任意三角形算法中,可假設c有一個變化范圍,即 (c-Δc,c+Δc),同時選取速度變化的步長為δ,則每個速度c+nδ(n=±1,±2,…)可以由任意三角形算法求得一個聲源位置坐標 (Rn,bn),可構(gòu)成一個聲源解的集合。真實的聲源位置包含在這組解集中,而且滿足條件
圖6 修正三陣列TDOA平面定位
修正后的任意三角形定位算法,不僅可以確定最佳的聲源位置坐標,而且可以獲得音頻信號在實驗介質(zhì)中的真實傳播速度解。
實驗選取實驗矩形長為L米,寬為W米,固定于矩形4個頂角的拾音器為A、B、C和D,移動聲源為S,聲音定位系統(tǒng)的結(jié)構(gòu)如圖7所示。
圖7 聲音定位系統(tǒng)的結(jié)構(gòu)
該系統(tǒng)聲音定位算法基于任意三角形雙曲線時延估計TDOA的方法,在已知長和寬的矩形4個頂角,部署4個高精度拾音器,實時采集在矩形內(nèi)移動的一個聲源發(fā)出的音頻信號,雖然實驗中不能獲得音頻信號到達的絕對時間,但是可以獲得相對到達的時差。
因為聲音在介質(zhì)中的傳播時間與傳播距離成正比,所以音頻信號到達A,B,C和D這4個拾音器的時間不相同。算法選擇B點為坐標原點,定義A點坐標為 (x1,y1),B點坐標為 (x2,y2),聲源S點的坐標為 (x,y),聲音在空氣中的傳播速度為c=340m/s,音頻信號達到B的時刻為t1,到達A的時刻為t2,到達C的時刻為t3,到達D的時刻為t4,所以可得到方程 (6)~方程 (11)
可選方程 (6)~方程 (8)任兩個求解,以及方程(9)~方程 (11)相應的兩個,構(gòu)成4個方程求解,余下的一個拾音器驗證所得結(jié)果,根據(jù)是否滿足式 (5)的條件,從而剔除任意三角形雙曲線求解定位后的偽點,求得最佳聲源位置。
本設計軟件采用交叉編譯的模式,主操作系統(tǒng)為Windows 7 professional(64),開發(fā)環(huán)境為IAR公司的Embedded Workbench for Msp430(version 5.30.1),仿真調(diào)試采用SF_BSL430(version1.10)。發(fā)聲模塊的軟件流程如圖8所示。
圖8 聲源模塊軟件流程
接收模塊的軟件流程如圖9所示。
圖9 接收模塊軟件流程
無線模塊CC1101的軟件流程如圖10所示。
定位算法主要源碼清單:
//函數(shù)依次輸入flagfour[0]~ [3]
void Locat(uint d1,uint d2,uint d3,uint d4)
{uint tmp;long f1,f2,f3,f4;
tmp=d2;d2=tmp-d1;//換算坐標,參考點為
tmp=d3;d3=tmp-d1;//左下角拾音器
圖10 無線模塊軟件流程
tmp=d4;d4=tmp-d1;
f1=d3*(d3-d2);f2=d4*(d4-d2);
f3=c*c*d2*(f1-f2);//c=345m/s空氣中音速
f4=l*w*(d2+d4-d3);//l=500,w=400
x=f3/f4+l; //x坐標值
f1=d2*(d4-d2);f2=d3*(d4-d3);
f3=v*v*d4*(f1-f2);
f4=w<<2-w;y=f3/f4+w;//y坐標值}
//MSP430TimerB中斷服務函數(shù)
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B(void)
{cnt++;
if(cnt<5)
{//判斷第一個上升沿到達并返回標志
flag=Flag_FirstUp();
switch(TBIV){//分辨定時器中斷向量
case 0x02://0x02H,捕獲比較1
if(flagfour[0]!=1)
flagfour[0]=TBCCR1;//讀取 CCR1
else
flagfour[0]=0;
break;
case 0x04://0x04H,捕獲比較2
if(flagfour[1]!=1)
flagfour[1]=TBCCR2;//讀取 CCR2
else
flagfour[1]=0;
break;
case 0x06://0x06H,捕獲比較3
if(flagfour[2]!=1)
flagfour[2]=TBCCR3;//讀取 CCR3
else
flagfour[2]=0;
break;
case 0x08://0x08H,捕獲比較4
if(flagfour[3]!=1)
flagfour[3]=TBCCR4;//讀取 CCR4
else
flagfour[3]=0;
break;}//end of switch
}
else
{TBCCTL1=CM_0; //禁止捕獲
TBCCTL2=CM_0;
TBCCTL3=CM_0;
TBCCTL4=CM_0;
Disp12864(); //LCD顯示函數(shù)
}}
實驗取矩形區(qū)域:L=500mm,W=400mm。
設定目標位置坐標,選取有代表性的位置,當系統(tǒng)達到穩(wěn)定時,觀察并記錄坐標的顯示數(shù)據(jù)并計算絕對誤差和相對誤差。測試數(shù)據(jù)與結(jié)果見表1。
表1 測試數(shù)據(jù)與結(jié)果
分析以上測試結(jié)果可知,系統(tǒng)總體功能和誤差已達到要求。LCD可實時顯示聲源坐標,聲源系統(tǒng)可控制移動,功耗低,性價比較高。由于聲音在不同的介質(zhì)和環(huán)境中傳播速度存在有一定的偏差的。實驗環(huán)境不同,造成聲音傳播速率有較小誤差。而且聲音信號很容易被噪聲干擾,本系統(tǒng)可提高濾波電路的性能,從而改善系統(tǒng)總體性能。
可移動聲源平面定位系統(tǒng),可以實現(xiàn)聲音對機器人等智能移動設備的有效控制,尤其是在受光線制約并且攝像頭無法滿足要求的情形下,聲音移動聲源定位系統(tǒng)的優(yōu)勢更加明顯,可作為光和視頻控制的有效補充。經(jīng)實驗驗證,本文所設計系統(tǒng),能夠完成移動物體的一般定位控制需求,誤差在合理范圍內(nèi),但是定位算法的精度和系統(tǒng)的抗噪能力還有待進一步提高。本系統(tǒng)設計具有成本低、功耗低、設計簡單易于實現(xiàn)等優(yōu)點,可以方便快捷地應用到聲音智能控制設備中。
[1]HAN Yi,WU Chuna,LI Longfei.Research and development of sound localization system based on time difference of arrival [J].Computer Engineering and Design,2010,31(11):2462-2465(in Chinese).[韓毅,吳初娜,李龍飛.基于到達時差的聲音定位系統(tǒng)的研究與實現(xiàn) [J].計算機工程與設計,2010,31(11):2462-2465.]
[2]LIWen,XIA Xiuyu,HE Peiyu,et al.Speech source localization in near-field based on microphone arrays[J].Journal of Sichuan University(Natural Science Edition),2008,45(2):307-310(in Chinese).[李文,夏秀渝,何培宇,等.基于麥克風陣列的近場聲源定位[J].四川大學學報 (自然科學版),2008,45(2):307-310.]
[3]Despoina Pavlidi,Anthony Griffin,Matthieu Puigt,et al.Realtimemultiple sound source localization and counting using a circular microphone array[J].IEEE Transactions on Audio,Speech and Language Processing,2013,21(10):2193-2206.
[4]CHEN Ying,WU Changqi.Research on sound source localization algorithm bymicrophone array and its realization based on DSP [J].Journal of Yanshan University,2013,37(1):63-67(in Chinese).[陳穎,吳長奇.基于麥克風陣列的聲源定位算法研究及DSP實現(xiàn)[J].燕山大學學報,2013,37(1):63-67.]
[5]Song Junjun,Ren Bin,Song Lei.The design and realization of a spectrum acquisition unit based on the MSP430F149 MCU [J].Applied Mechanics and Materials,2013,246:230-234.
[6]XIAO Zhenfeng,YUAN Rongxiang,DENG Xiangtian,et al.Intelligent remote faultmonitor based on MSP430F169 [J].Electric Po-wer Automation Equipment,2013,33(1):160-164(in Chinese).[肖振鋒,袁榮湘,鄧翔天,等.基于MSP430F169的遠程智能故障監(jiān)測器[J].電力自動化設備,2013,33(1):160-164.]
[7]QI Huaiqin,ZHANG Song,WANG Han.Design of forest fire warning system based on MSP430F5438 [J].Measurement & Control Technology,2013,32(1):28-32(in Chinese).[齊懷琴,張松,王晗.基于MSP430F5438的超低功耗森林火災預警統(tǒng)設計 [J].測控技術(shù),2013,32(1):28-32.]
[8]Zi Xinyun,Wang Yue,Zhao Ling.Design and implementation of wireless communication system based on CC1101 [J].Advanced Materials Research,2013,684:596-599.
[9]Mohammed Nabil El Korso,Alexandre Renaux,Remy Boyer,et al.Deterministic performance bounds on themean square error for near field source localization[J].IEEE Transactions on Signal Processing,2013,61(4):871-877.
[10]Wang Bo,Zhao Yanping,Liu Juanjuan.Mixed-order MUSIC algorithm for localization of far-field and near-field sources[J].Signal Processing Letters,2013,20(4):311-314.