王雷 郝建新 陳蔚蔚
摘 要: 使用單片機(jī)STM32F103ZET6為控制核心,通過以LM324芯片、LM567鑒頻芯片為主組成的固定聲音識別電路設(shè)計(jì)聲音定位系統(tǒng)。針對在固定音頻信號采集過程中,由元器件本身以及周圍環(huán)境等影響而產(chǎn)生的噪聲誤差,采用TDOA算法和Kalman濾波相結(jié)合的方式,對于TDOA算法的計(jì)算結(jié)果進(jìn)行優(yōu)化處理,得出音源位置的最優(yōu)估計(jì)值。經(jīng)過運(yùn)行調(diào)試,使用Kalman濾波之后,使得系統(tǒng)的定位精度得到較大的提高,實(shí)現(xiàn)對目標(biāo)的快速穩(wěn)定跟蹤。
關(guān)鍵詞: 聲音識別; 聲音定位; TDOA; Kalman濾波; STM32F103; Arduino
中圖分類號: TN710?34; TP273 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2018)19?0161?04
Abstract: A sound location system is designed by taking microcontroller STM32F103ZET6 as the control core, LM324 chip and LM567 frequency discrimination chip as the major components of fixed voice recognition circuit. In the acquisition process of fixed audio signal, the method combining TDOA algorithm and Kalman filtering is used to eliminate the noise error generated by components themselves and surrounding environment. The calculation result of the TDOA algorithm is optimized to get the optimal estimation value of voice source location. The debugging and running results show that the location accuracy of the system has been greatly improved by means of Kalman filtering, and the system can realize rapid and stable target tracking.
Keywords: voice recognition; sound positioning; TDOA; Kalman filtering; STM32F103; Arduino
聲音定位是一種應(yīng)用廣泛的技術(shù)[1],利用聲學(xué)傳感器以及與其相連的電子設(shè)備(MCU)和相關(guān)電路,處理接收到的聲波信號,確定聲源的位置[2]。聲音在空間上沿球面?zhèn)鞑?,時(shí)間上具有唯一性[3],因此在臨床醫(yī)學(xué)[1]、現(xiàn)代戰(zhàn)爭進(jìn)攻與防御[2]、機(jī)器視覺[3]、無線傳感器網(wǎng)絡(luò)[4?5]等領(lǐng)域均得到了重要的應(yīng)用。TDOA算法是一種較為常用的定位算法[2?8],其計(jì)算過程更加簡單,計(jì)算精度準(zhǔn)確。由于聲源信號接收過程中存在隨機(jī)噪聲等影響,使用Kalman濾波可有效地降低噪聲影響。Kalman濾波理論已經(jīng)在國防、軍事、跟蹤、制導(dǎo)等許多領(lǐng)域得到廣泛應(yīng)用[10]。將Kalman濾波算法與TDOA算法結(jié)合,既能夠?qū)⒙曉葱盘柌杉到y(tǒng)的噪聲影響降低,又能快速準(zhǔn)確地確定聲源信號的位置,同時(shí)采用MCU?STM32F103ZET6作為主控芯片[7],大大提高聲音定位系統(tǒng)的穩(wěn)定性和可靠性。
1 系統(tǒng)設(shè)計(jì)
系統(tǒng)機(jī)械結(jié)構(gòu)如圖1所示,在一個(gè)500 mm×500 mm的垂直平面上,自由選位放置一個(gè)小音源(50 mm×50 mm),產(chǎn)生1 800 Hz的正弦波聲源信號,由固定在4個(gè)角的拾音器收集,通過信號采集電路傳輸?shù)娇刂葡到y(tǒng)中,經(jīng)過濾波、計(jì)算得出音源的位置,最后驅(qū)動(dòng)定位跟隨模塊,將紅外線射擊到音源位置。系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
輸入信號為1 800 Hz的正弦波信號,通過RC振蕩電路直接產(chǎn)生正弦波,再經(jīng)功率放大器驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。正弦波產(chǎn)生電路不僅要產(chǎn)生所需輸出的正弦信號,而且是后面電路的輸入信號。電路結(jié)構(gòu)如圖3所示。
1.2 聲音接收模塊[2]
由聲音傳感器?電容式駐極體話筒、LM324芯片、LM567鑒頻芯片為主組成的固定音頻識別電路。由揚(yáng)聲器識取聲音信號,進(jìn)行兩級放大處理,然后使用LM567對放大后的信號進(jìn)行鑒頻識別。與使用精密電位器設(shè)定的固定頻率進(jìn)行對比,當(dāng)頻率相同時(shí),輸出一個(gè)開關(guān)量信號,以達(dá)到固定頻率識別的目的。聲音接收電路結(jié)構(gòu)如圖4所示。
1.3 MCU控制模塊
選擇STM32F103ZET6作為主控MCU,內(nèi)核為ARM 32位的CortexTM?M3 CPU,最高72 MHz的工作頻率,集成256~512 KB的FLASH存儲器,64 KB的SRAM。多達(dá)11個(gè)定時(shí)器,方便信號的采集,并集成了多種接口,可以進(jìn)行不同通信接口的通信。
1.4 定位跟隨模塊
Arduino單片機(jī)控制由兩個(gè)舵機(jī)和紅外線發(fā)射器組成的定位跟隨系統(tǒng)。舵機(jī)內(nèi)置微型處理器,具有速度快、穩(wěn)定性好、體積小、扭力大等特點(diǎn)。主控MCU與Arduino之間通過藍(lán)牙串口模塊進(jìn)行通信。
聲音定位的關(guān)鍵是求出各個(gè)傳感器接收到信號的時(shí)間差,選用3個(gè)傳感器,得出3個(gè)時(shí)間差,即可得出3條雙曲線。由于實(shí)驗(yàn)中存在誤差,因而3條曲線不會交于一點(diǎn),而是兩兩相交形成三角形,之后找出3個(gè)坐標(biāo)點(diǎn)形成的三角形的重心,該重心即為發(fā)聲源的位置。使用單片機(jī)的3個(gè)中斷,計(jì)算聲音到達(dá)傳感器的時(shí)間,進(jìn)一步得到時(shí)間差。系統(tǒng)流程圖如圖5所示。
2.1 TDOA算法測試
聲源定位坐標(biāo)示意圖如圖6所示,在平面上分布有3個(gè)傳感器[A,B,C],坐標(biāo)分別為[(0,0)],[(a,0)]和[(0,a)]。
2.2 Kalman濾波器設(shè)計(jì)
Kalman濾波算法是一個(gè)最優(yōu)化自回歸數(shù)據(jù)處理算法,是利用當(dāng)前時(shí)刻的測量值以及前一時(shí)刻的估計(jì)值來更新狀態(tài)變量,最終估計(jì)出當(dāng)前時(shí)刻的最優(yōu)值[9?11]。由于音量、周圍噪聲、元器件及電路本身等原因,均會對測量時(shí)間產(chǎn)生影響,使用Kalman濾波對計(jì)算結(jié)果進(jìn)行優(yōu)化處理,得出音源位置的最優(yōu)估計(jì)值。
通過表2可以看出,經(jīng)過Kalman濾波之后的定位結(jié)果要優(yōu)于優(yōu)化之前的定位結(jié)果。濾波之前定位誤差最大可以達(dá)到25 mm,濾波之后,將誤差控制在10 mm以內(nèi)。
本文通過使用Kalman濾波算法和TDOA定位算法完成基于STM32F103ZET6為控制核心的聲音定位系統(tǒng)的設(shè)計(jì)。經(jīng)過實(shí)驗(yàn)結(jié)果論證,經(jīng)過Kalman濾波對于TDOA算法的計(jì)算結(jié)果進(jìn)行優(yōu)化處理后,定位精度得到提高,減小了定位誤差值。由于雙算法的計(jì)算復(fù)雜度,使得Kalman濾波僅進(jìn)行了10次運(yùn)算,在計(jì)算準(zhǔn)確度上存在著一定的不足。同時(shí)也使計(jì)算時(shí)間增加,因此對于兩種算法的混合應(yīng)用仍然有較大的提升空間。
參考文獻(xiàn)
[1] 耿艷香,梁雪芹,董愛云,等.基于MSP430的聲音定位系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室科學(xué),2014,17(1):8?10.
GENG Yanxiang, LIANG Xueqin, DONG Aiyun, et al. Design of voice fixing position system based on MSP430 [J]. Laboratory science, 2014, 17(1): 8?10.
[2] 李昌祿,郭威辰,蘇寒松.基于TDOA的聲音定位系統(tǒng)[J].實(shí)驗(yàn)室研究與探索,2014,33(6):118?121.
LI Changlu, GUO Weichen, SU Hansong. Sound positioning system based on TDOA [J]. Research and exploration in laboratory, 2014, 33(6): 118?121.
[3] 韓毅,吳初娜,李龍飛,等.基于到達(dá)時(shí)差的聲音定位系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010, 31(11):2462?2465.
HAN Yi, WU Chuna, LI Longfei, et al. Research and development of sound localization system based on time difference of arrival [J]. Computer engineering and design, 2010, 31(11): 2462?2465.
[4] 李大舟,趙海,朱劍,等.無線傳感器網(wǎng)絡(luò)中免于測距的聲音定位算法[J].東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,32(6):806?809.
LI Dazhou, ZHAO Hai, ZHU Jian, et al. A range free acoustic localization algorithm in WSN [J]. Journal of Northeastern University (natural science), 2011, 32(6): 806?809.
[5] 殷桂華,王小輝,雷毅談.基于TDOA的室內(nèi)運(yùn)動(dòng)目標(biāo)雙曲線RFID定位方法[J].計(jì)算機(jī)應(yīng)用,2014,34(z2):52?54.
YIN Guihua, WANG Xiaohui, LEI Yitan. RFID hyperbolic positioning using TDOA method for indoor moving target [J]. Journal of computer applications, 2014, 34(S2): 52?54.
[6] 王益平,王皓,吳衡,等.基于到達(dá)時(shí)差的低功耗聲音定位系統(tǒng)[J].機(jī)電工程,2014,30(8):1015?1019.
WANG Yiping, WANG Hao, WU Heng, et al. Sound localization system based on time difference of arrival with conside?rable power saving [J]. Journal of mechanical & electrical engineering, 2014, 30(8): 1015?1019.
[7] 王瑞榮,鄭書萬,陳浩龍,等.一種基于Talor和Kalman的室內(nèi)協(xié)同定位方法[J].傳感技術(shù)學(xué)報(bào),2014,27(11): 1557?1561.
WANG Ruirong, ZHENG Shuwan, CHEN Haolong, et al. An cooperative localization method based on Taylor and Kalman algorithms [J]. Chinese journal of sensors and actuators, 2014, 27(11): 1557?1561.
[8] 苗晟,周維,唐浩,等.一種聲源定位系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)科學(xué),2013,40(11A):398?400.
MIAO Sheng, ZHOU Wei, TANG Hao, et al. Acoustic location system design [J]. Computer science, 2013, 40(11A): 398?400.
[9] 王素青,熊維堂.基于STM32的兩輪自平衡小車系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2016,35(5):146?150.
WANG Suqing, XIONG Weitang. The design of the two?wheel self?balancing vehicle system based on STM32 [J]. Research and exploration in laboratory, 2016, 35(5): 146?150.
[10] 黃小平,王巖.卡爾曼濾波原理及應(yīng)用Matlab仿真[M].北京:電子工業(yè)出版社,2015.
HUANG Xiaoping, WANG Yan. The principle and application of Kalman filter: Matlab simulation [M]. Beijing: Publi?shing House of Electronics Industry, 2015.
[11] 李慶瀛,褚金奎,李榮華,等.基于卡爾曼濾波的移動(dòng)機(jī)器人運(yùn)動(dòng)目標(biāo)跟蹤[J].傳感器與微系統(tǒng),2008,27(11):66?68.
LI Qingying, CHU Jinkui, LI Ronghua, et al. Moving object tracking algorithm for mobile robot based on Kalman filter [J]. Transducer and microsystem technologies, 2008, 27(11): 66?68.