面阵
矩形阵
矩形阵是选取四个角中的某一个点作为参考点计算波程差,得出导向矢量。
F
(
ϕ
,
θ
)
=
∑
n
=
0
N
−
1
∑
m
=
0
M
−
1
A
n
,
m
∗
e
j
(
2
π
λ
n
d
x
s
i
n
θ
c
o
s
ϕ
+
2
π
λ
m
d
y
s
i
n
θ
s
i
n
ϕ
+
n
α
+
m
β
)
F(\phi,\theta)=\sum_{n=0}^{N-1}\sum_{m=0}^{M-1}A_{n,m}*e^{j(\frac{2\pi}{\lambda}nd_xsin\theta cos\phi+\frac{2\pi}{\lambda}md_ysin\theta sin\phi+n\alpha+m\beta)}
F(ϕ,θ)=∑n=0N−1∑m=0M−1An,m∗ej(λ2πndxsinθcosϕ+λ2πmdysinθsinϕ+nα+mβ)
其中,
α
=
−
2
π
λ
∗
d
x
∗
c
o
s
(
ϕ
0
)
s
i
n
(
θ
0
)
\alpha=-\frac{2\pi}{\lambda}*d_x*cos(\phi_0)sin(\theta_0)
α=−λ2π∗dx∗cos(ϕ0)sin(θ0)
β
=
−
2
π
λ
∗
d
y
∗
s
i
n
(
ϕ
0
)
s
i
n
(
θ
0
)
\beta=-\frac{2\pi}{\lambda}*d_y*sin(\phi_0)sin(\theta_0)
β=−λ2π∗dy∗sin(ϕ0)sin(θ0)
matlab仿真代码如下,
clc; close all; clear all;
% theta是俯仰角 fine是方位角
c=3e8; % 光速
f=3e10; % 载波频率
lamda=c/f; % 波长
d=lamda/2; % 阵元间距,此处dx=dy,为均匀矩形阵
M=8;
N=8; % 8*8的矩阵
% 波束指向角度(theta0,fine0)
theta0=30;
fine0=200;
deta=0.5;
theta=0:deta:90; % 俯仰角取值范围
fine=0:deta:360; % 方位角取值范围
W = zeros(M,N);
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
W1=reshape(W,[],1); % 将8*8的矩阵变成64*1的向量
%方向矢量计算
lt = length(theta); lf = length(fine);
E1 = zeros(lt,lf); Beam_F1 = zeros(lt,lf);
for p = 1:lt
for q = 1:lf
V = zeros(M,N);
for m=1:M
for n=1:N
%权值扫描
x = (m-1)*d*sind(theta(p))*cosd(fine(q))+(n-1)*d*sind(theta(p))*sind(fine(q));
V(m,n) = exp(1j*2*pi*f*x/c); % 方向矢量的求解
end
end
V1=reshape(V,[],1); % 将8*8的矩阵变成64*1的向量
E1(p,q)=W1'*V1;% 相控阵天线的方向图
Beam_F1(p,q)=abs(E1(p,q));
end
end
figure('Name',"均匀矩形阵列天线方向图")
mesh(fine,theta,Beam_F1);
xlabel('方位角');ylabel('俯仰角');zlabel('方向图');
均匀圆环阵
圆环阵选取圆心作为参考点计算波程差,得出导向矢量。
F
(
ϕ
,
θ
)
=
∑
n
=
0
N
−
1
A
∗
e
j
2
π
λ
s
i
n
θ
c
o
s
(
2
π
n
N
−
ϕ
)
F(\phi,\theta)=\sum_{n=0}^{N-1}A*e^{j\frac{2\pi}{\lambda}sin\theta cos(2\pi\frac{n}{N}-\phi)}
F(ϕ,θ)=∑n=0N−1A∗ejλ2πsinθcos(2πNn−ϕ)
matlab仿真代码如下,
%% 均匀圆环阵
close all;
clear;
clc;
c=3e8;
fC=1e9; % 信号频率
lamda=c/fC; % 信号波长
M=10; % 阵列规模
m=(0:1:M-1)'; % 第m个阵元 列矢量
theta0 = 20; % 波束指向
fine0=180;
deta=1;
theta=0:deta:90;
fine=0:deta:360;
%同心圆环阵的阵元个数,层数等信息
R=2*lamda; % 圆环半径
gama=(360*m/M); % 第m个阵元和圆心O之间的连线与x轴的夹角,单位为度
W =exp(1j*(2*pi/lamda)*R*sind(theta0)*cosd(fine0 - gama)); % 列矢量
Beam_F=zeros(length(theta),length(fine));
V=[];
for p=1:length(theta)
for q=1:length(fine)
V =exp(1j*(2*pi/lamda)*R*sind(theta(p))*cosd( fine(q)-gama) ); % 列矢量
Beam_F(p,q)=W'*V;
end
end
Beam_F=abs(Beam_F);
Beam_F_max=max(max(Beam_F));
Beam_F_dB=20*log10(Beam_F/Beam_F_max);
figure('Name','均匀圆环阵列天线方向图');
mesh(fine,theta,Beam_F_dB);zlim([-60 0]);
xlabel('方位角/度');ylabel('俯仰角/度');zlabel('功率/dB');
同心多层圆环阵
matlab代码如下,此代码计算导向矢量的方法类似于矩形方阵。
%% 同心圆环阵的方向图
close all;clear;clc;
c=3e8;
fc=1e9; % 信号频率
lamda=c/fc; % 信号波长
d=lamda/2;
M=5; % 圆环层数
m=(0:1:M-1)';
theta0 = 45; % 波束指向
fine0 = 80;
deta=1;
theta=0:deta:90;
fine=0:deta:360;
% 同心圆环阵的阵元个数,层数等信息
rou_0=0; % 圆心
delta_rou=d; % 相邻圆环之间的间距
rou_m=m*delta_rou+rou_0; % 第m层圆环的半径
rou_m(1)=0;
N_m=round(2*pi*rou_m/d); % 第m层圆环的阵元个数
N_m(1)=1;
Num_array=sum(N_m); % 均匀圆环阵的阵元总个数
for m=1:M % 第m层
for n=1:N_m(m) % 第n个阵元
angle(m,n)=360/N_m(m)*(n-1);% 第m层圆环的第n个阵元的角度,单位为度
end
end
alpha = [sind(theta0)*cosd(fine0);...
sind(theta0)*sind(fine0);cosd(theta0)];% 方向矢量
for m=1:M % 第m层
for n=1:N_m(m) % 第n个阵元
position=[rou_m(m)*cosd(angle(m,n));rou_m(m)*sind(angle(m,n));0];
W(m,n) =exp(1j*2*pi*fc*(alpha.'*position)/c); % 矩阵
end
end
W1=reshape(W,[],1); % 将8*8的矩阵变成64*1的向量
E=[];
for p = 1:length(theta)
for q = 1:length(fine)
alpha=[sind(theta(p))*cosd(fine(q)); ...
sind(theta(p))*sind(fine(q));cosd(theta(p))];
for m=1:M % 第m层
for n=1:N_m(m) % 第m层的第n个阵元
position=[rou_m(m)*cosd(angle(m,n));rou_m(m)*sind(angle(m,n));0];
V(m,n) =exp(1j*2*pi*fc*(alpha.'*position)/c); % 矩阵
end
end
V1=reshape(V,[],1); % 将8*8的矩阵变成64*1的向量
Beam_F(p,q)=abs(W1'*V1);% 相控阵天线的方向图
end
end
Beam_F_dB=20*log10(Beam_F/max(max(Beam_F)));
figure('Name','多层同心圆环阵列');
mesh(fine,theta,Beam_F_dB);zlim([-60 0]);
xlabel('方位角/度');ylabel('俯仰角/度');zlabel('功率/dB');