麦克风阵列的方向性图

信息处理 波束成形
2022-02-20 21:14:36

麦克风阵列的方向性模式是麦克风权重值的傅立叶变换。通过修改幅度权重,我们可以修改方向图的形状。

当所有麦克风的重量都相等时,我真的可以看到这一点。
矩形的傅里叶变换是一个 sinc 函数,如下图所示:

同等价值的麦克风阵列元件和指向性模式

现在我相信,如果我对麦克风阵列的元素值应用一个 sinc 函数,我应该在我的方向性图案中得到一个矩形形状。

我有自己的模拟程序。当麦克风值具有同等价值时,它会起作用。但是当我将 sinc 值赋予麦克风阵列元素时,我没有得到我所期望的(矩形模式)。

我是否遗漏了一些东西,或者只是我的程序被窃听了?

编辑:根据评论中的要求,我应用的权重可以在下图中看到。40 是我阵列的麦克风数量。抱歉,这张图看起来很恶心,这是我的 C++ 程序的输出。

在此处输入图像描述

1个回答

正如我在评论中所说,您听起来像是在做正确的事情。

下面是scilab最后由代码生成的两个图。

第一个图显示了应用于传感器的两种不同的权重。第二个图显示了相关的光束模式。虽然不是“统一的”,但它是一个公平的近似值。sinc

传感器权重

相关光束模式

编辑

更改以下代码以适应偶数个传感器:

NOn2 = 20;
N = 2*NOn2;
w_uniform = ones(1,N);
omega = 2*%pi*([0:N-1] - N/2)/N + 0.0001;
w_sinc = [sin(N/15*omega)./(omega) ]

然后我得到下面的图。

在此处输入图像描述

在此处输入图像描述

权重和波束图之间的关系就像傅里叶变换: 越宽sinc,波束图越窄。越窄sinc,光束图案越宽。


代码仅在下面

// http://www.astron.nl/other/workshop/MCCT/MondayPatel.pdf
lambda = 1;
d = lambda/3;
theta = [-%pi/2:0.01:%pi/2];

phase_adjacent = 2*%pi*d/lambda*sin(theta);

NOn2 = 7;
N = 2*NOn2 + 1;
w_uniform = ones(1,N);
omega = 2*%pi*[-NOn2:NOn2]/N + 0.0001;
w_sinc = [sin(N/4*omega)./(omega) ]

e_to_phi = exp(-%i*phase_adjacent.'*[0:N-1]);

r_uniform = e_to_phi*w_uniform';
r_sinc = e_to_phi*w_sinc';

figure(0);
clf;
plot(theta/%pi*180,abs(r_uniform));
plot(theta/%pi*180,abs(r_sinc),'r.');
title('Uniform weighted (blue solid) and sinc weighted (red dotted) array resposnes');

figure(1);
clf;
plot(w_uniform);
plot(w_sinc,'r.');
title('Uniform weighted (blue solid) and sinc weighted (red dotted) sensor weightings');