均匀面阵波束方向图代码
均匀面阵波束方向图代码
主函数
代码如下(示例):
clc;
clear all;
close all;加粗样式
warning off;
j=sqrt(-1);
lamda=1;%波长
d=lamda/2;%阵元间隔
N=10;%阵元数
M=10;
dAz0=45*pi/180;%主瓣波束fuyang角
dEl0=45*pi/180;%主瓣波束fangwei角
dAz1=10*pi/180;%主瓣波束fuyang角
dEl1=10*pi/180;%主瓣波束fangwei角
BF1=array_response(dAz0,dEl0,N,M);
BF2=array_response(dAz1,dEl1,N,M);
BF=[BF1+BF2];
dA=(0:90)*pi/180;
dE=(0:360)*pi/180;
[dEl,dAz] = meshgrid(dE,dA);
for i=1:length(dA)
for j=1:length(dE)
A(i,j)=sum(sum((BF1.')'.*array_response(dAz(i,j),dEl(i,j),N,M)));
end
end
[x,y,z]=sph2cart1(dAz,dEl,real(A));
figure;mesh(dEl*180/pi,dAz*180/pi,real(A));ylabel('俯仰角(°)');xlabel('方位角(°)');title('均匀线阵方向图');
figure;mesh(x,y,z);ylabel('y');xlabel('x');
view(0,90);
导向矢量函数
代码如下(示例):
function y = array_response(theta,phi, Y,Z)
for m= 1:Y
for n= 1:Z
y(m,n) = exp( -1i* pi* sin(theta)*( (m-Y/2)*cos(phi) + (n-Z/2)*sin(phi) ) );
end
end
y = y.'/sqrt(Y*Z);
end
结果