来源:eefocus
时间:2014-03-12
声源定位跟踪技术在当今社会有着越来越广泛的应用。在此使用两个高灵敏度麦克风作为传感器,配以音频信号处理芯片,接收音频信号并进行模数转换,使用FPGA器件作为核心控制器,结合TDOA算法和ILD算法,实现在室内环境下、二维平面内的声源定位。并根据声源定位的信息驱动摄像头转动,使其一直对准于声源所在位置,并保持持续跟踪。FPGA使用NiosⅡ内核,方便使用高级语言进行程序设计。摄像头的视频输出信号可接于PC机或其他视频设备。与其他定位算法相比,系统减少了使用传感器的数量。
在日常生活中,声源跟踪定位技术有着广泛的应用。例如在视频会议中,声源定位被用于检测讲话人的位置,并自动调整摄像头转动角度,使其对准讲话者;舞台演出中,声源定位跟踪可是摄像头自动保持指向主持人或主角;安防保卫系统中,声源定位技术可使监控摄像头在监控区域发生声响的瞬间对准于声源位置,并保持对移动声源的跟踪。
现在常见的麦克风声源定位算法多见于TDOA算法,其基本原理是根据信号到达两个不同位置的麦克风的时间差,估计出信号到达两个不同位置麦克风的距离差,可以列出一个双曲线方程,同时使用另外两个不同的麦克风同时检测信号可以得到另外一个双曲线方程,两个双曲线方程的交点就是声源的位置坐标。使用这种方法进行声源定位时,至少要使用三个麦克风,使用两次TDOA算法进行运算,才能完成一次定位操作。为了实现更精确的声源定位,也常采用阵列技术,将多个麦克风组成线阵,或方阵采集信号进行声源定位。但这种定位技术的算法更为复杂。本文采用两个高灵敏度麦克风作为传感器,选用FPGA作为控制器,当对声源实现定位后,控制步进电机转动,使摄像头对准声源。当声源位置发生移动时,可使摄像头自动保持跟踪。
1 设计原理
系统使用TDOA算法和ILD算法相结合的方法,实现声源的定位。在二维平面,即声源和麦克风处于同一平面时,麦克风接收到的信号模型在考虑信号传播的逆平方定律时可表示为:
x(t)=s(t-τ)/d+n(t) (1)
式中:s(t)为源信号;n(t)为加性白噪声;d和τ分别为信号到达麦克风的距离和时延。
使用ILD方法在计算能量时可以忽略时延信息。在[0,l]时间范围内,麦克风接收到的信号能量,就是该时间段内信号采样的平方和,即:
对于两个麦克风组成的阵列,可得到麦克风接收到信号的能量与麦克风距声源距离的关系为:
求解式(6)和式(7)组成的方程组就可得到声源位置坐标。通过进一步的变换可以得到该方程的闭合解。
2 系统硬件设计
本文采用Altera公司的CycloneⅢ系列FPGA芯片EP3C16F484作为核心处理器。使用UDA1341芯片作为前端音频信号采集电路的处理芯片,使用两个高灵敏度的麦克风作为音频信号的传感器。两个麦克风朝向同一方向,间距0.5 m并行放置。麦克风在使用前需要标定,保证麦克风在同一位置接受同一信号时,其接收到的信号的幅值一致。使用两个两相步进电机对摄像头的转动角度进行控制。为了记录数据,在系统中添加了一个4 Mb的FLASH存储器,使用一片带字库的16x2的液晶用于显示定位信息。为保证摄像头的视线不受环境障碍物的干扰,摄像头在放置时应该有一定的高度,一般高于麦克风的放置高度,因此需要两个步进电机调整摄像头的角度,一个调整水平转动角度,另一个调整俯仰角。系统框图如图1所示。
EP3C16F484是CycloneⅢ型FPGA,是一种低成本的应用于终端市场的FPGA器件,其共有15 408个逻辑单元,56个嵌入式乘法器,4个锁相环,346个用户定义的I/O脚。可满足一般系统核心控制器的应用。UDA1341是一种经济型的音频信号采集编码芯片,有两个ADC模块,过采样比可达128,可以编程设置其各种工作参数,如增益等。系统在启动时首先进行初始化操作,通过UDA11341芯片的L3总线接口设置芯片的工作方式和工作参数。两个麦克风所接收到的音频信号经音频信号采集电路处理后,转换成离散的信号,送至FPGA中进行处理。控制器根据接收到的信号的序列判断出两个麦克风接收到信号的时差和信号功率的衰减,进而计算出声源的位置坐标。控制步进电机转动,使摄像头对准声源。系统同时将测得的声源的位置坐标在LCD显示出来。用户在使用时可根据具体的使用环境建立定位的坐标系。确定坐标系后在系统启动初始化时将两个麦克风的位置和摄像头的位置的坐标通过矩阵键盘输入到系统中。
ICkey(云汉芯城)是一家一站式电子元器件采购网, 提供Digikey、Mouser(贸泽)、Element14(e络盟)、Wpi(大联大)、Future(富昌)、Avnet(安富利)、Arrow(艾睿)、Chip1stop、Onlinecomponents、Master等主流供货商的芯片采购服务,在IC采购, 元器件交易和IC交易业务领域中排名的在线采购平台。