王雷 郝建新 陳蔚蔚
摘 要: 使用單片機STM32F103ZET6為控制核心,通過以LM324芯片、LM567鑒頻芯片為主組成的固定聲音識別電路設計聲音定位系統(tǒng)。針對在固定音頻信號采集過程中,由元器件本身以及周圍環(huán)境等影響而產(chǎn)生的噪聲誤差,采用TDOA算法和Kalman濾波相結合的方式,對于TDOA算法的計算結果進行優(yōu)化處理,得出音源位置的最優(yōu)估計值。經(jīng)過運行調(diào)試,使用Kalman濾波之后,使得系統(tǒng)的定位精度得到較大的提高,實現(xiàn)對目標的快速穩(wěn)定跟蹤。
關鍵詞: 聲音識別; 聲音定位; TDOA; Kalman濾波; STM32F103; Arduino
中圖分類號: TN710?34; TP273 文獻標識碼: 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
聲音定位是一種應用廣泛的技術[1],利用聲學傳感器以及與其相連的電子設備(MCU)和相關電路,處理接收到的聲波信號,確定聲源的位置[2]。聲音在空間上沿球面?zhèn)鞑?,時間上具有唯一性[3],因此在臨床醫(yī)學[1]、現(xiàn)代戰(zhàn)爭進攻與防御[2]、機器視覺[3]、無線傳感器網(wǎng)絡[4?5]等領域均得到了重要的應用。TDOA算法是一種較為常用的定位算法[2?8],其計算過程更加簡單,計算精度準確。由于聲源信號接收過程中存在隨機噪聲等影響,使用Kalman濾波可有效地降低噪聲影響。Kalman濾波理論已經(jīng)在國防、軍事、跟蹤、制導等許多領域得到廣泛應用[10]。將Kalman濾波算法與TDOA算法結合,既能夠?qū)⒙曉葱盘柌杉到y(tǒng)的噪聲影響降低,又能快速準確地確定聲源信號的位置,同時采用MCU?STM32F103ZET6作為主控芯片[7],大大提高聲音定位系統(tǒng)的穩(wěn)定性和可靠性。
1 系統(tǒng)設計
系統(tǒng)機械結構如圖1所示,在一個500 mm×500 mm的垂直平面上,自由選位放置一個小音源(50 mm×50 mm),產(chǎn)生1 800 Hz的正弦波聲源信號,由固定在4個角的拾音器收集,通過信號采集電路傳輸?shù)娇刂葡到y(tǒng)中,經(jīng)過濾波、計算得出音源的位置,最后驅(qū)動定位跟隨模塊,將紅外線射擊到音源位置。系統(tǒng)結構框圖如圖2所示。
輸入信號為1 800 Hz的正弦波信號,通過RC振蕩電路直接產(chǎn)生正弦波,再經(jīng)功率放大器驅(qū)動揚聲器發(fā)聲。正弦波產(chǎn)生電路不僅要產(chǎn)生所需輸出的正弦信號,而且是后面電路的輸入信號。電路結構如圖3所示。
1.2 聲音接收模塊[2]
由聲音傳感器?電容式駐極體話筒、LM324芯片、LM567鑒頻芯片為主組成的固定音頻識別電路。由揚聲器識取聲音信號,進行兩級放大處理,然后使用LM567對放大后的信號進行鑒頻識別。與使用精密電位器設定的固定頻率進行對比,當頻率相同時,輸出一個開關量信號,以達到固定頻率識別的目的。聲音接收電路結構如圖4所示。
1.3 MCU控制模塊
選擇STM32F103ZET6作為主控MCU,內(nèi)核為ARM 32位的CortexTM?M3 CPU,最高72 MHz的工作頻率,集成256~512 KB的FLASH存儲器,64 KB的SRAM。多達11個定時器,方便信號的采集,并集成了多種接口,可以進行不同通信接口的通信。
1.4 定位跟隨模塊
Arduino單片機控制由兩個舵機和紅外線發(fā)射器組成的定位跟隨系統(tǒng)。舵機內(nèi)置微型處理器,具有速度快、穩(wěn)定性好、體積小、扭力大等特點。主控MCU與Arduino之間通過藍牙串口模塊進行通信。
聲音定位的關鍵是求出各個傳感器接收到信號的時間差,選用3個傳感器,得出3個時間差,即可得出3條雙曲線。由于實驗中存在誤差,因而3條曲線不會交于一點,而是兩兩相交形成三角形,之后找出3個坐標點形成的三角形的重心,該重心即為發(fā)聲源的位置。使用單片機的3個中斷,計算聲音到達傳感器的時間,進一步得到時間差。系統(tǒng)流程圖如圖5所示。
2.1 TDOA算法測試
聲源定位坐標示意圖如圖6所示,在平面上分布有3個傳感器[A,B,C],坐標分別為[(0,0)],[(a,0)]和[(0,a)]。
2.2 Kalman濾波器設計
Kalman濾波算法是一個最優(yōu)化自回歸數(shù)據(jù)處理算法,是利用當前時刻的測量值以及前一時刻的估計值來更新狀態(tài)變量,最終估計出當前時刻的最優(yōu)值[9?11]。由于音量、周圍噪聲、元器件及電路本身等原因,均會對測量時間產(chǎn)生影響,使用Kalman濾波對計算結果進行優(yōu)化處理,得出音源位置的最優(yōu)估計值。
通過表2可以看出,經(jīng)過Kalman濾波之后的定位結果要優(yōu)于優(yōu)化之前的定位結果。濾波之前定位誤差最大可以達到25 mm,濾波之后,將誤差控制在10 mm以內(nèi)。
本文通過使用Kalman濾波算法和TDOA定位算法完成基于STM32F103ZET6為控制核心的聲音定位系統(tǒng)的設計。經(jīng)過實驗結果論證,經(jīng)過Kalman濾波對于TDOA算法的計算結果進行優(yōu)化處理后,定位精度得到提高,減小了定位誤差值。由于雙算法的計算復雜度,使得Kalman濾波僅進行了10次運算,在計算準確度上存在著一定的不足。同時也使計算時間增加,因此對于兩種算法的混合應用仍然有較大的提升空間。
參考文獻
[1] 耿艷香,梁雪芹,董愛云,等.基于MSP430的聲音定位系統(tǒng)設計[J].實驗室科學,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].實驗室研究與探索,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] 韓毅,吳初娜,李龍飛,等.基于到達時差的聲音定位系統(tǒng)的研究與實現(xiàn)[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)絡中免于測距的聲音定位算法[J].東北大學學報(自然科學版),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)運動目標雙曲線RFID定位方法[J].計算機應用,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] 王益平,王皓,吳衡,等.基于到達時差的低功耗聲音定位系統(tǒng)[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].傳感技術學報,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)設計[J].計算機科學,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)設計[J].實驗室研究與探索,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] 黃小平,王巖.卡爾曼濾波原理及應用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] 李慶瀛,褚金奎,李榮華,等.基于卡爾曼濾波的移動機器人運動目標跟蹤[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.