利用 MEMS 麦克风阵列进行声源定位:原理与应用

由无锡硅源科技有限公司提供
了解我们的 MEMS 麦克风 | 了解我们的传感器模块

1.导言

在之前讨论超声波测距的基础上,本文将深入探讨如何将 MEMS 麦克风阵列用于以下用途 声源定位 - 的一项重要技术 智能设备、机器人和空间音频系统.

配备高性能 MEMS 麦克风阵列后,系统可以检测到 到达方向到达角(AoA) 声源,实现以下功能 语音跟踪, 基于声音的人机交互室内声学绘图.

2.什么是麦克风阵列?

A 麦克风阵列 是多个麦克风的结构性排列,通常以 线形, 矩形六角形 模式。
这些阵列可以捕捉从不同方向传来的声波,并通过计算模型估算声音的来源。

从原理上讲,麦克风阵列的功能与无线通信中的天线阵列非常相似,但针对的是声波。

例如 4 个麦克风线性阵列 可用于检测声音到达的时间差(TDOA),并通过几何和信号处理计算 AoA。

图 .线性麦克风阵列

3.近地点定位理论

假设声波到达两个间距为 ddd 的麦克风,声音到达时的角度为 θthetaθ。
声音路径的不同导致了 时间延迟(Δt) 给出:Δt=dcos(θ)c\Delta t = \frac{d \cos(\theta)}{c}Δt=cdcos(θ)

其中,ccc 是音速(~340 米/秒)。
通过测量 Δt,我们可以计算出到达角: θ=arccos(Δt⋅cd)\theta = \arccos\left(\frac{Delta t \cdot c}{d}\right)θ=arccos(dΔt⋅c)

这种计算方法可以扩展到 多麦克风阵列从而大大提高了空间分辨率。

图声音传播模型

4.实际执行

在 MATLAB 或嵌入式系统中,交叉相关函数用于计算 TDOA:

[data, fs] = audioread('array_record.wav');
x = data(1, :); y = data(4, :);
d = 0.15; c = 340;

X = fft(x); Y = fft(y);
correlation = ifft(X .* conj(Y));
[m, idx] = max(correlation);
delta_t = (idx - 1 - length(correlation)/2)/ fs;
theta = acos(delta_t * c / d) / pi * 180;

这种简单的算法可以提供精确的方向估算,这是 波束成形, 降噪源分离.

5.多阵列信号源定位

通过将来自 两个或多个麦克风阵列该系统可以精确定位 二维或三维位置 声源。
每个阵列估算一个方向,它们之间的交叉点决定了确切的位置--这一原理也用于 机器人听觉感知会议音频系统.

图 .声源定位模型

6.基于指纹的定位

除了 AoA 外,另一项新兴技术涉及 声强指纹识别 - 分析整个空间多个频率的信号强度分布。
在神经网络的帮助下,这些声音 "指纹 "可以在预定义的网格内对设备位置进行分类,在室内达到厘米级的精确度。

这种混合方法结合了 声传播建模机器学习可实现以下应用

  • 室内设备定位
  • 基于音频的手势识别
  • 空间声学分析

7.应用

  • 智能家居设备:语音指令方向跟踪
  • 工业声学:基于声音的故障检测
  • 机器人:环境声音定位
  • 助听器:定向噪声抑制
  • 会议系统:扬声器自动对焦

有关商业集成,请访问
🔗 无锡硅源的 MEMS 麦克风
🔗 麦克风阵列传感器模块

8.参考文献

滚动至顶部