楊 云,王君波,范中磊
(1.長(zhǎng)安大學(xué)信息工程學(xué)院,陜西西安710064;2.歐比特控制工程股份有限公司,廣東珠海519080)
聲源定位技術(shù)快速發(fā)展,并被廣泛應(yīng)用到民用軍工的各個(gè)領(lǐng)域。如移動(dòng)機(jī)器人,通過(guò)聲源定位技術(shù)控制攝像頭,使其轉(zhuǎn)向感興趣的方向[1]。直升機(jī)和無(wú)人機(jī)等目標(biāo)識(shí)別,聲源定位技術(shù)可有效彌補(bǔ)雷達(dá)探測(cè)的盲區(qū)[2]。聲源定位算法的研究可分為三類(lèi):基于時(shí)延估計(jì)的定位方法、基于波束形成的定位方法和基于高分辨率空間譜估計(jì)的定位方法[3]。其中基于時(shí)延估計(jì)的定位方法因其小運(yùn)算量和低復(fù)雜度的優(yōu)點(diǎn)[4],被嵌入式系統(tǒng)廣泛采用。本文基于TI低功耗單片機(jī)MSP430F149,采用修正任意三角形時(shí)延估計(jì)聲源定位方法,設(shè)計(jì)并實(shí)現(xiàn)了一種有效近場(chǎng)可移動(dòng)聲源定位系統(tǒng),在實(shí)驗(yàn)室環(huán)境中對(duì)系統(tǒng)進(jìn)行功能測(cè)試,結(jié)果表明了所設(shè)計(jì)系統(tǒng)和所采用定位算法的正確性。
系統(tǒng)主要由移動(dòng)聲源,聲音接收處理,無(wú)線通訊和軟件處理四大部分組成。移動(dòng)聲源模塊主要以MSP403F149控制的小車(chē)為載體,以一片CC1101無(wú)線模塊觸發(fā)聲音的開(kāi)啟和終止,聲音產(chǎn)生由兩片NE555芯片自激振蕩驅(qū)動(dòng)蜂鳴器,獨(dú)立產(chǎn)生周期性的可調(diào)頻率聲音信號(hào)。聲音接收處理模塊分為接收電路和處理電路,接收電路由4個(gè)麥克風(fēng)拾音器組成陣列,接收聲音信號(hào)并進(jìn)行放大濾波,再將信號(hào)送入MSP430F149單片機(jī)處理,處理算法采用基于到達(dá)時(shí)間差的修正任意三角形雙曲線定位法,基于MSP430的嵌入式C語(yǔ)言編程實(shí)現(xiàn),是否開(kāi)始接收聲音信號(hào)由另一片無(wú)線模塊CC1101觸發(fā)。聲源與接收模塊之間采用無(wú)線通訊,采用一對(duì)CC1101無(wú)線模塊實(shí)現(xiàn)。軟件處理部分,對(duì)送入單片機(jī)的信號(hào),計(jì)算其中3個(gè)麥克風(fēng)接收聲音信號(hào)的時(shí)差,基于聲音信號(hào)到達(dá)不同位置拾音器的時(shí)間差,采用修正任意三角形時(shí)延估計(jì)TDOA的定位方法[4],分析得到移動(dòng)聲源的位置,另一個(gè)拾音器修正定位誤差,選取最佳定位結(jié)果,并在LCD液晶屏顯示定位結(jié)果坐標(biāo)值。移動(dòng)聲源可按照隨機(jī)路徑移動(dòng),也可由聲音接收模塊經(jīng)無(wú)線發(fā)送數(shù)據(jù)和命令,控制移動(dòng)聲源,移動(dòng)聲源再做相應(yīng)調(diào)整,沿設(shè)定路徑移動(dòng)。系統(tǒng)總體設(shè)計(jì)框架如圖1所示。
圖1 系統(tǒng)總體框架
本設(shè)計(jì)采用美國(guó)德州儀器公司16位單片機(jī)MSP430F149,其內(nèi)核CPU運(yùn)行正交RISC指令集,片內(nèi)16個(gè)寄存器,ROM和RAM統(tǒng)一編址,可產(chǎn)生ACLK、MCLK和SMCLK這3種不同的時(shí)鐘[5];有P1~P6共48個(gè)GPIO端口并可獨(dú)立編程,提供WATCHDOG、Timer_A和Timer_B這3個(gè)16位時(shí)鐘;有USART0與USART1兩個(gè)串行通信接口,在P6口提供8通道12位獨(dú)立快速模數(shù)轉(zhuǎn)換ADC模塊,采樣速度可到200kbps;中斷源較多,并可任意嵌套,中斷請(qǐng)求喚醒只需6us;FLASH存儲(chǔ)器多達(dá)60KB,擦寫(xiě)次數(shù)可達(dá)10萬(wàn)次;帶7個(gè)捕獲/比較寄存器。MSP430F149的工作電壓1.8V~3.6V,具有處理能力強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn)[6]。MSP430F149與TI其它MSP430系列微處理器一樣,對(duì)所有外圍模塊的控制,均通過(guò)特殊寄存器實(shí)現(xiàn),編寫(xiě)程序較簡(jiǎn)單,有專(zhuān)用的編程器,支持C語(yǔ)言和匯編,可用IAR的WORKBENCH IDE和CSPY直接在線編譯和調(diào)試程序,非常靈活[7]。
本設(shè)計(jì)硬件由三部分組成,一部分為測(cè)試用的移動(dòng)聲源產(chǎn)生模塊,以車(chē)載MSP430F149為控制核心,兩片NE555芯片獨(dú)立產(chǎn)生可調(diào)頻率聲音,單片機(jī)僅控制聲音的開(kāi)始和終止,從而降低硬件模塊的耦合度。車(chē)體移動(dòng)可按隨機(jī)路徑移動(dòng),也可在CC1101數(shù)據(jù)控制下按照定位模塊設(shè)置預(yù)定路線移動(dòng)。另一部分為定位模塊,以定位MSP430F149為控制核心,聲音采集由麥克風(fēng)拾音器、前置放大和帶通濾波電路組成,開(kāi)始和終止聲音采集由CC1101模塊數(shù)據(jù)處理后的結(jié)果控制,CC1101與MSP430F149通過(guò)SPI協(xié)議連接,定位運(yùn)算基于聲音到達(dá)3個(gè)麥克風(fēng)陣列的時(shí)差,并采用一個(gè)麥克風(fēng)冗余修正計(jì)算誤差,結(jié)果顯示到12864LCD液晶屏。聲源產(chǎn)生和定位模塊之間采用無(wú)線通訊,采用一對(duì)CC1101實(shí)現(xiàn)無(wú)線信號(hào)的發(fā)送和接收。聲源產(chǎn)生的硬件設(shè)計(jì)原理如圖2所示。
聲音接收模塊的硬件設(shè)計(jì)原理如圖3所示。
圖2 聲源模塊
圖3 聲音接收模塊
本設(shè)計(jì)無(wú)線傳輸采用美國(guó)德州儀器公司的CC1101模塊實(shí)現(xiàn),CC1101是一種低成本的單片無(wú)線收發(fā)器,通信頻率低于1GHz,在CC1100的電路改版基礎(chǔ)上發(fā)展而來(lái),主要面向工業(yè)科學(xué)和醫(yī)療 (ISM)和短距離設(shè)備 (SRD)的無(wú)線連接,頻段范圍為315/433/868/915MHz,編程容易,頻率變更簡(jiǎn)便。CC1101芯片具有數(shù)據(jù)包處理,數(shù)據(jù)緩沖,突發(fā)數(shù)據(jù)傳輸,清晰信道評(píng)估連接質(zhì)量指示,電磁波激發(fā)和無(wú)線電喚醒 (WOR)等功能。CC1101的主要操作參數(shù)和64位傳輸/接收先進(jìn)先出堆棧 (FIFO)可通過(guò)SPI接口控制,片內(nèi)集成頻率合成器,無(wú)需外部濾波器或RF轉(zhuǎn)換,僅需少量外部元件,可容易實(shí)現(xiàn)單片UHFRF收發(fā)器[8]。受發(fā)射功率和天線結(jié)構(gòu)約束,CC1101的有效傳輸距離在300~500m范圍內(nèi),對(duì)于本設(shè)計(jì)為有效距離。
CC1101通過(guò)4線的SPI接口實(shí)現(xiàn)與MCU的通訊,軟件采用C語(yǔ)言編程,MSP430F149與CC1101的硬件接口原理如圖4所示。
圖4 CC1101與MSP430F149連接原理
由于近場(chǎng)環(huán)境混響和噪聲干擾嚴(yán)重影響定位結(jié)果,目前定位技術(shù)中適用于近場(chǎng)聲源定位的主要有新提出的MUSIC和傳統(tǒng)的時(shí)延估計(jì)方法兩種,其中MUSIC定位算法復(fù)雜度較高,需要特殊DSP支持[9],且定位效果不佳,所以傳統(tǒng)的時(shí)延估計(jì)法還是目前近場(chǎng)聲源定位領(lǐng)域的研究重點(diǎn)[10]。時(shí)延估計(jì)法的原理是,根據(jù)音頻信號(hào)到達(dá)不同位置麥克風(fēng)拾音器的時(shí)間差TDOA(time difference of arrival),計(jì)算出移動(dòng)聲源相對(duì)于各個(gè)拾音器的位置,從而判斷出移動(dòng)聲源所處的位置。在基于時(shí)延估計(jì)的定位算法中,主要有歸一化正方形算法,平面正方形算法,任意三角形算法和修正任意三角形算法。其中歸一化和正方形法,均需要4個(gè)拾音器按照正方形排列,取正方形中心為坐標(biāo)原點(diǎn),歸一化法取坐標(biāo)軸分別平行正方形的兩條邊,平面正方形法取坐標(biāo)軸重疊正方形的對(duì)角線,雖然算法簡(jiǎn)單,但是拾音器的排列形式固定,所以不適合拾音器任意排列的場(chǎng)合。任意三角形法僅需3個(gè)拾音器,構(gòu)成一個(gè)平面三角形,選取任意一拾音器位置點(diǎn)作為坐標(biāo)原點(diǎn),定義水平方向?yàn)闃O坐標(biāo)軸,借助三角形函數(shù)關(guān)系可以得到聲源的極坐標(biāo)值。平面任意三角形定位算法又稱為基于時(shí)延估計(jì)的雙曲線定位法,其中TDOA雙曲線定位算法原理如圖5所示。
圖5 三陣列TDOA平面定位
三拾音器陣列TDOA定位方程如式 (1)~式 (4)所示
其中c為音頻信號(hào)在介質(zhì)中的傳播速度,可選取定值,Δt1為音頻信號(hào)到達(dá)拾音器1和拾音器2的時(shí)間差,Δt2為音頻信號(hào)到達(dá)拾音器1和拾音器3的時(shí)間差,R為聲源到拾音器1的直線距離,r1為聲源到拾音器2的直線距離,r2為聲源到拾音器3的直線距離,D1為拾音器1和拾音器3之間的直線距離,D2為拾音器1和拾音器3之間的直線距離,選取極坐標(biāo)原點(diǎn)為拾音器1所在位置,極坐標(biāo)參考線如圖5所示,解方程 (1)~方程 (4)可求得聲源位置坐標(biāo)的極坐標(biāo)值為 (R,b)。
修正任意三角形定位算法,是在任意三角形算法的基礎(chǔ)上,增加一個(gè)拾音器4,其中修正TDOA雙曲線定位算法原理如圖6所示。
可測(cè)得音頻信號(hào)到達(dá)拾音器1和拾音器4的時(shí)間差Δt3,在任意三角形定位算法中音頻信號(hào)在介質(zhì)中的傳播速度c為一定值,在修正任意三角形算法中,可假設(shè)c有一個(gè)變化范圍,即 (c-Δc,c+Δc),同時(shí)選取速度變化的步長(zhǎng)為δ,則每個(gè)速度c+nδ(n=±1,±2,…)可以由任意三角形算法求得一個(gè)聲源位置坐標(biāo) (Rn,bn),可構(gòu)成一個(gè)聲源解的集合。真實(shí)的聲源位置包含在這組解集中,而且滿足條件
圖6 修正三陣列TDOA平面定位
修正后的任意三角形定位算法,不僅可以確定最佳的聲源位置坐標(biāo),而且可以獲得音頻信號(hào)在實(shí)驗(yàn)介質(zhì)中的真實(shí)傳播速度解。
實(shí)驗(yàn)選取實(shí)驗(yàn)矩形長(zhǎng)為L(zhǎng)米,寬為W米,固定于矩形4個(gè)頂角的拾音器為A、B、C和D,移動(dòng)聲源為S,聲音定位系統(tǒng)的結(jié)構(gòu)如圖7所示。
圖7 聲音定位系統(tǒng)的結(jié)構(gòu)
該系統(tǒng)聲音定位算法基于任意三角形雙曲線時(shí)延估計(jì)TDOA的方法,在已知長(zhǎng)和寬的矩形4個(gè)頂角,部署4個(gè)高精度拾音器,實(shí)時(shí)采集在矩形內(nèi)移動(dòng)的一個(gè)聲源發(fā)出的音頻信號(hào),雖然實(shí)驗(yàn)中不能獲得音頻信號(hào)到達(dá)的絕對(duì)時(shí)間,但是可以獲得相對(duì)到達(dá)的時(shí)差。
因?yàn)槁曇粼诮橘|(zhì)中的傳播時(shí)間與傳播距離成正比,所以音頻信號(hào)到達(dá)A,B,C和D這4個(gè)拾音器的時(shí)間不相同。算法選擇B點(diǎn)為坐標(biāo)原點(diǎn),定義A點(diǎn)坐標(biāo)為 (x1,y1),B點(diǎn)坐標(biāo)為 (x2,y2),聲源S點(diǎn)的坐標(biāo)為 (x,y),聲音在空氣中的傳播速度為c=340m/s,音頻信號(hào)達(dá)到B的時(shí)刻為t1,到達(dá)A的時(shí)刻為t2,到達(dá)C的時(shí)刻為t3,到達(dá)D的時(shí)刻為t4,所以可得到方程 (6)~方程 (11)
可選方程 (6)~方程 (8)任兩個(gè)求解,以及方程(9)~方程 (11)相應(yīng)的兩個(gè),構(gòu)成4個(gè)方程求解,余下的一個(gè)拾音器驗(yàn)證所得結(jié)果,根據(jù)是否滿足式 (5)的條件,從而剔除任意三角形雙曲線求解定位后的偽點(diǎn),求得最佳聲源位置。
本設(shè)計(jì)軟件采用交叉編譯的模式,主操作系統(tǒng)為Windows 7 professional(64),開(kāi)發(fā)環(huán)境為IAR公司的Embedded Workbench for Msp430(version 5.30.1),仿真調(diào)試采用SF_BSL430(version1.10)。發(fā)聲模塊的軟件流程如圖8所示。
圖8 聲源模塊軟件流程
接收模塊的軟件流程如圖9所示。
圖9 接收模塊軟件流程
無(wú)線模塊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;//換算坐標(biāo),參考點(diǎn)為
tmp=d3;d3=tmp-d1;//左下角拾音器
圖10 無(wú)線模塊軟件流程
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坐標(biāo)值
f1=d2*(d4-d2);f2=d3*(d4-d3);
f3=v*v*d4*(f1-f2);
f4=w<<2-w;y=f3/f4+w;//y坐標(biāo)值}
//MSP430TimerB中斷服務(wù)函數(shù)
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B(void)
{cnt++;
if(cnt<5)
{//判斷第一個(gè)上升沿到達(dá)并返回標(biāo)志
flag=Flag_FirstUp();
switch(TBIV){//分辨定時(shí)器中斷向量
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ù)
}}
實(shí)驗(yàn)取矩形區(qū)域:L=500mm,W=400mm。
設(shè)定目標(biāo)位置坐標(biāo),選取有代表性的位置,當(dāng)系統(tǒng)達(dá)到穩(wěn)定時(shí),觀察并記錄坐標(biāo)的顯示數(shù)據(jù)并計(jì)算絕對(duì)誤差和相對(duì)誤差。測(cè)試數(shù)據(jù)與結(jié)果見(jiàn)表1。
表1 測(cè)試數(shù)據(jù)與結(jié)果
分析以上測(cè)試結(jié)果可知,系統(tǒng)總體功能和誤差已達(dá)到要求。LCD可實(shí)時(shí)顯示聲源坐標(biāo),聲源系統(tǒng)可控制移動(dòng),功耗低,性價(jià)比較高。由于聲音在不同的介質(zhì)和環(huán)境中傳播速度存在有一定的偏差的。實(shí)驗(yàn)環(huán)境不同,造成聲音傳播速率有較小誤差。而且聲音信號(hào)很容易被噪聲干擾,本系統(tǒng)可提高濾波電路的性能,從而改善系統(tǒng)總體性能。
可移動(dòng)聲源平面定位系統(tǒng),可以實(shí)現(xiàn)聲音對(duì)機(jī)器人等智能移動(dòng)設(shè)備的有效控制,尤其是在受光線制約并且攝像頭無(wú)法滿足要求的情形下,聲音移動(dòng)聲源定位系統(tǒng)的優(yōu)勢(shì)更加明顯,可作為光和視頻控制的有效補(bǔ)充。經(jīng)實(shí)驗(yàn)驗(yàn)證,本文所設(shè)計(jì)系統(tǒng),能夠完成移動(dòng)物體的一般定位控制需求,誤差在合理范圍內(nèi),但是定位算法的精度和系統(tǒng)的抗噪能力還有待進(jìn)一步提高。本系統(tǒng)設(shè)計(jì)具有成本低、功耗低、設(shè)計(jì)簡(jiǎn)單易于實(shí)現(xiàn)等優(yōu)點(diǎn),可以方便快捷地應(yīng)用到聲音智能控制設(shè)備中。
[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).[韓毅,吳初娜,李龍飛.基于到達(dá)時(shí)差的聲音定位系統(tǒng)的研究與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(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).[李文,夏秀渝,何培宇,等.基于麥克風(fēng)陣列的近場(chǎng)聲源定位[J].四川大學(xué)學(xué)報(bào) (自然科學(xué)版),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).[陳穎,吳長(zhǎng)奇.基于麥克風(fēng)陣列的聲源定位算法研究及DSP實(shí)現(xiàn)[J].燕山大學(xué)學(xué)報(bào),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的遠(yuǎn)程智能故障監(jiān)測(cè)器[J].電力自動(dòng)化設(shè)備,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的超低功耗森林火災(zāi)預(yù)警統(tǒng)設(shè)計(jì) [J].測(cè)控技術(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.