波束形成,也称为空域滤波。与时域FIR滤波器的时间采用线性滤波器处理相似,阵列处理是一种空间采样处理技术,即通过一定布置的空间阵元对空间信号场进行采样,然后经过加权相加处理得到期望的输出结果。
阵列的结构不同效果不同,主要分为线阵、圆阵、三角阵、L阵、球面阵等等。
线阵:
%ULA-beamform
clear all;
close all;
clc;
N=16; %权个数
f=1500;%信号频率
c=1500;
lambda=c/f;
d=0.5*lambda;
phi=0:0.01:pi;
theta=0:0.04:2*pi;
phi0 = pi/2;
theta0 = pi/6;
a=zeros(2,N);
p=[a;((0:N-1)-(N-1)/2)*d];
k0=-2*pi/lambda*[sin(phi0)*cos(theta0),sin(phi0)*sin(theta0),cos(phi0)].';
w0=exp(-1i*k0.'*p).*(chebwin(N,25)).';
for ii=1:length(phi)
for jj=1:length(theta)
k=2*pi/lambda*[sin(phi(ii))*cos(theta(jj)),sin(phi(ii))*sin(theta(jj)),cos(phi(ii))].';
v=exp(-1i*k.'*p);
b(ii,jj)=w0*v';
end
end
% cut_angle=angle(:,400:length(angle));
% z=y(:,400:length(angle));
figure;
B=20*log10(abs(b)/max(max(abs(b))));
[phi,theta] = meshgrid(theta,phi);
mesh(phi*180/pi,theta*180/pi,B);
xlabel('\phi','fontsize',18,'fontname','times new roman');%angle*180/pi,in_y)
ylabel('\theta','fontsize',18,'fontname','times new roman')
set(gcf,'color','white')
set(gca,'linewidth',2,'fontsize',18,'fontname','times new roman')
axis([0 360 0 180 -100 0])
% xlim([0,360]);ylim([-180,180]);zlim([-60,0])
% caxis([-60,0])
%URA-beampattern
clear all
clc
N=8;
M=10;%阵元个数
f=1500;%信号频率
c=1500;
lambda=c/f;
d=0.5*lambda;
theta=-pi/2:0.02:pi/2;
phi=0:0.05:2*pi;
phi0=pi/6;
theta0=pi/3; %预先设定的方向
k = 1;
p = zeros(3,M*N);
for iii = -(N-1)/2 : (N-1)/2
for jjj = -(M-1)/2 : (M-1)/2
p(:,k) = [iii*d,jjj*d,0]';
k = k+1;
end
end %阵元的位置
figure(1);
plot3(p(1,:),p(2,:),p(3,:),'ko');hold on;
xlabel('\it x','Fontsize',14);
ylabel('\it y','Fontsize',14);
zlabel('\it z','Fontsize',14);
k0=-2*pi/lambda*[sin(phi0)*cos(theta0),sin(phi0)*sin(theta0),cos(phi0)].';
w0=exp(-1i*k0.'*p);
for ii=1:length(theta)
for jj=1:length(phi)
k=-2*pi/lambda*[sin(theta(ii))*cos(phi(jj)),sin(theta(ii))*sin(phi(jj)),cos(theta(ii))].';
v=exp(-1i*k.'*p);
b(ii,jj)=w0*v';
end
end
figure(2);
B=20*log10(abs(b)/max(max(abs(b))));
ux = sin(theta.')*cos(phi);
uy = sin(theta.')*sin(phi);
B = max(B,-60);
mesh(ux,uy,B);
xlabel('\it u_x','Fontsize',18,'fontname','times new roman');
ylabel('\it u_y','Fontsize',18,'fontname','times new roman');
zlabel('Beampattern/dB','Fontsize',18,'fontname','times new roman');
zlim([-60,0]);
caxis([-60,0])
set(gcf,'color','white')
set(gca,'linewidth',2,'fontsize',18,'fontname','times new roman')
set(gca,'ztick',-60:10:0)
圆阵
clear all;
close all;
clc
N=20;%阵元个数
f=1500;%信号频率
c=1500;
lambda=c/f;
d=0.5*lambda;
theta=-pi/2:0.05:pi/2;
phi=0:0.05:2*pi;
phi0=0;
theta0=pi/6; %预先设定的方向
Delta = pi/10;
R = d/Delta;
p = zeros(3,N);
k = 1;
for kk = 1:N
p(:,k) = [R*cos(kk*Delta),R*sin(kk*Delta),0]';
k = k+1;
end
figure(1);
plot3(p(1,:),p(2,:),p(3,:),'ko');
hold on;
xlabel('\it x','Fontsize',14);
ylabel('\it y','Fontsize',14);
zlabel('\it z','Fontsize',14);
k0=-2*pi/lambda*[sin(phi0)*cos(theta0),sin(phi0)*sin(theta0),cos(phi0)].';
w0=exp(-1i*k0.'*p);
for ii=1:length(theta)
for jj=1:length(phi)
k=-2*pi/lambda*[sin(theta(ii))*cos(phi(jj)),sin(theta(ii))*sin(phi(jj)),cos(theta(ii))].';
v=exp(-1i*k.'*p);
b(ii,jj)=w0*v';
end
end
figure(2);
B=20*log10(abs(b)/max(max(abs(b))));
ux = sin(theta.')*cos(phi);
uy = sin(theta.')*sin(phi);
mesh(ux,uy,B);
xlabel('\it u_x','Fontsize',14);
ylabel('\it u_y','Fontsize',14);
zlabel('Beam pattern (dB)','Fontsize',14);
zlim([-50,0]);
caxis([-50,0])