声源定位算法
❶ 声音定位中怎么测的时间然后根据时间差来计算距离
这个靠人力很困难,得用专门的设备或者自己做的电路才行。
在大学生电子设计竞赛中,一般是用单片机做。首先在系统中必须有一张地图,且系统必须随时知道自己的方位(有固定的角度参考基点)。
一般至少要有3个以上的点才能保持精度。它有个接收器(可360度旋转,并可以测当前的角度),先在A点停下(A点坐标要可以知道),然后旋转接收器,肯定存在一个角度的声音强度特别大。此时,记下旋转的角度(可以推算出斜率),那么就说明,声源和A点是在一条直线上,而且还知道它的斜率,这样就可以通过A画出一条直线(这个是在系统软件中完成,人看不到)。
然后,再通过另外一个B点(同样知道坐标),重复上面的过程,此时,B和声源也一定在一条直线上,也知道了角度和斜率。因为声源是同一个且只有一个,那么这前后两条线的交点必定就是声源。
第三个点用来校验和提高精度的,如果采集的点更多,精度会不断提升。
PS:你的分析出现了方向性错误,声源定位,并不是靠时间差的。
这种题目在以前大学生电子设计竞赛中曾多次出现过。
你说的时间差定位,主要用在超声波定位中,它属于一种主动定位,也就是发生超声波,同时开始计数,当接收到回波的时候,停止计数,根据时间差与声波的速度,推算出障碍物的距离。
这种定位是一种主动定位,也是用单片机做的。前一种是被动定位,也就是直接确定发声物体的位置。难度上来看,前者比后者难得多。后者,淘宝上直接可以买到商品,从40块左右到300多都有。
而前者没有直接的产品,需要自己做,技术难度比较高。
❷ 如何检测麦克风阵列声源定位的性能好坏
一般来说,基于麦克风阵列的声源定位算法划分为三类:一是基于波束形成的方法;
二是基于高分辨率谱估计的方法;
三是基于声达时延差(TDOA)的方法。
基于最大输出功率的可控波束形成技术Beamforming,它的基本思想就是将各阵元采集来的信号进行加权求和形成波束,通过搜索声源的可能位置来引导该波束,修改权值使得传声器阵列的输出信号功率最大。
这种方法既能在时域中使用,也能在频域中使用。
它在时域中的时间平移等价于在频域中的相位延迟。
在频域处理中,首先使用一个包含自谱和互谱的矩阵,称之为互谱矩阵(Cross-Spectral Matrix,CSM)。
在每个感兴趣频率之处,阵列信号的处理给出了在每个给定的空间扫描网格点上或每个信号到达方向(Direction ofArrival,DOA)的能量水平。
因此,阵列表示了一种与声源分布相关联的响应求和后的数量。
这种方法适用于大型麦克风阵列,对测试环境适应性强。
GLFore的acam100就是这个原理。