均匀直线阵的常规波束形成matlab

常规波束形成概述

  • 波束形成是将基阵各阵元输出进行一定的处理,从而形成基阵空间指向性的技术。一个波束形成器可以对空间某方位的信号有响应,而抑制其他方位的信号,所以又被称为空域滤波。一般分为常规波束形成(CBF)和自适应波束形成(ABF)。
  • 常规波束形成较为基础,一般又可以根据实现的途径不同,分为时延波束形成和频移波束形成。

时延波束形成

  • 在各阵元间添加时延使波束控制于不同方位的方法成为时延波束形成。设定一个目标方向,当信号来源方向在该目标方向时,响应最大;信号来源于其他方向时,响应较小。将这种响应大小随空间角度的变化作图,就是该波束形成器的波束图。
    在这里插入图片描述

  • 如图,对于均匀直线阵,相邻阵元间存在时延。对于任意角度theta,相邻阵元时延差为:
    在这里插入图片描述

  • 其中d为阵元间距,theta为信号来源方向与基阵法线所成夹角。以阵元0为参考阵元,其表达式为:
    在这里插入图片描述

  • 引出各阵元的方向向量,各阵元相差一个时延,以五元阵为例,依次写出为一个行向量:
    在这里插入图片描述

  • 各阵元的信号即为:
    在这里插入图片描述

  • 为了使目标方向形成最大响应,得到最优加权向量,对各阵元补偿指定方向的相位,构成加权向量。
    在这里插入图片描述

  • 输出信号为:
    在这里插入图片描述
    所以,响应归一化后只需要:
    在这里插入图片描述
    这就是各方向的响应。

  • 运行结果:
    在这里插入图片描述

频域波束形成

频域波束形成是对各阵元信号的谱线进行频移再形成。以M元直线阵、N点信号为例:

  • 对各阵元信号进行目标方向的相位补偿

  • 对该补偿后的信号进行快速傅里叶变换,得到了M*N维矩阵的频谱

  • 对任意角度求取响应:任一角度上每个阵元信号所在谱线进行该角度的频移,如图,时域时延对应的频域乘以该部分。
    在这里插入图片描述

  • 将各阵元某一谱线求和,对各谱线求和,得到该角度的响应。

运行结果如下:
在这里插入图片描述

两种波束形成方法比较

  • 研究两者形成过程可以看出

时域波束形成对整个信号进行时延,直接波束形成;
频域波束形成只选取了信号所在频率进行波束形成。
这里我并没有给信号加噪声,二者表现不明显,但是从过程中可以推测出,如果加上噪声,频域波束形成无疑会筛选掉非信号频带的噪声,波束形成效果会更好!

此处附上代码,信号处理新人,望大家指正:

%% 时延波束形成
clc;clear;close all;
c=1500;f0=800;
d=c/f0/5;fs=40000;
N=2^10;M=5;
t=(0:N-1)/fs;
% st=rand(1,M);
xt=cos(2*pi*f0*t);
theta=-90:0.1:90;theta0=30;
for i=1:M
    a(i,:)=exp(1j*2*pi*(i-1)*d*sind(theta));
    w(1,i)=exp(1j*2*pi*(i-1)*d*sind(theta0));
end
BP=conj(w)*a/M;
figure(1)
subplot(121)
plot(theta,real(BP));title('时域波束形成波束图');xlabel('角度(°)');ylabel('幅值');
subplot(122)
polarplot(theta*pi/180,real(BP));title('时域波束形成极坐标图');

%% 频域波束形成
clc;clear;close all;
c=1500;f0=800;fs=40000;%水下声速、中心频率、采样频率
ome=2*pi*f0;%角频率
d=c/f0/2;%阵元间距
N=2^10;%采样点数
M=5;%阵元个数
t1=(0:2*N-1)/fs;
s0=cos(ome*t1);%参考信号
theta0=30;%波束形成目标角度
theta=-60:0.1:60;%刻画角度坐标
f=(0:N-1)*fs/N;%刻画频率坐标
for i=1:M
    tao(i)=round((i-1)*d*sind(theta0)/c*fs);%各阵元在目标方向时延差取整,在整个信号上截取时延后的信号
    s(i,:)=s0(1,tao(i)+1:tao(i)+N);%生成各阵元时域信号
    sf(i,:)=fft(s(i,:),N);%转换到频域
end
figure(1)
plot(f,real(sf));legend('阵元1','阵元2','阵元3','阵元4','阵元5');

fl=790;fh=810;%筛选出信号所在频率谱线进行波束形成
n1=round(fl/fs*N);n2=round(fh/fs*N);
for i=1:length(theta)
    for j=n1:n2
        for k=1:M
            n11(i)=(k-1)*d*sind(theta(i))/c*fs/N;%对任意角度在该阵元上的时延转换为时域上平移的点
            sf1(k)=sf(k,j)*exp(-1j*2*pi*j*n11(i));%时域时延,频域相移
        end
        s1(j)=sum(sf1);%该谱线上各阵元求和
    end
    s2(i)=sum(abs(s1(j))^2);%该角度上各谱线求和
end
figure(2)
subplot(121)
plot(theta,s2/max(s2));title('频域波束形成波束图');xlabel('角度(°)');ylabel('幅值');
subplot(122)
polarplot(theta*pi/180,s2/max(s2));title('频域波束形成极坐标图');
  • 39
    点赞
  • 245
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
Matlab中的常规波束形成是一种通过阵列天线的信号处理方法,用于在特定方向上增强信号强度。常规波束形成的目标是将天线的接收模式调整为在某个方向上增加敏感度并减小其他方向上的敏感度。 在Matlab中,我们可以使用Beamforming Toolbox或Phased Array System Toolbox中的函数来实现常规波束形成。这些工具箱提供了构建阵列天线模型、设计天线阵列、进行信号处理和性能评估的功能。 常规波束形成的原理是利用阵列天线中所有的天线元件之间的相位差来控制信号的干涉和叠加效果。通过对每个天线的输入信号加上适当的相位权重,可以使得在特定方向上的信号加强,而其他方向上的信号相干相消。 在Matlab中,我们可以使用Beamformer对象来实现常规波束形成。可以通过设置天线阵列的结构、天线元件的位置和方向、输入信号的波长和方向以及天线元件之间的相位权重来定义Beamformer对象。使用Beamformer对象的process方法,可以对输入信号进行波束形成操作。 常规波束形成可以应用于许多领域,比如无线通信、雷达、声纳等。它可以提高信号接收的质量和可靠性,减少多路径干扰和背景噪声的影响,从而提高系统的性能。 总之,Matlab提供了强大的工具和功能,可以方便地实现常规波束形成。我们可以根据具体应用的需求和参数设置,使用Matlab中的相关函数和工具箱来设计和优化阵列天线的常规波束形成系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤独的傅里叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值