%ref. M. Dinnichert, "Full polarimetric pattern synthesis for an active conformal array
clc
clear all
N0=72;%总阵元数
N=16;%实际工作的阵元数
r=1/(4*sin(pi/N0));%圆柱半径
%主波束指向
phi0=[60]*pi/180;
%期望的副瓣电平(dB)
SLL=-40;
%最大迭代次数
MaxNum_iteration=300;
%角度步长
da=1;
%迭代残差
er=1e-5;
% %下界宽度
Ml_width=20;
%下界值
Ml_value=10^(-10/20);
theta_n=pi/2;%俯仰角,固定为pi/2
%读入阵元方向图
load ('D:\Model\conformal_16\E_phi.txt');
load ('D:\Model\conformal_16\E_theta.txt');
E_phi_phi=[E_phi(:,271:360) E_phi(:,1:91)];%phi向激励,E_phi
E_phi_theta=[E_theta(:,271:360) E_theta(:,1:91)];%phi向激励,E_theta
E_theta_phi=E_phi_theta;%theta向激励,E_phi
E_theta_theta=E_phi_phi;%theta向激励,E_theta
for n=1:N
phi_n(n)=2*pi*(n-1)/N0-37.5*pi/180;%各阵元所在位置的方位角
end
%phi向端口等幅同相激励方向图
K=zeros(2*N,MaxNum_iteration);
k=1;
K(:,1)=ones(2*N,1);%初始权值
%形成初始方向图(仅有phi向激励)
for phi=-90:da:90
for n=1:N
a_co(n,1)=exp(1j*2*pi*r*(cos(phi*pi/180-phi_n(n))-cos(phi0-phi_n(n)))).*(E_phi_phi(n,k));
a_cr(n,1)=exp(1j*2*pi*r*(cos(phi*pi/180-phi_n(n))-cos(phi0-phi_n(n)))).*(E_phi_theta(n,k));
end
F_co(k)=abs(K(1:N,1)'*a_co);
F_cr(k)=abs(K(N+1:2*N,1)'*a_cr);
k=k+1;
end
phi=-90:da:90;
figure(1)
plot(phi,20*log10(F_co/max(F_co)),'b');%主极化
hold on
plot(phi,20*log10(F_cr/max(F_co)),'b--');%交叉极化
hold on
axis([-90 90 -80 0])
[phi_L,phi_H,malobewidth]=mainlobe_width(phi0,phi,F_co,da);%计算主瓣宽度及第一零点位置
%[Ml_L,Ml_H,M_width]=ML_width(F_co,phi_L,phi_H);%计算下界位置
X=zeros(2*181,2*N);
for Num=1:MaxNum_iteration
k=1;
%定义上界
for phi=-90:da:90;
if (phi>phi_L) && (phi<phi_H)%主瓣内
Mu(2*k-1,1)=1;%共极化
Mu(2*k,1)=10^(SLL/10);%交叉极化
else%主瓣外
Mu(2*k-1,1)=10^(SLL/10);%共极化
Mu(2*k,1)=0;%交叉极化
end
%Ml_width=malobewidth/2;
%定义下界Ml
% if (phi>Ml_L && phi<Ml_H)
if (phi>phi0*180/pi-Ml_width/2) && (phi<phi0*180/pi+Ml_width/2)%主瓣内
Ml(2*k-1,1)=Ml_value;%共极化
Ml(2*k,1)=0;%交叉极化
else
Ml(2*k-1,1)=0;
Ml(2*k,1)=0;
end
for n=1:N
x1=exp(1j*2*pi*r*cos(phi*pi/180-phi_n(n)))*E_phi_phi(n,k);%phi向激励,E_phi
x2=exp(1j*2*pi*r*cos(phi*pi/180-phi_n(n)))*E_theta_phi(n,k);%theta向激励,E_phi
x3=exp(1j*2*pi*r*cos(phi*pi/180-phi_n(n)))*E_phi_theta(n,k);%phi向激励,E_theta
x4=exp(1j*2*pi*r*cos(phi*pi/180-phi_n(n)))*E_theta_theta(n,k);%theta向激励,E_theta
X(2*k-1:2*k,2*n-1:2*n)=[x1 x2; x3 x4];
end
k=k+1;
end
if Num==1
D=Mu;
T=X'*D;
end
K(:,Num+1)=(X'*X)\T;%权值
F=X*K(:,Num+1);%方向图
F0=abs(F);
F0=F/max(F0);
k1=1;
%优化主极化方向图
for phi=-90:da:90
if F0(2*k1-1,1)>Mu(2*k1-1,1);
f(2*k1-1,1)=Mu(2*k1-1,1)*F(2*k1-1,1)/abs(F(2*k1-1,1));
elseif F0(2*k1-1,1)>=Ml(2*k1-1,1) && F0(2*k1-1,1)<=Mu(2*k1-1,1)
f(2*k1-1,1)=F(2*k1-1,1);
elseif F0(2*k1-1,1)<=Ml(2*k1-1,1)
f(2*k1-1,1)=Ml(2*k1-1,1)*F(2*k1-1,1)/abs(F(2*k1-1,1));
end
%优化交叉极化方向图
if F0(2*k1,1)>Mu(2*k1,1);
f(2*k1,1)=Mu(2*k1,1)*F(2*k1,1)/abs(F(2*k1,1));
elseif F0(2*k1,1)>=Ml(2*k1,1) && F0(2*k1,1)<=Mu(2*k1,1)
f(2*k1,1)=F(2*k1,1);
elseif F0(2*k1,1)<=Ml(2*k1,1)
f(2*k1,1)=Ml(2*k1,1)*F(2*k1,1)/abs(F(2*k1,1));
end
k1=k1+1;
end
for kk=1:181
FC_co(kk,1)=abs(F(2*kk-1,1));
FC_cr(kk,1)=abs(F(2*kk,1));
end
%找出主极化的最大副瓣电平
phi=-90:da:90;
[phi_L,phi_H,malobewidth]=mainlobe_width(phi0,phi,FC_co,da);%计算主极化主瓣宽度及第一零点位置
%[Ml_L,Ml_H,M_width]=ML_width(FC_co,phi_L,phi_H);%计算下界位置
k2=1;
k3=1;
for phi=-90:da:90
if (phi<phi_L || phi>phi_H)
Sidelobe(k3)=FC_co(k2)/max(FC_co);
k3=k3+1;
end
k2=k2+1;
end
%Sidelobe=abs(Sidelobe)/max(abs(FC_co));
for t=1:length(Sidelobe)
if Sidelobe(t)>1
Sidelobe(t)=0;
end
end
max_sidelobe=max(20*log10(Sidelobe));
%收敛条件
if (max_sidelobe<=SLL) || norm(K(1:N,Num+1)-K(1:N,Num),2)<=er;
break
else
T=X'*f;
K(:,Num+2)=(X'*X)\T;%权值
F=X*K(:,Num+2);
end
end
Num
max_sidelobe
%
FC_co=abs(FC_co);
FC_cr=abs(FC_cr);
phi=-90:da:90;
plot(phi,20*log10(FC_co/max(FC_co)),'r');
hold on
plot(phi,20*log10(FC_cr/max(FC_co)),'r--');
axis([-90 90 -80 0])
%
评论0