0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何进行声音定位?

数据采集卡与传感器 来源:数据采集卡与传感器 作者:数据采集卡与传感 2025-09-23 15:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、人耳是如何进行声音定位的?

在当今科技高度发达的社会中,声音中蕴含的信息受到普遍关注。不论是炮弹的落点,轴承的异常啸叫,还是收音设备的自动跟随等方面,判断其声音产生的方位都是一个重要课题。

现阶段的声音定位技术大多是根据“人耳”发展而来的。人类单耳判断声源的方法是利用了耳廓对声音的反射使声波发生干涉,从而达到判断声音的目的。当然更多情况下是双耳判断方向,主要有时间差(ITD)和声级差(ILD)两种形式,我们简单解释一下。

人类两耳间的距离大约在16-18cm,时间差正是利用了这一点。当声音从左侧传来,左耳首先接收到信号,在零点几毫秒后,右耳接受到声音信号。虽然时间很短,但也能让人类判断声音产生的方向了。

声级差效应的原理与时间差类似。当声源在头部的右侧时,声波经过头部的衰减,到达左耳的声音强度就会减弱,这样人们就可以通过声音强弱辨别声音的方向了。

二、用机器代替耳朵

人耳对声源的定位精度毕竟是有限,而现实生活的需要只靠人耳已经满足不了,所以人们发明出声强探头和麦克风阵列等声源定位仪器。

声强探头可以看作是单个耳朵靠近声源在听,通过不断移动探头以确定声源的位置。更为常用的则是麦克风阵列,麦克风也叫做传声器,它相当于人的耳朵,但是比人耳要灵敏的多。在麦克风阵列上有几个到几千个麦克风,它们按照一定的规则排布构成,因此叫做麦克风阵列。麦克风感知声音的原理在我们之前的文章中介绍过,所以这里我们主要介绍它是怎样代替耳朵判断声音位置的。

三、麦克风阵列代替耳朵的原理

如何通过麦克风阵列判断声源位置呢?我们介绍一种简单的TDOA算法,它可以利用时间差进行定位,下面进行详细说明。

假定一个平面上有3个基站,分别是A1,A2和A3,而且A1、A2、A3的坐标已知,分别是(X1,Y1),(X2,Y2),(X3,Y3)。假设待定位声源Tag的位置是(x,y)。这样就可以得到待测点T到每个基站的距离:

wKgZO2jSR3uARh1OAAAE7etGBuc057.png

,其中i=0,1,2。

wKgZPGjSR56AIjhqAARKoUTypMc105.png

可以想到:求解点的位置,能够转化成求解两条曲线的交点,但由Ri的表达式组成的方程组显然无法求解,因为方程组中的未知量太多。不过距离差R2,1= R2-R1、R3,1= R3-R1是已知的,因为声音的传播速度已知,约为340米每秒,而且通过采集设备能够计算出声音到达各基站的时间,也就能求出距离差R2,1和R3,1了。那么有没有一种曲线与距离差有关呢?这就是双曲线。它的定义是平面上一点到两个定点的距离之差的绝对值是定值的点的轨迹,这种曲线适用于上述情景。如下图所示,(x,y)是待求解的点,到A1、A3的距离是定值可构成一条曲线,到A1、A2的距离是定值可构成一条曲线。所以在刚刚的平面上我们就能画出这样的两条曲线,而它们的交点就是我们T的位置(x,y)。那么就能列出这样的非线性双曲线方程组了。

wKgZPGjSSMOAIAGAAAAkqkuD0Ss021.png

求解此方程组时,我们要尽量减少根式的存在。首先将方程组简化成:

Ri,1= Ri-R1

所以有方程:

Ri^2= (Ri,1 +R1)^2 (1)

wKgZO2jSR3uARh1OAAAE7etGBuc057.png

可得:Ri^2=Xi^2-2Xi*x+x^2+Yi^2-2Yi*y+y^2 (2)

将(2)式代入(1)式中

则有:Xi^2-2Xi*x+x^2+Yi^2-2Yi*y+y^2=Ri,1^2+2Ri,1*R1+R1^2

又因为:R1^2= X1^2-2X1*x+x^2+Y1^2-2Y1*y+y^2

所以可得方程:

