一、前言
此示例说明了麦克风阵列波束成形,以便在干扰为主的嘈杂环境中提取所需的语音信号。此类操作可用于增强语音信号质量以进行感知或进一步处理。例如,嘈杂的环境可以是交易室,麦克风阵列可以安装在交易计算机的显示器上。如果交易计算机必须接受交易者的语音命令,波束成形器操作对于提高接收的语音质量和实现设计的语音识别精度至关重要。
本示例显示了两种类型的时域波束成形器:时间延迟波束成形器和弗罗斯特波束成形器。它说明了如何使用对角线载荷来提高弗罗斯特波束成形器的鲁棒性。如果您的系统有声音支持,您可以在每个处理步骤中收听语音信号。
二、定义均匀线性数组
首先,我们定义一个均匀线性阵列(ULA)来接收信号。该阵列包含 10 个全向麦克风,元件间距为 5 厘米。
三、模拟接收到的信号
接下来,我们模拟麦克风阵列接收到的多通道信号。我们首先加载两个录制的演讲和一个笑声记录。我们还加载笑声音频片段作为干扰。音频信号的采样频率为 8 kHz。
由于音频信号通常很大,因此将整个信号读入存储器通常不切实际。因此,在这个例子中,我们将以流的方式模拟和处理信号,即在输入端将信号分解成小块,处理每个块,然后在输出端组装它们。
第一个语音信号的入射方向方位角为 -30 度,仰角为 0 度。第二个语音信号的方向在方位角为 -10 度,在仰角为 10 度。干扰来自方位角 20 度和仰角 0 度。
现在我们可以使用宽带集电极来模拟阵列接收的 3 秒多通道信号。请注意,此方法假定每个输入单通道信号在阵列原点由单个麦克风接收。
我们生成一个功率为1e-4瓦的白噪声信号,以表示每个传感器的热噪声。本地随机数流可确保结果可重复。
我们现在开始模拟。在输出端,接收到的信号存储在 10 列矩阵中。矩阵的每一列代表一个麦克风收集的信号。请注意,我们还在模拟期间使用流方法播放音频。
请注意,笑声掩盖了语音信号,使它们无法理解。我们可以在通道 3 中绘制信号,如下所示:
四、使用延时波束成形器的工艺
时间延迟波束成形器补偿来自特定方向的信号在整个阵列中的到达时间差。对时间对齐的多通道信号进行相干平均,以提高信噪比(SNR)。现在,定义一个对应于第一个语音信号的入射方向的转向角,并构建一个时间延迟波束成形器。
接下来,我们处理合成的信号,绘制并收听传统波束成型器的输出。同样,我们在处理过程中回放波束成形的音频信号。
可以通过阵列增益来测量语音增强,阵列增益是输出信干加噪声比(SINR)与输入SINR的比值。
第一个语音信号开始出现在时间延迟波束成形器输出中。我们获得了 9.4 dB 的 SINR 改进。不过,背景笑声还是可以和演讲相媲美的。要获得更好的波束成形器性能,请使用霜波束成形器。
五、使用霜梁成型器进行加工
通过将FIR滤波器连接到每个传感器,Frost波束形成器具有更多的波束成形权重来抑制干扰。它是一种自适应算法,可将零点放置在学习的干扰方向上,以更好地抑制干扰。在转向方向上,Frost波束形成器使用无失真约束来确保所需信号不被抑制。让我们创建一个 Frost 波束成形器,每个传感器后都有一个 20 抽头 FIR。接下来,使用弗罗斯特波束成形器处理合成信号。
处理完整个音频信号后,我们可以播放和绘制整个音频信号。
请注意,干扰现已取消。弗罗斯特波束成形器的阵列增益为14 dB,比时间延迟波束成形器的阵列增益高4.5 dB。性能改进令人印象深刻,但计算成本很高。在前面的示例中,每个话筒使用顺序为 20 的 FIR 滤波器。对于所有 10 个传感器,需要反转 200 x 200 的矩阵,这在实时处理中可能很昂贵。
六、使用对角线载荷来提高霜质光束成型器的鲁棒性
接下来,我们要将数组引导到第二个语音信号的方向。假设我们不知道第二个语音信号的确切方向,除了粗略估计方位角-5度和仰角5度。
讲话几乎听不见。尽管波束成型器的增益为6.1 dB,但转向方向不准确,性能受到影响。提高弗罗斯特波束成形器鲁棒性的一种方法是使用对角线载荷。此方法向估计协方差矩阵的对角线元素添加少量。这里我们使用对角线值 1e-3。
现在,输出语音信号得到了改善,我们对角线加载技术获得了0.3 dB的增益改进。
七、总结
此示例说明如何使用时域波束成形器从噪声麦克风阵列测量中检索语音信号。该示例还展示了如何模拟麦克风阵列接收的干扰主导信号。该示例同时使用了延时器和弗罗斯特波束成形器,并比较了它们的性能。霜波束形成器具有更好的干扰抑制能力。该示例还说明了如何使用对角线载荷来提高 Frost 波束成型器的鲁棒性。
八、参考文献
[1] O. L. Frost III, An algorithm for linear constrained adaptive array processing, Proceedings of the IEEE, Vol. 60, Number 8, Aug. 1972, pp. 925-935.
九、程序
使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)
打开下面的“XXX.mlx”文件,点击运行,就可以看到上述效果。
程序下载:基于matlab使用麦克风阵列进行声波束成形资源