原理就不详细解释了,需要可以私聊交流
直接上代码
// An highlighted block
clear
clc
AngleBound = [60,60]; %%方位俯仰角范围
AngSampSpace = [0.5,0.5]; %%角度间隔
AzimuAng0 = 0; %%波束指向
PitchAng0 = 0;
N1 = 16; %%阵元个数
N2 = 16;
d_lamda = 0.5;
AzimuAngGrid = -AngleBound(1) : AngSampSpace(1) :AngleBound(1);
PitchAngGrid = -AngleBound(2) : AngSampSpace(2) :AngleBound(2);
dx = zeros(1,N1*N2);
dy = repmat([0:N1-1],1,N2);
dz = reshape(repmat([0:N2-1].',1,N1)',1,N1*N2);
p =[dx;dy;dz]; %%阵元位置
k0 = -2*pi*d_lamda*[cos(AzimuAng0/180*pi)*cos(PitchAng0/180*pi),cos(AzimuAng0/180*pi)*sin(PitchAng0/180*pi),sin(AzimuAng0/180*pi)].';
w0 = exp(1j*k0.'*p);
for i=1:length(AzimuAngGrid)
for j=1:length(PitchAngGrid)
end
end
Ant = abs(Ant);
Ant = db(Ant/max(Ant(:)));
figure(1),
imagesc(PitchAngGrid,AzimuAngGrid,Ant);
colorbar ;axis tight;shading interp;xlabel 俯仰角;ylabel 方位角 ;zlabel 幅度增益(dB)
figure(2),
mesh(PitchAngGrid,AzimuAngGrid,Ant)
// An highlighted block
p =[dx;dy;dz]; %%阵元位置
k0 = -2*pi*d_lamda*[cos(AzimuAng0/180*pi)*cos(PitchAng0/180*pi),cos(AzimuAng0/180*pi)*sin(PitchAng0/180*pi),sin(AzimuAng0/180*pi)].';
w0 = exp(1j*k0.'*p);
for i=1:length(AzimuAngGrid)
for j=1:length(PitchAngGrid)
k = -2*pi*d_lamda*[cos(AzimuAngGrid(i)/180*pi)*cos(PitchAngGrid(j)/180*pi),cos(AzimuAngGrid(i)/180*pi)*sin(PitchAngGrid(j)/180*pi),sin(AzimuAngGrid(i)/180*pi)].';
v = exp(1j*k.'*p);
Ant(i,j) = w0*v';
end
end
Ant = abs(Ant);
Ant = db(Ant/max(Ant(:)));
figure(1),
imagesc(PitchAngGrid,AzimuAngGrid,Ant),colormap(hsv);
colorbar ;axis tight;shading interp;xlabel 俯仰角;ylabel 方位角 ;zlabel 幅度增益(dB)
figure(2),
mesh(PitchAngGrid,AzimuAngGrid,Ant),colormap(hsv);
colorbar ;axis tight;shading interp;xlabel 俯仰角;ylabel 方位角 ;zlabel 幅度增益(dB)
// An highlighted block
k0 = -2*pi*r1/Lamda*[cos(AzimuAng0/180*pi)*cos(PitchAng0/180*pi),cos(AzimuAng0/180*pi)*sin(PitchAng0/180*pi),sin(AzimuAng0/180*pi)].';
k1 = -2*pi*r2/Lamda*[cos(AzimuAng0/180*pi)*cos(PitchAng0/180*pi),cos(AzimuAng0/180*pi)*sin(PitchAng0/180*pi),sin(AzimuAng0/180*pi)].';
w0 = exp(1j*k0.'*p1);
w1 = exp(1j*k1.'*p2);
for i=1:length(AzimuAngGrid)
for j=1:length(PitchAngGrid)
k1_huan = -2*pi*r1/Lamda*[cos(AzimuAngGrid(i)/180*pi)*cos(PitchAngGrid(j)/180*pi),cos(AzimuAngGrid(i)/180*pi)*sin(PitchAngGrid(j)/180*pi),sin(AzimuAngGrid(i)/180*pi)].';
k2_huan = -2*pi*r2/Lamda*[cos(AzimuAngGrid(i)/180*pi)*cos(PitchAngGrid(j)/180*pi),cos(AzimuAngGrid(i)/180*pi)*sin(PitchAngGrid(j)/180*pi),sin(AzimuAngGrid(i)/180*pi)].';
v1 = exp(1j*k1_huan.'*p1);
v2 = exp(1j*k2_huan.'*p2);
Ant1(i,j) = w0*v1';
Ant2(i,j) = w1*v2';
Ant = Ant1.*Ant2;
end
end