第一章:声学基础与阵列概念

大家好,我是你们这门课的老朋友。做麦克风阵列这行十几年了,每次带新人,我都是从这一章开始讲起。为什么?因为后面的波束形成、自适应算法,说白了都是建立在这些基础概念之上的。地基不牢,楼盖得再高也容易塌。

1.1 声音的物理特性——你得先懂它长什么样

声音是什么?说白了就是空气的振动。一个声源发声,就像往平静的水面扔了块石头,波纹一圈圈往外扩散。只不过水里是水波,空气里是疏密波——我们叫它纵波。

这里有几个关键参数,我建议你刻在脑子里:

  • 频率(f):单位Hz。人耳能听到的大概是20Hz到20kHz。低于20Hz叫次声波,高于20kHz叫超声波。做语音增强,我们主要关心300Hz到3400Hz这个频段。
  • 波长(λ):声波在一个周期内传播的距离。公式很简单:λ = c / f,c是声速(常温下约343m/s)。
  • 声速(c):温度每升高1℃,声速增加约0.6m/s。我在北方冬天做测试时吃过这个亏,算好的延迟结果全偏了——嗯,温度的影响不能忽略。

核心公式:

λ = c / f

记住这个公式,后面设计阵列间距全靠它。

还有一个概念叫声压级(SPL),单位是dB。0dB是人耳能听到的最小声压,120dB是痛阈。做阵列设计时,动态范围是个硬指标——我见过有人用廉价MEMS麦克风做远场拾音,结果底噪比信号还大,那叫一个惨。

1.2 波束形成的基本思想——让麦克风“听”向特定方向

波束形成,名字听着高大上,其实原理很简单。你想想看,两个人站一排,一个人从左边说话,声音先传到左边的人,再传到右边的人——中间有个时间差。如果我们把这个时间差补偿回去,再把两路信号加起来,左边来的声音就变强了,右边来的声音反而被削弱了。

这就是波束形成的核心:时延补偿 + 加权求和

用数学语言表达就是:

y(t) = Σ w_i · x_i(t - τ_i)

其中w_i是权重,τ_i是时延补偿。调整w_i和τ_i,就能让阵列“指向”不同方向。

个人经验:我在做智能音箱的远场唤醒时,发现波束形成对低信噪比场景特别有效。有一次在嘈杂的客厅里测试,单麦克风识别率只有60%,换成4麦克风线性阵列后直接飙到92%。效果立竿见影。

波束形成主要分两类:

  • 固定波束形成:权重和时延是固定的,指向一个预设方向。实现简单,但灵活性差。
  • 自适应波束形成:根据实际信号环境动态调整权重。能自动抑制干扰,但计算量大,容易发散。

我刚开始做自适应波束形成时,遇到过算法发散的情况——输出全是噪声,比不做处理还差。后来发现是协方差矩阵估计出了问题。避坑指南:一定要加对角加载(diagonal loading),这是稳定性的保障。

1.3 麦克风阵列的几何构型——摆在哪、怎么摆

阵列的几何构型直接决定了它的性能。说白了,就是麦克风怎么放的问题。我见过有人随便摆几个麦克风就号称阵列,结果方向图一塌糊涂——嗯,这里要讲清楚。

1.3.1 线性阵列

最简单也最常用。麦克风排成一条直线,间距通常取半波长(λ/2)。为什么是半波长?因为间距太大会出现栅瓣(grating lobe),相当于方向图上多了几个“假耳朵”。

线性阵列的优点是结构简单,适合一维方向(比如水平方向)的波束形成。缺点是只能区分左右,分不清前后——这叫“前后模糊”。

我曾经踩过的坑:做车载语音系统时,用了4麦克风线性阵列,结果驾驶员和副驾的声音分不开。后来改成圆形阵列才解决问题。线性阵列适合声源在同一个平面上的场景,别指望它做三维定位。

1.3.2 圆形阵列

麦克风均匀分布在圆周上。圆形阵列没有前后模糊的问题,能实现360°全方位覆盖。适合智能音箱、会议系统这类需要全向拾音的场景。

圆形阵列的设计参数主要有两个:

  • 半径R:决定了阵列的低频响应。R越大,低频指向性越好。
  • 麦克风数量M:决定了高频的波束分辨率。M越多,波束越窄。

我一般建议:半径取10-15cm,麦克风数量至少6个。少于6个,高频方向图会变得很难看。

1.3.3 平面阵列

麦克风分布在二维平面上,常见的有矩形阵、十字阵、L形阵。平面阵列能同时分辨水平角和俯仰角,适合三维空间定位。

平面阵列的设计自由度更高,但计算量也更大。我做过一个8×8的矩形阵,64个通道同时处理,DSP差点跑冒烟。后来降采样到16kHz,才勉强跑起来。

下面这张图展示了三种常见阵列的几何构型:

线性阵列 间距 d = λ/2 圆形阵列 半径 R,M 个麦克风 平面阵列 M × N 矩形阵

1.4 阵列性能的关键指标

选阵列构型时,我一般看这几个指标:

指标 含义 影响因素
指向性因子(DF) 阵列对目标方向的增益 麦克风数量、阵列尺寸
波束宽度(BW) 主瓣的-3dB宽度 频率、阵列孔径
旁瓣电平(SLL) 旁瓣相对于主瓣的增益 加权函数、阵列构型
栅瓣抑制 避免出现虚假主瓣 麦克风间距

一句话总结:麦克风数量决定上限,几何构型决定下限。选对了构型,事半功倍;选错了,再多麦克风也白搭。

1.5 本章小结

这一章我们聊了声音的物理特性、波束形成的基本思想,以及三种常见的阵列构型。我个人觉得,理解这些基础概念比背公式更重要。公式忘了可以查,但物理直觉丢了就很难找回来。

做阵列设计这么多年,我最大的体会是:没有最好的阵列,只有最合适的阵列。线性阵列简单高效,圆形阵列全向覆盖,平面阵列三维定位——选哪个,取决于你的应用场景。

下一章我们会深入波束形成的数学推导,包括延迟求和、MVDR这些经典算法。到时候我会拿实际项目中的代码来演示,保证让你看得过瘾。


专注资料整理