%% 恒定主瓣响应波束设计
%期望波束
clc;clear all;
element_num=12; %阵元数量
c=1500; %设置声速
f0=5000;
f1=2539;
fu=5566; %设置工作频带
f=linspace(f1,fu,33); %将工作频带划分为33个子带
d=c/f0*0.5; %阵元间距
d_lamda=d./(c./f); %阵元间距与波长的比值
theta_0=10; %初始角
theta=linspace(-90,90,181);
%% 针对最低工作频率f0/2的常规波束形成
w=exp(1i*2*pi*(0:element_num-1)'*d_lamda(1)*sind(theta_0))/element_num;
a=exp(1i*2*pi*(0:element_num-1)'*d_lamda(1)*sind(theta));
B=w'*a;
PL=20*log10(B/max(B));
figure;
plot(theta,PL,'--');
hold on
%% 期望主瓣
x=find(theta==-2); %%%%%%%%%%%%%%%%%%%%%%%%%%
y=find(theta==22); %%%%%%%%%%%%%%%%%%%%%%%%%
theta_main_lobe=theta(x:2:y);
main_lobe_len=length(theta_main_lobe);
Bd_main_lobe=B(x:2:y);
PL_main_lobe=PL(x:2:y);
plot(theta_main_lobe,PL(x:2:y),'*')
%% 期望旁瓣
x=find(theta==-90);
y=find(theta==-6); %%%%%%%%%%%%%%%%%%%%%
theta_side_lobe1=theta(x:2:y);
PL_side_lobe1=-25*ones(1,length(theta_side_lobe1));
Bd_side_lobe1=10.^(PL_side_lobe1./20);
plot(theta_side_lobe1,PL_side_lobe1,'b')
x=find(theta==26); %%%%%%%%%%%%%%%%
y=find(theta==90);
theta_side_lobe2=theta(x:2:y);
PL_side_lobe2=-25*ones(1,length(theta_side_lobe2));
Bd_side_lobe2=10.^(PL_side_lobe2./20);
plot(theta_side_lobe2,PL_side_lobe2,'b')
theta_side_lobe=[theta_side_lobe1,theta_side_lobe2];
Bd_side_lobe=[Bd_side_lobe1,Bd_side_lobe2];
side_lobe_len=length(theta_side_lobe);
%% 期望波束
Bd_exp=[Bd_side_lobe1,Bd_main_lobe,Bd_side_lobe2];
PL_exp=20*log10(Bd_exp/max(Bd_exp));
PL_exp=double(PL_exp);
%% 以2度间隔离散化方位
theta_exp=[theta_side_lobe1,theta_main_lobe,theta_side_lobe2];
plot(theta_exp,PL_exp,'r')
legend('常规波束','期望波束')
axis([-90,90,-80,0])
xlabel('方位/(°)');ylabel('波束/dB');
%% 二阶锥规划求解参数
side_lobe=-25;%旁瓣的设置要求,此题目中为-25dB
weight=-7.5;%加权向量范数的设置要求,此题目中为-7.5
figure
for j=1:33
a_main=[];a_side=[];
a_main=exp(1i*2*pi*(0:element_num-1)'*d_lamda(j)*sind(theta_main_lobe));%主瓣的导向向量
a_side=exp(1i*2*pi*(0:element_num-1)'*d_lamda(j)*sind(theta_side_lobe));%旁瓣的导向向量
cvx_begin
variable W(element_num) complex
minimize( norm(W'*a_main-Bd_main_lobe,2))
subject to
abs(W'*a_side) <= 10^(side_lobe/20);
norm(W,2)<=10^(weight/20);
cvx_end
w(:,j)=W;
a_exp=exp(1i*2*pi*(0:element_num-1)'*d_lamda(j)*sind(theta_exp));
B1(j,:)=W'*a_exp;
PL1(j,:)=20*log10(abs(B1(j,:))/max(abs(B1(j,:))));
plot(theta_exp,PL1(j,:))
hold on
end
hold off
title('恒定主瓣响应宽带波束图');
axis([-90,90,-80,0])
xlabel('方位/(°)');ylabel('波束/dB');
figure %三维显示
[Theta,F]=meshgrid(theta_exp,f/max(f));
mesh(Theta,F,PL1)
title('恒定主瓣响应宽带波束图');
xlabel('方位/(°)');zlabel('波束/dB');ylabel('归一化频率')
评论0