Xi^2-2Xi*x+x^2+Yi^2-2Yi*y+y^2-(X1^2-2X1*x+x^2+Y1^2-2Y1*y+y^2) =Ri,1^2+2Ri,1*R1

令Ki=Xi^2+Yi^2化简得:

Ki-K1+2X1*x-2Xi*x+2Y1*y-2Yi*y=Ri,1^2+2Ri,1*R1

Ki-K1+2x(X1-Xi)+2y(Y1-Yi)=Ri,1^2+2Ri,1*R1

又令:Xi,1=Xi-X1、Yi,1=Yi-Y1

则有:Ki-K1-2x*Xi,1- 2y*Yi,1 =Ri,1^2+2Ri,1*R1

通过一系列的等式变换,我们成功将未知项的二次项消除了。当i=2,3时,可得方程组

K2-K1-2X2,1*x-2Y2,1 *y=R2,1^2+2R2,1*R1

K3-K1-2X3,1*x-2Y3,1 *y=R3,1^2+2R3,1*R1

通过消元法得到

X=

wKgZO2jSSOWASKh_AAAHirx6_kg423.png

y=

wKgZPGjSSOWAQTHdAAAHghYRGuw393.png

等式中的未知量只有R1,怎样求解它的值呢?

我们先简化一下上述等式,令:

p1=

wKgZPGjSSkWANMBqAAAGUBNIIvI425.png

q1=

wKgZO2jSSOWAZj46AAADwcSHIIk126.png

p2=

wKgZPGjSSOWAa3oXAAAGSv146Gw484.png

q2=

wKgZO2jSSOWAHKioAAADvO7_1TI873.png

这样就得到等式

x=p1+q1*R1

y=p2+q2*R1 ……(3)

而且等式中的p1、q1、p2、q2都是已知量。再将(3)式带回到(2)式中,因为要求R1的值,所以(2)式中的i=1。可得等式:

R1^2=X1^2-2X1(p1+q1*R1)+(p1+q1*R1)^2+Y1^2-2Y1(p2+q2*R1)+( p2+q2*R1)^2

化简得:

(q1^2+q2^2-1)R1^2-2[q1(X1-p1)+q2(Y1-p2)]R1+[(X1-p1)^2+(Y1-p2)^2]=0

这样就得到一个关于R1得一元二次方程,用求解公式R1=

wKgZPGjSSOaAWyfjAAADEjfHg8w516.png

解出R1,然后将有效解带入到(3)式中就可以求出x、y的值了。

这种TDOA算法较为简单,没有考虑到可能出现的误差,同时参考基站的数量也比较少,所以会导致定位不精确。

四、声源定位实验

下面我们正式开始实验,使用三个麦克风声音传感器组成一个平面直角坐标系,X1麦克风为原点,距X2麦克风15cm,距X3麦克风27cm。麦克风需要5V的直流电源,我们将它的输出端S与USB-5111采集卡的Ai端口连接,GND端连接到采集卡的AGND端口上,VCC端与电源正极连接。电源的负极与采集卡的AGND连接。最后将采集卡与电脑连接。

wKgZPGjSSs-ATbl2AARcyilpjRo730.png

接下来我们打开Smacq DAQ软件采集声音信息。开启Ai0、Ai1,Ai2通道,

wKgZPGjSSwOAQ_MdAATc1wPFFHk789.png

设置采集卡的采样率为100000(Sa/s/ch),其他设置保持默认就可以了。

wKgZO2jSSxiAPNy5AAPbDktmAnk962.png

点击启动,在靠近X1传感器的位置拍手后,点击软件的停止按钮。

wKgZPGjSSy-AZmiJAAwO2YVpG_c241.png

使软件显示全部的采集波形,选择一组反应较为明显的波形,将它的时间信息输入到计算声源位置程序中,

wKgZPGjSS1SAS5bQAAZXf9z5ASE956.png

点击运行后,我们就可以看到声源点出现在靠近X1坐标的位置。

wKgZPGjSS3GAHcWdAASRV6GC6fI039.png

以上内容就是我们声源定位实验的全部内容。如果大家对文章内容有任何问题,欢迎在评论区留言或搜索微信公众号“思迈科华Smacq”直接联系我们。文章视频内容可点击如下连接跳转:数据采集卡与声音定位

