基于TDOA和Kalman滤波的声音定位系统的设计

2018-10-12 05:48王雷郝建新陈蔚蔚
现代电子技术 2018年19期

王雷 郝建新 陈蔚蔚

摘 要: 使用单片机STM32F103ZET6为控制核心,通过以LM324芯片、LM567鉴频芯片为主组成的固定声音识别电路设计声音定位系统。针对在固定音频信号采集过程中,由元器件本身以及周围环境等影响而产生的噪声误差,采用TDOA算法和Kalman滤波相结合的方式,对于TDOA算法的计算结果进行优化处理,得出音源位置的最优估计值。经过运行调试,使用Kalman滤波之后,使得系统的定位精度得到较大的提高,实现对目标的快速稳定跟踪。

关键词: 声音识别; 声音定位; 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

0 引 言

聲音定位是一种应用广泛的技术[1],利用声学传感器以及与其相连的电子设备(MCU)和相关电路,处理接收到的声波信号,确定声源的位置[2]。声音在空间上沿球面传播,时间上具有唯一性[3],因此在临床医学[1]、现代战争进攻与防御[2]、机器视觉[3]、无线传感器网络[4?5]等领域均得到了重要的应用。TDOA算法是一种较为常用的定位算法[2?8],其计算过程更加简单,计算精度准确。由于声源信号接收过程中存在随机噪声等影响,使用Kalman滤波可有效地降低噪声影响。Kalman滤波理论已经在国防、军事、跟踪、制导等许多领域得到广泛应用[10]。将Kalman滤波算法与TDOA算法结合,既能够将声源信号采集系统的噪声影响降低,又能快速准确地确定声源信号的位置,同时采用MCU?STM32F103ZET6作为主控芯片[7],大大提高声音定位系统的稳定性和可靠性。

1 系统设计

系统机械结构如图1所示,在一个500 mm×500 mm的垂直平面上,自由选位放置一个小音源(50 mm×50 mm),产生1 800 Hz的正弦波声源信号,由固定在4个角的拾音器收集,通过信号采集电路传输到控制系统中,经过滤波、计算得出音源的位置,最后驱动定位跟随模块,将红外线射击到音源位置。系统结构框图如图2所示。

1.1 音源模块

输入信号为1 800 Hz的正弦波信号,通过RC振荡电路直接产生正弦波,再经功率放大器驱动扬声器发声。正弦波产生电路不仅要产生所需输出的正弦信号,而且是后面电路的输入信号。电路结构如图3所示。

1.2 声音接收模块[2]

由声音传感器?电容式驻极体话筒、LM324芯片、LM567鉴频芯片为主组成的固定音频识别电路。由扬声器识取声音信号,进行两级放大处理,然后使用LM567对放大后的信号进行鉴频识别。与使用精密电位器设定的固定频率进行对比,当频率相同时,输出一个开关量信号,以达到固定频率识别的目的。声音接收电路结构如图4所示。

1.3 MCU控制模块

选择STM32F103ZET6作为主控MCU,内核为ARM 32位的CortexTM?M3 CPU,最高72 MHz的工作频率,集成256~512 KB的FLASH存储器,64 KB的SRAM。多达11个定时器,方便信号的采集,并集成了多种接口,可以进行不同通信接口的通信。

1.4 定位跟随模块

Arduino单片机控制由两个舵机和红外线发射器组成的定位跟随系统。舵机内置微型处理器,具有速度快、稳定性好、体积小、扭力大等特点。主控MCU与Arduino之间通过蓝牙串口模块进行通信。

2 软件设计

声音定位的关键是求出各个传感器接收到信号的时间差,选用3个传感器,得出3个时间差,即可得出3条双曲线。由于实验中存在误差,因而3条曲线不会交于一点,而是两两相交形成三角形,之后找出3个坐标点形成的三角形的重心,该重心即为发声源的位置。使用单片机的3个中断,计算声音到达传感器的时间,进一步得到时间差。系统流程图如图5所示。

2.1 TDOA算法测试

声源定位坐标示意图如图6所示,在平面上分布有3个传感器[A,B,C],坐标分别为[(0,0)],[(a,0)]和[(0,a)]。

2.2 Kalman滤波器设计

Kalman滤波算法是一个最优化自回归数据处理算法,是利用当前时刻的测量值以及前一时刻的估计值来更新状态变量,最终估计出当前时刻的最优值[9?11]。由于音量、周围噪声、元器件及电路本身等原因,均会对测量时间产生影响,使用Kalman滤波对计算结果进行优化处理,得出音源位置的最优估计值。

通过表2可以看出,经过Kalman滤波之后的定位结果要优于优化之前的定位结果。滤波之前定位误差最大可以达到25 mm,滤波之后,将误差控制在10 mm以内。

3 结 论

本文通过使用Kalman滤波算法和TDOA定位算法完成基于STM32F103ZET6为控制核心的声音定位系统的设计。经过实验结果论证,经过Kalman滤波对于TDOA算法的计算结果进行优化处理后,定位精度得到提高,减小了定位误差值。由于双算法的计算复杂度,使得Kalman滤波仅进行了10次运算,在计算准确度上存在着一定的不足。同时也使计算时间增加,因此对于两种算法的混合应用仍然有较大的提升空间。

参考文献

[1] 耿艳香,梁雪芹,董爱云,等.基于MSP430的声音定位系统设计[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的声音定位系统[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] 韩毅,吴初娜,李龙飞,等.基于到达时差的声音定位系统的研究与实现[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] 李大舟,赵海,朱剑,等.无线传感器网络中免于测距的声音定位算法[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的室内运动目标双曲线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] 王益平,王皓,吴衡,等.基于到达时差的低功耗声音定位系统[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的室内协同定位方法[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] 苗晟,周维,唐浩,等.一种声源定位系统设计[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的两轮自平衡小车系统设计[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].北京:电子工业出版社,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].传感器与微系统,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.