一、前言
此示例演示如何对麦克风阵列接收到的信号进行波束化,以在嘈杂环境中提取所需的语音信号。
二、模型的结构
该模型模拟在 10 元件均匀线性麦克风阵列 (ULA) 上接收来自不同方向的三个音频信号。在接收器处添加热噪声后,应用波束成形并在声音设备上播放结果。
该模型由两个阶段组成:模拟接收到的音频信号并对结果进行波束形成。对应于模型每个阶段的块是:
2.1 接收的音频模拟
Audio Sources- 子系统读取音频文件并指定其方向。
From Multimedia File- 子系统的一部分,每个块从不同的 wav 文件中读取音频,一次 1000 个样本。三个块标记为 ,并对应于三个源。Audio Sourcessource1source2source3
Concatenate- 将三个块的输出连接成一个三列矩阵,每个音频信号一列。From Multimedia File
source angles - Constant块 指定音频源到块的事件方向。该块输出一个 2x3 矩阵。两行对应于每个源的方位角和仰角(以度为单位),三列对应于三个音频信号。Wideband Rx Array
Wideband Rx Array- 模拟在ULA接收的音频信号。此块的第一个输入端口是 1000x3 矩阵。每列对应于每个音频信号的接收样本。第二个输入端口 (Ang) 指定脉冲的入射方向。Ang 的第一行指定每个信号的方位角(以度为单位),第二行指定每个信号的仰角(以度为单位)。第二行是可选的。如果未指定,则假定仰角为 0 度。此块的输出是一个 1000x10 矩阵。每列对应于在麦克风阵列的每个元素上录制的音频。话筒阵列的配置在块对话框面板的选项卡中指定。此配置应与 的块对话框面板上指定的配置匹配。
Receiver Preamp- 在接收到的信号中添加白噪声。
2.2 波束成形
Select beamform angle - Constant块控制输出,并指定要进行波束成形的三个源方向中的哪一个。Multi-Port Switch
Frost Beamformer- 沿输入端口指定的方向对通过输入端口传递的矩阵执行 Frost 波束成形。XAng
2-D Selector- 选择其中一个麦克风元件的接收信号。
Manual switch- 在发送到音频设备的非波束成形音频流和波束成形音频流之间切换。
三、示例
在运行模拟时单击 ,可在播放非波束成形音频流和波束成形流之间切换。运行仿真时,在块中设置值 1、2 或 3 将沿三个音频信号方向之一进行波束成形。您会注意到非波束成形音频听起来乱码,而波束成形后您可以清楚地听到任何一个选定的音频流。
四、程序
使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)
打开下面的“XXX.m”文件,点击运行,就可以看到上述效果。
程序下载:https://download.csdn.net/download/weixin_45770896/87666422