Beamforming

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010592995/article/details/81289461

1. 阵列简介

1.1 均匀线阵


    假设0、1、…M-1阵元的均匀线阵中,参考阵元接收的信号为s(t),则第m个阵元接收到的信号为s(tτm),傅里叶变换如下


Sm(ω)=+sm(t)ejωtdt

     =+s(tτm)ejωtdt
     
=S(ω)ejωτm

则阵列接收的信号可以表示为


X(ω)=S(ω)[1 ejωτ ejωτ  ejωτM1]

其中,定义


a=[1 ejωτ ejωτ  ejωτM1]

为阵元的响应向量(array response vector),也称作阵列流形(array manifold vector)。
  在delauy-and-sum beamformer中,每个阵元的权值即为该阵元相对参考阵元需要补偿的相位延迟,因此权值即为阵列流形的共轭转置
  根据上面的分析,写出窄带线性阵列的delay-and-sum波束图代码如下

delay-and-sum beamformer

M=8;                 % 阵元数
c=340;                         % 声速
f = 2125;                      % 信号频率
d = 0.08;                      % 阵元间距
theta=linspace(-pi/2,pi/2,200);% 入射信号角度范围
theta0=30*pi/180;                      % 注视方向
w=exp(1j*2*pi*f*sin(theta0)*[0:M-1]'*d/c);       % 导向向量
p = zeros(length(1:length(theta)),1);
for  j=1:length(theta)                                     % 角度扫描
    a=exp(-1j*2*pi*f*sin(theta(j))*[0:M-1]'*d/c);% 入射信号方向向量
    p(j)=sum(w.*a)/M;                                        % 延时-求和
end
% 画图
figure;
plot(theta/pi*180,abs(p)),grid on
xlabel('degree')
ylabel('amplitude')
title('8阵元均匀线阵方向图')

方向图如下


这里写图片描述

1.2 均匀圆阵

  跟上面的分析相同,关键地方就是写出阵列流形向量和权值向量
  假设M阵元均匀圆阵,半径为R,阵元在xy平面上,则各个阵元相对x轴的夹角γm=2πm/M,均匀圆阵中,一般以圆心为参考,要写出阵列方向向量,就是要计算当单位平面波以夹角(ϕθ)入射时,各阵元相对圆心接收到的信号时间差。


  计算上图1
中的距离d,就要计算这个余弦角β,由三余弦定理(查百度才知道叫这个名字,逃~)有


cos(β)=cos(ϕγm)sin(θ)

然后,就可以计算得到距离差,得到时间差


τm=cos(ϕγm)sin(θ)

最后,根据上面线阵的相同分析,可以直接写出均匀圆阵的的阵列流形向量如下


a=[ejωcos(ϕγ0)sin(θ)/c  ejωcos(ϕγ1)sin(θ)/c    ejωcos(ϕγM1)sin(θ)/c ]  

  
然后,写出均匀圆阵的delay-and-sum波束图就简单了

M=8;                 % 阵元数
c=340;                         % 声速
f = 2125;                      % 信号频率
r = 0.08;                      % 阵元间距
phi=linspace(0,2*pi,360);% 入射信号角度范围

theta = 80*pi/180; %固定一个俯仰角
gamma = (0:360/M:360-360/M)*pi/180;%麦克风位置

tao = r*sin(theta)*cos(angle(1)-gamma)/c;     %方位角 0 < angle <360

phi0=60*pi/180;                      % 注视方向
w=exp(1j*2*pi*f*r*cos(phi0-gamma)*sin(theta)/c);       % 导向向量
p = zeros(length(1:length(phi)),1);
for  j=1:length(phi)                                     % 角度扫描
    a=exp(-1j*2*pi*f*r*cos(phi(j)-gamma)*sin(theta)/c);% 入射信号方向向量
    p(j)=sum(w.*a)/M;                                        % 延时-求和
end
% 画图
figure;
plot(phi/pi*180,abs(p)),grid on
xlabel('degree')
ylabel('amplitude')
title('均匀圆阵方向图')

%画极坐标图
figure,polarplot(phi,abs(p))


这里写图片描述

另外,圆阵是面阵,可以进行二维空间搜索,简单改下程序,画出三维图

M=8;                 % 阵元数
c=340;                         % 声速
f = 2125;                      % 信号频率
r = 0.08;                      % 阵元间距
phi=linspace(0,2*pi,360);% 入射信号方位角范围

theta = linspace(0,pi/2,90);% 入射信号俯仰角范围

gamma = (0:360/M:360-360/M)*pi/180;%麦克风位置


phi0=130*pi/180;                      % 注视方向
theta0 = 80*pi/180;

w=exp(1j*2*pi*f*r*cos(phi0-gamma)*sin(theta0)/c);       % 导向向量
p = zeros(length(1:length(phi)),length(theta));
for i = 1:length(theta)
    for  j=1:length(phi)                                     % 角度扫描
        a=exp(-1j*2*pi*f*r*cos(phi(j)-gamma)*sin(theta(i))/c);% 入射信号方向向量
        p(j,i)=sum(a.*w)/M;                                        % 延时-求和
    end
end
% 画图

figure,mesh(abs(p))

注视方向在(130,80)时的阵列方向图如下所示


这里写图片描述

上图中可以看到,均匀圆阵的延时累加波束形成在俯仰角上的精度很差,在0~40度的范围内几乎无法分辨

2. 宽带波束形成

上面程序中都指定了一个固定频率,做的是窄带波束形成,而语音信号为宽带信号,此时的波束图应该同时是入射方向跟信号频率的函数。
宽带波束形成可以在时域和频域实现,,下面分别简单介绍

2.1 时域处理

时域处理就是根据某一最优准则设计出一组FIR系数,或者叫sensor delay-lines (SDLs),还有叫tapped delay-lines
(TDLs),框图如下,一些时域LCMV、MVDR都属于这种框架


2.2 频域处理

频域处理是利用DFT,将信号变换到频域,然后在每个频率带上使用窄带的方法做波束形成,最后将各个子带信号相加变回到时域,框图如下




  1. Design of robust high-order superdirectivity for circular arrays with sensor gain and phase errors。
展开阅读全文

没有更多推荐了,返回首页