总阵元数目N=16,目标指向θ=0°,相邻阵元间距半波长,载频35GHz,扫描角范围-90:0.1:90
步骤1:直接计算方向图
% 线阵:直接计算+划分子阵计算,对比结果
clc
clear
close all
f = 3.5e+10;
c = 3e8;
lamda = c/f;
d = lamda/2;
theta0 = 0; % 目标指向
theta = -90:0.1:90; % 扫描角范围
N = 16;
%% 直接计算
figure;
plot(0:1:15,zeros(1,N),'ko');
grid on
for n = 1:N
w(n) = exp(1i*2*pi/lamda*(n-1)*d*sind(theta0)); % 权值
end
for p = 1:length(theta)
for n = 1:N
a(n) = exp(1i*2*pi/lamda*(n-1)*d*sind(theta(p))); % 导向矢量
end
B(p) = w*a';
end
F = 10*log10(abs(B));
figure();
plot(theta,F);
title('直接计算');
xlabel('\theta (°)');
ylabel('增益');
grid on;
xlim([-90,90]);
ylim([-40,20]);
得到结果
步骤2:通过划分子阵(每个子阵包含四个阵元),计算元因子和阵因子,使用方向图乘积定理计算方向图。
%% 划分子阵
figure;
plot(0:1:3,zeros(1,4),'ko',4:1:7,zeros(1,4),'ro',8:1:11,zeros(1,4),'ko',12:1:15,zeros(1,4),'ro');
grid on
% 元因子
for n = 1:4
w1(n) = exp(1i*2*pi/lamda*(n-1)*d*sind(theta0)); % 权值
end
for p = 1:length(theta)
for n = 1:4
a1(n) = exp(1i*2*pi/lamda*(n-1)*d*sind(theta(p))); % 导向矢量
end
B1(p) = w1*a1';
end
F1 = 10*log10(abs(B1));
% 阵因子
for n = 1:4
w2(n) = exp(1i*2*pi/lamda*(3/2*d+(n-1)*4*d)*sind(theta0)); % 权值
end
for p = 1:length(theta)
for n = 1:4
a2(n) = exp(1i*2*pi/lamda*(3/2*d+(n-1)*4*d)*sind(theta(p))); % 导向矢量
end
B2(p) = w2*a2';
end
F2 = 10*log10(abs(B2));
Fa = 10*log10(abs(B1.*B2));
步骤3:画图对比
figure;
subplot(2,2,1);
plot(theta,F1);
title('元因子');
xlabel('\theta (°)');
ylabel('增益');
grid on;
xlim([-90,90]);
ylim([-40,20]);
subplot(2,2,2);
plot(theta,F2);
title('阵因子');
xlabel('\theta (°)');
ylabel('增益');
grid on;
xlim([-90,90]);
ylim([-40,20]);
subplot(2,2,3);
plot(theta,Fa);
title('合成方向图');
xlabel('\theta (°)');
ylabel('增益');
grid on;
xlim([-90,90]);
ylim([-40,20]);
subplot(2,2,4);
plot(theta,Fa);
title('直接计算');
xlabel('\theta (°)');
ylabel('增益');
grid on;
xlim([-90,90]);
ylim([-40,20]);
得到结果
结语
这部分没什么难度,主要提供一个方向图的计算思路,方向图就是一个导向矢量乘上权向量。
需要注意的是,这里求的是增益方向图,用10log10(),并不是求归一化方向图。