均匀面阵方向图仿真(七)

源代码

%  function [F] = Beam_F(theta0,fine0,c,f,d,M,N,theta,fine)
%-------------------均匀面阵方向图的画法
clear all;
close all;
clc;
tic;  % 计算所花时间
%-----------参数设置
c=3e8;           % 光速
f=30e6;          % 信号频率300MHz     
lamda=c/f;       % 波长
d=lamda/2;       % 阵元间距
M=8; N=8;        % 阵元个数
m = [0:1:M-1]';  % 列矢量
n = [0:1:N-1]';  % 列矢量
theta0=45;       % 跟踪轴
fine0 =200;
bujing=1;
theta=0:bujing:90;   % 扫描角取值范围
fine =0:bujing:360;  % 方位角取值范围
% theta是俯仰角 fine是方位角

%-------权值计算
W =[];
for m=1:M
    for n=1:N
        x = (m-1)*sind(theta0)*cosd(fine0)+(n-1)*sind(theta0)*sind(fine0);% 波程差
        W(m,n) = exp(1j*2*pi*f*d*x/c);    
    end
end

%--------- 绘制方向图
for p = 1:length(theta)
    for q = 1:length(fine)
        for m=1:M
             for n=1:N
                 %-------方向矢量
                 x = (m-1)*sind(theta(p))*cosd(fine(q))+(n-1)*sind(theta(p))*sind(fine(q));
                 V(m,n) = exp(1j*2*pi*f*d*x/c); %-- 方向矢量的求解
             end
        end
        B(p,q) =abs(sum(sum(conj(W).*V)));    % conj 表示取共轭  
    end
end
F=abs(B);   % 取实部
F=F/(M*N);  % 归一化
figure(1)
% mesh(fine,theta,F);
mesh(fine,theta,20*log10(F));
zlim([-40 1]);
xlabel('方位角');ylabel('俯仰角');zlabel('幅度方向图');

toc;
% end


仿真结果

均匀面阵方向图仿真(七)_第1张图片

你可能感兴趣的:(matlab)