希望您点赞、评论、转发,我们下期再见。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据采集
    +关注

    关注

    40

    文章

    7804

    浏览量

    119842
  • 定位
    +关注

    关注

    5

    文章

    1554

    浏览量

    36517
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机如何进行加解密钥操作,一般使用哪种形式,具体流程是什么样子的?

    目前单片机如何进行加解密钥操作,一般使用哪种形式,具体流程是什么样子的?
    发表于 12-04 06:09

    GPS定位和地磁定位有什么区别?

    多个维度进行详细对比。对比表格特性GPS定位地磁定位基本原理接收太空中的卫星信号,通过三角测量法计算位置。测量所在地的地球磁场细微变化,与预先绘制的“地磁地图”进
    的头像 发表于 11-19 12:01 181次阅读
    GPS<b class='flag-5'>定位</b>和地磁<b class='flag-5'>定位</b>有什么区别?

    L083最低功耗是多少,应该如何进行低功耗设计?有哪些注意事项?

    L083最低功耗是多少,应该如何进行低功耗设计?有哪些注意事项?
    发表于 11-12 07:29

    解锁声音定位新维度,AR-1105 双数字麦克风阵列板引领音频感知革命

    广泛应用于智能家居、工业监测、智能交互等领域,为设备提供精准的声音定位与高保真音频采集能力,是声学智能应用的核心组件,助力产品在声音感知与处理方面实现突破性升级
    的头像 发表于 11-07 09:14 520次阅读
    解锁<b class='flag-5'>声音</b><b class='flag-5'>定位</b>新维度,AR-1105 双数字麦克风阵列板引领音频感知革命

    2KW逆变侧功率管的损耗如何进行计算详细公式免费下载

    本文档的主要内容详细介绍的是2KW逆变侧功率管的损耗如何进行计算详细公式免费下载。
    发表于 08-29 16:18 34次下载

    声源定位模块-AR1105# 声源定位# 声音定位

    声音降噪
    深圳市声讯电子有限公司
    发布于 :2025年08月01日 16:01:09

    请问STM32WBA65如何进行matter的学习?

    STM32WBA65如何进行matter的学习?相关的支持都有哪些?有一个X-CUBE-MATTER,可是这个没有集成在STM32CubeMX中
    发表于 04-24 07:22

    何进行电磁干扰处理

    智慧华盛恒辉如何进行电磁干扰 一、引言 电磁干扰已成为一种重要的作战手段,用于削弱、瘫痪或混乱敌方的通信、控制和侦察系统。如何对敌方的装备进行电磁干扰,包括干扰原理、干扰方式、干扰策略以及干扰效果
    的头像 发表于 02-20 10:28 1181次阅读

    DLP4710EVM-LC如何进行烧录?

    DLP4710EVM-LC: 如何进行烧录
    发表于 02-20 08:07

    请问TIDA-00554的光谱模组在安装和调试阶段光机是如何进行校验的呢?

    你好,请问TIDA-00554的光谱模组在安装和调试阶段光机是如何进行校验的呢?比如光电探测器的调试、DMD微镜的调试以及光谱曲线的校正?如何保证多个光机之间的一致性呢?
    发表于 02-20 07:19

    DLPC7540EVM是否支持自定义的图像处理算法,以及如何进行算法的移植?

    是否支持自定义的图像处理算法,以及如何进行算法的移植?
    发表于 02-17 08:25

    请问多片ADS1255/6如何进行同步采集,使用1个SPI接口的情况下?

    请问多片ADS1255/6如何进行同步采集,使用1个SPI接口的情况下。
    发表于 02-12 07:17

    采用AFE0064和ADS8363加fpga结构,如何进行控制?

    采用AFE0064和ADS8363加fpga结构,详问如何进行控制?
    发表于 02-05 06:10

    请问做反射式血氧饱和度测量时如何进行标定呢?

    请问做反射式血氧饱和度测量时如何进行标定呢? 目前已完成透射式血氧饱和度测量仪的设计和实现,采用的Fluke的生命体征模拟仪Prosim8进行标定的,仪器有一个模拟手指,可以将指套式探头夹在模拟
    发表于 01-08 06:42

    请问ADS8689 AGND和DGND如何进行处理?

    请问ADS8689 AGND和DGND如何进行处理?是把AGND和DGND处理为同一个地,还是AGND和DGND通过0欧电阻进行连接?为什么?
    发表于 12-26 06:42